Quando vou para o modo de comando e digito
:!mycommand %
Eu recebo meu comando executado no arquivo atual ( %
é expandido para o nome do arquivo atual). Existe uma construção semelhante que expande o nome completo do arquivo (com o caminho completo)?
Estou usando o Windows.
Respostas:
:!mycommand %:p
Palavras-chave:
:!cd %:p:h
fonte
:help filename-modifiers
:%p
é o caminho absoluto para o arquivo, e não o caminho relativo.:%p%h
é o caminho absoluto para o diretório pai do arquivo. Usar just%:h
pode resultar em um caminho relativo.cd ~ ; vim .vimrc
Vim :,:!echo %:h
deve exibir '.' para o caminho relativo.As outras duas respostas não funcionaram para mim (por algum motivo). No entanto, descobri que esse combo exibe o caminho completo quando digitado no modo Normal:
Pressione 1entãoCtrlG
Fonte: “ Obtenha o nome do arquivo atual ” no Wiki do Vim Tips. Veja também a
{count}CTRL-G
seção de:help CTRL-G
.fonte
:!
). Sua{count}CTRL-G
sequência é para exibir o caminho completo na interface do usuário.Anexar
:p
, por exemploE
%:p:h
fornecerá o caminho do diretório em que o arquivo reside.fonte
Para imprimir o nome do arquivo atual do vim:
Por exemplo (com uma função vim), para
resolve()
eexpand()
quaisquer links simbólicos para o caminho absoluto para o script atual<sfile>:p
(em vez de%:p
) e, em seguida,exec
parasource
ofnameescape
nome do arquivo -ed contido em uma variável vim local da funçãol:vimrcfilename
:Notas:
:help fnamemodify
%:p
(arquivo de buffer) /<sfile>:p
(arquivo de script)expand('<sfile>')
não funciona de dentro de uma funçãol:varname
não funciona; então,exec
- concatenação de strings - efnameescape
:messages
imprime as mais recentes mensagens 200 vim [erro,]Referências
fonte
Obtenha o nome do arquivo atual http://vim.wikia.com/wiki/Get_the_name_of_the_current_file
Set_working_directory_to_the_current_file http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file
fonte
Se você deseja usar o caminho completo no seu
vimrc
, você pode usar algo como isto:Isso fornecerá um caminho com barras invertidas no Windows.
fonte