: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
Você pode usar a expandfunção para expandi-los e obter seus valores:
:let b:baz=expand('%:e')
Por exemplo:
$ vim '+ exe ":normal i" . expand("%:t") . "^M" . expand("%:e")' +wqa foo.bar; cat foo.bar
foo.bar
bar
:t" Deve preceder qualquer: r ou: e", ainda :e"só faz sentido quando usado sozinho". Pelo exemplo, eu ficaria do lado do último, mas interessante que os documentos se contradizem lá.
precisa saber é o seguinte
@SnoringFrog Acredito que isso significa que você não pode fazer :e:t, mas :t:eé permitido, se não tiver sentido.
Muru
Oh, eu vejo como isso poderia ser lido dessa maneira. Isso faz sentido então.
SnoringFrog
10
Você pode usar expand(), veja:h expand()
Em um script, você pode fazer isso para obter o nome do arquivo:
let file_name = expand('%:t:r')
Para obter a extensão que você pode fazer:
let extension = expand('%:e')
A expand()função pode expandir curingas e símbolos especiais . Aqui eu usei o %que se expande para o nome do arquivo atual.
Respostas:
De
:he filename-modifiers
:Você pode usar a
expand
função para expandi-los e obter seus valores:Por exemplo:
fonte
:t
" Deve preceder qualquer: r ou: e", ainda:e
"só faz sentido quando usado sozinho". Pelo exemplo, eu ficaria do lado do último, mas interessante que os documentos se contradizem lá.:e:t
, mas:t:e
é permitido, se não tiver sentido.Você pode usar
expand()
, veja:h expand()
Em um script, você pode fazer isso para obter o nome do arquivo:
Para obter a extensão que você pode fazer:
A
expand()
função pode expandir curingas e símbolos especiais . Aqui eu usei o%
que se expande para o nome do arquivo atual.fonte