Мои файлы имеют длинные имена файлов, а часть имени файла - это дата и номер версии. Часто я хотел бы сохранить файл в буфере, используя почти то же имя, просто изменив номер версии или дату.
Это было бы намного проще, если бы у меня была команда, которая помещает имя текущего буфера в список уничтожений, чтобы я мог открыть файл, затем набрать C-x C-w
(записать файл), восстановить текущее имя с помощью Cy, изменить его и сохранить Это.
Я использую Emacs 24.3 для Windows и 24.4 для Linux. Я должен использовать разные имена файлов, а не git по разным причинам. Я был бы рад, если бы эта команда работала с AUCTeX / LaTeX в качестве основного режима.
Изменить 1:
Я сделал ошибку: я не хочу печатать C-x C-f
(= найти файл), но C-x C-w
(= записать файл). Я исправил это выше.
Изменить 2:
Нашел дубликат вопроса и ответа: /unix//a/45381 Но лучшего ответа нет!
Изменить 3:
Здесь: http://www.gnu.org/software/emacs/manual/html_node/elisp/File-Name-Components.html - это функция, которая выбирает часть «nondirectory» в имени файла:
Функция: file-name-nondirectory filename
This function returns the nondirectory part of filename. (file-name-nondirectory "lewis/foo") ⇒ "foo" (file-name-nondirectory "foo") ⇒ "foo" (file-name-nondirectory "lewis/") ⇒ ""
Если бы я только знал шепот ...
Ответы:
Там нет необходимости делать все это.
Просто:
C-x C-w
. Вам будет предложено ввести новое имя файла.M-n
, и текущее имя файла будет вставлено для вас.RET
чтобы сохранить файл под этим новым именем.У вас все еще будет оригинальный файл. Если вы хотите вернуться к нему, просто посетите его снова с
C-x C-f
.источник
ido
, сделайтеC-f
сначала, а затемM-n
.Копирование имени файла в текущий буфер
Вот функция, которую я использую из блога Cameron Desautels, которая копирует текущее имя файла буфера и отображает его в минибуфере.
Переименование имени файла в текущем буфере
Магнар Свин реализовал функцию ниже в одном из своих блогов, которая удобно переименовывает текущий буфер за один раз. Это не то, что вы просили, но я подумал, что это может быть связано с вашим вариантом использования.
источник
(buffer-file-name)
чтобы(file-name-nondirectory (buffer-file-name))
в первой функции , чтобы получить имя файла каталог SANS.