vim插件3--dict

来源:互联网 发布:淘宝客领取内部优惠券 编辑:程序博客网 时间:2024/06/05 22:10

vim插件3--dict


功能

vim-dict插件主要用于从本地或者特定服务器查找相关数据,此功能正常情况下用不上;

vim-dict有一个不错的功能为从特定的字典文件中补全文本或单词;

此外可以用 .dict文件来实现不同类型代码的自动补全功能


安装方法

vim-dict插件是以vim脚本的形式存在,因此只需要将其下载下来放到相应的目录即可。具体安装方法如下:
1)从下面网址下载vim-dict的安装包,并解压,得到doc/dict.txt和plugin/dict.vim文件;

Vim online  https://vim.sourceforge.io/scripts/script.php?script_id=4180

Github             https://github.com/szw/vim-dict

2)将plugin下的脚本文件(.vim)和doc下的帮助文件(.txt)分别拷贝至vim的 plugin和doc目录

注意:

若初次安装vim,可能没有~/.vim目录,此时需要新建该目录,并新建doc和plugin目录;


使用方法

1)dict的基本功能,可以通过 :help dict或者:h dict来查看,本人暂时很少使用这些基本功能,此处不做介绍;

2)dict的补全功能

作者介绍如下:

Useful tips

On Ubuntu you might want to add system dictionary to Vim:

set dictionary+=/usr/share/dict/words
This will enable the dictionary in the insert mode (CTRL-X CTRL-K). Additionaly it could be useful to add the dictionary to the standard word completions (CTRL-N...) for text and Markdown file types.

即:将/usr/share/dict/目录下的words字典文件加入到当前vi中,那么输入某个单词一部分的时候可以按下(CTRL-X CTRL-K)显示补全的内容,然后使用Ctrl-N及Ctrl-P上下选择,实现补全功能;


实际使用如下:

假设在~/.vim/dict目录下新建了一个mydict文件;

在vi模式下通过 :set dictionary+=~/.vim/dict/mydict 将mydict文件加入到vim的查找功能中;

输入模式下输入 myd然后 按<Ctrl-X><Ctrl-K>就会弹出对应的补全菜单,然后用Ctrl-N及Ctrl-P上下选择即可实现补全;

效果如下图所示:


若将 set dictionary+=~/.vim/dict/mydict 放在vimrc中,则会每次打开vi的时候都默认可以使用mydict字典总的内容进行补全;

注意:

使用该方式补全的时候,需要使用<Ctrl-X> <Ctrl-K>  <Ctrl-N> <Ctrl-P>等快捷键,似乎不太方便,建议使用该功能之前安装一个autocomplpop,安装autocomplpop后就可以自动显示补全内容,上下键选择下拉项了;

详见  vim插件2--autocomplpop 

需要注意的是使用该方式后,只能加载 dictionary+=中的字典文件,会导致其它方法设置的字典文件无法使用;

3) .dict 文件的另一种使用方法

通常我们可以从网上下载一些常用的dict文件,或者自己编辑一份自己的dict文件,然后用于coding中自动补全,以上方式提供的方法在特定场合存在一定缺陷,现在提供另一种方法将特定文件类型和特定dict文件关联起来,以便于不同类型代码的补全功能

假定~/.vim/dict目录下存在如下几个dict文件:

c.dict 、php_funclist.dict、css.dict、cpp.dict、scale.dict、javascript.dict

那么我们可以在vimrc重建立相应加载规则:

au FileType php setlocal dict+=~/.vim/dict/php_funclist.dictau FileType css setlocal dict+=~/.vim/dict/css.dictau FileType c setlocal dict+=~/.vim/dict/c.dictau FileType cpp setlocal dict+=~/.vim/dict/cpp.dictau FileType scale setlocal dict+=~/.vim/dict/scale.dictau FileType javascript setlocal dict+=~/.vim/dict/javascript.dictau FileType html setlocal dict+=~/.vim/dict/javascript.dictau FileType html setlocal dict+=~/.vim/dict/css.dict

vi打开x.c(注意为c文件),insert模式下输入si就会加载当前文件下的单词和c.dict文件下的单词,如下图所示:


其中,前4个补全单词为autocomplpop插件根据当前文档内容查找的,后面都是从c.dict中查找的;


注意:

使用此种方法进行语法补全的时候,需要关闭2)中的set dictionary方法,对于2)中的 规则若加入到vimrc中,应该在不用的时候注释掉,需要用的时候再打开;

命令说明:

au FileType html setlocal dict+=~/.vim/dict/javascript.dict
au FileType html setlocal dict+=~/.vim/dict/css.dic

该命令将html类型的文件和 css.dict  javascript.dict文件关联起来了,若要将js文件和以上文件关联,只需要增加如下两行即可:

au FileType js setlocal dict+=~/.vim/dict/javascript.dict
au FileType js setlocal dict+=~/.vim/dict/css.dict

该方式的好处为可以自由对文件类型和字典进行关联,而且可以手动更改dict中补全的内容为自己需要的类型