Respuestas:
Puedes presionar {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.
Al presionar 1seguido de Ctrl+ se Gmuestra la ruta completa del archivo actual. Si {count}
es mayor que 1, también se mostrará el nombre del búfer.
(Al presionar solo Ctrl+ se Gmuestra la ruta relativa al directorio de trabajo actual de Vim, como lo señaló Jasper en los comentarios).
Puede usar el siguiente comando en su .vimrc
para agregar la ruta completa a la línea de estado, para que siempre esté visible:
set statusline+=%F
C-g
es el valor predeterminado para 0C-g
, y además 2C-g
muestra el número de índice del búfer (a partir de 1).
1C-g
!
El registro %
contiene el nombre del archivo actual.
Se podrían ingresar los siguientes comandos para mostrar la información mostrada:
: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')
Si todo lo que se desea es mostrar el nombre del archivo actual, escriba :f
/ :ls
o presione Ctrl- g(para la ruta completa presione 1entonces Ctrl- g).
En el modo de inserción, escriba Ctrl- rluego %para insertar el nombre del archivo actual.
Los siguientes comandos insertan líneas que consisten en la ruta completa de los archivos actuales y alternativos en el búfer:
:put =expand('%:p')
:put =expand('#:p')
Fuente: Obtenga el nombre del archivo actual en vim wikia
Relacionado:
=expand...
expresiones después Ctrl-R
cuando se encuentra en modo de inserción, también.
Puede usar :!ls %:p
para obtener la ruta completa al archivo actual.
Dependiendo del contexto ex, %
significará el contenido del archivo o el nombre del archivo. Cuando se excluye, representa la ruta del archivo en relación con el directorio actual. El comando ' %:p
' agregará el modificador de nombre de archivo de ruta completa a %
.
Hay algunos otros modificadores de nombre de archivo interesantes como:
:~
: Obtenga la ruta del archivo relativa al directorio de inicio (este no me funcionó por alguna razón):.
: Obtener la ruta del archivo relativa al directorio actual ( %
predeterminado):r
: Nombre del archivo raíz. El nombre del archivo sin la extensión.:e
: Extensión del archivo.:h
: Se divide /
y devuelve la mitad izquierda (es decir, si estoy editando un archivo en una ruta /tmp/test.txt
y ejecuto %:p:h
, volverá/tmp
:t
: Dividir /
y devolver la mitad derecha (es decir, si estoy editando un archivo en una ruta de acceso /tmp/test.txt
y la ejecución %:p:t
volverátext.txt
Se puede ver el directorio de trabajo actual con :pwd
. Por supuesto, este es solo el directorio, y no el nombre del archivo. Para obtener el directorio de trabajo y el nombre de archivo, podemos usar el registro especial %
, que contiene información sobre el archivo actual.
Si lo usa :echo @%
, obtendrá el directorio y el nombre de archivo del archivo actual.
Si lo usa :echo expand('%:p')
, obtendrá la ruta completa y el nombre de archivo del archivo actual. Esto es muy similar a la respuesta de CharlesL .
Recuerdo éste, sin embargo, porque si se utiliza la ayuda de Vim :h expand
, a continuación, se menciona que %
y %:p
y sus familiares.
Yo suelo:
:f[ile]
Eso es :f
o :file
.
Me sorprende que nadie mencione esto en las respuestas, ¿me estoy perdiendo algo?
Para mostrar la ruta completa de todos los archivos, incluidos los enlaces simbólicos resueltos, use lo siguiente.
:echo resolve(expand('%:p'))
Hay muchas mejores respuestas, pero si (por alguna razón) desea utilizar el shell para obtener la ruta completa del archivo (esto es más útil si va a realizar alguna otra operación en el archivo con el shell), en un sistema similar a Unix podrías ejecutar:
:!realpath %
o:
:'<,'>!realpath %
para insertar la ruta en el documento sobre la selección actual.
Registrarse %
siempre contiene el nombre del archivo. Un ejemplo del mundo real podría ser si está editando un archivo de configuración, pero no tiene permisos de escritura (y no desea ejecutar Vim como root), puede editar el archivo y luego ejecutar:
:w ! sudo tee %
para guardar el archivo (un poco fuera de tema, pero es un buen ejemplo de lo que se puede hacer con el %
registro).
realpath
no es POSIX, por lo que podría ser más fácil de hacer:!echo "$PWD/%"
Debe configurar su línea de estado para que se pueda ver y también establecerla en la ruta. Lo hice permanentemente agregando las dos líneas a continuación a mi ~ / .vimrc
set laststatus=2
set statusline+=%F
Si solo quieres ejecutar eso una vez. Entonces cuando VIing un tipo de documento
:set laststatus=2 <ENTER>
:set statusline+=%F <ENTER>
Utilizo vim airline para eso y algunas características agradables:
Puede mostrar la ruta completa del archivo que está editando en la barra de título, que es una forma conveniente de mostrar la ruta del archivo en mi opinión.
Para hacerlo, debe configurar la title
opción y titlestring
. Actual Estoy usando la siguiente configuración:
set title
set titlestring=%{hostname()}\ \ %F\ \ %{strftime('%Y-%m-%d\ %H:%M',getftime(expand('%')))}
Mostrará el nombre de host de Vim, luego la ruta completa del archivo y seguido de la última hora de modificación del archivo. Vea la figura a continuación para una demostración
Ctrl+G
más como 'ruta relativa a cwd de vim'?