如何在emacs中重新打开文件?


16

在较旧的emacs版本中,我曾经输入:

C-x C-f RET

然后它将重新打开缓冲区中当前访问的文件。现在(emacs 23.1.1)将打开目录的Dired。

Answers:


18

我使用M-x find-alternate-file默认情况下绑定到的C-x C-v

此命令允许将文件重新加载到当前缓冲区,重新加载相同的文件include-默认情况下显示在迷你缓冲区中。但是,如果为缓冲区切换启用了ido-mode,则这样做不方便,因为默认情况下它不会显示当前文件名。


其他答案也很棒,但是此答案的击键次数最少。
Eyal

此方法触发模式挂钩,而Gilles的答案find-file不会触发它。
潘俊杰潘俊杰

10

您确定不想只还原缓冲区吗?

M-x revert-buffer RET

6

你可以的C-x C-f M-n RET。行为已更改,因为C-x C-f RET重新打开文件并不像C-x C-f DEL RET在目录上调用Dired 那样普遍。

您还可以M-x revert-buffer用来从磁盘重新加载文件,Emacs会告诉您(在大多数操作系统上)是否尝试编辑其磁盘上的副本已被外部修改的文件。

C-x C-f M-n 在小缓冲区中获取文件的完整路径也很有用,因此您可以打开一个具有类似名称的文件或将其复制到kill ring或剪贴板中。


2

我发现了一个有益的建议回到以前的行为C-x C-f RET的帮助,GNU-Emacs的邮件列表

该骇客由Ted Stern发布:

(defun find-file-read-args (prompt mustmatch)
  (list (let ((find-file-default
           (and buffer-file-name
                (abbreviate-file-name buffer-file-name))))
      (read-file-name prompt nil find-file-default mustmatch))
    t))

我尝试了一下,在emacs 23.1.1上对我来说效果很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.