免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 14160 | 回复: 33
打印 上一主题 下一主题

放一个vi脚本,可以不离开vi编译程序(内有vi的配置文件) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-14 16:21 |只看该作者 |倒序浏览
小弟结合make和quickfix窗口写了个脚本,可以在不脱离vi的情况下编译单个文件。
具体用法:
1、把下列代码加入你的.vimrc文件(~\.vimrc)
"this script use to excute make in vim and open quickfix window
nmap B :call Do_make()<cr><cr><cr>
nmap C :cclose<cr>
function Do_make()
   let filename = bufname("%")
   let suffix_pos = stridx(filename, ".c")
   if suffix_pos == -1  
       return
   else
      let target = strpart(filename,0,suffix_pos)
   endif
   let target = "make " . target

   execute target
   execute "copen"
endfunction

2. 在vi中nomal模式下(也就是命令模式,不是按了冒号那个命令模式哈)
按shift+b编译程序。 如果有错误quickfix窗口会给出错误行以及错误信息,在上面按回车会跳到出错行
按shift+c关闭quickfix窗口。
注意:shift+c在vi中默认是删除该行光标后所有字符并进入输入模式。如果你经常用这个热键,请自己重新map。只支持c文件

唉,本来想贴个图的~~~

[ 本帖最后由 zx_wing 于 2006-12-15 19:12 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-12-14 16:26 |只看该作者
这个功能不错,支持LZ贴图出来瞅瞅!

论坛徽章:
0
3 [报告]
发表于 2006-12-14 16:50 |只看该作者
新手,不好意思,才看到可以传附件。

make_example.JPG (136.63 KB, 下载次数: 124)

附图

附图

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2006-12-14 17:00 |只看该作者
顶一下..
我还是用emacs

论坛徽章:
0
5 [报告]
发表于 2006-12-14 21:31 |只看该作者
不错不错, 赞

论坛徽章:
0
6 [报告]
发表于 2006-12-15 10:42 |只看该作者
多谢多谢!以前每次都要退出后再命令行gcc编译!美中不足的就是只能对单个文件操作。

顺便问一下,有没有这么的脚本,自动调用Makefile执行编译呀!

论坛徽章:
0
7 [报告]
发表于 2006-12-15 10:49 |只看该作者
原帖由 gomo1234 于 2006-12-15 10:42 发表
多谢多谢!以前每次都要退出后再命令行gcc编译!美中不足的就是只能对单个文件操作。

顺便问一下,有没有这么的脚本,自动调用Makefile执行编译呀!


在vi命令模式下:

:!make

按任意键返回

不知道可不可以满足你要求,呵呵

论坛徽章:
0
8 [报告]
发表于 2006-12-15 11:28 |只看该作者
原帖由 shxliang 于 2006-12-15 10:49 发表


在vi命令模式下:

:!make

按任意键返回

不知道可不可以满足你要求,呵呵



这种要求可以用楼上说的!make,更方便的是定义一个快捷键,例如下面:
nmap M :!make<cr><Esc>:copen<cr>
这样如果是一个工程,你可以先写好makefile,然后在vi中按shift+m即可执行编译,编译的错误会显示在quickfix窗口中

论坛徽章:
0
9 [报告]
发表于 2006-12-15 17:15 |只看该作者
多谢多谢,正是我想要的功能。
但是我还想问的就是如果修该了文件的内容,然后按<Esc>退回到命令模式,然后用快捷键,它并没有重新编译呀??
是不是我没有保存文件的缘故??

怎么在vi里修改文件内容后,而又不退出vi实现对文件改动的保存,然后还能实现编译了???


多谢多谢。

论坛徽章:
0
10 [报告]
发表于 2006-12-15 17:43 |只看该作者
支持,赞
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP