В настоящее время я разрабатываю веб-приложение, которое нуждается в фазе «компиляции» для тестирования. Для этого у меня есть простой сценарий оболочки, который предназначен для запуска из точного каталога.
Итак, в Vim, когда я вхожу в командный режим и выдаю это, он работает:
:lcd /my/script/directory
:!./build debug
Мой скрипт сборки записывает несколько журналов в командном окне, все в порядке, и говорит мне, чтобы я нажал return, чтобы вернуться к редактированию моих материалов. Хорошо.
Теперь я бы хотел связать это с F5
, чтобы ускорить процесс. В моем ~/.vimrc
я добавил это:
map <F5> :lcd /my/script/directory<CR>! ./build debug<CR>
Но после ввода моего ~/.vimrc
, когда я нажимаю F5, мой скрипт запускается правильно ... но странным образом Vim заменяет текущую строку, в которой я нахожусь, выводом скрипта. То же самое, если я делаю map <silent> <F5> …
Если я заменим ./build debug
на простой ls
, проблема тоже возникнет. Вывод ls
вставляется в мой текущий документ, перезаписывая текущую строку.
Кто-нибудь знает, откуда возникла проблема? Мне действительно нужно увидеть выходные данные моего сценария build
, поэтому я не могу просто добавить команду «отменить» после привязки, которая просто стерла бы вставленный вывод моей команды.
FWIW, я использую снимок MacVim 63 на OSX 10.7.2, но это также происходит, когда я использую простую старую командную строку vim
(v7.3) из iTerm2 (1.0.0.20111020).