Respostas:
Você pode pressionar {count}Ctrl-G
:
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given.
Pressionar 1seguido de Ctrl+ Gmostra o caminho completo do arquivo atual. Se {count}
for maior que 1, o nome do buffer também será mostrado.
(Pressionar apenas Ctrl+ Gmostra o caminho relativo ao diretório de trabalho atual do Vim, conforme apontado por Jasper nos comentários.)
Você pode usar o seguinte comando no seu .vimrc
para adicionar o caminho completo à linha de status, para que esteja sempre visível:
set statusline+=%F
C-g
ser o padrão para 0C-g
e 2C-g
mostra também o número do índice do buffer (começando em 1).
1C-g
!
Registrar %
contém o nome do arquivo atual.
Os seguintes comandos podem ser inseridos para exibir as informações mostradas:
:echo @% |" directory/name of file
:echo expand('%:t') |" name of file ('tail')
:echo expand('%:p') |" full path
:echo expand('%:p:h') |" directory containing file ('head')
Se tudo o que se deseja é para exibir o nome do atual do arquivo, tipo :f
/ :ls
ou pressione Ctrl- g(para a imprensa caminho completo 1, em seguida, Ctrl- g).
No modo de inserção, digite Ctrl- e rdepois %para inserir o nome do arquivo atual.
Os seguintes comandos inserem linhas que consistem no caminho completo dos arquivos atuais e alternativos no buffer:
:put =expand('%:p')
:put =expand('#:p')
Fonte: Obtenha o nome do arquivo atual no vim wikia
Palavras-chave:
=expand...
expressões depois do Ctrl-R
modo de inserção.
Você pode usar :!ls %:p
para obter o caminho completo para o arquivo atual.
Dependendo do contexto ex, %
significará o conteúdo do arquivo ou o nome do arquivo. Ao descascar, representa o caminho do arquivo em relação ao diretório atual. O comando ' %:p
' adicionará o modificador de nome de arquivo do caminho completo a %
.
Existem alguns outros modificadores de nome de arquivo interessantes, como:
:~
: Obtenha o caminho do arquivo relativo ao diretório inicial (este não funcionou para mim por algum motivo):.
: Obtém o caminho do arquivo relativo ao diretório atual ( %
padrão):r
: Nome do arquivo raiz. O nome do arquivo sem a extensão.:e
: Extensão do arquivo.:h
: Divida /
e retorne a metade esquerda (ou seja, se eu estiver editando um arquivo no caminho /tmp/test.txt
e execute %:p:h
, retornará/tmp
:t
: Divida /
e retorne a metade direita (ou seja, se eu estiver editando um arquivo no caminho /tmp/test.txt
e execute %:p:t
, retornarátext.txt
Pode-se ver o diretório de trabalho atual com :pwd
. Obviamente, este é apenas o diretório, e não o nome do arquivo. Para obter o diretório de trabalho e o nome do arquivo, podemos usar o registro especial %
, que contém informações sobre o arquivo atual.
Se você usar :echo @%
, obterá o diretório e o nome do arquivo atual.
Se você usar :echo expand('%:p')
, obterá o caminho completo e o nome do arquivo atual. Isso é muito semelhante à resposta de CharlesL .
Lembro-me este, porém, porque se você usar a ajuda de vim :h expand
, então ele menciona que %
e %:p
e seus familiares.
Eu uso:
:f[ile]
Isso é :f
ou :file
.
Estou surpreso que ninguém mencione isso nas respostas, estou perdendo alguma coisa?
Para mostrar o caminho completo de todos os arquivos, incluindo links simbólicos resolvidos, use o seguinte.
:echo resolve(expand('%:p'))
Já existem respostas melhores, mas se (por algum motivo) você quiser usar o shell para obter o caminho completo do arquivo (isso é mais útil se você for realizar alguma outra operação no arquivo com o shell), Em um sistema semelhante ao Unix, você pode executar:
:!realpath %
ou:
:'<,'>!realpath %
para inserir o caminho no documento sobre a seleção atual.
O registro %
sempre contém o nome do arquivo. Um exemplo do mundo real pode ser se você estiver editando um arquivo de configuração, mas não tiver permissões de gravação (e não desejar executar o Vim como root), poderá editar o arquivo e, em seguida, execute:
:w ! sudo tee %
para salvar o arquivo (um pouco offtopic lá, mas é um bom exemplo do que mais pode ser feito com o %
registro).
realpath
não é POSIX, por isso pode ser mais simples:!echo "$PWD/%"
Você precisa definir sua linha de status para estar visível e também defini-la como caminho. Fiz isso permanentemente adicionando as duas linhas abaixo ao meu ~ / .vimrc
set laststatus=2
set statusline+=%F
Se você quiser apenas executar isso uma vez. Então, ao exibir um tipo de documento
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
Eu uso o vim airlines para isso e alguns recursos interessantes:
Você pode mostrar o caminho completo do arquivo que está editando na barra de título, o que é uma maneira conveniente de mostrar o caminho do arquivo na minha opinião.
Para fazer isso, você precisa definir a title
opção e titlestring
. Atual, estou usando as seguintes configurações:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Ele mostrará o nome do host do Vim, o caminho completo do arquivo e o tempo da última modificação do arquivo. Veja a figura abaixo para uma demonstração
Ctrl+G
mais como 'caminho em relação ao cwd do vim'?