我目前正在开发一个需要“编译”阶段进行测试的webapp。为此,我有一个简单的shell脚本,它设计用于从精确目录运行。
所以在Vim中,当我进入命令模式并发出它时,它可以工作:
:lcd /my/script/directory
:!./build debug
我的构建脚本在命令窗口中写了一些日志,一切都很好,并告诉我按返回返回编辑我的东西。细
现在我想将其绑定到F5
以加快速度。在我的~/.vimrc
中,我添加了这个:
map <F5> :lcd /my/script/directory<CR>! ./build debug<CR>
但是在我的~/.vimrc
来源之后,当我按下F5时,我的脚本运行正常...但奇怪的是,Vim用脚本的输出替换了我正在使用的当前行。如果我做map <silent> <F5> …
如果我用简单的./build debug
更改ls
,问题就出现了。 ls
的输出插入到当前文档中,覆盖当前行。
有人知道问题的来源吗?我真的需要查看我的build
脚本的输出,因此我无法在绑定后添加“撤消”命令,这将简单地删除我命令的插入输出。
FWIW,我在OSX 10.7.2上运行MacVim快照63,但是当我使用来自iTerm2(1.0.0.20111020)的普通旧命令行vim
(v7.3)时也会出现这种情况。 / p>
答案 0 :(得分:3)
尝试
map <silent> <F5> :lcd /my/script/directory \| !./build debug<CR>
转义管道可以链接命令。
答案 1 :(得分:0)
在!
之前使用冒号,例如:
map <F5> :lcd /my/script/directory<CR>:! ./build debug<CR>