Cuando voy al modo de comando y escribo
:!mycommand %
Obtuve mi comando ejecutado en el archivo actual ( %se expande al nombre del archivo actual). ¿Existe una construcción similar que expande el nombre completo del archivo (con la ruta completa)?
Estoy usando Windows

Respuestas:
:!mycommand %:pRelacionado:
:!cd %:p:hfuente
:help filename-modifiers:%pes la ruta absoluta al archivo, en lugar de la ruta relativa.:%p%hes la ruta absoluta al directorio padre del archivo. Usar solo%:hpuede dar como resultado una ruta relativa.cd ~ ; vim .vimrcVim:,:!echo %:hdebería mostrar '.' para el camino relativo.Las otras dos respuestas no me funcionaron (por alguna razón). Sin embargo, descubrí que este combo muestra la ruta completa cuando se escribe en modo Normal:
Presione 1entoncesCtrlG
Fuente: " Obtener el nombre del archivo actual " en el Wiki de Vim Tips. Ver también la
{count}CTRL-Gsección de:help CTRL-G.fuente
:!). Su{count}CTRL-Gsecuencia es para mostrar la ruta completa en la interfaz de usuario.Anexar
:p, p. Ej.Y
%:p:hle dará la ruta del directorio en el que reside el archivo.fuente
Para imprimir el nombre de archivo vim actual:
Por ejemplo (con una función vim), a
resolve()yexpand()cualquier enlaces simbólicos a la ruta absoluta al script actual<sfile>:p(en lugar de%:p) y, a continuación,execasourcelafnameescapenombre de archivo -ed contenida en una variable vim-función locall:vimrcfilename:Notas:
:help fnamemodify%:p(archivo de búfer) /<sfile>:p(archivo de script)expand('<sfile>')no funciona desde una funciónl:varnameno funciona; entonces,execconcatenación de cadenas yfnameescape:messagesimprime los mensajes más recientes de 200 vim [error,]Referencias
fuente
Obtenga el nombre del archivo actual 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
fuente
Si desea usar la ruta completa en su
vimrc, puede usar algo como esto:Esto le dará una ruta con barras invertidas en Windows.
fuente