2011-02-03 172 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)。