# dedlin
Dedlin is an interactive line-by-line text editor and a DSL, similar to edlin or ed. It is perfect for
letting AI chatbots edit documents without sending the whole document back and forth.
It is scriptable making it similar to `sed` for doing find, insert, replace, delete operations on existing files.
Soon it will support non-line number ranges, e.g. `"/Done/ DELETE`
Dedlin extends on [edlin](https://en.wikipedia.org/wiki/Edlin) enough that it is not backwards compatible.
I have made changes to make the app less user hostile than classic ed or edlin, but there is a `--vim_mode`
where all help, warnings, feedback will be suppressed.
## Badges
![Libraries.io dependency status for latest release](https://img.shields.io/librariesio/release/pypi/dedlin)
[![Downloads](https://static.pepy.tech/personalized-badge/dedlin?period=month&units=international_system&left_color=black&right_color=orange&left_text=Downloads)](https://pepy.tech/project/dedlin)
[![CodeFactor](https://www.codefactor.io/repository/github/matthewdeanmartin/dedlin/badge)](https://www.codefactor.io/repository/github/matthewdeanmartin/dedlin)
## Installation
Requires python 3.11 or higher. Someday I'll write a standalone installer for it.
Install globally in an isolated virtual environment. This is a good idea.
```bash
pipx install dedlin
```
Run pre-built image with docker. Painful, but you're using an edlin clone, so that is what you're looking for.
```powershell
# This is should work in powershell or linux bash. Not windows git-bash.
docker run --rm -it -v "${PWD}/:/app" ghcr.io/matthewdeanmartin/dedlin:latest file.txt
```
## Usage
Launch and edit file_name.txt
If you installed with `pip` or `pipx`
```bash
dedlin file_name.txt
```
Command line help
```text
> python -m dedlin --help
Dedlin.
An improved version of the edlin.
Usage:
dedlin [<file>] [options]
dedlin (-h | --help)
dedlin --version
Options:
-h --help Show this screen.
--version Show version.
--macro=<macro> Run macro file.
--echo Echo commands.
--halt_on_error End program on error.
--promptless_quit Skip prompt on quit.
--vim_mode User hostile, no feedback.
--verbose Displaying all debugging info.
--blind_mode Optimize for blind users (experimental).
```
Sample session
```text
_ _ _ _
__| | ___ __| || |(_) _ _
/ _` |/ -_)/ _` || || || ' \
\__,_|\___|\__,_||_||_||_||_|
Editing /home/mmartin/github/dedlin/sample.txt
? * 1i
1 INSERT
Control C to exit insert mode
? 1 : cabbage
? 2 : bread
? 3 : carrots
? 4 : ghost peppers
? 5 : coffee
? 6 : tortillas
? 7 :
Exiting insert mode
? * SORT
SORT
Sorted
? * LIST
1,6 LIST
1 : bread
2 : cabbage
3 : carrots
4 : coffee
5 : ghost peppers
6 : tortillas
? * EXIT
1,6 EXIT
```
## Documentation
- [User Manual](https://github.com/matthewdeanmartin/dedlin/blob/main/docs/user_manual.md)
- [Developer roadmap](https://github.com/matthewdeanmartin/dedlin/blob/main/docs/TODO.md)
- [Prior Art](https://github.com/matthewdeanmartin/dedlin/blob/main/docs/prior_art.md)
Raw data
{
"_id": null,
"home_page": "https://github.com/matthewdeanmartin/dedlin",
"name": "dedlin",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0.0,>=3.11",
"maintainer_email": null,
"keywords": "editor, edlin, line editor",
"author": "Matthew Martin",
"author_email": "matthewdeanmartin@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/11/d4/fb2a2ed605d1eccba79235730db939516fc30c048df9f8101d5ee1411dc6/dedlin-1.19.4.tar.gz",
"platform": null,
"description": "# dedlin\n\nDedlin is an interactive line-by-line text editor and a DSL, similar to edlin or ed. It is perfect for\nletting AI chatbots edit documents without sending the whole document back and forth.\n\nIt is scriptable making it similar to `sed` for doing find, insert, replace, delete operations on existing files.\n\nSoon it will support non-line number ranges, e.g. `\"/Done/ DELETE`\n\nDedlin extends on [edlin](https://en.wikipedia.org/wiki/Edlin) enough that it is not backwards compatible.\n\nI have made changes to make the app less user hostile than classic ed or edlin, but there is a `--vim_mode`\nwhere all help, warnings, feedback will be suppressed.\n\n## Badges\n\n![Libraries.io dependency status for latest release](https://img.shields.io/librariesio/release/pypi/dedlin)\n\n[![Downloads](https://static.pepy.tech/personalized-badge/dedlin?period=month&units=international_system&left_color=black&right_color=orange&left_text=Downloads)](https://pepy.tech/project/dedlin)\n\n[![CodeFactor](https://www.codefactor.io/repository/github/matthewdeanmartin/dedlin/badge)](https://www.codefactor.io/repository/github/matthewdeanmartin/dedlin)\n\n## Installation\n\nRequires python 3.11 or higher. Someday I'll write a standalone installer for it.\n\nInstall globally in an isolated virtual environment. This is a good idea.\n\n```bash\npipx install dedlin\n```\n\nRun pre-built image with docker. Painful, but you're using an edlin clone, so that is what you're looking for.\n\n```powershell\n# This is should work in powershell or linux bash. Not windows git-bash.\ndocker run --rm -it -v \"${PWD}/:/app\" ghcr.io/matthewdeanmartin/dedlin:latest file.txt\n```\n\n## Usage\n\nLaunch and edit file_name.txt\n\nIf you installed with `pip` or `pipx`\n\n```bash\ndedlin file_name.txt\n```\n\nCommand line help\n\n```text\n> python -m dedlin --help\nDedlin.\n\nAn improved version of the edlin.\n\nUsage:\n dedlin [<file>] [options]\n dedlin (-h | --help)\n dedlin --version\n\nOptions:\n -h --help Show this screen.\n --version Show version.\n --macro=<macro> Run macro file.\n --echo Echo commands.\n --halt_on_error End program on error.\n --promptless_quit Skip prompt on quit.\n --vim_mode User hostile, no feedback.\n --verbose Displaying all debugging info.\n --blind_mode Optimize for blind users (experimental).\n```\n\nSample session\n\n```text\n _ _ _ _\n __| | ___ __| || |(_) _ _\n/ _` |/ -_)/ _` || || || ' \\\n\\__,_|\\___|\\__,_||_||_||_||_|\n\n\nEditing /home/mmartin/github/dedlin/sample.txt\n? * 1i\n1 INSERT\nControl C to exit insert mode\n? 1 : cabbage\n? 2 : bread\n? 3 : carrots\n? 4 : ghost peppers\n? 5 : coffee\n? 6 : tortillas\n? 7 :\n\nExiting insert mode\n\n? * SORT\n SORT\nSorted\n? * LIST\n1,6 LIST\n 1 : bread\n 2 : cabbage\n 3 : carrots\n 4 : coffee\n 5 : ghost peppers\n 6 : tortillas\n\n? * EXIT\n1,6 EXIT\n```\n\n## Documentation\n\n- [User Manual](https://github.com/matthewdeanmartin/dedlin/blob/main/docs/user_manual.md)\n- [Developer roadmap](https://github.com/matthewdeanmartin/dedlin/blob/main/docs/TODO.md)\n- [Prior Art](https://github.com/matthewdeanmartin/dedlin/blob/main/docs/prior_art.md)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Line editor, edlin clone with many improvements",
"version": "1.19.4",
"project_urls": {
"Bug Tracker": "https://github.com/matthewdeanmartin/dedlin/issues",
"Change Log": "https://github.com/matthewdeanmartin/dedlin/blob/main/CHANGES.md",
"Documentation": "https://github.com/matthewdeanmartin/dedlin",
"Homepage": "https://github.com/matthewdeanmartin/dedlin",
"Repository": "https://github.com/matthewdeanmartin/dedlin"
},
"split_keywords": [
"editor",
" edlin",
" line editor"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a3358f827374493e72b389c22ebb4a3fae8091c6e849b046acafdc42bdd473c4",
"md5": "cef89fae2e0366bd308c1d0f98456435",
"sha256": "f5da33b0cd696f879bca29cf11e24f801e37a13fbba466723ac8cfe211a0f246"
},
"downloads": -1,
"filename": "dedlin-1.19.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cef89fae2e0366bd308c1d0f98456435",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0.0,>=3.11",
"size": 42520,
"upload_time": "2024-10-23T18:34:55",
"upload_time_iso_8601": "2024-10-23T18:34:55.763051Z",
"url": "https://files.pythonhosted.org/packages/a3/35/8f827374493e72b389c22ebb4a3fae8091c6e849b046acafdc42bdd473c4/dedlin-1.19.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "11d4fb2a2ed605d1eccba79235730db939516fc30c048df9f8101d5ee1411dc6",
"md5": "ab7887722b3e7022791bccc218bb23f4",
"sha256": "9a2cd4b8fc5c314f57e88023525653f8fb39ec94146fc115ee8d7f85b1b4f7f5"
},
"downloads": -1,
"filename": "dedlin-1.19.4.tar.gz",
"has_sig": false,
"md5_digest": "ab7887722b3e7022791bccc218bb23f4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0.0,>=3.11",
"size": 35735,
"upload_time": "2024-10-23T18:34:57",
"upload_time_iso_8601": "2024-10-23T18:34:57.115486Z",
"url": "https://files.pythonhosted.org/packages/11/d4/fb2a2ed605d1eccba79235730db939516fc30c048df9f8101d5ee1411dc6/dedlin-1.19.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-23 18:34:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "matthewdeanmartin",
"github_project": "dedlin",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "dedlin"
}