2010-10-18 118 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中工作。)