slap is a Sublime-like terminal-based text editor that strives to make editing from the terminal easier. It has:
- first-class mouse support (even over an SSH connection)
- a Sublime-like file sidebar
- double-click to select word, highlight other occurrences
- configurable Sublime-like keybindings* (Ctrl+S save, Ctrl+Z undo, etc.)
- copying/pasting with OS clipboard support
- infinite undo/redo
- syntax highlighting for 100+ languages
- bracket matching
- autoindentation
- heavily customizeable via plugins
- ... many other features that will make you leave nano, vim, and emacs behind
$ curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh
If you already have NodeJS installed:
$ sudo npm install -g slap@latest
$ slap fish.c
$ slap fish1.c fish2.c
$ slap redfish/ # open dir in browser
$ slap # new file in current dir
Use ~/.slap/config
to override the defaults in slap/slap.ini:
[header.style]
bg = "red"
Alternatively, pass options in via command line:
$ slap --header.style.bg red file.c
Slap is fully customizeable and supports plugins written in JS. You can place
single JS files, or NodeJS packages, into ~/.slap/plugins/
.
To write your own plugin, a good starting point is
slap-clipboard-plugin.
Please note that plugin packages must have "keywords": ["slap-plugin"]
in
package.json
.
iTerm2 supports the mouse and most keybindings out of the box. For optimal Terminal.app usage, see slap-Terminal.app-profile.
If you are using X.Org, ensure xclip is installed for OS clipboard support.
Most terminal emulators in Windows do not support mouse events, PuTTY being a notable exception. In Cygwin, slap crashes on startup due to joyent/node#6459.
Join us in #slap on Freenode for troubleshooting, theme/plugin/core development, or palm strike discussion of any nature.
Unfortunately most terminal emulators do not support certain keystrokes and as
such there is no way to handle them. These include C-backspace
, S-home/end
,
and S-pageup/down
. Most of these actions have alternate keybindings, inspired
by emacs and other editors, but if you find one that doesn't work, please
submit an issue!
Try --editor.highlight false
or adding the following to ~/.slap/config
:
[editor]
highlight = false
If that doesn't improve performance, please run with --perf.profile true
and
submit an issue with the newly-created v8.log
file.