我整个上午一直在这里工作,我仍然无法找到一种方法来轻松绑定密钥,使用Cygwin GCC从Windows版本的gVim编译我的程序,然后运行它。我是Bash脚本的新手,我无法在主目录(C:/ cygwin / home)中创建.exe然后运行它。
到目前为止我所拥有的:
map <F4> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
exec "!gcc /home/%:t && cd C:/cygwin/home && ./a.exe"
endfun
除了当我转到主目录时,a.exe不在那里,这样做会很好。在cygwin中使用bash脚本.bat中的gcc编译工作正常...但不是来自gVim。
提前感谢您的所有帮助。
答案 0 :(得分:2)
检查此plugin。
它似乎是你想要的。 我没有测试过它。
答案 1 :(得分:1)
对于单文件项目,您不需要任何makefile。因此,只要gcc和make位于$ PATH中,并且您位于当前源文件所在的目录中,您只需键入:
:update
:make
如果你的程序没有错误,那么简单的!./%<
就行了。
否则,您可能必须执行:copen
才能看到编译错误。如果你有,你会注意到一些* nix格式的路径名。不幸的是(g)vim-win32无法理解它们。那个我的旧cygwin编译器插件告诉你的地方开始发挥作用。为了支持任何类似编译的程序(而不仅仅是make),它演变为BuildToolsWrapper - 它的安装将需要lh-vim-lib,并且可能是我的一些其他插件(system_tools,searchinruntime)
有了它,在你玩:BTW add cygwin
之前,只需做一次:make
,甚至是BTW定义的:Make
。在使用自动确定的目标调用:update!
之前,此新命令将执行:make
。注意:BTW将Make
和当前项目可执行文件的执行映射到<F7>
和<C-F5>
。
PS:如果您的项目中有多个文件,请定义一个Makefile,然后使用:make
,这就是全部。
PPS:您可能对cyg-wrapper.sh感兴趣,这有助于从cygwin shell正确打开gvim-win32。
答案 2 :(得分:0)
基本上,当gcc
运行时,它会在工作目录中生成二进制权。如果要将输出二进制文件放在不同的目录中,则必须传递-o
选项。所以命令应该是以下任何一个:
exec "!gcc -o C:/cygwin/home/a.exe /home/%:t && cd C:/cygwin/home && ./a.exe"
exec "!cd C:/cygwin/home && gcc /home/%:t && ./a.exe"