vim 快捷键_VIM学习笔记 自动补全详解(Auto-Completion Detail)
在插入模式下,利用自动补全(Insertion-Completion)功能,vim能够根据正在输入的字符,查找匹配的关键字并显示在弹出菜单(popup menu)中。通过选择匹配项,可以补全输入的部分关键字甚至整行文本。
Vim可以针对整行文字、关键字、字典、词典、标签、文件名、宏、命令和拼写等等进行补全。上节介绍了进入补全模式的操作方法;本节将详细介绍各种补全方式的特点。
整行补全(Whole line completion)
使用Ctrl-X Ctrl-L快捷键,将在'complet'选项定义的范围内查找匹配的行。假设在编辑网页文档时输入“<h”,然后调用整行匹配,将会显示所有以“h”开头的HTML标签。
当前文件内关键字补全(Keyword local completion)
使用Ctrl-X Ctrl-N或Ctrl-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:cygwin64usrsharedictlinux.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=$HOMEvimfilesthesaurusenglish.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标签的前几个字母“<p cl”,然后按下Ctrl+X和Ctrl+O键,将根据语法显示匹配菜单:
建议将以下命令,加入vimrc配置文件的:filetype命令之后,以更好地利用全能补全功能:
if has("autocmd") && exists("+omnifunc")
autocmd Filetype * if &omnifunc == "" | setlocal omnifunc=syntaxcomplete#Complete | endif
endif
您可以使用:set omnifunc?
命令,查看当前的'omnifunc'选项设置。
vim 快捷键_VIM学习笔记 自动补全详解(Auto-Completion Detail)相关推荐
- vim 快捷键_VIM学习笔记 环绕字符编辑(surround)
surround 插件可以快速编辑围绕在内容两端的字符(pairs of things surrounding things),比如成对出现的括号.引号,甚至HTML/XML标签等. 安装配置 推荐您 ...
- 【学习笔记】线段树详解(全)
[学习笔记]线段树详解(全) 和三个同学一起搞了接近两个月的线段树,头都要炸了T_T,趁心态尚未凉之前赶快把东西记下来... [目录] [基础]作者:\((Silent\)_\(EAG)\) [懒标记 ...
- [原创]Saltstack学习笔记:命令参数详解以及配置文件说明
很久没有更新saltstack的文章了,今天还是来更新一点,又开始对saltstack复习了一下. 前边写了一点<saltstack入门概述(1)>以及<Saltstack如何安装( ...
- Laravel学习笔记汇总——Collection方法详解
## Laravel学习笔记汇总--Collection方法详解 本文参考:https:// laravel.com/docs/8.x/collections // 返回整个底层的数组 collect ...
- java 检查bytebuf长度_Java学习笔记16-Netty缓冲区ByteBuf详解
Java学习笔记16-Netty缓冲区ByteBuf详解 Netty自己的ByteBuf ByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的. JDK Byt ...
- spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...
- java输入代码快捷键是什么_eclipse自动补全代码快捷键是什么
eclipse自动补全代码快捷键是空格键和回车键,补全代码功能需设置"Auto Activation triggers for java",代码提示选项补充完整后,输入关键字即可得 ...
- vim补全html标签,vim括号引号html标签自动补全
(我现在已经不用下面方法了,可使用 xptemplate插件 http://blog.csdn.net/zcube/article/details/42525973) 问题:怎样在vim中实现花括号引 ...
- 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结
文章目录 写在前面 内置补全命令及记忆 希腊字母的补全 规则 对应表 小写希腊字母 大写希腊字母 作为变量的希腊字母 常用数学命令(字体)的补全 常用环境的补全 自定义补全命令 结语 参考文献 写在前 ...
最新文章
- java中解决Launch configuration TimezoneDump references non-existing project问题
- Classical Inheritance in JavaScript
- 计算机教师研修计划书,教师信息技术个人研修计划书
- Linux 死机时抢救措施
- 2017-9-5-Java 泛型
- 【OpenCV入门指南】第一篇 安装OpenCV
- case与bug的对应关系
- eclipse中如何搜索带\的字串
- MATLAB遗传算法调试
- 联想服务器修改mac,修改Thinkpad E420的无线网卡MAC地址?
- cyj等于什么英语单词_英语参考单词读写规律大全.doc
- 2021-2025年中国电源管理IC(PMIC)行业市场供需与战略研究报告
- matlab2017百度百科,沸石粉里的吸蓝量是什么意思
- php中文网灭绝师太照片,灭绝师太照片欣赏
- pr cpu100%_PR插件NewBlueFX Titler Pro6.0安装教程
- 第二章 实例研究:设计一个文档编辑器--《设计模式-可复用面向对象软件的基础》Erich Gamma
- amcharts4 总结
- android 九宫格带删除,Android--选择多张图片,支持拖拽删除、排序、预览图片
- 虚拟机与宿主机网络互通配置
- 新年最大空投,好东西一起分享
热门文章
- 台大李宏毅Machine Learning 2017Fall学习笔记 (6)Logistic Regression
- tensorflow学习之常用函数总结:tensorflow.cast()函数
- Matlab之数据的输入与输出
- Anaconda创建、激活、退出、删除虚拟环境
- six.move 的作用
- Win10环境下,SecureCRT连接不上虚拟机,显示连接超时Connection time out. 而且网络连接里没有网络适配器VMnet1和VMnet8,互ping也不同。...
- Codeforces 869C The Intriguing Obsession
- 给内联元素设置宽高的几种方式
- Promise 必知必会(十道题)
- Ionic常见问题--插件无法下载:npm ERR打包sha1错误