13

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

4

2 回答 2

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-wordin minibuffer-local-map

(define-key minibuffer-local-map [M-backspace] 'backward-delete-word)
于 2011-05-26T05:05:57.750 回答
3

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

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

(add-hook 'minibuffer-setup-hook'
          (lambda ()
            (make-local-variable 'kill-ring)))
于 2011-10-28T21:29:38.910 回答