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

Edw*_*alk 8 java vim ctags

在我升级我的 Ubuntu 系统之前,这曾经有效:

ctags *.java
vim -t fooFunc
Run Code Online (Sandbox Code Playgroud)

这会带我去例如 Foo.fooFunc()

但是现在,vim 转到标准的“未找到标签”页面。

我现在必须这样做:

vim -t Foo.fooFunc()
Run Code Online (Sandbox Code Playgroud)

让它做正确的事。

更重要的是,^]根本不再起作用。

查看生成的标签文件,我看到如下条目:

Foo.fooFunc Foo.java  /^    private void fooFunc() {$/
Run Code Online (Sandbox Code Playgroud)

虽然旧版本的 ctags 生成的标签文件看起来像

fooFunc Foo.java  /^    private void fooFunc() {$/
Run Code Online (Sandbox Code Playgroud)

所以看起来 ctags 现在坏了。

有没有办法恢复到旧的行为?或者让 vim 尊重新格式?

小智 1

我正在使用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 {} \;
Run Code Online (Sandbox Code Playgroud)

我用findand是因为目录下--append有1000多个文件。.java

没有问题VIM - Vi IMproved 8.0