screen + vim - Est-il possible de définir automatiquement le nom de la fenêtre d'écran pour ouvrir le nom de fichier vim?

10

J'ai un joli fichier rc d'écran qui me montre les fenêtres d'écran ouvertes presque comme des onglets en bas du terminal. Actuellement, les fenêtres sont nommées selon mon invite, ce qui n'est pas si utile. Existe-t-il un moyen de nommer automatiquement les fenêtres en fonction du nom de fichier d'une session vim ouverte actuellement dans la fenêtre? Je pense que cela ferait un éditeur multi-fenêtres suprême si c'était possible.

user4785
la source

Réponses:

5

Définissez l' titleoption . Cela fonctionne hors de la boîte pour moi dans xterm et autres, mais pas à l'écran. Cette astuce fonctionne :

if &term == "screen"
  set t_ts="\ek"
  set t_fs="\e\\"
  set title
endif

Une approche différente consiste à écrire une preexecfonction dans votre shell qui définit le titre de la fenêtre sur la commande en cours d'exécution. Zsh prend preexecen charge nativement, et bash peut le faire aussi . Voici un exemple zsh .

Gilles 'SO- arrête d'être méchant'
la source
Salut. Cela n'a pas fonctionné pour moi mais je pense que c'est à cause de la configuration de mon fichier .screenrc. 1 termcapinfo xterm * ti @: te @ 2 hardstatus alwayslastline 3 hardstatus string '% {gk} [% {G}% H% {g}] [% =% {wk}%?% - Lw%?% {= B kR} (% {W}% n *% f% t%? (% u)%?% {= b kR})% {= kw}%?% + Lw%?%?% =% {g}] [% {Y}% l% {g}]% {= b C} [% m /% d% c]% {W} '
user4785
@ user4785: Si votre invite peut définir le titre de la fenêtre d'écran, Vim devrait également pouvoir le faire. Quelle est votre invite? Mon .vimrcextrait fonctionne-t-il sans le vôtre .screenrc?
Gilles 'SO- arrête d'être méchant'
1

Je l'ai fait en utilisant un moyen un peu plus piraté: En utilisant tcsh, j'ai mis ce qui suit dans mon .cshrc

# escape sequence to set the screen title
alias stitle 'echo -n "^[k\!*^[\\"'
# shorthand to set the screen title to the hostname
alias H stitle `hostname -s`
# shorthand to set the screen title to the filename, launch vim, and then set it back
alias vis 'stitle \!* ; vim \!* ; H'

Tant que vous vous souvenez d'utiliser vis au lieu de vim lorsque vous voulez que le titre y fonctionne.

J'ai aussi ajouté

set notitle

à mon .vimrc pour empêcher vim de définir le titre de l'écran de la fenêtre s'exécutait.

22 degrés
la source