EasyKill: 更高效的在 Emacs 中复制文本
1. Intro
Easy-kill 是一个编辑增强插件,主要提升 emacs 标记复制等操作的效率。
2. Setup
(use-package easy-kill :bind (([remap kill-ring-save] . easy-kill) ([remap mark-sexp] . easy-mark)) )
3. Usage
EasyKill 提供 easy-kill 和 easy-mark 两个命令。推荐按照上面的配置来替换原生的复制和标记命令,现在 M-w
既是一个命令,同时也是一个命令前缀。当单独按下 M-w
时,其会依次按 region,url ,email 和current-line 等当前光标下的内容的类型进行选择(selection)并复制。当作为命令前缀使用时,可以按下 M-w
后接想要复制的对象类型进行复制,如下表所示:
M-w w | 复制单词 |
M-w s | 复制 sexp 表达式 |
M-w l | 复制当前行 |
M-w d | 复制当前 defun |
M-w D | 复制当前 defun 的名字 |
M-w f | 复制当前文件名 |
M-w b | 复制当前 buffer 的名字或者 default-directory |
上述命令又可再次看作是一个命令前缀,可继续接文本对象进行选择复制,比如,按下 M-w w 复制当下单词,再按一次 w 可会继续扩充选中下一个单词并复制,或者继续接 motion 来执行区域选择或其他操作:
@ | append selection to previous kill and exit |
C-w | kill selection and exit |
+, -,1..9 | expand/shrink selection |
0 | shrink the selection to the initial size |
SPC | cycle through things in easy-kill-alist |
C-SPC | turn selection into an active region |
C-g | abort |
? | help |
下面是一些使用实例:
M-w w w | 选中 3 个单词并复制 |
M-w w 3 | 等同 M-w w w w |
M-w 3 | 略 |
M-w SPS | 循环选中 easy-kill-alist 的对象,并复制 |
M-w l 2 C-w | 选中 3 行复制剪切,并退出 |
4. Comment
编辑思想跟 kakoune 类比较类似,选择 + 操作。是一种很高效直观的编辑方式。