饭前甜点-vim(gvim)自动在cpp文件中添加.h文件包含
最近正在忙着做一个新的vim插件,功能可以说是完全为技术用家准备的,当然非技术用户也可以非常好的使用,代码已经写完了,中文介绍文档也已经ok了,剩下的就是老婆大人那边帮忙翻译出英文版的啦~
OK,废话不多好,为了过几天就会端出来的正餐,今天先给大家一些小甜点吧
今天主要是想实现在cpp文件中,自动添加.h文件的引用.
即在一个class1.cpp中,能够自动的添加一行代码
#include "class1.h"
其实这个功能可以说是很简单了,但是习惯偷懒的我,确实忍受不了每次都要去写一遍代码:
vim脚本如下(特别说一下,有朋友反映我的vim脚本代码总是不高亮,结果换成高亮的html代码之后,总是保存出现问题,郁闷了,看样子还是继续调整一下):
function InsertIncludeFileI()
let sourcefilename=expand("%:t")
let outfilename=substitute(sourcefilename,'\(\.[^.]*\)$','.h','g')
call setline('.','#include "'.outfilename.'"')
endfunction
imap <c-b><c-h> <ESC>:call InsertIncludeFileI()<CR>
function InsertIncludeFileN()
let sourcefilename=expand("%:t")
let outfilename=substitute(sourcefilename,'\(\.[^.]*\)$','.h','g')
call setline('.','#include "'.outfilename.'"')
endfunction
nmap ,hh :call InsertIncludeFileN()<CR>
相信也不需要我多做解释了吧~~把这段脚本放到你的vimrc文件中就可以用啦~
这段脚本中用到了expand("%:t")
简单介绍下expand中传入参数不同,得到的结果列表
例如文件: c:/vim/test.cpp
expand("%:t") : test.cpp
expand("%") : test.cpp
expand("%:e") : cpp
expand("%:t:r") : test
怎么样,如果想写个脚本其实也是很简单的吧~
版权所有,转载请注明出处.http://www.vimer.cn
原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]
本文链接地址: http://www.vimer.cn/?p=836
我一直在用snipmate,按下Inc就能自动补全了,当然还是慢了些
[回复]
Dante 回复:
二月 2nd, 2010 at 10:24 上午
呃,我一直还是尽量自己实现想要的功能……毕竟vim可以这么完美的自定义~~
[回复]
偶尔发现这个博客,还不错,谢谢楼主的分享,本人也对vim情有独钟,希望以后多多交流
[回复]
Dante 回复:
二月 2nd, 2010 at 5:39 下午
哈哈,多多交流啊~~~ 我也对vim情有独钟~~~ 嘿嘿
[回复]
博主的老婆大人对计算机英语貌似很在行,我这几天也在写一个插件,苦于英语水平不行,不知道能否请您的老婆大人代为翻译一下,感激不尽
[回复]
Dante 回复:
二月 2nd, 2010 at 5:46 下午
哈哈,仅供个人使用,不外传哦~~
[回复]
nsertIncludeFileN跟nsertIncludeFileI不是一样的吗?
[回复]
Dante 回复:
十一月 9th, 2010 at 2:29 下午
呃。。。看了看还真一样。。可能之前有不一样的部分后来被删掉了吧。。。
[回复]