【问题标题】:Emacs Dired BehaviorEmacs 可怕的行为
【发布时间】:2011-03-03 12:06:14
【问题描述】:

我已经使用 emacs 多年,并且习惯于让 emacs 在执行 dired 的同一窗口中打开选定的文件。在最近的版本中,当 dired 在打开 2 个窗口的情况下执行时,选定的文件将显示在来自dired的备用窗口。如何设置 emacs 以使用相同的窗口将文件显示为已死(允许我同时查看两个文件——过去 emacs 的工作方式)?

【问题讨论】:

  • 您到底使用什么“最新版本”?我正在使用 23.1 并按回车键(绑定到 dired-advertised-find-file)具有您要求的行为。要获得您看到的行为,我必须按 o(绑定到 dired-find-file-other-window)。
  • 我只能肯定 Rört 所说的话。尝试emacs -Q 看看“空白”emacs 是否具有您描述的行为。

标签: emacs dired


【解决方案1】:

根据上面的 cmets,检查 C-hkRET 时查看 RET 绑定了什么到(或者如果您使用另一个键,则类似)。

dired-find-file 使用 switch-to-buffer 这可能会导致缓冲区在另一个窗口中打开:

如果所选窗口是 minibuffer 窗口或专用于 它的缓冲区,使用 `pop-to-buffer' 来显示缓冲区。

不过,这似乎不太可能成为问题。

edit:啊,你在用鼠标。在有关 Emacs 的问题中明确说明这一点通常很好,因为大多数 Emacs 用户很少触摸鼠标。

同样的答案适用,但是:从 dired,输入 C-hk 然后你正在使用的“键”绑定(在这种情况下单击鼠标按钮 1) ,它告诉我们:

-----------------up-event(短按)----------------

在那个位置被重新映射到 ,它运行 命令 dired-mouse-find-file-other-window,这是一个交互式 在 `dired.el' 中编译 Lisp 函数。

(dired-mouse-find-file-other-window 事件)

在 Dired 中,访问您单击的文件或目录名称。

由于某种原因,没有默认的dired-mouse-find-file 函数,但以下会伪造它:

(add-hook 'dired-mode-hook 'my-dired-mode-hook)
(defun my-dired-mode-hook ()
  (local-set-key (kbd "<mouse-2>") 'dired-mouse-find-file))

(defun dired-mouse-find-file (event)
  "In Dired, visit the file or directory name you click on."
  (interactive "e")
  (require 'cl)
  (flet ((find-file-other-window
          (filename &optional wildcards)
          (find-file filename wildcards)))
    (dired-mouse-find-file-other-window event)))

【讨论】:

  • 我使用的 Emacs 版本是 23.2.1。此外,如果在打开两个窗口时使用 mouse-1 选择文件,它将在另一个窗口中显示该文件。感谢您的 cmets。
  • 我认为这是问题所在。根据我在做什么,我经常使用鼠标将光标定位到我将要操作的文件中。鼠标按钮 1 现在绑定到 (find-file-other-window)。我认为这在最近版本的 Emacs 中是新的;但是,我不确定旧版本不在我的系统上。感谢所有的帮助。我想我现在可以解决问题了。
  • FWIW,我已经添加了一些 elisp 来解决这个问题。 (也许 S.O. 不会通知用户对问题答案的修改?)
【解决方案2】:

在 dired 中的文件上按 Enter 键会在同一窗口中打开该文件。在 dired 中的文件上按 o 会在其他窗口中打开它。您确定没有在 .emacs 中重新绑定这些键吗?

【讨论】:

  • 没有绑定设置。我通常使用“f”访问dired中的文件。
  • 好吧,C-h k f 在 dired 模式下会显示什么?我的是(dired-find-file)。除非它(dired 模式下的 f 键)绑定到 (dired-find-file-other-window),否则我不明白为什么 dired 在新窗口中打开文件。
  • "f" 绑定到(dired-find-file)
  • emacs -qQ 的行为方式是否相同?如果没有,则说明您的设置中有内容。
猜你喜欢
  • 2010-12-14
  • 2011-04-07
  • 2013-08-10
  • 2020-11-25
  • 2018-08-23
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多