Como você está usando o iterm2 em um mac, outra opção é simplesmente clicar Cmd I , digitar algo e pressionar ESC .
A solução de terminal é um pouco mais rápida do que isso, mas só queria que você soubesse.
No iTerm2 (Build 1.0.0.20120203), eu normalmente abro várias abas, cada uma com painéis divididos, e é sobre um tema particular de trabalho, por exemplo controle de revisão, codificação, gerenciamento de arquivos, trabalho de terminal mysql. Eu normalmente preciso alternar entre 5 ou mais guias no meu fluxo de trabalho. Às vezes é difícil lembrar ou dizer qual é qual, olhando para o conteúdo da tela. Eu gostaria de nomear as abas de alguma forma, para que eu possa dizer rapidamente qual é qual olhando rapidamente. Isso é possível?
Eu encontrei a seguinte função, colocada no meu ~/.bashrc
para ser útil:
function title {
echo -ne "3]0;"$*"> title I want a pony!
7"
}
Então, posso chamá-lo do meu prompt do bash da seguinte forma:
function title {
echo -ne "3]0;"$*"> title I want a pony!
7"
}
E minha guia recebe o título de acordo.
execute este comando para definir o título da sua guia ou janela:
export PROMPT_COMMAND='echo -ne "3]0;YOUR NAME HEREexport PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}export PROMPT_COMMAND='echo -ne "3]0;YOUR NAME HEREexport PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7"'
7"'
7"'
7"'
Adicionei o seguinte ao meu ~/.bash_profile
para listar sempre o diretório atual em relação ao meu diretório inicial:
útil quando você tem 100 terminais minimizados em sua doca
Adicione esta função ao seu arquivo ~/.bash_profile
e ele deve funcionar.
function title ()
{
TITLE=$*;
export PROMPT_COMMAND='echo -ne "3]0;$TITLEfunction title ()
{
TITLE=$*;
export PROMPT_COMMAND='echo -ne "3]0;$TITLE%pre%7"'
}
7"'
}
Eu usei soluções semelhantes às anteriores por um bom tempo, mas uso abas suficientes para que eu também as queira codificadas por cores para facilitar a referência visual. Então criei o conjunto de guias , um utilitário para definir o título, o distintivo e a cor da guia com base no tipo de trabalho que estou fazendo em cada guia.
Requero
npm install -g iterm2-tab-set
Eu gosto deste:
#setup terminal tab title
function title {
if [ "$1" ]
then
unset PROMPT_COMMAND
echo -ne "3]0;${*}#setup terminal tab title
function title {
if [ "$1" ]
then
unset PROMPT_COMMAND
echo -ne "3]0;${*}%pre%7"
else
export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7"'
fi
}
title
7"
else
export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7"'
fi
}
title
Ele permitirá que você alterne o nome de uma guia entre um nome personalizado e um padrão do seu CWD.
title
- > o título da guia será ~/YOUR_CWD/
title hey there
- > o título da guia será hey there
Eu gosto muito da resposta do taylorstine , mas ela quebra o PROMPT_COMMAND
. Você pode modificar o código de Taylor para corrigir isso adicionando o __bp_precmd_invoke_cmd
de volta ao PROMPT_COMMAND
sempre que mexer nele:
# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ]
then
export PROMPT_COMMAND='__bp_precmd_invoke_cmd'
echo -ne "3]0;${*}# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ]
then
export PROMPT_COMMAND='__bp_precmd_invoke_cmd'
echo -ne "3]0;${*}%pre%7"
else
export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/\~}%pre%7";__bp_precmd_invoke_cmd'
fi
}
title
7"
else
export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/\~}%pre%7";__bp_precmd_invoke_cmd'
fi
}
title
Eu gosto da resposta do Michael .
Mas e se .iterm2_shell_integration.bash
não existir?
Aqui está minha opinião:
# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ] ; then
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='iterm2_preexec_invoke_cmd' \
|| unset PROMPT_COMMAND
echo -ne "3]0;${*}# iTerm2 shell integration
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# iTerm2 tab titles
function title {
if [ "$1" ] ; then
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='iterm2_preexec_invoke_cmd' \
|| unset PROMPT_COMMAND
echo -ne "3]0;${*}%pre%7"
else
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7";iterm2_preexec_invoke_cmd' \
|| export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7"'
fi
}
title
7"
else
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7";iterm2_preexec_invoke_cmd' \
|| export PROMPT_COMMAND='echo -ne "3]0;${PWD/#$HOME/~}%pre%7"'
fi
}
title
Preferences -> Profiles -> Terminal
uncheck Terminal may set Tab/Window title
O comentário de Max Cantor funcionou para mim.
Eu acho Troca automática de perfil e Badges são projetados exatamente para o que você precisa:
Automatic Profile Switching iTerm2 can use information it knows about your current path, host name, and user name to change profiles. For example, your window's background color or the terminal's character encoding could change when connecting to different hosts.
Badges You can put a badge in the top right of your terminal showing information about the current session. It can show your username, hostname, or even custom data like the current git branch.
para que o resultado seja assim:
Eu gostaria de estender um pouco a B Seven para maior clareza.
Como a maioria de nós gostaria de saber como definir um título de uma guia mesmo quando eles não estão no shell local, em vez de no shell remoto (por exemplo, em ssh).
Etapa 1. Preferences -> Profiles -> Terminal
uncheck Terminal may set Tab/Window title
Etapa 2. Para cada guia, double click on the tab -> Session Title
Agora, o que quer que você tenha definido no título da sessão, ele permanecerá como está.
Yuk, todos esses apelidos e funções. Solução mais fácil (se você for root), cole isso em um terminal:
TARGET=/usr/bin/title
sudo tee "$TARGET" <<'EOF'
#!/usr/bin/env bash
echo -ne "3]0;$*TARGET=/usr/bin/title
sudo tee "$TARGET" <<'EOF'
#!/usr/bin/env bash
echo -ne "3]0;$*%pre%7"
EOF
sudo chmod 755 "$TARGET"
7"
EOF
sudo chmod 755 "$TARGET"
Ou apenas crie um título de chamada de arquivo em algum lugar em seu caminho ou caminho global e cole as duas linhas entre EOF.