这是SathiyaMoorthy撰写的来宾帖子
You can perform automatic word completion in Vim using Ctrl-x in insert or append mode. By typing the first few characters of a word you can get the whole word either from a dictionary, or a thesaurus, or even the words that are already present on the file that you are editing.
This article explains how to perform following operations with examples and screen shots:
- 单词/图案完成
- Line completion
- 字典单词补全
- 文件名补全
- 填充具有相似含义的词(同义词库词完成)。
All the completions are related, you can use the same keys for navigating between several choices shown, and choose the appropriate one by pressing enter.
本文是正在进行中的一部分 Vi / Vim提示和技巧 series.
1.使用Ctrl-x Ctrl-n在Vi / Vim中完成单词/图案完成
You can use one of the following Vim shortcut keys to choose the existing words on the file.
- CTRL-x CTRL-n:单词补全– forward
- CTRL-x CTRL-p:单词补全– backward

Fig: 使用Ctrl-x Ctrl-n在Vi / Vim中完成关键字
程序员和管理员的典型用法:
- 完成文件中的现有单词,而无需重新键入。
- Complete a variable name or a function name on your program or shell-scripts.
2.使用Ctrl-x Ctrl-l在Vim中完成行
If you want to insert an existing line, type the first few words/characters of the line, and then press the Vim shortcut keys “Ctrl+x Ctrl+l”, which will display all the lines matching that patten. Note: The second control character is a lowercase L.

Fig: Vim使用Ctrl-x Ctrl-l完成整行
程序员和管理员的典型用法:
- 在文件中快速重复现有行。
- Automatically fill first line of the function definition, when the function is already declared elsewhere in the same file.
3.使用Ctrl-x Ctrl-f完成文件名
Insert the name of the file that resides anywhere on the Linux system using the short cut key “Ctrl+x Ctrl+f”.

Fig: Vim使用Ctrl-x Ctrl-f完成文件名
Typical usage: When you give the path of the file name as a reference inside a document.
4.词库词完成
Using this feature you can choose alternate words with the same meaning for the word that you’ve just typed. Our previous article explains about Vim编辑器的同义词库功能.
5.使用Ctrl-x Ctrl-k完成字典单词
Enable the dictionary in Vim by adding the following line to ~/.vimrc.
$ cat ~/.vimrc set dictionary+=/usr/share/dict/words
This is a great feature when you stumble for the correct spelling for a word that you are typing. After typing the first few characters, Press the Vim short cut key Ctrl-x Ctrl-k to display the matching dictionary words.
Final Note:
- 验证是否在Vi / Vim中启用了autocmd –Execute :version from vi / vim. If autocommand feature is enabled, it will display +autocmd.
- 插入模式完成帮助 –Execute :help ins-completion from vi / vim, to get quick help on insert mode completion features.
Recommended Reading
Vim 101 Hacks,作者:Ramesh Natarajan. I’m a command-line junkie. So, naturally I’m a huge fan of Vi and Vim editors. Several years back, when I wrote lot of C code on Linux, I used to read all available Vim editor tips and tricks. Based on my Vim editor experience, I’ve written Vim 101 Hacks eBook that contains 101 practical examples on various advanced Vim features that will make you fast and productive in the Vim editor. Even if you’ve been using Vi and Vim Editors for several years and have not read this book, please do yourself a favor and read this book. You’ll be amazed with the capabilities of Vim editor.
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
{ 12 comments… add one }
哇……………….Very Informative……
非常有用的提示… Thanks a lot
great!!
我学到另一个有用的提示!
Wow, I didn’t know about c-x c-f. That’s really useful. Thanks for sharing!
You broke down the types of VIM completion perfectly. What would complement this post well is a post on setting up language specific dictionaries for the dictionary completion. Thanks for saving ~30min of man page sifting. -
非常感谢所有有用的提示。
Hi Gurus,
Is there a way to view the file list in the current directory while still in vim. Something like‘ls’?
I found this very useful command for exploring files in the current directory in a horizontal while in Vim.
:Sexplore
@Uma you can use the built-in file explorer to view the current working directory by entering“:e .” (colon e period)
感谢Celsius1414的提示。
I can figure out why in the previous version ^P was working and doing autocompletion.
现在,它已损坏,无法执行^ x ^ p。
实际上,以上提供的说明均无效。
是否需要进行更改才能使其再次运行。
this makes me remember the SuperTab . it is using the ctrl-x ctrl-n in it`s script functions . woo . more clear in understanding SuperTab .