Gibt es eine Möglichkeit, den gf
Befehl von vim (oder etwas Ähnliches) zum Erkennen eines +{cmd}
Arguments für Dateipfade zu erhalten?
Sie können vim starten und direkt zu einem Suchbegriff wechseln, indem Sie Folgendes tun:
$ vim +/coding_effort ~/project/file
Ebenso können Sie im Befehlsmodus Folgendes tun:
:e +/coding_effort ~/project/file
Ich mache mir oft Notizen und verweise auf andere Dateien wie diese:
For more info see +/coding_effort ~/project/file where there's a detailed discussion.
Ich würde gerne in der Lage sein +/coding_effort ~/project/file
, etwas auszuwählen , zu tippen gf
und vim das Richtige tun zu lassen.
key-bindings
command-line
search
Oliver Taylor
quelle
quelle
Antworten:
Nein, das erste Problem besteht darin, dass der erforderliche Abstand zwischen Befehl und Dateiname nicht Teil der
isfname'
Option ist. Wenn Sie ihn hinzufügen, werden die Dateiränder überhaupt nicht erkannt. Sie müssten entweder immer eine visuelle Auswahl (sowohl des Befehls als auch des Dateinamens) verwenden oder eine benutzerdefinierte Analyse in einergf
Befehlsüberladung implementieren .Zweitens
gf
erkennt das integrierte+{cmd}
System die Syntax nicht, sodass es wirklich keinen Weg gibt, Ihre eigene benutzerdefinierte Zuordnung zu implementieren. Dies ist sicherlich möglich (mit Funktionen wieexpand('<cfile>')
,getline()
etc.), aber nimmt wahrscheinlich ein paar Zeilen Vimscript Funktion.Wenn Sie eine andere Syntax (
filename:+command
) wählen , können Sie die ursprünglichengf
Befehle beibehalten und die Aufteilung in a implementieren:autocmd
, ähnlich wie es das sehr verwandte file: line- Plugin tutfilespec:linenumber
.quelle
Hier ist eine Funktion , die die eingebauten in replizieren sollte
gf
Verhalten und auch Scans für Arbeiten , beginnend mit+
der dann zu übergeben wird:edit
Die Kommentare sollten genauer erklären, was die Funktion macht ... Ich habe das am Morgen im Zug geschrieben und es (offensichtlich) nicht ausgiebig getestet ;-)
quelle
Eine Möglichkeit wäre (vorausgesetzt, das
+cmd file/path
ist ausgewählt), die Auswahl in ein Register zu ziehen und dieses Register dann in die Eingabeaufforderung einzufügen. Ich habe dies mit der folgenden Zuordnung gemacht:vnoremap gsf "0y:e <c-r>0<cr>
quelle
Diese Notation funktioniert (
file name
+trailing :
+/ pat /
)mit Funktion und Zuordnung unten.
quelle