2011-02-03 47 views

回答

36

C-x h + del鍵清除緩衝區

注:這需要transient-mark-mode啓用(這是默認設置)。

4

轉到開始緩衝,去年底(均設置標記),再切:

M-< M-> C-w 
2

沒有捷徑,但你可以定義一個... 按照this link到得到一個清理緩衝區的宏。

30

選擇所有在Emacs是:

C-x h 

(從技術上說,這是馬克 - 全緩衝)和殺死區(殺標記的區域,也就是現在的整個緩衝區)是:

C-w 

如果你想刪除的區域,而不將其複製到殺環,你可以使用

M-x delete-region 

代替。如果你這麼做,你會想要將刪除區域綁定到鍵/鍵組合。

+7

該解決方案與M-x擦除緩衝區的區別在於,該解決方案將刪除的文本複製到殺死環中。如果你想刪除一個大文件,這樣會非常煩人,因爲將大量文本複製到kill ring可能會很慢。如果一個用戶是browse-kill-ring.el – 2012-11-28 14:59:23

77

如何使用:

M-x erase-buffer 

,你可以綁定到任何你想要的。

+1

我在.emacs中有這個:`(global-set-key(kbd「Cx 」)'erase-buffer)` – 2015-11-01 15:49:30

+0

新用戶,當第一次調用Mx擦除緩衝區時,您將收到提示,說明它已被禁用,但您可以啓用它。如果不確定這個命令的確切含義,我建議第一次使用`SPACE`選項來運行它,看看會發生什麼。 – Nathan 2016-02-04 18:07:47

3

這些宏建立在上面給出的答案上。要開始使用它們,請將它們粘貼到您的.emacs中,然後重新啓動emacs或(在.emacs緩衝區中)鍵入M-x eval-buffer。

(defun clear-buffer() 
    "clear whole buffer add contents to the kill ring" 
    (interactive) 
    (kill-region (point-min) (point-max)) 
) 

(defun clear-buffer-permenantly() 
    "clear whole buffer, contents is not added to the kill ring" 
    (interactive) 
    (delete-region (point-min) (point-max)) 
) 
+1

`erase-buffer`將清除緩衝區而不管縮小。這可能是也可能不是更理想。 – jpkotta 2015-12-10 19:51:16

5

舊人可能喜歡像這樣稱呼它港幣,而不是明確的緩衝永久地 並將其分配給懷舊的按鍵順序:

(define-key esc-map "\^[hk" 'hk) 

這是預羚TECO EMACS命令清除緩衝區 (ESC ESC wHole Kill)。