screen + vim - Alguma maneira de definir automaticamente o nome da janela da tela para abrir o nome do arquivo vim?

10

Eu tenho um arquivo rc de tela bastante agradável que me mostra as janelas de tela aberta quase como guias na parte inferior do terminal. Atualmente, as janelas são nomeadas de acordo com o meu prompt, o que não é tão útil. Existe uma maneira de nomear automaticamente as janelas com base no nome do arquivo de uma sessão aberta do vim atualmente na janela? Eu acho que isso faria um editor supremo de múltiplas janelas, se fosse possível.

user4785
fonte

Respostas:

5

Defina a titleopção . Isso funciona imediatamente para mim no xterm e similares, mas não na tela. Esta dica funciona :

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

Uma abordagem diferente é escrever uma preexecfunção em seu shell que defina o título da janela para o comando que está sendo executado. O Zsh suporta preexecnativamente, e o bash também pode fazê-lo . Aqui está um exemplo do zsh .

Gilles 'SO- parar de ser mau'
fonte
Oi. Isso não funcionou para mim, mas acho que é por causa da configuração do meu arquivo .screenrc. 1 termcapinfo xterm * ti @: te @ 2 hardstatus alwayslastline 3 string do hardstatus '% {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 16/02/11
@ user4785: Se o seu prompt puder definir o título da janela da Tela, o Vim também poderá fazê-lo. Qual é o seu prompt? Meu .vimrcsnippet funciona sem o seu .screenrc?
Gilles 'SO- stop be evil'
1

Fiz isso de uma maneira um pouco mais obscena: Usando o tcsh, coloquei o seguinte no meu .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'

Contanto que você se lembre de usar vis em vez de vim quando quiser o título lá, ele funciona.

Eu também adicionei

set notitle

no meu .vimrc para impedir que o vim defina o título da tela da janela em execução.

22degrees
fonte