1

Есть ли конфигурация, которую я могу добавить в файл .vimrc, который заставит vim запустить команду при закрытии файла?

Например, предположим, что я редактирую файл, который находится под контролем версий. После того, как я закончу редактирование, я бы хотел, чтобы команда для фиксации моих изменений была запущена непосредственно перед тем, как vim полностью закрывается, без необходимости запускать его отдельно после сохранения / выхода из файла.

Мне любопытно, потому что я склонен забывать совершать свои изменения.

В качестве альтернативы, и если невозможно выполнить то, что я спрашиваю, возможно ли настроить внутреннюю команду vim:, которая будет запускать коммит с помощью vim, прежде чем я закрою файл?

4 ответа4

4

Хотя не рекомендуется вносить изменения сразу после редактирования и выхода из файла, вы можете попробовать команды vim auto.

augroup autocom
    autocmd!
    "executes the command on quit
     autocmd VimLeave *.cpp !your_command

    "execute the command on write
    autocmd BufWritePost,FileWritePost *.cpp !your_commad
augroup END
2

Автоматическая фиксация при выходе звучит как плохая идея. По сути, вы поощряете свои собственные плохие практики.

Для фиксации из vim вы должны сделать это так же, как и любую другую команду:

 :!git commit -m "look ma I remembered to commit" my_dir/my_file.c

После запуска:

 :w

спасти его

0

Почему бы не создать свою собственную команду? Я еще не знаком с этим, но это должно выглядеть в вашем vimrc:

command Wc w | Gcommit

А затем после редактирования вашего файла введите:Wc

Wc "custom name for Write commit
Gcommit " it s a command that exist from the excellent vim plugin 'fugitive' written by tpope
| "(pipe) allow you to add a second command
w " write
0

Плагин vcscommand.vim - CVS/SVN/SVK/git/hg/bzr предоставляет команду :VCSCommit .

Чтобы подключиться, когда файл закрыт, вы можете использовать :autocmd для события BufDelete .

Но я согласен с Nanzikambe, что это плохая идея, и вы должны вместо этого работать над улучшением своей практики. Например, есть плагины, которые могут отображать грязное состояние рабочей копии в строке состояния Vim, а в нескольких сообщениях в блоге объясняется, как добавить такой индикатор в подсказку вашей оболочки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .