Existem várias perguntas sobre isso espalhadas pela rede, mas o que pude encontrar tem uma de duas coisas em comum:
- Eles fornecem a solução manual, que imprime apenas o programa em execução atual (sem argumentos)
- O recurso use zsh preexec (embora eu não tenha certeza de como isso interage com a tela). Estou procurando uma solução Bash.
Como faço para que meu título de tela mostre toda a execução do comando, portanto, se eu executar 3 scripts Python de longa duração, por exemplo, também posso ver os nomes dos scripts no título? Para pontos de bônus, se eu conseguir que isso continue exibindo o último comando executado, seria ainda melhor.
Minha configuração atual:
- exportar
PROMPT_COMMAND='/bin/echo -ne "\033k\033\0134"'
PS1
termina com>
shelltitle ">|bash"
Eu tentei:
- Adicionando coisas entre
\033k
e\033
- quebra com${BASH_COMMAND}
- Usando trap debug para definir um título adicional externo, pois para XTERM sem tela eu conheço a solução. Isso quebra mal com o
PS1
.
e variações do anterior. Eu quero que uma solução seja através da tela, para que o título da janela e a lista da janela da tela mostrem o comando completo.
Como um bônus, eu realmente gostaria que o Screen interagisse bem com o Vim, então alterando os buffers/abrindo novos arquivos/etc. seria atualizado dinamicamente no título da tela.
Um ano depois, aqui está minha solução, usando armadilhas. Isso exibe o nome do host, o corrent
PWD
e o comando (e o material da tela, se estiver na tela). Isto é facilmente personalizadoset_screen_window
abaixo. Tudo deve ficar no seu.bashrc
.Primeiro alguma função auxiliar para verificar se estou ligado
screen
ou não:A carne de construir o comando, contando com o útil
BASH_COMMAND
. Eu faço algumas coisas personalizadas parafg
(como exibir o comando original) ecd
(para obter o diretório real):Agora inicialize a cabeça do terminal com minha
ready
string e intercepte o erro e depure para atualizar a janela do terminal:Finalmente, em
.vimrc
temosvim
coisas específicas:Aqui
Filename
pode ser personalizado para obter seu próprio sabor de cabeçalho.autocmd
garante que as coisas sejam recarregadas ao se mover entre buffers, janelas e similares.gitbranch
no meu exemplo está um plugin disponível paragit
gerar (como você pode esperar) o nome da ramificação ao editar arquivos em repositórios.usar
PROMPT_COMMAND='/bin/echo -ne "\033k\033\0134"'
em.bashrc
conjunto com funciona bemshelltitle '$ |bash'
para.screenrc
mim. Usar este específico dePROMPT_COMMAND
alguma forma quebra meu PS1, então eu também adicionei o seguinte a.bashrc
:Imagem de exemplo anexada - executando sleep na janela 0, localize na janela 1, assista na janela 2, ping na janela 3 e bash na janela 4.