最近iTerm2を再インストールしましたが、iTermのシェル統合を設定した後、興味深い問題が発生しています。
新しいターミナルウィンドウを開くと、すべてが正しく表示され、Oh MyZSHの適切な「agnoster」テーマが表示されます。
clear
を発行すると、ターミナルウィンドウは次のようになります。
もう一度~/.zshrc
を調達することで元の状態に戻すことができますが、根本的な問題とそれを修正する方法があるかどうかについて本当に興味があります。
ITermの設定でマーカーを非表示にしようとしましたが、ターミナルが空白になります。
以前のインストール(このMacをワイプする前)では、Oh MyZSHとShellIntegrationの両方が実行されていました。時々奇妙に見えましたが、ターミナルをクリアしたり発行したりしても、Oh MyZSHテーマは維持されているようでした。その他のコマンド。
誰かがこれについて何か考えを持っていますか? iTermの設定を何度も確認しましたが、関連するものが見つからないようです。
シェル統合をiTerm2(ビルド2.9.20160313)にインストールしたところ、まったく同じ問題が発生しました。
私がそれを解決した方法は、3行目の~/.iterm2_Shell_integration.zsh
の直後にexport ITERM_Shell_INTEGRATION_INSTALLED=Yes
に1行追加することでした。
ITERM2_PRECMD_PS1="$PS1"
したがって、これは上記のファイルの先頭がどのように見えるかです。
if [[ -o login ]]; then
if [ "$TERM" != "screen" -a "$ITERM_Shell_INTEGRATION_INSTALLED" = "" ]; then
export ITERM_Shell_INTEGRATION_INSTALLED=Yes
## BEGIN EDIT
ITERM2_PRECMD_PS1="$PS1"
## END EDIT
# Indicates start of command output. Runs just before command executes.
iterm2_before_cmd_executes() {
printf "\033]133;C;\007"
}
# ...
(同じファイルのコメントからわかるように)スクリプトはログイン時に$PS1
を保存することになっているため、バグである可能性がありますが、保存されません。
遅い答えですが、これは私にとってはうまくいきました。
ITerm2 Shell Integrationsページでは、インストールスクリプトをダウンロードして、bashにパイプします。
代わりに、ローカルにダウンロードして変更し、ZSHを使用していることがわかるようにします。
まず、スクリプトをダウンロードします
wget https://iterm2.com/misc/install_Shell_integration.sh
次に、スクリプトにシェルを決定させる代わりに、「zsh」として定義します。
# comment out this line
# Shell=$(echo "${Shell}" | tr / "\n" | tail -1)
# replace it with this line
Shell="zsh"
次に、インストールスクリプトを実行可能にして実行します
chmod +x install_Shell_integration.sh
./install_Shell_integration.sh
その後、統合は正しくインストールされます。
注必要がない場合は、Bash統合を削除します。
rm ~/.iterm2_Shell_integration.bash