删除一个单词,但不将其添加到Emacs中的kill环中

删除一个单词,但不将其添加到Emacs中的kill环中,emacs,dot-emacs,Emacs,Dot Emacs,当使用minibuffer(C-xc-f)切换文件时,我经常使用M-Backspace删除路径中的单词。Emacs会自动将我删除的内容放入kill环中。这可能会很烦人,因为有时我会移动到另一个文件来粘贴某些内容,最后会粘贴部分文件路径。我知道有解决办法,其他代码仍在kill ring中,等等,但我只想禁用此功能。Emacs没有向后删除单词的功能,但定义一个功能非常简单: (defun backward-delete-word (arg) "Delete characters backward

当使用minibuffer(C-xc-f)切换文件时,我经常使用M-Backspace删除路径中的单词。Emacs会自动将我删除的内容放入kill环中。这可能会很烦人,因为有时我会移动到另一个文件来粘贴某些内容,最后会粘贴部分文件路径。我知道有解决办法,其他代码仍在kill ring中,等等,但我只想禁用此功能。

Emacs没有
向后删除单词的功能,但定义一个功能非常简单:

(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绑定到
小型缓冲区本地映射中的
向后删除单词

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

有关此主题的讨论,请参见
help gnu-emacs@gnu.org

讨论归结为以下简短的解决方案:

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

在这里,我一直在使用backspace和C-d来编辑迷你缓冲区中的文件名