iTerm2の場合、作業ディレクトリをウィンドウタイトルに表示するにはどうすればよいですか?


22

最近、デフォルトのターミナルアプリからiTerm2に切り替えましたが、使い勝手に問題があります。

ターミナルでは、現在の作業ディレクトリがプロセスとピクセルサイズとともにタイトルバーに表示されます。たとえば、ウィンドウをクリックして異なるターミナルセッションを切り替えると、working_directory-process-pixel_sizeが表示されます。

残念ながら、iTerm2では、プロセスのみがタイトルバーに表示されます。したがって、異なるディレクトリにある複数のiTerm2ウィンドウで作業している場合、「ウィンドウ」をクリックして選択するときに、どちらを簡単に区別することはできません。iTerm2ウィンドウを選択したら、簡単に切り替えることができますが、すぐにどのウィンドウを表示したいかを正確に特定したいと思います。(ちなみに、私はWitchを使用していますが、ここでもプロセスのみがリストに表示されるため、コマンドタブは役に立ちません)。

助言がありますか?すべての設定を確認したが、何も表示されませんでした。プロファイルを作成することは、私が望んでいることとまったく同じではありません。iTerm2ウィンドウタイトルに現在の作業ディレクトリを表示したいだけです。

回答:


20

\033]0;TEXT\007エスケープシーケンス。

Bashでの使用例: echo -ne "\033]0;$PWD\007"

$PROMPT_COMMANDBashを使用する場合は追加できますが、それ以外の場合はアタッチしてPS1頻繁に再評価します。

例: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'


1
これは動作します。念のため、上記のエクスポート行を〜/ .bashrcファイルに追加します。
スペンサー

これはすごい。本当にありがとう; これは、答えが本当にbashプログラミングに関するものであり、iTermとTerminalとは何の関係もないことを理解するのに役立ちました。誰のためのフォローアップとして、以下を参照してくださいfaqs.org/docs/Linux-mini/Xterm-Title.html#s3linfo.org/echo.htmlを。再度、感謝します!
whiny_nil

5
とパスの最後のセグメントだけを取得するにはecho -ne "\033]0;${PWD##*/}\007"(方法を示すためのgithub.com/barryclark/bashstrapのおかげで)
Anentropic

1
@Spencer:PROMPT_COMMANDシェル変数をエクスポートする理由はありません。一般に、シェルによって実行されるすべてのプログラムで変数を共有する必要がある場合を除き、シェル変数をエクスポートしないでください。デフォルトでは、シェルで使用される変数はエクスポートされません。他のプロセスに送信されることを意図した変数のみをエクスポートします。~/.bashrcすべての対話型シェルによって実行されるため、このスクリプトで設定された変数を継承する必要はありません。
クリスページ

まあ、エクスポートは、あなたがPROMPT_COMMANDを使用する方法です...そして、それは複雑な物事がために、一般的に優れているリンク
おとなしそうな

2

私はこの要点からのこの回答がタブタイトルに追加するのが好きです

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi

0

zsh(macOS 10.15のデフォルト)を使用している場合は、代わりにこれを〜/ .zshrcに入れてください:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

また\033、as \eおよび\007asとしてスペルすることもでき\aます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.