:t Tail of the file name (last component of the name). Must
precede any :r or :e.
:r Root of the file name (the last extension removed). When
there is only an extension (file name that starts with '.',
e.g., ".vimrc"), it is not removed. Can be repeated to remove
several extensions (last one first).
:e Extension of the file name. Only makes sense when used alone.
When there is no extension the result is empty.
When there is only an extension (file name that starts with
'.'), the result is empty. Can be repeated to include more
extensions. If there are not enough extensions (but at least
one) as much as possible are included.
Examples, when the file name is "src/version.c", current dir
"/home/mool/vim":
:p /home/mool/vim/src/version.c
:t version.c
:t:r version
:e c
Mit der expandFunktion können Sie diese erweitern und ihre Werte erhalten:
:let b:baz=expand('%:e')
Beispielsweise:
$ vim '+ exe ":normal i" . expand("%:t") . "^M" . expand("%:e")' +wqa foo.bar; cat foo.bar
foo.bar
bar
:tMsgstr " Muss vor jedem: r oder: e stehen," macht aber :e"nur Sinn, wenn es alleine verwendet wird". An dem Beispiel würde ich mich für letzteres einsetzen, aber interessant, dass sich die Dokumente dort widersprechen.
SnoringFrog
@ SnoringFrog Ich glaube, was es bedeutet, dass Sie nicht tun können :e:t, aber :t:eerlaubt ist, wenn bedeutungslos.
muru
Oh, ich verstehe, wie man das so lesen kann. Das macht dann Sinn.
SnoringFrog
10
Sie können verwenden expand(), sehen:h expand()
In einem Skript können Sie folgendermaßen vorgehen, um den Dateinamen abzurufen:
let file_name = expand('%:t:r')
Um eine Erweiterung zu erhalten, können Sie Folgendes tun:
let extension = expand('%:e')
Die expand()Funktion kann Platzhalter und spezielle Symbole erweitern . Hier habe ich verwendet, %die auf den aktuellen Dateinamen erweitert.
Antworten:
Von
:he filename-modifiers
:Mit der
expand
Funktion können Sie diese erweitern und ihre Werte erhalten:Beispielsweise:
quelle
:t
Msgstr " Muss vor jedem: r oder: e stehen," macht aber:e
"nur Sinn, wenn es alleine verwendet wird". An dem Beispiel würde ich mich für letzteres einsetzen, aber interessant, dass sich die Dokumente dort widersprechen.:e:t
, aber:t:e
erlaubt ist, wenn bedeutungslos.Sie können verwenden
expand()
, sehen:h expand()
In einem Skript können Sie folgendermaßen vorgehen, um den Dateinamen abzurufen:
Um eine Erweiterung zu erhalten, können Sie Folgendes tun:
Die
expand()
Funktion kann Platzhalter und spezielle Symbole erweitern . Hier habe ich verwendet,%
die auf den aktuellen Dateinamen erweitert.quelle