All Projects → akashnag → ash

akashnag / ash

Licence: MIT License
A modern terminal text editor

Programming Languages

python
139335 projects - #7 most used programming language
cython
566 projects
HTML
75241 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to ash

Bim
small terminal text editor with syntax highlighting
Stars: ✭ 174 (+370.27%)
Mutual labels:  code-editor, text-editor, terminal-based
Brackeys Ide
👨‍💻 Brackeys IDE is a fast and free multi-language code editor for Android.
Stars: ✭ 154 (+316.22%)
Mutual labels:  code-editor, text-editor
Vue Codemirror
⌨️ @codemirror component for @vuejs
Stars: ✭ 2,115 (+5616.22%)
Mutual labels:  code-editor, text-editor
Avaloniaedit
Avalonia-based text editor (port of AvalonEdit)
Stars: ✭ 201 (+443.24%)
Mutual labels:  code-editor, text-editor
Moe
A command line based editor inspired by vi/vim. Written in Nim.
Stars: ✭ 252 (+581.08%)
Mutual labels:  text-editor, terminal-based
Phi
phi: gpu accelerated code-editor; definitely not to be confused phonetically with vi.
Stars: ✭ 308 (+732.43%)
Mutual labels:  code-editor, text-editor
Sapling
A highly experimental vi-inspired editor where you edit code, not text.
Stars: ✭ 195 (+427.03%)
Mutual labels:  code-editor, text-editor
Kod
terminal text editor written in Go, using xi-editor as backend
Stars: ✭ 292 (+689.19%)
Mutual labels:  text-editor, terminal-based
cgol
Conway's Game of Life in the Terminal
Stars: ✭ 32 (-13.51%)
Mutual labels:  command-line-app, terminal-based
editor
A text editor written in Nim
Stars: ✭ 24 (-35.14%)
Mutual labels:  text-editor, terminal-based
vulcan
A minimalistic text editor designed for both ordinary use and software development
Stars: ✭ 46 (+24.32%)
Mutual labels:  code-editor, text-editor
Mazu Editor
a minimalist text editor with syntax highlight, copy/paste, and search
Stars: ✭ 88 (+137.84%)
Mutual labels:  text-editor, terminal-based
Wed
wed is a terminal text editor with key bindings commonly used in Windows based editors
Stars: ✭ 65 (+75.68%)
Mutual labels:  text-editor, terminal-based
Yawysiwygee
Yet another what-you-see-is-what-you-get equation editor
Stars: ✭ 60 (+62.16%)
Mutual labels:  code-editor, text-editor
Void
terminal-based personal organizer
Stars: ✭ 831 (+2145.95%)
Mutual labels:  text-editor, terminal-based
jot
Command-line note-taking for minimalists
Stars: ✭ 24 (-35.14%)
Mutual labels:  text-editor, terminal-based
Squircle-IDE
👨‍💻 Squircle CE is a fast and free multi-language code editor for Android
Stars: ✭ 642 (+1635.14%)
Mutual labels:  code-editor, text-editor
x-studio.github.io
This is the issues tracking, roadmap, docs src repo of the x-studio IDE. Copyright © 2014-2022 Simdsoft Limited
Stars: ✭ 92 (+148.65%)
Mutual labels:  code-editor, text-editor
ax-editor
Ax is a code editor with syntax highlighting that runs in your terminal written completely in Swift.
Stars: ✭ 42 (+13.51%)
Mutual labels:  code-editor, text-editor
rstpad
Standalone reStructuredText editor with live preview (native app)
Stars: ✭ 35 (-5.41%)
Mutual labels:  text-editor

ash logo

MIT License Downloads Size SLOC

ash is 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 of ash editing this README file:

Screenshot

ash is written in Python 3.8 using the curses library.

Table of Contents


Note: The latest version is always the nightly build that can be downloaded from the ash website, 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.

Features

The following is a list of features available in ash:

  • Easy to use, clean and intuitive interface
  • Common 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 taste
  • Common 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 text
  • Multi-file editing with support for windows and tabs
  • Auto-backup
  • Support for Unicode
  • Project 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 search
  • Support for search/replace in all open files
  • Support for searching using regular expressions
  • Auto-indentation, Select+Tab/Shift-Tab to increase/decrease indent
  • Auto insertion of matching braces/quotes and auto-enclosure when text is selected and braces/quotes are typed
  • Support for unlimited splits per tab (subject to screen size) and support for unlimited tabs
  • Support for various text-encodings
  • Checks (live) and reloads (if user permits) files which have been modified externally
  • Selection highlighting (highlights text under selection wherever they occur in the document)
  • Color scheme customization
  • View list of recent files, view project explorer (in project mode)
  • Syntax highlighting (limited)
  • Git integration (shows untracked, modified files, etc.)
  • Multiple Cursors
  • Command palette
  • Basic mouse support
  • Open terminal / execute shell commands
  • Limited IDE features like compile, build, execute...
  • Supports project/folder specific settings along with global settings

Requirements

  1. You need a resolution of at least 102 x 22 in your terminal emulator
  2. Your 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.
  3. 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 *.pyx files, 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)

Installation

Prerequisites

You need certain packages and Python 3 itself to download ash, as there are no prebuilt binaries available yet. Instructions for Ubuntu:

$ sudo apt install git
$ sudo apt install xclip
$ sudo apt install python3
$ sudo apt install python3-pip

Installing ash

You have multiple options here:

  • Install from PyPi
  • Install the latest stable release from GitHub
  • Install the latest nightly release from GitHub (recommended)
  • Build and install from source

Install from PyPi

Note: the PyPi release may not contain all features listed above

Execute the following to install from PyPi:

$ sudo pip3 install ash-editor

The above command downloads ash and installs it locally on your system. To be able to invoke ash from anywhere, see the Setting Paths section.

Install the latest stable release

Note: the stable release may not contain all features listed above

Go to the ash Website and download the latest stable release. Then extract the downloaded tar-ball into a folder and once inside that folder, open up your terminal from there and execute:

$ sudo pip3 install .

Install the latest nightly release (recommended)

The nightly builds contains all the latest features of ash. Go to the ash Website and download the latest nightly release. Then extract the downloaded tar-ball into a folder and once inside that folder, open up your terminal from there and execute:

$ sudo pip3 install .

Build from source and install

Instructions for Ubuntu:

$ sudo apt install git
$ cd ~
$ git clone --depth 1 -b master https://github.com/akashnag/ash.git
$ cd ash
$ python3 setup.py sdist

(Though you can install it directly from here, it is not recommended) You will find the new tar-ball created under dist directory, from where you can proceed as before by first copying the tarball into a new directory, extracting it, and then installing it.

Setting paths

To run ash make sure you have :$HOME/.local/bin appended to your $PATH variable in the file ~/.bashrc. To execute ash, see the Usage section.

Uninstalling ash

To uninstall ash you can use:

$ sudo pip3 uninstall ash-editor

Prebuilt binaries

Since ash is still under development, prebuilt binaries are not yet available. You can use PyInstaller or similar tools to build one for your system.

Colors

If you are using the default Ubuntu terminal, to enable 256 make sure your TERM variable is set to xterm-256color. After ash runs for the first time, it creates a default.json JSON file inside the ~/.ash-editor/themes directory. You can edit that file directly to change how ash looks on your system. The RGB triplets listed in that file range from 0--255. If you want to reset ash to 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.

Usage

Once you have downloaded the ash source code, and set it up as detailed above, you are ready to use it.

NOTES:

  1. If you have not updated your path variable, you must specify the full path to the ash binary.
  2. 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.

To run ash:

$ ash path/to/file.txt

or, to open an empty buffer:

$ ash

or, to open a project (directory):

$ ash path/to/directory

See the Key Bindings for help on how to navigate in ash.

Contributing

If 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 features only when the features listed above have been fully implemented. For more information on what features to implement and the project structure, see the Contribution Guidelines

You can use the GitHub issue tracker to report bugs, ask questions, or suggest new features. You can include the log if that is relevant, which can be found in ~/.ash-editor/log.txt.

For discussions related to the development roadmap and the ash editor in general, you can join the Gitter chat.

Screenshots

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

License

Copyright © Akash Nag. All rights reserved.

Licensed under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].