Emacs 在 dired 中禁用 mouse-1

Emacs disable mouse-1 in dired

在 Emacs 23.2.1 的 Dired 模式下,mouse-1(鼠标左键)执行 visit file in other window。它还会改变手指的形状,并在光标悬停在文件名上时突出显示文件名。如何禁用 visit file 和文件名突出显示?我希望 mouse-1 执行它通常的操作:selecting text.

如果我首先在文件名或目录名之外的区域单击向下,我仍然可以 select 文本。但是我只想要标记文件名,而不是包含前面的space。

我只是通过将 mouse-1-click-follows-link 自定义为 nil 来关闭它。 (也可以设置长时限值。)

或者如果您只想对 Dired 缓冲区执行此操作,您可以这样做:

(add-hook 'dired-mode-hook
      (lambda ()
        (set (make-local-variable 'mouse-1-click-follows-link) nil)))

但通常最好命名一个在钩子上使用的函数(一方面,删除它更容易):

(defun foo ()
  (set (make-local-variable 'mouse-1-click-follows-link) nil)))

(add-hook 'dired-mode-hook 'foo)

如果您有最新版本的 Emacs,其中定义了 setq-local,那么您可以在挂钩函数中使用 (setq-local mouse-1-click-follows-link nil),代替 (set (make-local-variable 'mouse-1-click-follows-link) nil)