Package: ash-editor
ashis a simple and clean terminal-based text editor, that aims to be easy to use with modern key-bindings. It is capable of handling multiple files simultaneously and has a wide array of modern features. Here is a picture ofashediting this README file:ashis written in Python 3.8 using the curses library. View this project on GitHub:ash on GitHubTable of ContentsFeaturesRequirementsInstallationPrerequisitesInstallingashUninstallingashColorsUsageKey BindingsContributingScreenshotsLicenseNote: The latest version is always the nightly build that can be downloaded from the ashwebsite, and the information presented here always refers to that build only. Unless you have any specific reason not to, you should always download the nightly build to get the latest features/updates/bug-fixes.FeaturesThe following is a list of features available inash:Easy to use, clean and intuitive interfaceCommon key bindings (Help on F1, Arrow keys for movement, Shift+Arrow/Home/End/PgUp/PgDown for selecting text, cut/copy/paste using Ctrl+X/C/V, undo/redo using Ctrl+Z/Y, find/replace/goto using Ctrl+F/H/G, etc.) and support for remapping key bindings to your tasteCommon editor features such as undo/redo, line numbers, find-replace, cut-copy-paste, etc.True support for wrapping (both hard & soft) with intuitive cursor movements along wrapped textMulti-file editing with support for windows and tabsAuto-backupSupport for UnicodeProject mode (opening a directory instead of individual files)Complete session (for projects) and undo persistence (turned on for projects opened directly from command-line)Live searchSupport for search/replace inallopen filesSupport for searching using regular expressionsAuto-indentation, Select+Tab/Shift-Tab to increase/decrease indentAuto insertion of matching braces/quotes and auto-enclosure when text is selected and braces/quotes are typedSupport for unlimited splits per tab (subject to screen size) and support for unlimited tabsSupport for various text-encodingsChecks (live) and reloads (if user permits) files which have been modified externallySelection highlighting (highlights text under selection wherever they occur in the document)Color scheme customizationView list of recent files, view project explorer (in project mode)Syntax highlighting (limited)Git integration (shows untracked, modified files, etc.)Multiple CursorsCommand paletteBasic mouse supportOpen terminal / execute shell commandsLimited IDE features like compile, build, execute...Supports project/folder specific settings along with global settingsRequirementsYou need a resolution of at least 102 x 22 in your terminal emulatorYour terminal must support Unicode and be able to display at least 256 colors with the capability of remapping color palettes (Works best on:xterm-256). Monochrome terminals are also partially supported.If you are running the source distribution, you need the GNU C compiler collection besides Python 3.8, as some parts of the application are written in Cython. The first time you run the application, Cython will compile and build the*.pyxfiles, which may increase load time (Ignore the warnings during compilation)ash is primarily targetted to Linux. This version of ash has only been tested on Ubuntu 20.04 with Python 3.8.2 (64-bit)InstallationNote: Instructions provided here are for Debian/Ubuntu based systems. For your distribution, you may need to issue different instructions to install the necessary packages.PrerequisitesYou need certain packages and Python 3 itself to runashon your system, as there are no prebuilt binaries available yet.$sudoaptinstallgit
$sudoaptinstallxclip
$sudoaptinstallpython3
$sudoaptinstallpython3-pipDepending on your system, you may also need to install the following packages:$sudoaptinstallpython3-develInstalling ashNote: To get the latest updates and bug-fixes, download the latest nightly build from theWebsite$sudopip3installash-editorTo runashmake sure you have:$HOME/.local/binappended to your $PATH variable in the file~/.bashrc. To executeash, see theUsagesection.Uninstalling ashTo uninstallashyou can use:$sudopip3uninstallash-editorColorsIf you are using the default Ubuntu terminal, to enable 256 make sure yourTERMvariable is set toxterm-256color. Afterashruns for the first time, it creates adefault.jsonJSON file inside the ~/.ash-editor/themes directory. You can edit that file directly to change howashlooks on your system. The RGB triplets listed in that file range from 0--255. If you want to resetashto its default colors, delete the configuration file using:rm ~/.ash-editor/themes/default.json. The theme file defines the color names first followed by setting the foreground and the background colors of each GUI element of the app.UsageOnce you have downloadedash, and set it up as detailed above, you are ready to use it.NOTES:If you have not updated your path variable, you must specify the full path to the ash binary.Your terminal resolution should be at least 102 (width) x 22 (height). Opening the editor in a lower resolution may unexpectedly crash the application. This requirement is necessary to properly display the dialog-boxes.It will take a while to start upashfor the first time, this is normal. From the second time onwards, it should start up faster.To runash:$ashpath/to/file.txtor, to open an empty buffer:$ashor, to open a project (directory):$ashpath/to/directoryKey BindingsSee theKey BindingsContributingContributing to the source codeIf you find any bugs, please report them. I am also happy to accept pull requests from anyone for either bug-fixes, performance improvements, or for implementing the not-yet-implemented features listed above. Please consider contributing towards new featuresonly whenthe features listed above have been fully implemented. For more information visit the project's Github page:ash on GitHubBug-fixes and feature enhancementsYou can use theGitHub issue trackerto report bugs, ask questions, or suggest new features.DiscussionsFor discussions related to the development roadmap and theasheditor in general, you can join theash Discord Server.Say Thanks!If you are not into software development, you can still contribute financially. Financial contributions help me prioritize working on this project over others and helps me know that there is a real demand for this software.ScreenshotsLicenseCopyright © Akash Nag. All rights reserved.Licensed under theMITlicense.