Gibt es eine Möglichkeit, den Namen und die Erweiterung einer Datei mithilfe von Vimscript abzurufen?
Wenn ja, möchte ich den Namen und die Erweiterung separat.
Gibt es eine Möglichkeit, den Namen und die Erweiterung einer Datei mithilfe von Vimscript abzurufen?
Wenn ja, möchte ich den Namen und die Erweiterung separat.
Antworten:
: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 expand
Funktion 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
: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:
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.