Warum kann vim die Tags-Datei nicht sehen, obwohl sie sich im selben Verzeichnis befindet?

8

Ich bin im Ordner E:\dir\python_file.py, :pwdzeigt E:\dir. :e tagsöffnet die Tags-Datei, mit der ich generiert habe ctags -R.

Ich habe mich auf das tagseingestellt, was vernünftig erscheint: set tags?Shows set tags=./tags,tags;E:\. Verbose set tagszeigt nur mein vimrc.

Mit :tag method_namewirft zwei Fehler: E433: No tags fileund E426: tag not found: method_name.

Ich bin unter Windows.

TankorSmash
quelle
1
gvim -u NONE -U NONEfunktioniert es gut, also muss ich nur ein Plugin haben, das etwas Seltsames macht.
TankorSmash

Antworten:

8

wildignore hatte ein nachkommendes Komma.

Mein vimrc set wildignore=*.png,hatte ein nachkommendes Komma. Das Ändern hat set wildignore=*.pngmein Problem gelöst.

Es stellt sich heraus, dass das nach :seteiner Weile irgendwo ftplugin/python.vim funktioniert set wildignore+=*.pyc, weil es einfach set wildignore=*.png,nicht ausreicht, um die Tags zu brechen. Der Wildignore, den ich hatte, nachdem ich eine .py-Datei geöffnet hatte, war wildcard=*.png,,*.pyc, und wenn Sie vim mit öffnen vim -u NONE -U NONE, werden Tags kaputt gehen.

Vim muss eine Verkettung durchführen und ein Komma hinzufügen, wenn die Einstellung nicht leer ist, aber nicht nach einem vorhandenen nachgestellten Komma sucht. Ich glaube, ich habe gerade einen Fehler gefunden.


Es stellte sich heraus, dass es sich um einen Fehler handelte, der inzwischen behoben wurde .

TankorSmash
quelle
Einige Tests durchzuführen und nur ein vimrc mit zu verwenden, set wildignore=*.png,reicht nicht aus, um dies zu verursachen. Vielleicht bleibt das Parsen also mit einem nachgestellten Komma hängen ?
TankorSmash
Wir werden sehen, ob es sich wirklich um einen Fehler handelt. Code.google.com/p/vim/issues/detail?id=365
TankorSmash
Ich würde keinen Fehler behaupten. Diese Einstellung ist eine durch Kommas getrennte Liste. Da die Einstellung bereits ein nachfolgendes Komma enthält, befindet sich ein leeres Element in der Einstellung. (Ob ein leeres Element etwas bedeutet, hängt wahrscheinlich von der Einstellung ab). Wenn Sie +=eine Einstellung verwenden, bei der es sich um eine durch Kommas getrennte Liste handelt, wird immer ein Komma hinzugefügt, es sei denn, es ist leer, da Sie versuchen, der Liste etwas hinzuzufügen. Wenn Sie das vorhandene Komma verwenden, wird das leere Element entfernt. Welches ist wahrscheinlich unerwartet. ( :help :set+=) (Jedoch könnte der leere Gegenstand, der alles ignoriert, ein Fehler sein)
FDinoff
@FDinoff das ist ein guter Punkt, es könnte eine Einstellung geben, die ein leeres Element erwartet.
TankorSmash
@Viet Kein Problem Mann!
TankorSmash