web-dev-qa-db-ja.com

iTerm2シェル統合とOhMy Zsh Conflicts

最近iTerm2を再インストールしましたが、iTermのシェル統合を設定した後、興味深い問題が発生しています。

新しいターミナルウィンドウを開くと、すべてが正しく表示され、Oh MyZSHの適切な「agnoster」テーマが表示されます。

working

clearを発行すると、ターミナルウィンドウは次のようになります。

not working

もう一度~/.zshrcを調達することで元の状態に戻すことができますが、根本的な問題とそれを修正する方法があるかどうかについて本当に興味があります。

ITermの設定でマーカーを非表示にしようとしましたが、ターミナルが空白になります。

以前のインストール(このMacをワイプする前)では、Oh MyZSHとShellIntegrationの両方が実行されていました。時々奇妙に見えましたが、ターミナルをクリアしたり発行したりしても、Oh MyZSHテーマは維持されているようでした。その他のコマンド。

誰かがこれについて何か考えを持っていますか? iTermの設定を何度も確認しましたが、関連するものが見つからないようです。

14
Will

シェル統合を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を保存することになっているため、バグである可能性がありますが、保存されません。

12
lucag

遅い答えですが、これは私にとってはうまくいきました。

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
14
user1491929