iTerm2(ビルド1.0.0.20120203)では、通常、いくつかのタブを開きます。各タブには分割ペインがあり、リビジョン管理、コーディング、ファイルの管理、mysqlターミナルの作業など、特定の作業テーマに関するものです。通常、ワークフローで5つ以上のタブを切り替える必要があります。画面の内容を見て、どれがどれであるかを覚えたり、伝えるのが難しい場合があります。どういうわけかタブに名前を付けたいので、すばやく一見することで、どれがどれであるかをすぐに判断できます。これは可能ですか?
iTerm2(ビルド1.0.0.20120203)では、通常、いくつかのタブを開きます。各タブには分割ペインがあり、リビジョン管理、コーディング、ファイルの管理、mysqlターミナルの作業など、特定の作業テーマに関するものです。通常、ワークフローで5つ以上のタブを切り替える必要があります。画面の内容を見て、どれがどれであるかを覚えたり、伝えるのが難しい場合があります。どういうわけかタブに名前を付けたいので、すばやく一見することで、どれがどれであるかをすぐに判断できます。これは可能ですか?
回答:
Macでiterm2を使用しているので、別のオプションはCmdI、単にヒットし、何かをタイプして、ヒットすることESCです。
ターミナルソリューションはこれよりも少し速いですが、ただ知らせたいだけです。
私~/.bashrc
が役立つように配置された次の機能を見つけました:
function title {
echo -ne "\033]0;"$*"\007"
}
次に、次のようにbashプロンプトから呼び出すことができます。
> title I want a pony!
そして、それに応じてタブにタイトルが付けられます。
bash_aliases
、ロードしました.profile
(if [ -f ${HOME}/.bash_aliases ]; then . ${HOME}/.bash_aliases fi
)しかし、title dog
タブのタイトルを「犬」に変えませんでした
title dog && sleep 5
、それが動作することがわかります。これに対処するための@schpetからの回答に注意してください
このコマンドを実行して、タブまたはウィンドウのタイトルを設定します。
export PROMPT_COMMAND='echo -ne "\033]0;YOUR NAME HERE\007"'
~/.bash_profile
ホームディレクトリに関連する現在のディレクトリを常にリストするために、次を追加しました。
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
ドックに100個の最小化された端末がある場合に便利です
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/$HOME/\~}\007"'
私はかなり前から上記と同様のソリューションを使用していましたが、視覚的に参照しやすいように色分けしたい十分なタブを使用しています。そこで、各タブで行っている作業の種類に基づいてタブのタイトル、バッジ、色を設定するユーティリティであるtabsetを作成しました。
nodeが必要ですが、現在では一般的にインストールされているプラットフォームです。インストールする:
npm install -g iterm2-tab-set
but that is now a commonly installed platform
Hahaha.ha ... ha ......、待って、本気?
この関数を~/.bash_profile
ファイルに追加すると、機能するはずです。
function title ()
{
TITLE=$*;
export PROMPT_COMMAND='echo -ne "\033]0;$TITLE\007"'
}
私はこれが好きです:
#setup terminal tab title
function title {
if [ "$1" ]
then
unset PROMPT_COMMAND
echo -ne "\033]0;${*}\007"
else
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
fi
}
title
カスタム名とCWDのデフォルトの間でタブの名前を切り替えることができます。
title
->タブのタイトルは ~/YOUR_CWD/
title hey there
->タブのタイトルは hey there
taylorstineの答えは本当に気に入っていますが、変数に依存するiTerm2のシェル統合が壊れていPROMPT_COMMAND
ます。テイラーのコードを修正して、修正するたびに__bp_precmd_invoke_cmd
バックを追加することでこれを修正PROMPT_COMMAND
できます。
# 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 "\033]0;${*}\007"
else
export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/\~}\007";__bp_precmd_invoke_cmd'
fi
}
title
マイケルの答えが好きです。
しかし、.iterm2_shell_integration.bash
存在しない場合はどうなりますか?
私の見解は次のとおりです。
# 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 "\033]0;${*}\007"
else
test -e "${HOME}/.iterm2_shell_integration.bash" \
&& export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007";iterm2_preexec_invoke_cmd' \
|| export PROMPT_COMMAND='echo -ne "\033]0;${PWD/#$HOME/~}\007"'
fi
}
title
iterm2_preexec_invoke_cmd
になっていることに注意してください__bp_precmd_invoke_cmd
自動プロファイル切り替えとバッジは、あなたが必要とするものにぴったり合っていると思います。
自動プロファイル切り替え iTerm2は、現在のパス、ホスト名、ユーザー名について知っている情報を使用して、プロファイルを変更できます。たとえば、異なるホストに接続すると、ウィンドウの背景色や端末の文字エンコードが変わる可能性があります。
バッジ 端末の右上に、現在のセッションに関する情報を示すバッジを配置できます。ユーザー名、ホスト名、または現在のgitブランチなどのカスタムデータを表示できます。
結果は次のようになります。
絶対にわかりやすくするために、B Sevenの回答を少し拡張したいと思います。
私たちのほとんどは、リモートシェルではなくローカルシェル(たとえばssh上)にない場合でも、どのようにタブのタイトルを設定できるかを知りたいので、
ステップ1。 Preferences -> Profiles -> Terminal
uncheck Terminal may set Tab/Window title
ステップ2.各タブについて、 double click on the tab -> Session Title
これで、セッションタイトルで設定したものは何でも、そのままになります。
Yuk、これらすべてのエイリアスと関数。より簡単なソリューション(rootの場合)、これをターミナルに貼り付けます:
TARGET=/usr/bin/title
sudo tee "$TARGET" <<'EOF'
#!/usr/bin/env bash
echo -ne "\033]0;$*\007"
EOF
sudo chmod 755 "$TARGET"
または、パスまたはグローバルパスのどこかにファイル呼び出しのタイトルを作成し、EOFの間に2行を貼り付けます。
title
in というスクリプトを作成しているだけなので、覚えておく必要はありません/usr/bin
。