我尝试在我的vim配置文件中创建一个函数,这样我就可以根据文件类型“编译和运行”(我主要使用Fortran,C和Python)。除了每次运行编译后的可执行文件之后,它确实有效,我的vim底部会有一条通知说:
处理函数CompileRun时检测到错误: 第17行: E171:缺少:endif
我不知道“第17行”和“E171”是什么意思,因为它们无法与源文件或_vimrc文件相关,似乎if语句也已关闭。我没有找到答案就google了很多。我的功能如下:
map <F4> : call CompileRun()<CR>
func! CompileRun()
if &filetype == 'fortran'
exec "w"
exec "!gfortran % -o %<"
exec "!%<.exe"
exec "i"
elseif &filetype == 'c'
exec "w"
exec "!gcc % -o %<"
exec "!%<.exe"
exec "i"
elseif &filetype == 'python'
exec "w"
exec "!python %<.py"
exec "i"
endif
endfunc
答案 0 :(得分:2)
可能是因为你的一个命令会抛出一些东西。
BTW,偏离主题:
:make
和&makeprg
:make %<
就足够了,也不需要指定任何&makeprg
。 (它肯定适用于C,C ++,可能还有fortran):exec
在您的通话中完全没用。:insert
吗?试试没有这个电话。您可以将映射限制为普通模式。它不适用于其他模式,如=&gt;
nnoremap <F4> :call Compile()<cr>