Need help with slap?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

6.0K Stars 257 Forks MIT License 756 Commits 115 Opened issues


Sublime-like terminal-based text editor

Services available


Need anything else?

Contributors list


slap :wave: Build Status Donate

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 | sh

If you already have NodeJS installed:

$ sudo npm install -g [email protected]


$ slap fish.c
$ slap fish1.c fish2.c
$ slap redfish/ # open dir
$ slap # new file

Default keybindings

  • Quit: Ctrl+Q
  • Movement: mouse or arrow keys and PageUp/Down/Home/End
    • Shift or click+drag to select, Ctrl/Alt to move faster
  • Save: Ctrl+S
  • Undo: Ctrl+Z, redo: Ctrl+Y
  • List open tabs: Ctrl+L
  • Next/previous tab: Ctrl+Alt+PageUp/Down
  • Close tab: Ctrl+W
  • Find: Ctrl+F
  • Go to line: Ctrl+G
  • Go to matching bracket: Ctrl+]
  • Open: Ctrl+O (or click the filebrowser)
  • New file: Ctrl+N


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

if an existing file isn't found.

Pass configuration via command line:

$ slap red file.c


Slap is fully customizeable and supports plugins written in JS. You can place single JS files, or NodeJS packages, into


To write your own plugin, a good starting point is slap-clipboard-plugin. Please note that plugin packages must have

"keywords": ["slap-plugin"]

OS support


iTerm2 supports the mouse and most keybindings out of the box. For optimal usage, see


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.

Some keys don't work!

NOTE: if you are using, see

Unfortunately most terminal emulators do not support certain keystrokes and as such there is no way to handle them. These include

, and
. 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!

Slow on single cores, Raspberry Pi

slap is based on Github's atom/text-buffer, and as such should be very performant, even with very large files.


--editor.highlight false
or adding the following to
highlight = false

If that doesn't improve performance, please run with

--perf.profile true
and submit an issue with the newly-created

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.