最近比较忙,周末又和老婆一起出去旅游,所以近期没有写多少文章,还望各位读者海涵~~ 由于一些原因,今天本来打算写的文章没有办法发布,所以先写一篇比较轻量的应用热一下身,最近要写的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,就这样~~~
iOver on #
恩,每天来博主这里期待博客的更新,最近我也是很忙,博客也没时间更新,灰常理解博主,博主加油,期待更多更高的文章!
Reply
Dante on #
哈哈,共勉共勉~~
Reply
sowill on #
吼吼..俺现在把snipmate换成xptemplate咧..更强悍的代码片段补全插件..嗯嗯
Reply
Dante on #
哇哇,xptemplate有更牛的功能吗,去看看~~~
Reply
sowill on #
试用一下就知道..哈哈..snipMate很小巧..而xptemplate很强大..甚至有人觉得它有点过度的复杂了..我之前看它的介绍也是觉得有点复杂了..不过用上以后觉得也可以简单用嘛..现在用着感觉良好..呵呵..而且..它有warp功能..我觉得很实用
Reply
mono on #
看过介绍rails写blog的视频,就使用的textmate, 但是vi下c-support不是很好么,有什么非此不可的东西么
Reply
Dante on #
呃,怎么说呢,c模式注重的是代码补全,snipmate更注重的是代码段补全,两者兼修会事半功倍一些。
Reply
MadPer on #
c.vim+superTab试试,或许能满足你的要求.
Reply
grassofhust on #
以前用snipmate,现在转用xptemplate。xptemplate在功能和复杂度上都可以秒杀snipmate
Reply
Dante on #
好像大家都说xptemplate比snipmate好用呢,呵呵,看来我也得抽空试一下,关键是snipmate目前已经能满足我所有需求了,所以一直懒得折腾
Reply
梧桐 on #
xptemplate是比较好,有一个代码包裹功能,有时候回头写try,catch方便啊..而且snip功能做得也好,比如可以同步for(i=0;i<10;i++)这个里面的i..美中不足就是支持的片段种类没有snipmate多,而且感觉自己写起来也比较复杂
Reply
吴叔 on #
neocomplcache代码补全代码片段两不误..嘿嘿..再加一个zencoding
Reply
Dante on #
neocomplcache虽然的确比较方便,但是有时候还是会有卡的感觉,没有原来那么流畅。。所以被我卸载掉了。。。
Reply
Devric on #
是啊, 我也觉得卡, 之前用 neo+snipmate+zencoding
我的php 捆绑了wordpress, codeigniter, yii 和 prestashop 的自定义snippet, 卡得要命, 每次开或改文件为 php, 要 load 1-3分钟。。。
xptemplate 解决了这点
Reply
Dante on #
我的snippet里面确实配置的比较少。。。所以还没遇到snipmate会有这种瓶颈,不过起码现在就知道还有替代品,哈哈。
Reply
小新 on #
早早已经在用了, 不错的!
Reply
nswutong on #
不知道这里有没有无法使用这个插件的朋友,我使用后查看tab的映射根本没有
Reply
Dante on #
应该是可以的,是不是和其他插件冲突了
Reply
Marslo on #
Hello Vimer,
如何解决supertab和snipmate的冲突呢?
或者说其实两个插件是同一个功能?
谢谢!
Reply
Dante on #
呃。。这个恐怕要改插件代码了。。。他们的快捷键是一样的。。
Reply
Marslo on #
okay, 那我试试去。。。
Reply
ReeZhou on #
c.vim的自动补全也相当强大的 那个更省事情
Reply
hei on #
不知道怎么,gvim下一直未如愿。
Reply