如何删除Emacs中的当前行?
答
C-a # Go to beginning of line
C-k # Kill line from current point
还有
C-S-backspace # Ctrl-Shift-Backspace
它调用M-x kill-whole-line
。如果你想删除一些整行
(global-set-key "\C-cd" 'kill-whole-line) # Sets `C-c d` to `M-x kill-whole-line`
,您:
如果你想设置一个不同的全局键绑定,你把这个在〜/的.emacs可以用一个号码前缀的命令:
C-u 5 C-S-backspace # deletes 5 whole lines
M-5 C-S-backspace # deletes 5 whole lines
C-u C-S-backspace # delete 4 whole lines. C-u without a number defaults to 4
C-u -5 C-S-backspace # deletes previous 5 whole lines
M--5 C-S-backspace # deletes previous 5 whole lines
有时候,我也觉得C-x z
有所帮助:
C-S-backspace # delete 1 whole line
C-x z # repeat last command
z # repeat last command again.
# Press z as many times as you wish.
# Any other key acts normally, and ends the repeat command.
答
如果你不想杀线(这将放入操作系统剪贴板并杀死环),而只是将其删除:
(defun delete-current-line()
"Delete (not kill) the current line."
(interactive)
(save-excursion
(delete-region
(progn (forward-visible-line 0) (point))
(progn (forward-visible-line 1) (point)))))
答
最快/最简单的方法来删除(中止)全系列,从线路上的任何一点 ,没有做出任何选择,是:
C-w ; kill-region
它是在删除任何选择,或者如果没有选择默认 线的通用性。
考虑的问题,你可能也有兴趣在复制 Vim的“使劲”,yy
(虽然在Emacs的说法是“使劲”,是混淆的 Vim的“放”,p
)。这是:
M-w ; kill-ring-save
尼斯和一致,很容易记住。甚至略微 类似于Vim的i_CTRL-W
。
一旦你把东西在击杀环与上述任何一种的, 你可能会想“抽出”(粘贴):
M-y ; yank-pop
(请注意,CS-退格可能不能在终端Emacs中工作。)
这可行。有没有办法使用一个命令来做到这一点?我需要创建一个自定义键绑定来执行此操作吗? – 2010-10-18 12:12:40
不知道'C-x z',这真的很酷。和好而精确的答案顺便说一句。 – slu 2010-10-18 12:50:22
还有'C-k C-k',它在vim中的工作方式类似于'd $ S-j',但这可以很好地删除行。 – 2013-11-08 09:14:45