Título da janela de tela usando zsh

1

Gostaria de tornar o nome das guias da tela do vim mais útil. Eu liguei o plugin da tela e tentei várias abordagens. Um que eu mais gostei foi fazer com que o nome da tela fosse corrigido usando outro arquivo da tela de carregamento, por exemplo:

screen -S sectionName -c .screenTest

e o arquivo screenTest teria algo como:

source $HOME/.screenrc
chdir $HOME/place
# Screen 0
screen
stuff "something^M"
# Screen 1
screen
stuff "something^M"
stuff "cd place^M"                                                                                                 
stuff "vim -p 'find -type f -not -path \"*/\.*\" -not -path \"*x86*\" \( -name \"*.py\" -o -name \"*.cxx\" -o -name \"*.h\" \)'^M"
title "Screen1"

O problema é que o comando title é lido antes dos comandos stuff. Se alguém souber como fazer com que o comando title seja executado depois que os comandos stuff terminarem, seria perfeito. Eu tentei:

coisas "^ A: title TitleValue ^ M"

mas não escreve na inserção do comando da tela, ele escreve no terminal (o ^ A e ^ M são escritos no vim usando ^V^A ).

Então eu tentei editar o arquivo screen.plugin.zsh.

Eu tentei alterar os métodos prexec e precmd zsh quando o comando de entrada tem vim para exibir o local. Mas eu não pude fazer isso.

Eu sinto muito em postar aqui, mas se alguém puder me ajudar a fazer isso, parece bem simples, mas eu estou preso a isso mesmo que eu mude o $ cmd, ele não muda a sintaxe do TAB, isto é, se Eu faço:

if [[ "$cmd" == "vim*" ]]; then
  # How do I check if variable $cmd has string "vim" in it using zsh?
  echo "changing for vim!"
  cmd=''
fi

altera o título do terminal, mas não o título da janela da tela. Alguma ideia? Esta questão também é aqui , mas acho que esta questão é mais apropriada aqui, já que não é uma questão de oh-meu-zsh exatamente.

Outra coisa que ajudaria, é que se eu pudesse definir algumas janelas para não alterar automaticamente seus títulos, enquanto outras mudariam.

    
por Werner 16.12.2014 / 13:14

1 resposta

2

O Manual do usuário da tela afirma:

To change the name after the window has been created you can use the title-string escape-sequence (<ESC> k name <ESC> \) (...)

Então (sem ter encontrado os módulos, plugins etc. do oh-my-zsh) você pode usar

print -n "3kTITLE34"

na linha de comando zsh para alterar o nome da janela de tela atual para TITLE .

3 representa um caractere escape em notação octal (ESC = 27 (decimal) = 0x1b (hex) = 033 (octal)) e 4 a barra invertida personagem.

De acordo com o seu comando, o seguinte comando funciona no arquivo de configuração da tela:

stuff "print -n "\033kTITLE\033\134\" "
    
por 21.12.2014 / 17:16