Sublime-like terminal-based text editor
slap is a Sublime-like terminal-based text editor that strives to make editing
from the terminal easier. It has:
$ 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
$ slap # new file
slap supports INI or JSON config files. You can put configuration wherever rc can find it.
A mostly empty configuration file with some useful comments is created in ~/.slap/config
if an existing file isn’t found.
Pass configuration 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.
NOTE: if you are using Terminal.app, see slap-Terminal.app-profile.
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!
slap is based on Github’s atom/text-buffer,
and as such should be very performant, even with very large files.
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.