2010-10-18 115 views

回答

178
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. 
+0

这可行。有没有办法使用一个命令来做到这一点?我需要创建一个自定义键绑定来执行此操作吗? – 2010-10-18 12:12:40

+13

不知道'C-x z',这真的很酷。和好而精确的答案顺便说一句。 – slu 2010-10-18 12:50:22

+2

还有'C-k C-k',它在vim中的工作方式类似于'd $ S-j',但这可以很好地删除行。 – 2013-11-08 09:14:45

7

如果你不想杀线(这将放入操作系统剪贴板并杀死环),而只是将其删除:

(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))))) 
0

最快/最简单的方法来删除(中止)全系列,从线路上的任何一点 ,没有做出任何选择,是:

C-w ; kill-region 

它是在删除任何选择,或者如果没有选择默认 线的通用性。

考虑的问题,你可能也有兴趣在复制 Vim的“使劲”,yy(虽然在Emacs的说法是“使劲”,是混淆的 Vim的“放”,p)。这是:

M-w ; kill-ring-save 

尼斯和一致,很容易记住。甚至略微 类似于Vim的i_CTRL-W

一旦你把东西在击杀环与上述任何一种的, 你可能会想“抽出”(粘贴):

M-y ; yank-pop 

(请注意,CS-退格可能不能在终端Emacs中工作。)