最近正在忙着做一个新的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

8 个评论 在 “饭前甜点-vim(gvim)自动在cpp文件中添加.h文件包含”

  1. kitten 说:

    我一直在用snipmate,按下Inc就能自动补全了,当然还是慢了些

    [回复]

    Dante 回复:

    呃,我一直还是尽量自己实现想要的功能……毕竟vim可以这么完美的自定义~~

    [回复]

  2. 扭蛋扭蛋 说:

    偶尔发现这个博客,还不错,谢谢楼主的分享,本人也对vim情有独钟,希望以后多多交流

    [回复]

    Dante 回复:

    哈哈,多多交流啊~~~ 我也对vim情有独钟~~~ 嘿嘿

    [回复]

  3. Jansen.wang 说:

    博主的老婆大人对计算机英语貌似很在行,我这几天也在写一个插件,苦于英语水平不行,不知道能否请您的老婆大人代为翻译一下,感激不尽

    [回复]

    Dante 回复:

    哈哈,仅供个人使用,不外传哦~~

    [回复]

  4. karlzheng 说:

    nsertIncludeFileN跟nsertIncludeFileI不是一样的吗?

    [回复]

    Dante 回复:

    呃。。。看了看还真一样。。可能之前有不一样的部分后来被删掉了吧。。。

    [回复]

我要评论

*

*