Можно ли переименовать файл, который я редактирую, из Vim? В настоящее время я выхожу из Vim, переименовываю файл и снова открываю из Vim.
save
file-operations
thameera
источник
источник
Ответы:
Вы можете сохранить файл под другим именем, используя
:w
. Но эта операция не удалит старый файл, и «старый» файл останется в вашем буфере, поэтому любые изменения будут применены к вашему «старому» файлу.:saveas
сохраняет ваш новый файл и открывает его в новом буфере. Но это не удаляет старый файл.Я использую tpope / vim-eneuch для
:Move
файлов.источник
:w
или:saveas
является то, что он потеряет разрешение на выполнение, если вы редактировали скрипт.netrw
Переименовать сохранит разрешения.Вы можете перейти в Netrw и переименовать файл там.
Если файл, который вы редактируете, находится в текущем каталоге, выполните:
Перейдите к файлу, нажмите Rи измените имя. Нажмите, Enterчтобы редактировать файл.
Однако есть предостережение: исходный буфер остается в списке буферов. Если вы переключитесь на него, он пуст.
Если файл, который вы редактируете, находится в другом каталоге, вы можете перейти в каталог файла с помощью:
Если вы не хотите изменять каталог для всего сеанса Vim, а только для текущего буфера, тогда вы можете сделать вместо этого:
источник
:edit %:p:h
также, кажется, работает.:E
также откроет NetrwЯ использовал плагин Rename2 для этого в течение многих лет. Переименовывает как текущий буфер, так и файл на диске:
РЕДАКТИРОВАТЬ: Я нашел этот
.vimrc
файл на GitHub :источник
Лучший способ - использовать
:Move
, как сказал OrangTux. Для полноты вы также можете выполнять терминальные команды в редакторах vi, используя bang (!
) в командном режиме.Однако этот метод не удаляет старый буфер из вашего списка буферов.
источник