最后更新于 .

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

怎么样,如果想写个脚本其实也是很简单的吧~

Pingbacks

Pingbacks已打开。

Trackbacks

引用地址

评论

  1. kitten

    kitten on #

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

    Reply

    1. Dante

      Dante on #

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

      Reply

  2. 扭蛋扭蛋

    扭蛋扭蛋 on #

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

    Reply

    1. Dante

      Dante on #

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

      Reply

  3. Jansen.wang

    Jansen.wang on #

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

    Reply

    1. Dante

      Dante on #

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

      Reply

  4. karlzheng

    karlzheng on #

    nsertIncludeFileN跟nsertIncludeFileI不是一样的吗?

    Reply

    1. Dante

      Dante on #

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

      Reply

发表评论