vim(gvim)中对snipmate的小妙用
Published on 四月 26, 2010
最近比较忙,周末又和老婆一起出去旅游,所以近期没有写多少文章,还望各位读者海涵~~
由于一些原因,今天本来打算写的文章没有办法发布,所以先写一篇比较轻量的应用热一下身,最近要写的Vim相关文章比较多哇~~
这次主要是想给大家介绍一下vim的一个插件snipmate,链接如下:
http://www.vim.org/scripts/script.php?script_id=2540
对于代码段补全,snipmate还是非常有用的(虽然可能会降低你的记忆力)。
现在我们来假设一个场景,平常大家都是怎么写出一个函数实现的呢?
如
int Test()
{
//光标在这里
}
好吧,我想应该是这样,先写出一个
int Test()
{}
然后ESC,h,o,ESC,j,o
极其麻烦~
怎么解决?在c.snippets中加入如下代码:
snippet {}
{
${1}
}
这样,当你在c/c++文件中写完
int Test()
{}
之后,只需要点击一下tab键,就会自动变成
int Test()
{
//光标会在这里
}
的确很简单吧。
当然,如果是在编辑js文件,我在
int fun(){}
之后点击tab键,也会自动变成
int fun(){
//光标会在这里
}
哈哈,怎么样,还不错吧~~
另:其实我在c.snippets文件中还有如下定义:
snippet {};
{
${1}
};
因为在写class的时候需要这个分号~
OK,就这样~~~
原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]
本文链接地址: http://www.vimer.cn/?p=1206
恩,每天来博主这里期待博客的更新,最近我也是很忙,博客也没时间更新,灰常理解博主,博主加油,期待更多更高的文章!
[回复]
Dante 回复:
四月 27th, 2010 at 3:07 下午
哈哈,共勉共勉~~
[回复]
吼吼..俺现在把snipmate换成xptemplate咧..更强悍的代码片段补全插件..嗯嗯
[回复]
Dante 回复:
四月 27th, 2010 at 3:08 下午
哇哇,xptemplate有更牛的功能吗,去看看~~~
[回复]
sowill 回复:
四月 28th, 2010 at 1:32 下午
试用一下就知道..哈哈..snipMate很小巧..而xptemplate很强大..甚至有人觉得它有点过度的复杂了..我之前看它的介绍也是觉得有点复杂了..不过用上以后觉得也可以简单用嘛..现在用着感觉良好..呵呵..而且..它有warp功能..我觉得很实用
[回复]
看过介绍rails写blog的视频,就使用的textmate, 但是vi下c-support不是很好么,有什么非此不可的东西么
[回复]
Dante 回复:
五月 16th, 2010 at 8:56 下午
呃,怎么说呢,c模式注重的是代码补全,snipmate更注重的是代码段补全,两者兼修会事半功倍一些。
[回复]
MadPer 回复:
五月 16th, 2010 at 9:08 下午
c.vim+superTab试试,或许能满足你的要求.
[回复]
以前用snipmate,现在转用xptemplate。xptemplate在功能和复杂度上都可以秒杀snipmate
[回复]
Dante 回复:
五月 17th, 2010 at 9:50 上午
好像大家都说xptemplate比snipmate好用呢,呵呵,看来我也得抽空试一下,关键是snipmate目前已经能满足我所有需求了,所以一直懒得折腾
[回复]
梧桐 回复:
一月 5th, 2011 at 5:05 上午
xptemplate是比较好,有一个代码包裹功能,有时候回头写try,catch方便啊..而且snip功能做得也好,比如可以同步for(i=0;i<10;i++)这个里面的i..美中不足就是支持的片段种类没有snipmate多,而且感觉自己写起来也比较复杂
[回复]
neocomplcache代码补全代码片段两不误..嘿嘿..再加一个zencoding
[回复]
Dante 回复:
十一月 29th, 2010 at 10:55 上午
neocomplcache虽然的确比较方便,但是有时候还是会有卡的感觉,没有原来那么流畅。。所以被我卸载掉了。。。
[回复]
Devric 回复:
三月 1st, 2011 at 6:14 下午
是啊, 我也觉得卡, 之前用 neo+snipmate+zencoding
我的php 捆绑了wordpress, codeigniter, yii 和 prestashop 的自定义snippet, 卡得要命, 每次开或改文件为 php, 要 load 1-3分钟。。。
xptemplate 解决了这点
[回复]
Dante 回复:
三月 2nd, 2011 at 2:43 上午
我的snippet里面确实配置的比较少。。。所以还没遇到snipmate会有这种瓶颈,不过起码现在就知道还有替代品,哈哈。
[回复]
早早已经在用了, 不错的!
[回复]
不知道这里有没有无法使用这个插件的朋友,我使用后查看tab的映射根本没有
[回复]
Dante 回复:
十二月 18th, 2011 at 11:00 下午
应该是可以的,是不是和其他插件冲突了
[回复]
Hello Vimer,
如何解决supertab和snipmate的冲突呢?
或者说其实两个插件是同一个功能?
谢谢!
[回复]
Dante 回复:
二月 17th, 2012 at 3:22 下午
呃。。这个恐怕要改插件代码了。。。他们的快捷键是一样的。。
[回复]
Marslo 回复:
二月 22nd, 2012 at 4:27 下午
okay, 那我试试去。。。
[回复]
c.vim的自动补全也相当强大的 那个更省事情
[回复]