第十六章 spf13 插件---neosnippet使用教程
来源:互联网 发布:詹姆斯第一场比赛数据 编辑:程序博客网 时间:2024/05/24 06:41
如前所述,neocomplete就是一个自动补全的插件。
它又额外附带了补全代码段的特性(模版补全),要想使用这种特性,必须安装另外的插件neosnippet或者ultisnips。
spf13集合包自动帮我们安装了neosnippet,因此可以无需费心使用模版补全的能力。
snippet与complete两个插件联系相当紧密,毕竟同一个作者制造的。
个人实践:
使用spf13提供的<ctrl+k>无论是在普通模式,还是插入模式都无法使用neosnippet。
为什么呢?
原因在于该插件必须在输入某些关键字,弹出了自动补全菜单之后才生效。
比如先输入while,自动弹出跟while有关的补全菜单,此时再按<ctrl+k>才有效。
而我一开始在空白行单独使用<ctrl+k>,自然无效。
同时while可能包含好几种代码段形式,要在其中切换不同模版样式,继续按<ctrl+k>。
这样的操作方法和我最初想象的不太一样。
那么neosnippet插件到底提供了哪些模版呢?
毕竟不同的语言使用的代码模版格式也不相同。
根据官方文档,所有的模版都放在用户工作目录中
~/.vim/bundle/neosnippet-snippets/neosnippets/
先cd进该目录,再ls看看
可以看到不仅支持的各类语言,还支持make,cmake等工具模版。
对于我个人来说,最关注的是cpp.snip代表的c++语言,和c.snip代表的C语言 。
打开c.snip文件观看,snippet指的就是补全关键字,abbr为缩写样式。
以if关键字为例,缩写样式有两种,第一种为abbr最简单的 if(){}样式;
第二种就复杂一些
if (${1:#:condition}) {
${0:TARGET}
}
通过观看整个文件,我们会发现以下规律:
① abbr缩写的样式会显示在补全菜单里,同时abbr也是一种样式,abbr不是必须写的。
② 当一个关键字对应有多个样式,在使用模版补全时,最底部的样式会先显示(从下到上);
这种机制有助于我们把最常用的,偶尔用的,很少用的模版分批摆放。
③options head 明确指出必须以该关键字作为开头,即不能是其他字串的中间一部分。
④有一些#,$符号,数字1,2,0等,这些表明接受输入,并且1为第一个接受输入,0为最后接受输入。
多种样式之间切换使用<ctrl+k>,但只能往前,无法后退。
按TAB键在模版数字1,2,0等项中切换(假如有的话),但只能往前,无法后退。
除了普通的语言关键字外,还有main函数模版,inc模版,条件编译模版,文件打开模版等等。
这些模版提供的都是非常简单的样式,说实话并不能带来多少效率上的提升。
它更多的是提供了一种示例,你可以依此编写适合自己风格的,经常使用的代码模版。
所以对内置的代码模版不感冒,有两种办法改进它。
第一种在类似c.snip文件里直接修改,缺点在于破坏了原始文件,优势在于信息集中。
第二种也可以自己写好模版(新建以snip结尾),然后在vimrc中配置路径,告诉插件去哪里寻找。
let g:neosnippet#snippets_directory='~/.vim/bundle/vim-snippets/mysnippets’
初学者最容易踩坑:突然某天自动补全neosnippet不能使用,无效了。
请检查是否工作在无后缀的文件中!!
尽管linux系统不需要文件后缀,它看重的是属性与权限,文件后缀只是为了方便人类自己区分。
但没有文件后缀,补全和模版等插件就可能会出现问题,因为它们不能“智能”分辨使用何种方式去补全。
毕竟不同的语言,其外在写法是不同的(文件类型侦测)。
- 第十六章 spf13 插件---neosnippet使用教程
- 第八章 个人渣翻译 spf13插件---undotree 使用教程
- 第十二章 个人渣翻译 spf13插件---ctrlp 使用教程
- 第十三章 个人渣翻译 spf13插件---surround 使用教程
- 第十四章 个人渣翻译 spf13插件---NERDCommenter 使用教程
- 第十五章 个人渣翻译 spf13 插件---neocomplete使用教程
- 第十八章 个人渣翻译 spf13插件---EasyMotion 使用教程
- 第七章 个人优化vim第四步:插件集合spf13安装与使用教程
- 第九章 个人渣翻译 spf13插件---nerdtree 使用教程(上)
- 第十章 个人渣翻译 spf13插件---nerdtree 使用教程(中)
- 第十一章 个人渣翻译 spf13插件---nerdtree 使用教程(下)
- 第十七章 个人渣翻译 spf13插件---Tagbar(ctags) 使用教程
- vim通用插件SPF13-VIM安装与使用
- vim 插件管理 spf13-vim
- vim自动配置(插件spf13-vim)
- Windows安装spf13-vim配置教程
- python 教程 第十六章、 正则表达式
- python 教程 第十六章、 正则表达式
- GL绘制一个矩形
- spring mvc 异常统一处理方式
- linux驱动开发:input子系统一
- FileUtils API
- 我是如何从0到1搭建一个公司的后台管理系统的
- 第十六章 spf13 插件---neosnippet使用教程
- Leetcode-125. Valid Palindrome
- ftp上传下载解决负载均衡上传下载问题
- 阿里2017笔试(4)
- 一些Eclipse的常识性知识点
- Java并发(2) synchronized关键字
- 【Oracle】Oracle的下载与安装(细节强调版)
- Hibernate入门(五)hibernate的级联(cascade)表操作
- 基于centos 7安装的zabbix3.0版本