vim怎么做完整的自动补全

vim怎么做完整的自动补全,第1张

vim怎么做完整的自动补全的解答如下

首先下载一个插件:ctags

输入:sudo apt-get install ctags

进入你需要的关键词所在目录。

举个例子,我需要wordpress的相关函数。则进入wordpress的目录。

输入:ctags -R

这样就可以扫描整个目录的文件中的关键字。

同时会输出个tags文件。

将tags文件移动到你便使用vim编辑文件的位置。如我需要为wordpress制作个主题,则将tags移动到新建的主题目录下。

现在在这个目录下使用vim就可以自动补全tags中的关键字了。

使用快捷键ctrl+n就可以自动补全了。

假设你的需求是这样的:输入左括号或引号(包括({['"),结果是成对出现的,并且光标自动移动到中间。

根据这个需求就可以写个配置了:

inoremap ( ()<ESC>i

inoremap { {}<ESC>i

inoremap [ []<ESC>i

inoremap ' ''<ESC>i

inoremap " ""<ESC>i

把这个配置放到~/.vimrc即可,重启vim即可。

有问题欢迎追问评论!!!

如果你不能补全所有文件,请看'complete'选项的设置

命令行输入  :set complete?

然后对照下面的说明,看看到底是怎么回事?

'complete' 'cpt'    字符串    (缺省: ".,w,b,u,t,i")

            局部于缓冲区

            {Vi 无此功能}

    本选项控制关键字补全 |ins-completion| 在使用 CTRL-P 或 CTRL-N 时如何工

    作,也用于整行的补全 |i_CTRL-X_CTRL-L|。它指示补全的类型和需要扫描的位

    置。这是一个逗号分隔的标志位的列表:

    .    扫描当前缓冲区 (忽略 'wrapscan')

    w    扫描其它窗口的缓冲区

    b    扫描其它缓冲区列表里载入的缓冲区

    u    扫描缓冲区列表里卸载的缓冲区

    U    扫描不在缓冲区列表里的缓冲区

    k    扫描 'dictionary' 选项给出的文件

    kspell  使用当前激活的拼写检查 |spell|

    k{dict}    扫描文件 {dict}。可以给出多个 "k" 标志位,也可以使用模式。比

        如: >

            :set cpt=k/usr/dict/*,k~/spanish

<    s    扫描 'thesaurus' 选项给出的文件

    s{tsr}    扫描文件 {tsr}。可以给出多个 "s" 标志位,也可以使用模式。

    i    扫描当前文件和包含的头文件

    d    扫描当前文件和包含的头文件里的定义名或宏 |i_CTRL-X_CTRL-D|

    ]    标签补全

    t    等同于 "]"

    卸载的缓冲区不会载入,因而它们的自动命令 |:autocmd| 也不会执行,这使得

    有些文件的补全效果出人意表 (比如 gzipped 压缩的文件)。整行补全也不会扫

    描卸载的缓冲区。

    缺省是 ".,w,b,u,t,i",它意味着扫描:

       1. 当前缓冲区

       2. 其它窗口的缓冲区

       3. 其它载入的缓冲区

       4. 卸载的缓冲区

       5. 标签

       6. 头文件

    如你所知,CTRL-N 和 CTRL-P 可用于完成任何基于 'iskeyword' 的扩展 (比如

    字典 |i_CTRL-X_CTRL-K|、头文件里的模式 |i_CTRL-X_CTRL-I|、标签

    |i_CTRL-X_CTRL-]| 和普通的扩展)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/6226602.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-18
下一篇2023-03-18

发表评论

登录后才能评论

评论列表(0条)

    保存