3

次のようなプロジェクトがあります。

/dir 
   dir1
   dir2 -> symbolic-link to /otherdir
       file1
   tags *
  • vimに、dir1とdir2のファイルのタグを含むこのタグファイルを使用してもらいたいです。file1 を編集すると、VIM は正しいタグ ファイルを見つけることができません。

.vimrc に次の設定があります。

set tags=tags;/

VIM にタグへの絶対パスを明示的に伝えずに、このファイル構造を維持する方法はありますか?

4

3 に答える 3

2

同じ ctags に他のタグを追加できます。たとえば、dir1 内のすべてに ctag を付けたい場合は、次のように実行します。

ctags -R *

そして、ディレクトリ2から他のタグを追加したい場合:

ctags -R -a ~/path/to/dir2/*

-a は追加用です。

vim をどこで開いても常に ctags を保持するには、次の行を my に追加します.vimrc

set tags+=./tags;$HOME

これにより、現在のディレクトリでタグが検索され、ルートフォルダー以下まで検索したい場合は、ホームフォルダーに再帰的に移動し$HOMEます//path/to/root/project/

于 2012-06-28T18:41:59.907 に答える
1

私のこの行~/.vimrcとあなたのものと同様のレイアウトでは、tags関連する機能 ( :ts<C-]>など) はtags、 のルートにある同じファイルを使用しdirdir1dir2.

set tags=./tags,tags;$HOME

tagsファイルは、最初に現在のファイルのディレクトリで検索され、次に で検索され、次ににcwd到達するまで上に向かって検索されます$HOME

:echo tagfiles()あなたが編集しているときは何と言っていますfile1か?ここでそれは言い['/home/romainl/Desktop/dir0/tags']ます。

編集

シンボリックリンクを投げても何も変わらないようです。

終了編集

于 2012-06-28T19:26:05.970 に答える
0

私はそれが正しいディレクトリにいることの問題だと思います。このプロジェクトで作業を開始するときは、を使用:cd /dirしてタグファイルのあるディレクトリに移動し、autochdirオプションがオフになっていることを確認してください。次に、dir2内のファイルを編集すると、作業ディレクトリは引き続きdirになり、同じタグファイルが検索されます。

一方、作業ディレクトリとしてdir / dir2を使用することになった場合、それは実際には/ otherdirにいることを意味するため、Vimがそこからタグファイルを探すと、そのディレクトリでそれを見つけることができません。または/で。それが今あなたに起こっていることだと思います。

:pwdシェルの場合と同様に、コマンドを使用していつでも現在のディレクトリを確認できます。

于 2012-06-28T17:34:21.673 に答える