VIM学习笔记 自动补全详解(Auto

您所在的位置:网站首页 使用自动补全命令名或文件名及文件目录 VIM学习笔记 自动补全详解(Auto

VIM学习笔记 自动补全详解(Auto

2023-11-06 18:54| 来源: 网络整理| 查看: 265

在插入模式下,利用自动补全(Insertion-Completion)功能,vim能够根据正在输入的字符,查找匹配的关键字并显示在弹出菜单(popup menu)中。通过选择匹配项,可以补全输入的部分关键字甚至整行文本。

Vim可以针对整行文字、关键字、字典、词典、标签、文件名、宏、命令和拼写等等进行补全。上节介绍了进入补全模式的操作方法;本节将详细介绍各种补全方式的特点。

整行补全(Whole line completion)

使用Ctrl-X Ctrl-L快捷键,将在'complet'选项定义的范围内查找匹配的行。假设在编辑网页文档时输入“当前文件内关键字补全(Keyword local completion)

使用Ctrl-X Ctrl-NCtrl-X Ctrl-P快捷键,将在当前文件中查找匹配的关键字。

此处的关键字,是指由'iskeyword'选项定义的字符串。默认情况下,iskeyword=@,48-57,_,192-255,认为由数字、字母和下划线组成的字符串为关键词。而句点和短横线,则被是为关键词之间的分隔符。您可以使用set iskeyword命令,来改变关键词的定义。

字典补全(Dictionary completion)

使用Ctrl-X Ctrl-K快捷键,将在'dictionary'选项定义的文件中查找匹配的关键词。

默认情况下'dictionary'选项为空。可以使用:set dictionary命令,来指定字典文件。

对于Linux系统,通常会查找/usr/dict/words或/usr/share/dict/words:

:set dictionary=/usr/dict/words,/usr/share/dict/words

对于Windows系统,如果已经安装了Cygwin,那么可以选择添加words软件包;然后根据您的Cygwin安装目录,来指定字典文件:

set dictionary=D:\cygwin64\usr\share\dict\linux.words

你也可以包括其它自定义的字典文件:

:set dictionary+=home/oualline/words

假设我们需要输入单词“acknowledged”,只需要首先输入“ack”三个字母,然后点击Ctrl-X Ctrl-K快捷键即可进行匹配:

词典补全(Thesaurus completion)

使用Ctrl-X Ctrl-T快捷键,将在'thesaurus'选项定义的文件中查找匹配的关键词。

默认情况下'thesaurus'选项为空。可以使用:set thesaurus命令,指定字典文件。

首先下载词典文件;然后解压缩后将其中的thesaurus.txt文件复制为~/.vim/thesaurus/english.txt;最后使用以下命令,来指定词典文件:

:set thesaurus=$HOME\vimfiles\thesaurus\english.txt

假设我们输入单词“enjoy”,然后点击Ctrl-X Ctrl-T快捷键,将会在词典文件中查找光标下的单词:

因为在词典文件中,每行会包含多个单词,所以将显示匹配行中的所有单词:

bask enjoy relish savor savour lie当前文件及其包含的文件关键字补全(Path pattern completion)

使用Ctrl-X Ctrl-I快捷键,将在当前文件以及由'include'选项指定的包含进来的文件中查找匹配的关键词。

很多编程语言都会提供从外部文件中调用代码的功能。比如,C语言的#include语法和Python的import语法等。Vim将根据文件类型所对应的'include'选项,来查找指定包含的文件。您可以使用:set include?命令,查看当前的'include'选项设置。

标签补全(Tag completion)

使用Ctrl-X Ctrl-]快捷键,将在当前文件以及由'include'选项指定的包含进来的文件中查找匹配的标签。

文件名补全(File name completion)

使用Ctrl-X Ctrl-F快捷键,可以匹配并补全文件名。

如果当前光标下的文本不包含任何路径信息,那么将显示当前目录下的文件列表。

如果当前光标下的文本包含任何(绝对或相对)路径信息,那么将显示其指定目录下的文件列表。

如果当前光标下的文本包含唯一的路径信息(比如“~”),那么将自动转换为目录的完整名称。

定义补全(Definition completion)

使用Ctrl-X Ctrl-D快捷键,将在当前文件以及由'include'选项指定的包含进来的文件中,查找由'define'选项定义的宏(definition/macro)。

'define'选项定义的正则表达式默认为“^\s*#\s*define”,将查找以“define”语法定义的宏。您可以使用:set define?命令,查看当前的'define'选项设置。

Vim命令补全(Command-line completion)

使用Ctrl-X Ctrl-V快捷键,将匹配Vim命令,以便在您开发Vim脚本时加速代码录入。

用户自定义补全(User defined completion)

使用Ctrl-X Ctrl-U快捷键,将由'completefunc'选项指定的自定义函数来进行匹配。

拼写建议补全(Spelling completion)

使用Ctrl-X Ctrl-S快捷键,将根据拼写检查给出补全建议。

请注意,为了使用拼写补全,请确保已使用以下命令,打开了拼写检查特性:

:set spell全能补全(Omni completion)

使用Ctrl-X Ctrl-O快捷键,将由'omnifunc'选项指定的自定义函数来进行匹配。Vim将通过$VIMRUNTIME/autoload/{filetype}complete.vim文件来实现全能补全特性,现在支持8种语言,包括C, (X)HTML with CSS, JavaScript, PHP, Python, Ruby, SQL和XML。

例如首先输入HTML标签的前几个字母“

建议将以下命令,加入vimrc配置文件的:filetype命令之后,以更好地利用全能补全功能:

if has("autocmd") && exists("+omnifunc") autocmd Filetype * \ if &omnifunc == "" | \ setlocal omnifunc=syntaxcomplete#Complete | \ endif endif

您可以使用:set omnifunc?命令,查看当前的'omnifunc'选项设置。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3