Как заново открыть файл в emacs?

16

В старых версиях emacs я набирал:

C-x C-f RET

И это снова откроет файл, который в настоящее время посещается в буфере. Теперь (emacs 23.1.1) он открывает Dired из каталога.

Eyal
источник

Ответы:

18

я использую M-x find-alternate-file который по умолчанию связан с C-x C-v,

Эта команда позволяет перезагрузить файл в текущий буфер, перезагрузив тот же файл include - который по умолчанию отображается в мини-буфере. Это, однако, не так удобно, если у вас включен режим ido для переключения буфера, поскольку по умолчанию текущее имя файла не отображается.

Mcradle
источник
Другие ответы тоже были превосходны, но в этом ответе меньше всего нажатий клавиш.
Eyal
Этот метод вызывает ловушку режима, в то время как ответ Жиля, find-fileне сработает.
PanJunjie潘俊杰
10

Вы уверены, что не хотите просто восстановить буфер?

M-x revert-buffer RET
jwernerny
источник
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 также полезно получить полный путь к файлу в минибуфере, чтобы вы могли открыть файл с похожим именем или скопировать его в список уничтожений или буфер обмена.

Gilles
источник
2

Я нашел полезное предложение вернуться к предыдущему поведению C-x C-f RET на список рассылки help-gnu-emacs :

Этот взлом был опубликован Тедом Стерном:

(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.

a.v.
источник