: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
Puede usar la expandfunción para expandirlos y obtener sus valores:
:let b:baz=expand('%:e')
Por ejemplo:
$ vim '+ exe ":normal i" . expand("%:t") . "^M" . expand("%:e")' +wqa foo.bar; cat foo.bar
foo.bar
bar
:t" Debe preceder a cualquiera: r o: e", pero :e"solo tiene sentido cuando se usa solo" Por el ejemplo, me pondría del lado de este último, pero interesante que los documentos se contradicen allí.
SnoringFrog
@SnoringFrog Creo que lo que significa es que no puedes hacer :e:t, pero :t:eestá permitido, si no tiene sentido.
Muru
Oh, ya veo cómo podría leerse de esa manera. Eso tiene sentido entonces.
SnoringFrog
10
Puedes usar expand(), ver:h expand()
En un script, puede hacer esto para obtener el nombre del archivo:
let file_name = expand('%:t:r')
Para obtener la extensión, puede hacer:
let extension = expand('%:e')
La expand()función puede expandir comodines y símbolos especiales . Aquí he usado %que se expande al nombre de archivo actual.
Respuestas:
De
:he filename-modifiers
:Puede usar la
expand
función para expandirlos y obtener sus valores:Por ejemplo:
fuente
:t
" Debe preceder a cualquiera: r o: e", pero:e
"solo tiene sentido cuando se usa solo" Por el ejemplo, me pondría del lado de este último, pero interesante que los documentos se contradicen allí.:e:t
, pero:t:e
está permitido, si no tiene sentido.Puedes usar
expand()
, ver:h expand()
En un script, puede hacer esto para obtener el nombre del archivo:
Para obtener la extensión, puede hacer:
La
expand()
función puede expandir comodines y símbolos especiales . Aquí he usado%
que se expande al nombre de archivo actual.fuente