Vim springt nicht zur korrekten Zeile des Tags, das in ausgewählt wurde: tselect match list

456
georgexsh

Wenn ich tippe :tselect pool, werden Übereinstimmungen wie erwartet aufgelistet:

 # pri kind tag file 1 F C m poll pika/adapters/select_connection.py line:238 class:IOLoop def poll(self): 2 F C m poll pika/adapters/select_connection.py line:544 class:_PollerBase def poll(self): 3 F C m poll pika/adapters/select_connection.py line:682 class:SelectPoller def poll(self): 

Unabhängig davon, welche Nummer ich wähle, vim springt immer zur Zeile der ersten Wahl, in diesem Fall Zeile 238. Ich habe :tn/ versucht :tp, die Tag-Nummer ändert sich, aber immer noch in derselben Zeile.

entsprechende Zeilen in tagsDatei:

poll pika/adapters/select_connection.py /^ def poll(self):$/;" m line:238 class:IOLoop poll pika/adapters/select_connection.py /^ def poll(self):$/;" m line:544 class:_PollerBase poll pika/adapters/select_connection.py /^ def poll(self):$/;" m line:682 class:SelectPoller 

mein ~/.ctag:

--recurse --links=no --fields=+n 

ctags version ist Exuberant Ctags 5.8.

0

1 Antwort auf die Frage

1
georgexsh

Laut einer anderen Antwort auf SO sollte ich mit vim arbeiten ctags -noder --excmd=number, nachdem ich diese Option hinzugefügt habe ~/.ctags, es jetzt gut funktioniert.

--excmd=numberforce ctags verwendet nur Zeilennummern in der Tag-Datei zum Lokalisieren, auch wenn eine line:Spalte vorhanden ist, aber vim kann sie anscheinend nicht erkennen.

So tagssieht es jetzt aus:

poll pika/adapters/select_connection.py 238;" m line:238 class:IOLoop poll pika/adapters/select_connection.py 544;" m line:544 class:_PollerBase poll pika/adapters/select_connection.py 682;" m line:682 class:SelectPoller 

Der Hauptunterschied ist die dritte Spalte, die vim genannt hat :

Der Ex-Befehl, mit dem der Cursor auf dem Tag positioniert wird. Es kann ein beliebiger Ex-Befehl sein, es gelten jedoch Einschränkungen (siehe | tag-security |). Posix erlaubt nur Zeilennummern und Suchbefehle, die meistens verwendet werden.

Ich glaube, das ist der Grund, warum Pattern nicht funktioniert.