Emacs:清除缓冲区的快捷键是什么?

Ron*_*Ron 58 emacs

喜欢,Control- A(全选)然后删除?

Tre*_*son 82

如何使用:

M-x erase-buffer
Run Code Online (Sandbox Code Playgroud)

哪个你可以绑定到你想要的任何东西.

  • 我的.emacs中有这个:`(global-set-key(kbd“ Cx <deletechar>”)'erase-buffer)' (2认同)
  • 对于新用户,当第一次调用“Mx 擦除缓冲区”时,您将收到一个提示,说明它已被禁用,但您可以启用它。如果不确定这个命令到底是做什么的,我建议第一次用`SPACE` 选项运行它,看看会发生什么。 (2认同)

jit*_*912 40

C-x h + del key清除缓冲区

注意:这需要transient-mark-mode启用(默认情况下).

  • 这个(或'Mx erase-buffer`)不会将缓冲区的内容添加到kill ring,但是`Cx h Cw`会这样做,而且当没有启用瞬态标记模式时,`Cx h Cw`也可以工作. (2认同)

Tyl*_*ler 32

在Emacs中选择全部是:

C-x h
Run Code Online (Sandbox Code Playgroud)

(从技术上讲,那是标记 - 整个缓冲区)和kill-region(杀死标记区域,现在是整个缓冲区)是:

C-w
Run Code Online (Sandbox Code Playgroud)

如果要删除区域而不将其复制到kill-ring,则可以使用

M-x delete-region
Run Code Online (Sandbox Code Playgroud)

代替.如果你这么做,你需要将delete-region绑定到一个键/键组合.

  • 此解决方案与Mx擦除缓冲区之间的区别在于此解决方案将已删除的文本复制到kill-ring中.如果想要删除大文件,因为将大量文本复制到kill ring可能会很慢,这可能会非常烦人.如果一个人是browse-kill-ring.el的用户,这种行为就更烦人了 (7认同)

tjb*_*tjb 6

这些宏建立在上面给出的答案上.要开始使用它们,请将它们粘贴到.emacs中,然后重新启动emacs或(在.emacs缓冲区中)键入Mx 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))
  )
Run Code Online (Sandbox Code Playgroud)


Fra*_*ruz 5

老人们可能喜欢称之为hk而不是clear-buffer-permanent,并将其分配给怀旧的键序列,如下所示:

(define-key esc-map "\^[hk" 'hk)
Run Code Online (Sandbox Code Playgroud)

这是用于清除缓冲区的前Gnu TECO EMACS命令(ESC ESC wHole Kill).