windows下gvim调用外部命令有什么要注意的么???
vim吧
全部回复
仅看楼主
level 1
bdjfeng 楼主
图中两个命令行使用的是在gvim下相同的命令:gcc -o d:\gcc\hello d:\gcc\hello.c。;
上面的那个是我直接点击桌面上的gvim图标后然后直接输入命令的,可以通过及编译连接成功得到了hello.exe文件(命令行里面也可以),
而下面的那个命令行是我用gvim打开了d:\gcc\hello.c文件(要编译的那个文件),但是我使用和上面相同的命令却得到图中下面的命令行的结果,
请问windows下gvim调用外部命令有什么要注意的么???
2012年11月17日 13点11分 1
level 1
bdjfeng 楼主
另外:
在gvim里面调用外部命令,如题中的命令是
:! gcc -o d:\gcc\hello d:\gcc\hello.c
这个我还是知道的,就是不清楚为什么同样的命令会有不同的结果。
2012年11月17日 13点11分 2
level 14
两次启动分别:echo $PATH
比对一下path
2012年11月17日 14点11分 3
能说的明白点么,命令是什么,刚学,有些组合命令还不知道怎么用
2012年11月17日 14点11分
回复 bdjfeng : 就是你不是用了两种方式启动gvim么?每种方式启动后都输入:echo $PATH 看一看环境变量path一样不
2012年11月18日 04点11分
回复 VimMSF :我今天尝试了一下,发现两种启动方法都可以了,可能是要重启吧。另外我按照网上的方法设置了《_vimrc》文件,但F5的功能不能出来,如果可以的话,麻烦帮忙看下问题出在那里了,我会在下一楼贴出来,要不我重新发帖问?
2012年11月18日 15点11分
level 1
bdjfeng 楼主
@
VimMSF
首先按照你的命令输入后得到的结果是一样的如下图(图片应该是清晰的,如果不够清晰可以新建窗口打开):
ps:现在也没法重现昨天的那种情况了。
问题一:
现在我从文件打开gvim输入命令":! gcc -o hello hello.c",这句命令时,它是可以顺利执行并生成hello.exe文件的,而弹出的命令行显示的是
"C:\WINDOWS\system32\cmd.exe /c gcc -o hello hello.c,下一句就是按键退出,我就不打了",显示的"/c"是什么来的,是文件的路径么,就是当前路径PWD?
问题二:
我想实现像网上说的按F5就可以编译(起码可以编译单个文件),在_vimcr中加入下面的代码:<exec "!echo hhh">是我加进去的,看看能不能弹出命令行显示下东西,结果没有。
"**********
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec "w"
if &filetype=='c'
exec "!echo hhh"
exec "!gcc -o %< %"
exec "! %<"
endif
endifendfunc
"************
首先我检查过好几次没有中文标点(包括全角空格),每行最后没有空格,其它如上面代码,代码里面三个exec里的代码分别在通过hello.c打开的gvim里运行是想要的结果保存编译运行。但是我按下F5,gvim窗口下方的命令输入的地方显示《:CheckSyntax》(如下图),然后又很快速的显示别的东西(实在太快了,根本截图不了)。然后什么也没有回到原来那样。
没有创建exe当然也没有运行,
我配置少写了什么东西么,还是写错了
另外配置里面的&filetype是vim的系统变量么,前面我打开了文件类型检测“filetype plugin indent on”这个有没有影响的?
2012年11月18日 16点11分 4
level 12
endifendfunc
两个命令挤在一块VIM没报错?
另外在你按 F5 之前命令行里打 :echo &filetype 看看是不是为 c
如果不为 c ,那么 if 里面的代码自然不会执行
&开头的是VIM选项,let &filetype='c' 和 set filetype=c 是类似的。
2012年11月19日 01点11分 5
谢谢,初学vim,很多东西都在摸索中,gvim的编辑模式和快捷输入的技巧只能多练练,但gvim的配置文件就花了不少时间。
2012年11月19日 09点11分
level 14
两种方式都应该继承系统path,后者也说明能找到gcc,后面的一会我有功夫在看
2012年11月19日 05点11分 6
level 14
/c是cmd的一个参数,cmd/? 你就知道了
它由vim的shellcmdflag指定
2012年11月19日 07点11分 7
今天我尝试着用F6代替F5,就是“ map <F5> :call CompileRunGcc()<CR>”这里将F5改成F6,结果可以实现按下F6就自动的编译运行了,难道是gvim的F5键有什么冲突,怎样才能消除这个冲突呢?
2012年11月19日 09点11分
level 14
:map <F5>
如果有冲突就会显示出当前定义。
2012年11月19日 09点11分 9
1