0


Vim进阶技巧(四)——自动补全

Vim 的自动补全功能是编辑效率提升的利器,它可以帮助我们快速输入代码、文档和文本,减少重复劳动,提高工作效率。


1. 关键字自动补全

关键字自动补全是 Vim 最常用的自动补全方式,它可以扫描当前编辑会话中的所有文件、包含文件和标签文件,生成补全列表。通过输入单词的前几个字母,Vim 会根据这些信息过滤补全列表,并提供相关的建议。

触发方式:

  • <C-p><C-n>:在插入模式下触发普通关键字自动补全,并可以在补全列表中上下选择。
  • <C-x>系列组合键:触发其他类型的自动补全,例如:- <C-x><C-n>:当前缓冲区关键字自动补全- <C-x><C-i>:包含文件关键字自动补全- <C-x><C-]>:标签文件关键字自动补全- <C-x><C-k>:字典查找(后文细讲)- <C-x><C-l>:整行补全- <C-x><C-f>:文件名补全(后文细讲)- <C-x><C-o>:全能(Omni)补全

示例:

假设我们正在编辑一个包含以下代码的文件:

def sell_sea_shells():
    # ...

如果我们想输入

sell_sea_shells

,只需输入

s

并按下

<C-p>

<C-n>

,即可看到以下补全建议:

  • sell_sea_shells

选择并插入建议项后,即可完成输入。

2. 与自动补全的弹出式菜单进行交互

自动补全功能会显示一个弹出式菜单,我们可以通过以下命令与其交互:

  • <C-n><C-p>:选择补全列表中的下一项或上一项。
  • <Down><Up>:选择补全列表中的下一项或上一项。
  • <C-y>:确认选择并插入当前选中的项。
  • <C-e>:取消自动补全并恢复之前输入的内容。
  • <C-h><BS>:从当前选中的项中删除一个字符。
  • <C-l>:从当前选中的项中增加一个字符。
  • {char}:插入字符 {char} 并关闭自动补全菜单。

示例:

假设我们想输入

sell_sea_shells

,但不确定拼写是否正确。我们可以输入

sell_sea_

并按下

<C-x><C-k>

,查看字典中的补全建议:

  • sell_sea_shells

确认选择后,即可完成输入。

3. 关键字的来源

普通关键字自动补全会扫描以下来源生成补全列表:

  • 当前缓冲区:当前文件中的单词。
  • 包含文件:例如 C 语言中的 #include 指令指向的文件。
  • 标签文件:例如 ctags 生成的 tags 文件,包含函数名、类名等关键字。

我们可以通过

:set include?

命令查看 Vim 是否支持特定语言的包含文件。

4. 使用字典中的单词进行自动补全

字典自动补全会根据单词列表生成补全建议,可以通过以下方式激活:

  • 运行 :set spell 激活拼写检查功能。
  • 使用 :set dictionary 指定单词列表文件。

示例:

假设我们想输入

antidisestablishmentarianism

,可以输入

anti

并按下

<C-x><C-k>

,查看字典中的补全建议(如果能坚持一个个往下翻的话):

  • antidisestablishmentarianism

确认选择后,即可完成输入。

5. 自动补全文件名

文件名自动补全功能可以帮助我们快速输入文件名,可以通过

<C-x><C-f>

触发。

示例:

假设我们想输入

src="js/application.js"

,可以输入

js/ap

并按下

<C-x><C-f>

,即可完成操作。

如果不满足于vim自带的自动补全功能,我们还可以通过安装ale和supertab这两个插件来分别实现语法检查和更强大的补全功能。

call plug#begin()

Plug 'dense-analysis/ale'
Plug 'ervandew/supertab'

call plug#end()

最后

Tips:

新手一枚,如果觉得有疑问可以私信询问!

如果上述文章内容有讲得不正确或者不清楚的地方,欢迎留言评论区或者私信!

最后,能给我一个小小的赞或者关注吗😘

标签: vim

本文转载自: https://blog.csdn.net/2301_79273066/article/details/143276829
版权归原作者 Roadinforest 所有, 如有侵权,请联系我们删除。

“Vim进阶技巧(四)——自动补全”的评论:

还没有评论