Автоматическое выполнение vim autocmd

У меня есть файл .vimrc, настроенный таким образом, что каждый раз, когда я сохраняю файл Python или вхожу в буфер Python (также для Matlab и Latex, но это все одно и то же), он молча выполняет обильные ctags:

set tags+=./tags
autocmd BufWritePost *.py silent !ctags *.py
autocmd BufEnter *.py silent !ctags *.py
autocmd BufWritePost *.m silent !ctags *.m
autocmd BufEnter *.m silent !ctags *.m
autocmd BufWritePost *.tex silent !ctags *.tex
autocmd BufEnter *.tex silent !ctags *.tex

Затем я иногда использую эту информацию для навигации по своим файлам. Это прекрасно работает в Mac OS X и Linux. В последний месяц или около того мне пришлось использовать Windows 7. Когда я добавляю эти строки в свой .vimrc, передо мной появляется приглашение cmd, и это очень неприятно. Я также пробовал !start вместо молчания, и это приводит к множеству других проблем, главная из которых - необходимость нажимать ввод каждый раз после :w.

Что мне не хватает? Можно ли продублировать мою конфигурацию OS X, где выполняется команда, обновляется файл тегов, все перезагружается без мигания командной строки и без дальнейших проблем?


person carlosdc    schedule 14.10.2012    source источник


Ответы (2)


Вы можете проверить

autocmd BufEnter *.tex silent! !start /min ctags *.tex

В качестве альтернативы попробуйте /b /wait.

См. также https://serverfault.com/questions/31608/can-i-run-a-gui-program-in-the-background-on-the-windows-command-line/31621#31621

person sehe    schedule 14.10.2012

Вы также можете проверить плагин shell.vim:

enables execution of external commands in the background without opening a
command prompt window on Windows.

Он также предоставляет некоторые интересные дополнительные функции.

person mMontu    schedule 15.10.2012