iTerm 2&zsh&oh-my-zshでクールなMacOS端末環境を巧みに構築


MacOSシステムが持つBashはすでに強力ですが、いくつかの細部機能のサポートは完璧ではありません.ポイントは顔制御にとって、原生Bashは本当に醜い......可塑性も高くありません.本稿ではiTerm 2という各ルートの牛に吹き飛ばされたMacOSプラットフォームを使用して、端末とzshを組み合わせてクールな端末環境を構築することが望ましい.最終的な効果は次のようになります.
左は原生バッシュ黙認状態、右はiTerm 2が整形手術を終えた後の様子です.ここでは整形だけで、iTerm 2とzshの関連機能を紹介しません.この2つの強力な機能については、対応する公式ドキュメントを自分で修練することができます.最後に、こんなクールな端末環境を聞くのは何ですか?この質問の答えは、なぜハンサムな若者やきれいな女の子を見るのが好きなのかというように簡単です.

iTerm 2のインストール


まず、iTerm 2のインストールを行います.インストール方法は主に2つに分けられます.
  • コマンドラインインストール
  • 取付パッケージ取付
  • どちらもiTerm 2を取り付けることができ、どちらかを選択すればよい.

    コマンドラインのインストール


    コマンドラインのインストールは主にbrewコマンドラインツールで行います.brewをインストールしたことがない場合は、MacOSのbrewのインストールとcaskの構成を参照してください.
    iTerm 2をインストールするには、次のコマンドを直接使用します.
    AigeStudio@aige$ brew cask instal iterm2

    パッケージのインストール


    これは簡単です.iTerm 2の公式サイトを開いてダウンロードしてインストールすればいいです.

    iTerm 2の構成


    デフォルトのiTerm 2は単調であまり美しくありません.
    一連の設定で色を変更してきれいにすることができます.

    iTerm 2色表示範囲の調整


    初期のiTerm 2バージョンではデフォルトの色表示範囲が狭く、より広い色表示範囲に調整する必要があります.iTerm 2の「Preferences->Profiles->Terminal」に入り、「Report Terminal Type」を「xterm-256 color」に設定します.
    最近の更新バージョンではiTerm 2がデフォルトの「Report Terminal Type」の値を「xterm-256 color」に設定しているので、iTerm 2のバージョンが新しい場合は変更しないかもしれません.

    iTerm 2の「Color Preset」を変更


    iTerm 2にはあまりきれいではないColor Presetがいくつか内蔵されています.
    例えばiTerm 2のデフォルトの「Dark Background」の色の組み合わせは硬いですが、iTerm 2は自分で導入(または自分で作成)することをサポートしています(できれば)Color Preset:
    ネット上には多くの牛が作った「Color Preset」ライブラリがあり、iTerm 2に直接ダウンロードして使用することができます.ここで愛兄はGitHub上のオープンソースプロジェクトiTerm 2-Color-Schemesの「Color Preset」を使用しています.「iTerm 2-Color-Schemes」というプロジェクトをCloneした後、ディレクトリ構造は以下の通りです.
    ここでは「Color Preset」のみを使用します.これらの「Color Preset」はすべて「schemes」ディレクトリの下に保存され、「screenshots」ディレクトリの下には対応するプレビュー図があります.
    例えば、ここで愛兄が選んだのは「teerb」で、このプリセットの名前を覚えて、「iTerm 2のPreferences->Profiles」に戻って、「cors」ラベルを選択します.
    次に右下の「Color Preset...」を選択し、ポップアップの選択ボックスで「import...」を選択し、次に、「schemes」ディレクトリの「teerb」プリセットを選択してインポートします.インポートしたプリセットは直接使用されません.
    手動で選択する必要があります.適用に成功すると、iTerm 2ターミナルウィンドウ全体の色変更説明の変更に成功しました.

    iTerm 2に文字Iconをサポートさせる


    iTerm 2に特殊なIcon文字を表示させるためには、特殊なフォントをインストールする必要があります.このようなフォントは「PowerLine Font」と呼ばれ、「PowerLine Font」よりも多くの文字フォントをサポートできる「Nerd Font」もあります.ここでは愛兄が直接使用する「Nerd Font」は、インストール後のiTerm 2の表示効果は下図のようです.
    フォントのインストールには、次の2つの形式があります.
  • コマンドラインインストール
  • フォントファイル直接インストール
  • ここでアイゴ個人はコマンドを推薦する方式でインストールする傾向がありますが、フォントはアプリケーションとは異なり、MacOSでは独立性が高く管理しやすいので、フォントは専門の「Font Book」アプリケーション管理があるとはいえ、brew管理を直接使うほうが便利です.

    フォントファイルの直接インストール


    この方式は簡単で、対応するフォントファイルを直接ダウンロードしてダブルクリックしてインストールすればよく、インストール後のフォントファイルはMacOSが持参したFont Bookアプリケーションで管理することができ、ここでは後述しない.

    コマンドラインのインストール


    brewコマンドのインストールで、まず「nerd」をキーワードとして関連リソースを検索します.
    AigeStudio@aige$ brew search nerd
    
    homebrew/cask-fonts/font-3270-nerd-font
    homebrew/cask-fonts/font-3270-nerd-font-mono
    homebrew/cask-fonts/font-anonymouspro-nerd-font
    homebrew/cask-fonts/font-anonymouspro-nerd-font-mono
    homebrew/cask-fonts/font-arimo-nerd-font
    homebrew/cask-fonts/font-arimo-nerd-font-mono
    homebrew/cask-fonts/font-aurulentsansmono-nerd-font
    homebrew/cask-fonts/font-aurulentsansmono-nerd-font-mono
    homebrew/cask-fonts/font-bitstreamverasansmono-nerd-font
    homebrew/cask-fonts/font-bitstreamverasansmono-nerd-font-mono
    homebrew/cask-fonts/font-codenewroman-nerd-font
    homebrew/cask-fonts/font-codenewroman-nerd-font-mono
    homebrew/cask-fonts/font-cousine-nerd-font
    homebrew/cask-fonts/font-cousine-nerd-font-mono
    homebrew/cask-fonts/font-dejavusansmono-nerd-font
    homebrew/cask-fonts/font-dejavusansmono-nerd-font-mono
    homebrew/cask-fonts/font-droidsansmono-nerd-font
    homebrew/cask-fonts/font-droidsansmono-nerd-font-mono
    homebrew/cask-fonts/font-fantasquesansmono-nerd-font
    homebrew/cask-fonts/font-fantasquesansmono-nerd-font-mono
    homebrew/cask-fonts/font-firacode-nerd-font
    homebrew/cask-fonts/font-firacode-nerd-font-mono
    homebrew/cask-fonts/font-firamono-nerd-font
    homebrew/cask-fonts/font-firamono-nerd-font-mono
    homebrew/cask-fonts/font-go-mono-nerd-font
    homebrew/cask-fonts/font-go-mono-nerd-font-mono
    homebrew/cask-fonts/font-gohu-nerd-font
    homebrew/cask-fonts/font-gohu-nerd-font-mono
    homebrew/cask-fonts/font-hack-nerd-font
    homebrew/cask-fonts/font-hack-nerd-font-mono
    homebrew/cask-fonts/font-hasklig-nerd-font
    homebrew/cask-fonts/font-hasklig-nerd-font-mono
    homebrew/cask-fonts/font-heavydata-nerd-font
    homebrew/cask-fonts/font-heavydata-nerd-font-mono
    homebrew/cask-fonts/font-hermit-nerd-font
    homebrew/cask-fonts/font-hermit-nerd-font-mono
    homebrew/cask-fonts/font-inconsolata-nerd-font
    homebrew/cask-fonts/font-inconsolata-nerd-font-mono
    homebrew/cask-fonts/font-inconsolatago-nerd-font
    homebrew/cask-fonts/font-inconsolatago-nerd-font-mono
    homebrew/cask-fonts/font-inconsolatalgc-nerd-font
    homebrew/cask-fonts/font-inconsolatalgc-nerd-font-mono
    homebrew/cask-fonts/font-iosevka-nerd-font
    homebrew/cask-fonts/font-iosevka-nerd-font-mono
    homebrew/cask-fonts/font-lekton-nerd-font
    homebrew/cask-fonts/font-lekton-nerd-font-mono
    homebrew/cask-fonts/font-liberationmono-nerd-font
    homebrew/cask-fonts/font-liberationmono-nerd-font-mono
    homebrew/cask-fonts/font-meslo-nerd-font
    homebrew/cask-fonts/font-meslo-nerd-font-mono
    homebrew/cask-fonts/font-monofur-nerd-font
    homebrew/cask-fonts/font-monofur-nerd-font-mono
    homebrew/cask-fonts/font-monoid-nerd-font
    homebrew/cask-fonts/font-monoid-nerd-font-mono
    homebrew/cask-fonts/font-mononoki-nerd-font
    homebrew/cask-fonts/font-mononoki-nerd-font-mono
    homebrew/cask-fonts/font-mplus-1mn-nerd-mono
    homebrew/cask-fonts/font-mplus-nerd-font
    homebrew/cask-fonts/font-mplus-nerd-font-mono
    homebrew/cask-fonts/font-noto-nerd-font
    homebrew/cask-fonts/font-noto-nerd-font-mono
    homebrew/cask-fonts/font-profont-nerd-font
    homebrew/cask-fonts/font-profont-nerd-font-mono
    homebrew/cask-fonts/font-proggyclean-nerd-font
    homebrew/cask-fonts/font-proggyclean-nerd-font-mono
    homebrew/cask-fonts/font-robotomono-nerd-font
    homebrew/cask-fonts/font-robotomono-nerd-font-mono
    homebrew/cask-fonts/font-sharetechmono-nerd-font
    homebrew/cask-fonts/font-sharetechmono-nerd-font-mono
    homebrew/cask-fonts/font-sourcecodepro-nerd-font
    homebrew/cask-fonts/font-sourcecodepro-nerd-font-mono
    homebrew/cask-fonts/font-spacemono-nerd-font
    homebrew/cask-fonts/font-spacemono-nerd-font-mono
    homebrew/cask-fonts/font-terminus-nerd-font
    homebrew/cask-fonts/font-terminus-nerd-font-mono
    homebrew/cask-fonts/font-tinos-nerd-font
    homebrew/cask-fonts/font-tinos-nerd-font-mono
    homebrew/cask-fonts/font-ubuntu-nerd-font
    homebrew/cask-fonts/font-ubuntu-nerd-font-mono
    homebrew/cask-fonts/font-ubuntumono-nerd-font
    homebrew/cask-fonts/font-ubuntumono-nerd-font-mono

    検索したフォントの中から、次のコマンドを選択してインストールします.
    AigeStudio@aige$ brew install [ ]

    例えば、ここでアイゴが「font-robotomono-nerd-font-mono」というフォントを使用している場合は、次のコマンドを実行してこのフォントをインストールします.
    AigeStudio@aige$ brew install homebrew/cask-fonts/font-robotomono-nerd-font-mono

    インストール済みのフォントはシステムにインストールされているだけで、iTerm 2にも適用する必要があります.同様にiTerm 2の「Preferences->Profiles」で「Text」タブを選択します.
    インタフェースの下の「Change Font」ボタンをクリックすると、ポップアップの「fonts」ダイアログボックスにインストールしたフォントが見つかり、クリックするとiTerm 2に適用されます.
    ここで注意しなければならないのは、問題のあるフォントを使用するとiTerm 2が偽死する可能性があります.この場合、「Font Book」アプリケーションでフォントの問題を修復することができます.方法は簡単です.「Font Book」を開いてフォントを見つけて選択した後、右下の自動解決をクリックします.
    「Font Book」は非常によく使われており、最も簡単な方法はSpotを通じて発見されます.

    zshのインストール


    zshはbashと互換性があり、完全に代替可能なshellであり、bashよりも強力な一連の機能を提供しています.例えば、「git bran」を入力してtabキーを押すと、自動的にコマンドを「git branch」に補完し、tabを押し続けて関連ブランチをリストするなど、便利です.
    ここで愛兄はbrewツールを通じて管理zshをインストールし、brewを知らない場合は、まずMacOSのインストールbrewを見てcaskを構成することができます.
    brewを使用してzshをインストールするのは簡単です.インストールしたiTermを開くには、簡単なコマンドを1行入力するだけです.
    AigeStudio@aige$ brew install zsh

    インストールが完了したらshellをzshに切り替える必要があります.
    AigeStudio@aige$ sudo sh -c "echo $(which zsh) >> /etc/shells"
    AigeStudio@aige$ chsh -s $(which zsh)

    最後にiTermを再起動します.意外なことに、zshの最初の構成情報が表示されます.
    This is the Z Shell configuration function for new users,
    zsh-newuser-install.
    You are seeing this message because you have no zsh startup files
    (the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
    ~).  This function can help you with a few settings that should
    make your use of the shell easier.
    
    You can:
    
    (q)  Quit and do nothing.  The function will be run again next time.
    
    (0)  Exit, creating the file ~/.zshrc containing just a comment.
         That will prevent this function being run again.
    
    (1)  Continue to the main menu.
    
    --- Type one of the keys in parentheses ---

    構成したくない場合は、「0」を直接入力すると、zshのプロファイル「~/.zshrc」が生成されます.このとき、ウィンドウおよび情報は以下のようになり、zshがインストール構成に成功したことを示します.

    oh-my-zshのインストール


    zshは強力ですが、構成はかなり複雑で、多くの人がzshを構成するためにそれを使用することを放棄しています.oh-my-zshの出現は、zshの構成を極めて簡素化しています.簡単な構成ファイルを修正するだけでzshを操作することができます.oh my zshをインストールする方法は、GitHubページを参照することができます.ここでは、愛兄は公式に与えられた自動インストール方法を直接使用しています.
    AigeStudio@aige$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

    インストールが完了すると、iTerm 2ウィンドウのインタフェース全体の変化が表示されます.

    zshトピックの変更


    oh-my-zshインストールが完了すると、デフォルトのzshトピックはrobbyrussellで、oh-my-zshのGitHubオープンソースプロジェクトページからより多くの組み込みトピックを表示できます.
    内蔵テーマの使用は簡単で、好きなテーマCopyのテーマ名を勝手に探してください.例えば、ここで愛兄が「afowler」というテーマを選択し、zshのプロファイル「~/.zshrc」を編集し、中のZSH_THEME="robbyrussell"ZSH_THEME="afowler"に変更してコマンドを実行します.
    AigeStudio@aige$ exec $SHELL

    またはiTerm 2を再起動すればよい.

    zshサードパーティトピックのインストール


    oh-my-zshのサードパーティトピックは「~/.oh-my-zsh/custom/themes」ディレクトリの下に保存され、サードパーティトピックをそのディレクトリにダウンロードし、プロファイルに対応するトピック名を変更するだけで使用できます.ここではGitHubで非常に人気のあるPowerLevel 9 kのオープンソーステーマを例に、使用時にまずこのテーマをcloneし、プロジェクトディレクトリ全体を~/にコピーする.oh-my-zsh/custom/themesディレクトリの下(powerlevel 9 kのルートディレクトリであり、ネストされたディレクトリはないことに注意):
    次に、プロファイルを変更して、トピックを「powerlevel 9 k」:ZSH_THEME="powerlevel9k/powerlevel9k"に指定します.
    注意:ここで「powerlevel 9 k/powerlevel 9 k」とは、powerlevel 9 kディレクトリの下のpowerlevel 9 kトピックであり、powerlevel 9 kディレクトリの下のpowerlevel 9 kディレクトリではありません.
    修正が完了したら、exec $SHELLまたはiTerm 2を再起動してください.デフォルトの効果は以下の通りです.
    現在コマンドラインの左右に情報が表示されていることがわかります.PowerLevel 9 Kのwikiに基づいてこれらの表示情報をカスタマイズできます.情報指定パラメータは次のとおりです.
    #  
    POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs)
    
    #  
    POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=((status root_indicator background_jobs history time))

    WikiのさまざまなSegmentsに基づいて、プロファイルに上記の2つのパラメータを追加するだけで、好きな表示情報を設定できます.
    POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir_writable vcs vi_mode )
    POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status time load ram battery)

    上のアイゴの構成は、左にディレクトリの読み書き状態、バージョン管理情報、編集モード情報を表示し、右に現在のコマンド実行状態、現在のコマンド実行時間、負荷情報、メモリ情報、電力量情報を表示します.表示効果は次のとおりです.
    公式wikiに基づいて自分の表示情報をカスタマイズすることができますが、具体的には公式wikiを参考にしてここではあまり言いません.また、上記のトピックに設定した文字Iconを表示させるには、プロファイルに追加する必要があります.
    POWERLEVEL9K_MODE='nerdfont-complete'

    この行のパラメータは、文字Iconを表示できるコマンド行にきれいなIconアイコンが表示されます.例えば、次のGitディレクトリに入る表示効果などです.