slap

Sublime-like terminal-based text editor

Github星跟蹤圖

Screenshot

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

Installation

$ 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

Usage

$ 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

Configuration

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

Plugins

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.

OS support

OSX

iTerm2 supports the mouse and most keybindings out of the box. For optimal
Terminal.app usage, see slap-Terminal.app-profile.

Linux

If you are using X.Org, ensure xclip is installed for OS clipboard support.

Windows

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.

Issues

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

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.

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.

主要指標

概覽
名稱與所有者slap-editor/slap
主編程語言JavaScript
編程語言JavaScript (語言數: 2)
平台
許可證MIT License
所有者活动
創建於2014-04-21 03:39:14
推送於2021-11-01 04:47:39
最后一次提交2016-12-22 17:13:42
發布數117
最新版本名稱v0.1.61 (發布於 2016-11-24 11:07:31)
第一版名稱0.0.0 (發布於 )
用户参与
星數6.2k
關注者數141
派生數220
提交數756
已啟用問題?
問題數236
打開的問題數96
拉請求數80
打開的拉請求數18
關閉的拉請求數81
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?