Vim的自动完成提供了多种方法:
1. 整行 |i_CTRL-X_CTRL-L|
2. 当前文件内的关键字 |i_CTRL-X_CTRL-N|
3. 'dictionary' 的关键字 |i_CTRL-X_CTRL-K|
4. 'thesaurus' 的关键字,同义词风格 |i_CTRL-X_CTRL-T|
5. 当前和头文件内的关键字 |i_CTRL-X_CTRL-I|
6. 标签 |i_CTRL-X_CTRL-]|
7. 文件名 |i_CTRL-X_CTRL-F|
8. 定义或宏 |i_CTRL-X_CTRL-D|
9. Vim 命令 |i_CTRL-X_CTRL-V|
10. 用户定义的补全 |i_CTRL-X_CTRL-U|
11. 全能 (omni) 补全 |i_CTRL-X_CTRL-O|
12. 拼写建议 |i_CTRL-X_s|
13. 'complete' 的关键字 |i_CTRL-N|
这里只需要用到Vim的字典补全就能实现自动提示任意单词,首先准备一个比较全面的英文词典:
下载Engspchk
这个插件,这个插件用来检查拼写错误,当然平时就可以用,不过这里只需要用到它的英文词典
下载解压后将english.dict不必要的内容删去,比如标题和每行开头的Goodword,再排序成每行一个独立的单词,大概有4.8W个单词
排序是为了Vim缓存这个词典时更节省时间.将排序后的文件保存到$VIMRUNTIME/dict/english.dic,当然文件名任意取,建议这样命名.
接下来,你有两种方法实现自动补全英文单词,分为手动和自动的,自动需要借助neocomplcache
这个插件.
手动提示:
如果只需要对txt类型文件提示单词,建立一个ftplugin/txt.vim文件即可,内容包含:
setlocal dictionary=$VIMRUNTIME/dict/english.dic "set dict file
setlocal complete+=k "set complete option
需要补全的时候,比如输入app,再按<C-X><C-K>即可弹出补全菜单以供选择需要的单词.
实际上你可以对所有文件都设置这个词典补全,将这一行加入到.vimrc即可,注意多了个+号
setlocal dictionary+=$VIMRUNTIME/dict/english.dic "set dict file
这也许会在编辑代码的时候造成混乱,提示不需要的单词.
自动提示:
安装好neocomplcache后做如下设置:
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_enable_smart_case = 1
let g:neocomplcache_enable_camel_case_completion = 1
let g:neocomplcache_enable_underbar_completion = 1
let g:neocomplcache_min_syntax_length = 3
let g:neocomplcache_lock_buffer_name_pattern = '/*ku/*'
let g:neocomplcache_dictionary_filetype_lists = {
/ 'default' : '',
/ 'txt' : $VIMRUNTIME.'/dict/txt.dic',
/ }
" Define keyword.
if !exists('g:neocomplcache_keyword_patterns')
let g:neocomplcache_keyword_patterns = {}
endif
let g:neocomplcache_keyword_patterns['default'] = '/h/w*'
" Plugin key-mappings.
imap <C-k> <Plug>(neocomplcache_snippets_expand)
smap <C-k> <Plug>(neocomplcache_snippets_expand)
inoremap <expr><C-g> neocomplcache#undo_completion()
inoremap <expr><C-l> neocomplcache#complete_common_string()
" Recommended key-mappings.
" <CR>: close popup and save indent.
"inoremap <expr><CR> (pumvisible() ? "/<C-y>":'') . "/<C-f>/<CR>X/<BS>"
" <TAB>: completion.
inoremap <expr><TAB> pumvisible() ? "/<C-n>" : "/<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> pumvisible() ? neocomplcache#close_popup()."/<C-h>" : "/<C-h>"
inoremap <expr><BS> pumvisible() ? neocomplcache#close_popup()."/<C-h>" : "/<C-h>"
inoremap <expr><C-y> neocomplcache#close_popup()
inoremap <expr><C-e> neocomplcache#cancel_popup()
其中最重要的是设置字典文件:
let g:neocomplcache_dictionary_filetype_lists = {
/ 'default' : '',
/ 'txt' : $VIMRUNTIME.'/dict/txt.dic',
/ }
对txt类型文件应用字典,neocomplcache会在打开txt文件后缓存该字典并自动弹出完成菜单.
用neocomplcache有两个问题仍需解决:
首次打开txt文件的时候不能自动缓存词典,也就不能自动提示,需要手动设置文件类型,提交:set ft=txt这个命令后才会缓存.
每个Vim进程只需要缓存一次,大概耗时5秒钟,视不同机器而定.
当然第二次打开txt类型的文件时能自动缓存,很奇怪的问题.
缓存后的文件顺序有问题,而非升序. 目前正在和作者联系以解决.
最后看看效果图:
输入archit

按tab键选择需要的单词:

分享到:
相关推荐
Linux VIM 使用帮助文档 Linux VIM 编辑器是 Unix 系统中的一种通用编辑器,也就是我们常说的 VI 编辑器的改进版,VI Improved 的简写,VIM 由 Bram Moolenaar 编写。VIM 编辑器的工作模式分为命令模式、插入模式和...
在“Searching”章节中,作者详细介绍了在Vim中如何进行搜索操作,包括改变字体、最大化屏幕空间、创建菜单和工具栏按钮、搜索任意单词、跨多个文件搜索以及搜索和替换指定文本。此外,还包括了如何创建正则表达式和...
- **内嵌脚本语言**:可以编写 Vim 脚本来自动化编辑任务。 #### 二、何处获取Vim? Vim 可以从多个渠道获取: - **官方网站**:访问 Vim 官方网站 (https://www.vim.org/) 下载源代码或预编译版本。 - **包管理...
### Vim使用教程知识点详解 #### 一、Vim简介与安装 **1.1 为什么选择Vim?** - **高效性**:Vim是一款高度可定制的文本编辑器,支持大量的插件扩展,能够极大地提高开发效率。 - **跨平台**:它可以在多种操作系统...
- **Vim线上说明文件的制作**:通过编写特定格式的文档来生成帮助文件。 综上所述,vim编辑器是一款功能强大且高度可定制的文本编辑器,适合于各种场景下的文本编辑工作。通过学习本文提供的基础知识与高级技巧,...
《Vi-iMproved使用学习全集》是一本深入探讨Vim编辑器的全面教程,旨在帮助用户掌握这一强大工具的所有核心功能和高级技巧。Vim,全称Vi IMproved,是经典的Vi编辑器的增强版,它在保留Vi原有特性的同时,引入了更多...
### Vi编译器的使用说明 #### 一、Vi 编辑器简介 Vi(Visual Editor)是一款在 Unix 和类 Unix 系统中广泛使用的文本编辑器,它以功能...无论是对于日常的文档编写还是编程工作,熟练掌握 Vi 都将带来极大的便利。
2. 使用 vi 编写一个 C 程序,要求该程序通过命令行接收用户的输入,其输入参数为 FreeBSD 系统中的任意文本文件,接收输入后,C 程序读取该文件内容,并打印在屏幕上。 3. 详细记录学习的内容和实验的整个过程,...