这用过的在我升级我的 Ubuntu 系统之前要这样做:
ctags *.java
vim -t fooFunc
然后我会想到例如Foo.fooFunc()
但是现在,vim 转到标准的“未找到标签”页面。
我现在要做的:
vim -t Foo.fooFunc()
让它做正确的事。
更重要的是,^]不再起作用。
查看生成的标签文件中,我看到如下条目:
Foo.fooFunc Foo.java /^ private void fooFunc() {$/
虽然标签由旧版本的 ctags 生成的文件看起来是这样的
fooFunc Foo.java /^ private void fooFunc() {$/
因此看起来 ctags 现在已经损坏了。
有没有办法恢复到以前的行为?或者让 vim 遵循新格式?
答案1
我用通用 Ctags使用命令
ctags --languages=java -R ./src
一开始我很困惑,因为 osx 上预装了不同版本的 ctags。结果我必须先用 universal-ctags 替换它
brew install --HEAD universal-ctags/universal-ctags/universal-ctags
答案2
我正在使用Exuberant Ctags 5.8
并运行以下脚本来tags
为我的 java 目录生成一个文件:
#!/bin/bash
# zero out any previously generated tags file
# an alternative way to achieve this is by `> tags`
truncate --size 0 tags
find . -name \*.java -exec ctags --append {} \;
我使用find
and因为目录中--append
有超过 1000 个文件。.java
没有问题VIM - Vi IMproved 8.0
。