2016-08-23 7 views

ответ

1

Update:

ОП отметил в комментариях, что это сочетание сделал именно то, что разыскивается (выполнить команду только на :wq).

:autocmd BufWritePost * :autocmd VimLeave * :!cp % /somewhere/else 

Оригинальный ответ:

Вы можете подключить BufWritePost событие. Это запустит команду каждые, напишите не только, когда вы используете :wq, чтобы оставить файл.

:autocmd BufWritePost * :!cp % /somewhere/else 

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

Есть некоторые события, которые происходят, когда вы уходите, что может быть вариантом.

QuitPre  when using :quit, before deciding whether to quit 
VimLeavePre before exiting Vim, before writing the viminfo file 
VimLeave  before exiting Vim, after writing the viminfo file 

Вы можете увидеть полный список, используя :help autocmd-events.

Также обратите внимание, что вы можете ограничить то, что соответствует событию. Например, если вы хотите, чтобы это произошло для HTML-файлов и CSS-файлов, вы можете использовать это:

:autocmd QuitPre *.html,*.css :!cp % /somewhere/else 

Я подозреваю, что вам нужно будет экспериментировать и посмотреть, что работает для вас.

+0

Эй, Дэн. Он будет работать с ': w', и я не хочу этого, потому что он будет выполняться при каждом сохранении файла. Я хочу, чтобы событие работало только с ': wq'. Вы можете что-то предложить? –

+0

Эй, спасибо большое. Я подключил 'BufWritePost' с помощью' VimLeave'. ': autocmd BufWritePost *: autocmd VimLeave *:! cp%/something/else' –

+0

Прохладный, я положу это в ответ, так как он сделал именно то, что было после –

0

Похоже, вам необходимо автоматически каскадировать запись файла в другое место. Мой DuplicateWrite plugin предоставляет удобные команды для их настройки. (Страница плагина содержит ссылки на альтернативные плагины.)

:DuplicateWrite /somewhere/else 
+0

Спасибо, это пригодится. –

 Смежные вопросы

  • Нет связанных вопросов^_^