Vim: перемещение файлов?

В настоящее время, если я редактирую файл и решаю переименовать его, я использую:

:! mv% new.py: new new.py: шд

Чтобы переименовать файл, откройте новый файл, затем удалите старый буфер.

Есть ли более простой способ переименовать файл, не оставляя старые буферы без дела?

(Я понимаю, что я мог бы также использовать :sav, но тогда мне нужно :bp несколько раз, чтобы найти предыдущий буфер, :bd тогда :bn вернуться в новый буфер)

2 ответа

Я думаю, что вы, возможно, ищете этот плагин.

Это небольшой плагин, который: сохраняет и удаляет старый файл.

Я думаю, что добавить плагин гораздо сложнее, чем вы ищете. Вы можете использовать функцию, чтобы связать эту функцию с новой командой.

function! s:movefunction(arg)
  let oldnum = bufnr("%")
  let newname = a:arg
  execute "!mv %" . " " . newname
  exe "new " . newname
  exe "bd" . oldnum
endfunction

command! -nargs=* Newmv call s:movefunction('<args>')

После добавления этого в ваш.vimrc, вы можете вызвать это, выполнив

:Newmv new_file_name.py

Вы также можете переименовать файл в проводнике vim, перейдите к файлу, который хотите переименовать, и нажмите:

R

Так вот:

  1. Исследовать :E
  2. Перейти к файлу j или поиск по шаблону файла /
  3. Переименовать R
  4. Откройте новое имя файла <CR> (войти).

Будет ли это короче напечатать, будет зависеть от количества файлов в вашем каталоге.

Этот ответ на vi.stackexchange предлагает использовать:Moveиз плагина tpope / vim-eunuch.

:Move: Одновременно переименовать буфер и файл на диске.

Другие вопросы по тегам