【问题标题】:Emacs disable mouse-1 in diredEmacs 在 dired 中禁用 mouse-1
【发布时间】:2016-03-26 21:28:23
【问题描述】:

在 Dired 模式下的 Emacs 23.2.1 中,mouse-1(鼠标左键)执行visit file in other window。当光标悬停在文件名上时,它还会将形状更改为手指并突出显示文件名。如何禁用 visit file 和文件名突出显示?我想让 mouse-1 做它通常的事情:选择文本。

如果我从文件名或目录名之外的区域向下单击开始,我仍然可以选择文本。但我只想标记文件名,而不是前面包含空格。

【问题讨论】:

  • 查看mouse.el 我刚刚了解到,默认情况下我可以在 dired 模式下选择文件名的一部分:我只需要单击并移动 光标。但是,由于文件名突出显示,很难看到我在选择什么。还想杀掉这个“功能”:哪个普通人通过鼠标点击打开文件?

标签: emacs mouseevent dired


【解决方案1】:

我只是通过将 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)

【讨论】:

  • 修复了主要问题。但是文件名仍然突出显示,很难看到我选择的是哪个部分。通过添加(defun dired-insert-set-properties (beg end) nil) 高亮覆盖内部mouse.el 函数,手指光标也消失了。这是正确的做法吗?
  • 我建议你自定义面部highlight,用于属性mouse-face提供的高亮,这样你可以看得更清楚。突出显示是有原因的:您可以点击 mouse-2(不仅仅是mouse-1)或点击链接(突出显示的文本)上的 RET 以访问文件或目录。 (如果您使用Dired+,则整行都会突出显示,这有助于通过眼睛对齐信息。)如果您真的不想要突出显示,那么可以,只需更改dired-insert-set-properties
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
相关资源
最近更新 更多