Come visualizzare il nome del file che sto modificando con vim sul titolo del terminale?


20

Sto modificando più file situati nella stessa cartella, in più schede, su un singolo terminale.

pwd(directory in cui sto attualmente lavorando) viene visualizzato nella parte superiore dell'intestazione del terminale, ma non il nome del file che sto modificando. Diventa confuso quando si lavora con più file nella stessa directory.

Come visualizzare il nome del file corrente nella parte superiore del terminale oltre a pwd.

Sto correndo vimin una shell bash gnome-terminal, su 12.04 LTS.


1
Modifica usando quale editor? In quale shell? Quale emulatore di terminale?
terdon,

@terdon - Modifica usando Vim, bash Shell, emulatore xterm
malhar

2
Si prega di modificare la tua domanda per aggiungere informazioni supplementari, è difficile da leggere e facile da perdere nei commenti. È quindi possibile eseguire il ping dell'utente che ha richiesto le informazioni lasciando un commento e includendo un @prima del loro nome utente. Ad esempio, per eseguire il ping me: @terdon.
terdon,

xtermnon ha schede. Sei sicuro di si xterm? echo $TERMdi solito non restituisce il nome dell'emulatore di terminale, se è quello che hai fatto.
terdon,

@terdon Sì, ho usato echo $ TERM. genera "xterm". Sto usando il terminale predefinito Ubuntu 12.04 LTS a 64 bit. Esistono altri modi per controllare i dettagli dell'emulatore.
Malhar,

Risposte:


13

Devi avere / creare un file chiamato .vimrcnella tua home directory con all'interno il seguente codice:

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

inserisci qui la descrizione dell'immagine

Fonte: gnome-terminal non consente di cambiare il titolo


Per creare ^ [, che è escape, devi inserire CTRL + V <Esc>
tinmarino

8

La risposta corrente (accettata) non funziona se si cambiano file / buffer all'interno di una delle sessioni vim. Il titolo non verrà aggiornato.

Quanto segue è sufficiente avere i titoli aggiornate automaticamente in gnome-terminal anche quando si passa file utilizzando :e foo.txt, :b0, :b#, etc.

Inseriscilo nel tuo ~/.vimrcfile:

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

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


Non dovrebbe set titleessere sulla stessa linea, dopo |?
Victor Sergienko,

In relazione alla domanda: per ripristinare il titolo dopo essere usciti da vim, aggiungere set titleold=a .vimrc.
Victor Sergienko,

5

Aggiungi semplicemente

set title

al tuo ~/.vimrc.

Titolo di esempio: testfile (~ / Documents) - VIM


1
Questa è l'unica risposta che ha funzionato per me ed è la più breve.
user10089632,

1

Puoi aggiungere il nome del file che stai modificando in una scheda nel modo seguente:

  1. vai al menu nella parte superiore del terminale. Terminale-> Imposta titolo-> Qui aggiungi il nome del file che stai modificando

ad es. quando si apre il terminale, l'intestazione del terminale mostra solo "~". spettacoli pwd / home / xxx /

Supponiamo che in questa posizione si stia modificando un file ABC.cpp, è possibile impostare il titolo della scheda su "~ / ABC.cpp" aggiungendo "/ABC.cpp" nel campo Imposta titolo.

Allo stesso modo, puoi ripeterlo anche per altre schede.


4
E farai queste modifiche ogni volta che modifichi un altro file? Sembra doloroso ...
Radu Rădeanu,

0

Questo cambia anche il titolo della finestra se si rinomina un buffer:

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

Inserendo il comando in un gruppo si evita di eseguire il comando più volte quando si procede vimrcpiù di una volta.

Funziona bene con vim-eunuch che ti permette di rinominare un file usando :Rename.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.