10 votes

Comment définir automatiquement le titre de l'onglet d'iTerm2 en fonction du nom du fichier ouvert dans vim ?

Je peux faire en sorte que le titre de vim s'affiche sur ma fenêtre en faisant ceci :

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

Mais les onglets indiquent "Default".

Je peux le faire à partir de la ligne de commande :

echo -ne "\e]1;hello world\a"

Et ça affichera "Hello World" dans mes onglets.

Y a-t-il un moyen de faire en sorte que vim écrive ces trucs dans mon onglet au lieu du titre ?

12voto

mgaw Points 101

Cela fonctionne pour moi :

" Set the title of the Terminal to the currently open file
function! SetTerminalTitle()
    let titleString = expand('%:t')
    if len(titleString) > 0
        let &titlestring = expand('%:t')
        " this is the format iTerm2 expects when setting the window title
        let args = "\033];".&titlestring."\007"
        let cmd = 'silent !echo -e "'.args.'"'
        execute cmd
        redraw!
    endif
endfunction

autocmd BufEnter * call SetTerminalTitle()

Source : https://gist.github.com/bignimbus/1da46a18416da4119778

4voto

Laurence Gonsalves Points 50783

Je n'ai pas iTerm, donc je ne peux pas tester cela, mais essayez d'ajouter ceci à votre .vimrc :

set t_ts=^[]1;
set t_fs=^G

Type CTRL-V Escape para ^[ y CTRL-V CTRL-G para ^G .

0voto

brotherJ4mes Points 89

Juste pour revenir sur le commentaire de l'utilisateur 2486953 ci-dessus.

J'ai pu réaliser cela avec deux lignes super simples dans mon fichier ~/.vimrc :

set title
set titlestring=%f

(Le 'f' minuscule me donne seulement le nom du fichier, alors que le 'f' majuscule me donne le chemin complet).

c'est-à-dire que je n'ai pas eu à définir quoi que ce soit avec des séquences d'échappement comme dans la réponse acceptée ci-dessus. J'exécute gnome-terminal mais je ne comprends pas pourquoi iTerm2 serait différent pour une configuration VI.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X