vim的关键词的补全功能

vim的关键词的补全功能

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

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

关键字补全(Generic keyword completion)

使用Ctrl-NCtrl-P键,将按照'complete'选项指定的范围来搜索匹配的关键字。其默认值为:

:set complete=.,w,b,u,t,i

也就是说,默认将在以下来源中查找关键字:

  • 在当前缓冲区中进行查找;
  • 在其他窗口中进行查找;
  • 在其他已载入的缓冲区中进行查找;
  • 在没有载入缓冲区的文件中进行查找;
  • 在当前的标签(tags)列表进行查找;
  • 在由当前文件(如#include)包含进来的头文件中进行查找。

通过以下命令设置'complete'选项,可以定义自动补全的查找范围:

:set complete=key,key,key

命令中可能出现的key值如下:

.当前缓冲区
b缓冲区列表中的其它已载入的缓冲区
d当前文件以及由’include’选项指定的包含进来的文件,查找由’define’选项定义的宏(definition/macro)
i当前文件以及由’include’选项指定的包含进来的文件
k由’dictionary’选项指定的文件
kspell当前激活的拼写检查
k{dict}名为{dict}的文件
s当前激活的拼写检查
t标签(tags)文件
]标签(tags)文件
u缓冲区列表中的没有载入的缓冲区
w在其他窗口中载入的文件

使用以下命令,可以将字典文件添加到搜索列表中:

:set complete+=k

使用以下命令,可以将包含的文件从搜索列表中移除:

:set complete-=i

使用:h 'complete'命令,可以查看'complete'选项的帮助信息。

如果我们使用以下命令,设置了在查找过程中忽略大小写,那么在自动完成时,反而会造成区分大小写:

:set ignorecase

使用以下命令,则可以设置在自动完成时忽略大小写:

:set infercase

Ver: 2.0 | YYQ

^X模式(Ctrl-X Mode)

在插入模式下,输入Ctrl-X将进入^X模式(插入和替换模式的一个子模式)。屏幕底部将显示以下提示信息:

-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)

您可以选择以下自动补全方式:

  • Ctrl-] ,标签(tags)补全
  • Ctrl-D ,定义补全
  • Ctrl-E ,向上滚动文本
  • Ctrl-F ,文件名补全
  • Ctrl-I ,当前文件以及包含进来的文件补全
  • Ctrl-K ,字典补全
  • Ctrl-L ,整行补全
  • Ctrl-N ,当前文件内的关键字补全,向下选择匹配项
  • Ctrl-O ,全能补全
  • Ctrl-P ,当前文件内的关键字补全,向上选择匹配项
  • Ctrl-S ,拼写建议补全
  • Ctrl-U ,用户自定义补全
  • Ctrl-V ,Vim命令补全
  • Ctrl-Y ,向下滚动文本

假设在编辑main.c文件时,想要查找一个宏定义,那么首先按下ctrl-X键进入^X模式,然后再按下CTRL-D键,这时就会在弹出菜单中显示匹配项。

补全弹出菜单(popupmenu-completion)

随着弹出菜单的显示,将会自动应用第一个匹配项。

使用以下快捷键,可以在弹出菜单中移动和选择匹配项:

  • 使用Ctrl-NCtrl-P上下移动时,输入的文本也会随之变化。
  • 使用<Up><Down>上下移动时,输入的文字并不会变化。
  • 使用<PageUp><PageDown>键,可以在菜单中翻页。
  • 使用Ctrl-YEnter回车键,将使用当前匹配项完成补全。
  • 使用Ctrl-E键,将关闭菜单并退回到文字输入的原始状态。
  • 使用Esc键,将关闭弹出菜单,但会保留之前应用的匹配项。

请注意,如果您不希望应用任何匹配项完成补全时,应该使用Ctrl-E键,而不是使用Esc键来取消操作。

使用:h popupmenu-keys命令,可以查看关于弹出菜单快捷键的帮助信息。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绛洞花主敏明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值