C'è un modo per ottenere il nome e l'estensione di un file usando vimscript?
In tal caso, vorrei il nome e l'estensione separatamente.
C'è un modo per ottenere il nome e l'estensione di un file usando vimscript?
In tal caso, vorrei il nome e l'estensione separatamente.
Risposte:
: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
È possibile utilizzare la expand
funzione per espanderli e ottenere i loro valori:
:let b:baz=expand('%:e')
Per esempio:
$ vim '+ exe ":normal i" . expand("%:t") . "^M" . expand("%:e")' +wqa foo.bar; cat foo.bar
foo.bar
bar
:t
" Deve precedere qualsiasi: r o: e", tuttavia :e
"ha senso solo se usato da solo". Con l'esempio, mi schiererei con quest'ultimo, ma è interessante notare che i documenti si contraddicono lì.
:e:t
, ma :t:e
è permesso, se insignificante.
Puoi usare expand()
, vedi:h expand()
In uno script puoi farlo per ottenere il nome file:
let file_name = expand('%:t:r')
Per ottenere l'estensione puoi fare:
let extension = expand('%:e')
La expand()
funzione può espandere caratteri jolly e simboli speciali . Qui ho usato %
che si espande all'attuale nome file.