Vim 自动生成 ctag

标签 vim autocomplete ctags

现在我的 .vimrc 中有以下内容:

au BufWritePost *.c,*.cpp,*.h !ctags -R

这有一些问题:

  1. 速度很慢 - 为自上次标记生成以来未更改的文件重新生成标记。
  2. 写入文件后,我必须再次按 Enter 按钮,因为不可避免地会出现“按 Enter 或键入命令继续”的情况。

当您将这两个问题结合起来时,我最终会过早地按下额外的 Enter(在 ctags -R 完成之前),然后看到烦人的错误消息,并且必须再次按下 Enter。

我知道这听起来没什么大不了的,但是考虑到我在某一天写入的文件量,这往往会变得非常烦人。一定有更好的方法来做到这一点!

最佳答案

au BufWritePost *.c,*.cpp,*.h 无声! !ctags -R &

缺点是在完成之前您不会获得有用的标签文件。只要您使用的是 *nix 系统,在前面的 ctags 完成之前进行多次写入应该是可以的,但您应该对此进行测试。在 Windows 系统上,它不会将其放在后台,并且会提示文件被锁定,直到第一个 ctags 完成(这不会在 vim 中引起问题,但最终会得到一个稍微过时的标签文件) )。

请注意,您可以按照 tonylo 的建议使用 --append 选项,但随后您必须禁用 tagbsearch,这可能意味着标签搜索需要更长的时间,具体取决于标记文件的大小。

关于Vim 自动生成 ctag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155449/

相关文章:

angular - 如何在焦点上显示自动完成选项

java - 执行 Java 自动导入的控制台命令

c++ - 删除调试语句的命令

Vim:如何删除嵌套 block 中的右方括号

ios - Xcode 自动完成建议 NSArray getter 神秘的 "songsAtIndexes"

c++ - 如何修改 CTAGS 生成的标记文件的默认分隔符

ctags 正则表达式用于一行中的多个声明

windows-10 - Windows上的通用标签

vim - 如何使用 MIT-Scheme 为 slimv 启动 REPL

Go 的 Vim makeprg 和错误格式