Nombre para mostrar del archivo actual en vim?

Respuestas:

200

:f( :file) hará lo mismo que <C-G>. :f!dará una versión no truncada, si corresponde.

smilingthax
fuente
2
Bien, pero ¿es posible mostrarlo en la barra superior de la terminal? (o terminador) o en algún lugar sin escribir un comando.
eMarine
21
:f!no siempre funciona, presione 1, luego Ctrl-G para la ruta completa.
ives
1
¿Qué tal un camino completo? Cuando inicio vim desde ~/dev/file.pyy ejecuto :fdentro de vim, obtengo file.pycomo salida en lugar de ~/dev/file.py.
gxyd
1
@ives, ¿qué significan 1 y Ctrl + g por separado?
jobima
2
@jobima: se modifica ctrl-gpara devolver ruta + archivo. :fdevolverá el nombre del archivo sin ruta, como podría ctrl-g. Un 1antes ctrl-gmostrará la ruta y el nombre (aunque no necesariamente se expande). es decir, se mostrará en ~/dev/file.pylugar de file.py. 2seguido por ctrl-gincluirá que buffer: buf 1: "~/dev/file.py".
ives
71

ctrl+ glo hará.

Además, me gusta tener:

set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"

Que produce:

foo.c [C] [0x23] <código / foo.c 1, 1 2% de 50

Además, como alguien mencionado (pero ahora eliminado) %será reemplazado con el nombre de archivo actual. Por ejemplo:

:! echo "archivo actual:%"
archivo actual: foo.c
Presione ENTRAR o escriba comando para continuar
David Wolever
fuente
2
¿Qué significan las partes [C]y [0x23]?
LangeHaare
@LangeHaare Tipo de archivo y valor hexadecimal del carácter debajo del cursor respectivamente
'statusline'es una cadena, pero no incluye comillas en el conjunto: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linestambién necesita espacios escapados
D. Ben Knoble
18

establecer la línea de estado. más información con:help statusline

Estos comandos pueden ir en su archivo .vimrc, o puede ingresarlos como comandos mientras está en vim escribiendo ':' en modo comando.

Primero, establezca el último estado en 2 usando lo siguiente:

set laststatus=2

Luego establezca la línea de estado en% f para el nombre de archivo corto.

set statusline=%f

Para la ruta completa al archivo, use% F.

Brian Clements
fuente
E518: Opción desconocida:% f
Isius
He actualizado la respuesta, Isius. Esperemos que eso lo aclare más.
Brian Clements
5

:set title para mostrar el nombre del archivo en la barra de título de la ventana.

Ryan Le
fuente
5

¿Por qué tan complicado? Control-G hará el trabajo

sean
fuente
4

Para mostrar la ruta completa de cualquier archivo, incluidos los enlaces simbólicos resueltos, utilice lo siguiente.

:echo resolve(expand('%:p'))

Esto se puede agregar a su barra de estado agregando la siguiente línea a su ~./vimrc

set statusline +=%{resolve(expand('%:p'))}\ %*
joelostblom
fuente
2

Una de las sugerencias anteriores tuvo que cambiarse a

set statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ lines

para que funcione también

set laststatus=2

se utilizó.

cucujoidea
fuente
¡Bienvenido a Stack Overflow ! Probablemente debería tratarse de una edición o comentario sugerido sobre la (s) respuesta (s) relevante (s): aún no tiene la reputación suficiente para comentar o editar, pero pronto lo hará si hace buenas preguntas y escribe buenas respuestas. Mientras tanto, sugeriré las soluciones relevantes a los autores de las respuestas. ¡Buena atrapada!
D. Ben Knoble
1

Yo uso lo increíble vimrcde amix: https://github.com/amix/vimrc

Utiliza el lightline.vimpluging y muestra el nombre del archivo en la barra de estado.

Lo mejor de usar amix/vimrces que este complemento se encarga de la mayor parte de la personalización, es muy estable y ha sido probado por miles de personas, como puedes comprobar observando la cantidad de estrellas github ... y los problemas poco frecuentes.

También se actualiza con bastante frecuencia.

PD: no es el autor de ninguno de los complementos ... solo un fan :)

alpha_989
fuente
1

También necesitaba poner esto en mi archivo .vimrc:

set noruler
set laststatus=2

Entonces podría poner algo como set statusline="%f%m%r%h%w [%Y] [0x%02.2B]%< %F%=%4v,%4l %3p%% of %L"en mi archivo .vimrc y después de reiniciar mi terminal, la línea de estado se muestra correctamente.

Alex Fenwood Hughes
fuente
'statusline'es una cadena, pero no incluye comillas en el conjunto: set statuslineset statusline=%f%m%r%h%w\ [%Y]\ [0x%02.2B]%<\ %F%4v,%4l\ %3p%%\ of\ %L\ linestambién necesita espacios escapados
D. Ben Knoble