screen + vim: ¿alguna forma de configurar automáticamente el nombre de la ventana de pantalla para abrir el nombre de archivo vim?

10

Tengo un archivo rc de pantalla bastante agradable que me muestra las ventanas de pantalla abierta casi como pestañas en la parte inferior del terminal. Actualmente, las ventanas se nombran de acuerdo con mi solicitud, que no es tan útil. ¿Hay alguna manera de nombrar automáticamente las ventanas según el nombre de archivo de una sesión vim abierta actualmente en la ventana? Creo que esto sería un editor supremo de múltiples ventanas si fuera posible.

usuario4785
fuente

Respuestas:

5

Establece la titleopción . Esto funciona fuera de la caja para mí en xterm y similares, pero no en la pantalla. Este consejo funciona :

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

Un enfoque diferente es escribir una preexecfunción en su shell que establezca el título de la ventana para el comando que se ejecuta. Zsh es compatible de preexecforma nativa, y bash también puede hacerlo . Aquí hay un ejemplo de zsh .

Gilles 'SO- deja de ser malvado'
fuente
Hola. Eso no funcionó para mí, pero creo que es debido a cómo está configurado mi archivo .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} '
usuario4785
@ user4785: si su solicitud puede establecer el título de la ventana de la pantalla, Vim también debería poder hacerlo. ¿Cuál es tu aviso? ¿Mi .vimrcfragmento funciona sin tu .screenrc?
Gilles 'SO- deja de ser malvado'
1

Lo hice usando una forma un poco más pirata: usando tcsh puse lo siguiente en mi .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'

Siempre que recuerde usar vis en lugar de vim cuando quiera el título allí, funciona.

También agregué

set notitle

a mi .vimrc para evitar que vim configure el título de la pantalla de la ventana en la que se estaba ejecutando.

22 grados
fuente