Я обычно работаю с файлами, которые обновляются в файловой системе с помощью контроля версий. Какой быстрый способ перезагрузить файл, не C-x C-f
возвращаясь к нему снова и не спросив, хочу ли я его перезагрузить?
files
revert-buffer
Фернандо Бриано
источник
источник
misc-cmds.el
. Не то чтобы это сложно, но когда вы копируете что-то точно, обычно вежливо указывать на источник.(revert-buffer t (not (buffer-modified-p)) t)
.Существует также,
auto-revert-mode
который делает это автоматически и дает вам обратную связь.Из строки документа:
источник
Другой вариант, который я использую,
find-alternate-file
связан сC-x C-v
. Это открывает файл, повторно использующий ваш текущий буфер.По умолчанию он указывает на файл, в котором вы сейчас находитесь, поэтому вы можете просто напечатать,
C-x C-v RET
чтобы перезагрузить файл. Он не выдаст подсказку, если в вашем буфере нет несохраненных данных.Некоторые нетекстовые режимы , такие как
image-mode
(используемые для рендеринга изображений, PDF, SVGs ... и т.д.) иdired
которыеrevert-buffer
обязаныg
для более быстрого доступа.источник
C-x C-v
.Emacs называет это
reverting
.Вы можете вернуть текущий файл с помощью
M-x revert-buffer
. Это запрашивает подтверждение, был ли файл изменен или нет, за исключением файлов, которые соответствуют шаблонам, перечисленным в переменнойrevert-without-query
(подробности см. В руководстве). Другое случайное раздражение вrevert-buffer
том, что он сбрасывает режим файла по умолчанию.Я использую следующую функцию, чтобы вернуть кучу файлов, заданных по имени. Если файл не открыт в каком-либо буфере, он игнорируется.
Типичный вариант использования этой функции - после обновления файлов из системы контроля версий. Используйте
emacsclient
для вызоваrevert-files
всех файлов, которые были обновлены, или (это проще и чуть медленнее) для всех файлов, связанных с обновлением. Я вызываю следующий сценарий оболочки, передавая ему файлы в качестве аргументов:Пример использования:
источник
Вы также можете включить глобальный автоматический режим возврата, как показано ниже
(global-auto-revert-mode 1)
это полезно, когда вы делаете много проверок ваших js-файлов с включенным режимом авто-исправления, как в jssc.
источник
revert-buffer
есть. Но мне нравится иметь обратную связь.У меня есть следующее в моем
.emacs
.источник
Вы можете использовать
find-alternate-file
, что связано с C-x C-vпо умолчанию, и просто введите RETв командной строке, чтобы перезагрузить файл.источник
Для пользователей spacemacs:
SPC b R
(spacemacs/safe-revert-buffer
).Для пропуска подтверждения другие ответы уже охватывают это, хотя я согласен с другими, что, вероятно, не стоит связывать это с ключом.
источник
Magit автоматически управляет возвратом файлов, решая вашу основную проблему. Вы также извлекаете выгоду из других его функций.
Вот документы для настройки интересующих вас настроек:
Если вы придерживаетесь Magit, также обязательно включите все 3 глобальных режима WIP (Work In Progress), чтобы избежать потери работы.
Таким образом, вы можете выполнять действия по управлению версиями в Emacs с помощью Magit и вообще избежать исходной проблемы.
источник