In Vim springen, um zu funktionieren

707
mrQWERTY

Ich habe ctags und springe zu Funktionen, indem ich meinen Cursor auf eine Funktion stelle und Strg drücke]. Ich finde das jedoch manchmal unbequem.

Wenn sich zum Beispiel mein Cursor nicht in der Nähe einer Funktion befindet, zu der ich springen möchte, wäre das frustrierend.

Gibt es einen Befehl in ctags oder vim, um einfach automatisch zu einer Funktion zu springen, indem Sie den Namen eingeben und eine Taste drücken? Es wäre viel besser, wenn es unscharf wäre und die Funktion für Sie vorhersagt. Wenn ich beispielsweise zu einer aufgerufenen Funktion gehen möchte, würde ich diese Funktion process_input()eingeben und drücken goder etwas drücken .

0

2 Antworten auf die Frage

5
garyjohn

Der :tag <identifier>Befehl entspricht, Ctrl-]wenn der Cursor über <Bezeichner> steht. Sehen

:help CTRL-] 

Sie können also tippen

:tag process_input 

zu dem Tag dieser Funktion springen. Außerdem verwendet der :tagBefehl die Tabulatorvervollständigung, sodass Sie stattdessen eingeben können

:tag pro<Tab> 

und Vim wird so viel wie möglich von diesem Namen abschließen. Drücken Sie erneut die Tabulatortaste, und Vim durchläuft die Übereinstimmungen. Wenn Sie lieber eine Liste möglicher Übereinstimmungen anzeigen möchten, können Sie die Option "Wildmode" auf etwas anderes setzen, z.

:set wildmode=longest,list 

Sehen

:help 'wildmode' 
Auch `: tag / inp`verwendet die Regex-Vervollständigung anstelle der standardmäßigen Ganzwortvervollständigung, wenn Sie sich nur einen Teil eines Namens merken oder wenn zu viele Symbole dasselbe Präfix verwenden. romainl vor 9 Jahren 0
1
Heptite

Sie können mit dem :tagBefehl zu einem bestimmten bekannten Tag springen . Zum Beispiel:

:tag process_input