删除单词而不将其添加到Emacs中的kill-ring

时间:2011-05-26 04:47:16

标签: emacs dot-emacs

使用迷你缓冲区(C-x C-f)切换文件时,我经常使用M-Backspace删除路径中的单词。 Emacs会自动将我删除的内容放入kill ring中。这可能很烦人,因为有时我正在移动到另一个文件来粘贴东西,我最终粘贴了部分文件路径。我知道有解决方法,其他代码仍然在kill ring等,但我只想禁用此功能。

2 个答案:

答案 0 :(得分:17)

Emacs没有backward-delete-word功能,但定义一个很容易:

(defun backward-delete-word (arg)
  "Delete characters backward until encountering the beginning of a word.
With argument ARG, do this that many times."
  (interactive "p")
  (delete-region (point) (progn (backward-word arg) (point))))

然后,您可以将M-Backspace绑定到backward-delete-word中的minibuffer-local-map

(define-key minibuffer-local-map [M-backspace] 'backward-delete-word)

答案 1 :(得分:2)

请参阅help-gnu-emacs@gnu.org对此主题的讨论: http://lists.gnu.org/archive/html/help-gnu-emacs/2011-10/msg00277.html

讨论归结为这个简短的解决方案:

(add-hook 'minibuffer-setup-hook'
          (lambda ()
            (make-local-variable 'kill-ring)))