如何使用 ctags 和 vim 跳转到 java 方法

如何使用 ctags 和 vim 跳转到 java 方法

用过的在我升级我的 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 {} \;

我使用findand因为目录中--append有超过 1000 个文件。.java

没有问题VIM - Vi IMproved 8.0

相关内容