Respostas:
Você pode inserir o seguinte em zsh
para definir o título da janela do iTerm2:
echo -ne "\e]1;this is the title\a"
Se você deseja automatizar isso para inserir, por exemplo, a hora atual ou o diretório de trabalho, edite seus zsh
arquivos de configuração para definir o título na precmd()
função como, por exemplo $PWD
.
echo -ne "\e]1;$PWD\a"
Você pode ler sobre a precmd
função em man zshmisc
na seção SPECIAL FUNCTIONS
.
Profiles > Terminal > Terminal Emulation > Terminal may set tab/window title
.
iTerm2
(3.2.9)
O que funciona para mim:
echo -e "\033];this is the title\007"
Se você usa o Mac OSX e o iTerm, o iTerm2:
Se você usa o zsh, pode ser necessário editar suas configurações. Suas configurações normalmente estão no arquivo ~/.zshrc
. Você deseja adicionar ou editar suas configurações para garantir que essa linha exista:
DISABLE_AUTO_TITLE="true"
Uma das comodidades do uso do iTerm é a possibilidade de definir o título da janela e o título da guia separadamente:
# $1 = type; 0 - both, 1 - tab, 2 - title
# rest = text
setTerminalText () {
# echo works in bash & zsh
local mode=$1 ; shift
echo -ne "\033]$mode;$@\007"
}
stt_both () { setTerminalText 0 $@; }
stt_tab () { setTerminalText 1 $@; }
stt_title () { setTerminalText 2 $@; }
Dessa forma, você pode ver imediatamente a qual host está conectado, em qual janela e o título da janela para cada guia mostra usuário e CWD.
.bashrc
, certo?
DISABLE_AUTO_TITLE="true"
que corrigiu o problema e dessa maneira se eu não definir o título, eu ainda obter o recurso título automática
A precmd
faz o truque. No entanto, alguns temas oh-my-zsh mexem com o título da janela. Defina PR_TITLEBAR
como uma sequência vazia para corrigi-lo.
set-window-title() {
# /Users/clessg/projects/dotfiles -> ~/p/dotfiles
window_title="\e]0;${${PWD/#"$HOME"/~}/projects/p}\a"
echo -ne "$window_title"
}
PR_TITLEBAR=''
set-window-title
add-zsh-hook precmd set-window-title
Eu também recomendaria brincar com as configurações da guia do iTerm2 em Preferências -> Aparência.
Nenhuma das respostas pareceu funcionar para mim, provavelmente para a versão iterm2 (3.3.3).
Eu descobri isso: https://gist.github.com/phette23/5270658#gistcomment-3020766
Essencialmente, você pode fazer o que é dito em todas as outras respostas, mas também precisa definir
Preferences > Profiles > General > Title -> Name (Job)
Isso funcionou para mim.
General
guia, está na Profiles
guia
> Profiles
primeiro. Minha culpa. Atualizada.
A resposta aceita funcionou para mim por um longo tempo, mas agora está quebrada na versão mais recente do iTerm2. Uma solução alternativa encontrada foi ativar a API Python e criar um script que define o nome da guia da seguinte maneira:
#!/usr/bin/env python3.7
import argparse
import iterm2
def get_args():
parser = argparse.ArgumentParser(description='Set the tab name')
parser.add_argument('name')
return parser.parse_args()
ARGS = get_args()
async def main(connection):
app = await iterm2.async_get_app(connection)
window = app.current_terminal_window
if window is not None:
tab = window.current_tab
await tab.async_set_title(ARGS.name)
else:
# You can view this message in the script console.
print("No current window")
iterm2.run_until_complete(main)
Salvo como "tab_name.py" e chamado com:
~/Library/ApplicationSupport/iTerm2/iterm2env/versions/*/bin/python3 ~/Library/ApplicationSupport/iTerm2/Scripts/tab_name.py "new tab name"
Não é tão bom ou elegante quanto a resposta aceita, mas funciona.
iTerm -> Preferências -> Aparência -> Títulos de janelas e guias -> marque a opção Mostrar nome do perfil