richrd / suplemon

:lemon: Console (CLI) text editor with multi cursor support. Suplemon replicates Sublime Text like functionality in the terminal. Try it out, give feedback, fork it!
MIT License
789 stars 43 forks source link
command-line console editor multi-cursor python sublime-text terminal

Suplemon :lemon:

Build Status Join the chat at https://webchat.freenode.net/?channels=%23suplemon Run on Repl.it

      ___________   _________  ___     ______________________________   ___
     /  _____/  /  /  /  _   \/  /\   /  ______/        /  ___   /   | /  /\
    /  /____/  /  /  /  /_/  /  / /  /  /_____/  /  /  /  /  /  /    |/  / /
   /____   /  /  /  /  _____/  / /  /  ______/  /  /  /  /  /  /  /|    / /
  _____/  /  /__/  /  /\___/  /____/  /_____/  /  /  /  /__/  /  / |   / /
 /_______/\_______/__/ /  /_______/________/__/__/__/________/__/ /|__/ /
 \_______\ \______\__\/   \_______\________\__\__\__\________\__\/ \__\/

          Remedying the pain of command line editing since 2014

Suplemon is a modern, powerful and intuitive console text editor with multi cursor support. Suplemon replicates Sublime Text style functionality in the terminal with the ease of use of Nano. http://github.com/richrd/suplemon

Suplemon in action

Features

Caveats

Try it!

You can just clone the repo, and try Suplemon, or also install it system wide. To run from source you need to install the python wcwidth package.

pip3 install wcwidth
git clone https://github.com/richrd/suplemon.git
cd suplemon
python3 suplemon.py

Installation

Install the latest version from PIP:

sudo pip3 install suplemon

To install Suplemon from the repo run the setup script:

sudo python3 setup.py install

Usage

suplemon # New file in the current directory
suplemon [filename]... # Open one or more files
suplemon [filename:row:col]... # Open one or more files at a specific row or column (optional)

Notes

Dev Branch Status: Build Status

No dependencies outside the Python Standard Library required.

Optional dependencies

Description

Suplemon is an intuitive command line text editor. It supports multiple cursors out of the box. It is as easy as nano, and has much of the power of Sublime Text. It also supports extensions to allow all kinds of customizations. To get more help hit Ctrl + H in the editor. Suplemon is licensed under the MIT license.

Configuration

Main Config

The suplemon config file is stored at ~/.config/suplemon/suplemon-config.json.

The best way to edit it is to run the config command (Run commands via Ctrl+E). That way Suplemon will automatically reload the configuration when you save the file. To view the default configuration and see what options are available run config defaults via Ctrl+E.

Keymap Config

Below are the default key mappings used in suplemon. They can be edited by running the keymap command. To view the default keymap file run keymap default

Mouse shortcuts

Commands

Suplemon has various add-ons that implement extra features. The commands can be run with Ctrl + E and the prompt has autocomplete to make running them faster. The available commands and their descriptions are:

Support

If you experience problems, please submit a new issue. If you have a question, need help, or just want to chat head over to the IRC channel #suplemon @ Freenode. I'll be happy to chat with you, see you there!

Development

If you are interested in contributing to Suplemon, development dependencies can be installed via:

# For OS cleanliness, we recommend using `virtualenv` to prevent global contamination
pip install -r requirements-dev.txt

After those are installed, tests can be run via:

./test.sh

PRs are very welcome and appreciated. When making PRs make sure to set the target branch to dev. I only push to master when releasing new versions.

Rationale

For many the command line is a different environment for text editing. Most coders are familiar with GUI text editors and for many vi and emacs have a too steep learning curve. For them (like for me) nano was the weapon of choice. But nano feels clunky and it has its limitations. That's why I wrote my own editor with built in multi cursor support to fix the situation. Another reason is that developing Suplemon is simply fun to do.