¿Cómo mostrar el nombre del archivo que estoy editando actualmente con vim en el título del terminal?


20

Estoy editando múltiples archivos ubicados en la misma carpeta, en múltiples pestañas, en una sola terminal.

pwd(el directorio en el que estoy trabajando actualmente) se muestra en la parte superior del encabezado del terminal, pero no el nombre del archivo que estoy editando. Se vuelve confuso cuando se trabaja con varios archivos en el mismo directorio.

Cómo mostrar el nombre del archivo actual en la parte superior del terminal además de pwd.

Estoy corriendo vimen un bash shell en gnome-terminal, 12.04 LTS.


1
¿Edición usando qué editor? ¿En que caparazón? ¿Qué emulador de terminal?
terdon

@terdon - Edición usando Vim, bash Shell, emulador xterm
malhar

2
Por favor, editar su pregunta para añadir información adicional, que es difícil de leer y es fácil perderse en los comentarios. Luego puede hacer ping al usuario que solicitó la información dejando un comentario e incluyendo un @antes de su nombre de usuario. Por ejemplo, a mí ping: @terdon.
terdon

xtermno tiene pestañas ¿Estás seguro de que es así xterm? echo $TERMgeneralmente no devuelve el nombre de su emulador de terminal si eso fue lo que hizo.
terdon

@terdon Sí, usé echo $ TERM. emite "xterm". Estoy usando el terminal predeterminado de 64 bits ubuntu 12.04 LTS. ¿Hay alguna otra forma de verificar los detalles del emulador?
malhar

Respuestas:


13

Debe tener / crear un archivo nombrado .vimrcen su directorio de inicio con el siguiente código dentro:

let &titlestring = $USER . "@" . hostname() . " " . expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif

ingrese la descripción de la imagen aquí

Fuente: gnome-terminal no permite cambiar el título


Para crear ^ [, que es escape, debe ingresar CTRL + V <Esc>
tinmarino

8

La respuesta actual (aceptada) no funciona si cambia archivos / buffers dentro de una de sus sesiones vim. El título no se actualizará.

El siguiente es suficiente para tener títulos actualizados automáticamente en gnome-terminal también cuando se cambia de archivos mediante el uso de :e foo.txt, :b0, :b#, etc.

Simplemente coloque esto en su ~/.vimrcarchivo:

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

Sistema: Ubuntu 14.10, vim 7.4.273, gnome-terminal 3.6.2-0ubunt.


No debería set titleestar en la misma línea, después |?
Victor Sergienko

Relacionado con la pregunta: para restaurar el título después de salir de vim, agregue set titleold=a .vimrc.
Victor Sergienko

5

Simplemente agregue

set title

a tu ~/.vimrc.

Título de ejemplo: archivo de prueba (~ / Documentos) - VIM


1
Esa es la respuesta única que funcionó para mí y es la más corta.
user10089632

1

Puede agregar el nombre del archivo que está editando en una pestaña de la siguiente manera:

  1. ve al menú en la parte superior de la terminal. Terminal-> Establecer título-> Aquí agrega el nombre del archivo que está editando actualmente

por ejemplo, cuando abre la terminal, el encabezado de la terminal muestra solo "~". pwd muestra / inicio / xxx /

Suponga que en esta ubicación está editando un archivo ABC.cpp, puede establecer el título de la pestaña en "~ / ABC.cpp" agregando "/ABC.cpp" en el campo Establecer título.

Del mismo modo, también puede repetir esto para otras pestañas.


44
¿Y hará estos cambios cada vez que edite otro archivo? Suena doloroso ...
Radu Rădeanu

0

Esto también cambia el título de la ventana si cambia el nombre de un búfer:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

Poner el comando en un grupo evita ejecutar el comando varias veces cuando se obtiene vimrcmás de una vez.

Esto funciona muy bien con vim-eunuch que le permite cambiar el nombre de un archivo usando :Rename.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.