2010年5月16日星期日

在snipMate中添加snippet

         在看到别人使用 textMate 这个号称是 Mac 平台上最好用的编辑器之后,觉得它的模板功能的确不错。那时就想,vim 里有没有 script 可以实现这种功能呢?后来我找到了 snipMate
         snipMate 的安装及使用都很简单,这里就略过不说。这一次要说的是,有一些常用的模板,但默认的 snipMate 并不提供,那怎样添加呢?请看下面的例子。
         这里语言用的是 C++ ,因为经常要用上 using namespace std; , 但 snipMate 并没有提供。每次都打这么长的句子实在不大爽。于是就想有这么一个功能:我输入 us ,并按 tab ,vim 会自动扩展为 using namespace std; 。很简单,方法如下:
在 $VIMFILES 里找到相应的 snippets 文件,在里面加上如下定义:
snippet us
                using namespace ${1:std};
                ${2}
以后在 C++ 的代码里输入 us 并按 tab ,那 us 就会被扩展为 using namespace std;
${1:std} 的意思是 namespace 默认的值为 std ,但若是要使用另外的 namespace ns1 ,则可直接输入 ns1 ,这时 std 会被 ns1 替换掉,然后再按 tab,光标就会移到 ${2} 所在处,即移到下一行开头处。
很方便,对吧?

没有评论: