マイターミナルセットアップ


私が最初に大学でコーディングを始めたとき、私にとって最も恐ろしい技術の1つは端末でした.当時、OSXはbashで出荷しました、そして、デフォルトはちょうど見にくいです、それで、私はそうしませんでした.
多くの場合、できるだけ早く、彼らはできるだけ快適な端末を取得するジュニア開発者に教えてください.私は私の大学時代からの話を引用します、ちょうど期日前の数時間前、私rm -rf 私のプロジェクトは、急いでそれをやり直す必要があった.これは、私が端末を使うのを躊躇していて、私がしていたことを理解していなかったからです.端末上で快適であることは、devとしての重要な技術です.
長年にわたって私は別のターミナルのセットアップと偶数の束で遊んだwritten themes of my own . しかし、私は本当に私の現在のセットアップが好きになりました.このポストは、あなたのものがこれのように見える方法を詳述します!
A picture of my terminal setup

端末アプリ


OSXのデフォルト端末はOKですが、常にインストールしますiterm すべてのそれは素晴らしい機能です.

iterm設定


美しいフォント


デフォルトのレンダリングだけで“オフ”の感じの種類.それをバターに滑らかにするためにPreferences => Profiles => Text チェックEnable subpixel anti-aliasing . これは人生の改善の巨大な品質です.
私が使うそれらはこれらのフォントをインストールすることを勧めます、そして、私は心から同意します.
  • MesloLGS NF Regular.ttf
  • MesloLGS NF Bold.ttf
  • MesloLGS NF Italic.ttf
  • MesloLGS NF Bold Italic.ttf
  • それからPreferences => Profiles => Text フォントをMesloLGS NF . 私も12の代わりにデフォルトのフォントサイズ16に.デフォルトのプロファイルにフォントの選択を保存するには、itermを再起動する必要があります.

    ミニマムテーマ


    移動するPreferences => Appearance => General 変化Theme to Minimal . これは、端末のツールバーを黒とユニフォームの残りのアプリを作るものです.

    非集束ペイン減光


    移動するPreferences => Appearance => Dimming そして、すべてを確認するDim background windows をチェックする.これは、あなたがパンを分割するときに集中していないウィンドウが邪魔されていないようになります.

    同じディレクトリにペインを分割する


    私が端末の分割について嫌っていたのは、ホームディレクトリで新しい端末が起動することでした.
  • 移動するPreferences => Profiles => General => Working Directory
  • 絹篩で篩うたようAdvanced Configuration
  • クリックEdit
  • チェンジWorking Directory for New Split Panes to Reuse previous session's directory
  • 静かな新しいターミナルプロンプト


    新しい端末を作るとき、あなたが気にしないテキストの束を吐き出します.以下のコマンドを実行して、これらの全てを沈黙させてください!これも企業のコンピュータ上で動作する!
    touch ~/.hushlogin
    

    シェル構成マネージャー


    それから次のインストールoh-my-zsh . 彼らのウェブサイトから:

    Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration.


    これは、テーマとプラグインのサポートを利用する
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    

    テーマ


    あなたの端末をテーマにすることは、多くのセットアップと調整を通常含みます.最近発見powerlevel10k そして、絶対に愛でいます.
    特徴:
  • セットアップは風です
  • インストールしたフォントは端末上で驚くべきものに見える
  • 即座に新しいタブ(私はとても速く今すぐタイプ!)
  • 一時的なプロンプトを使用すると、端末プロンプトに情報を使用できます
  • マシンにテーマをインストールします
    git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
    
    テーマを設定する~/.zshrc :
    ZSH_THEME="powerlevel10k/powerlevel10k"
    
    端末を再起動すると、セットアップを経由して端末をカスタマイズできます.閉じるこの動画はお気に入りから削除されていますgrab mine here .

    P 10 Kカスタマイズ


    このセクションでは、私が私にしたカスタマイズを説明します~./.p10k.zsh . あなたが私のものを使うならば、あなたがすでにそれのためにされたので、あなたはこれのどれも読む必要はありません

    左側プロンプト


    左側に1行目にカスタムアイコンを追加し、2行目にプロンプト文字を追加しました.残りの値はデフォルト値です.
    typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
      # =========================[ Line #1 ]=========================
      my_icon
      dir                     # current directory
      vcs                     # git status
      # =========================[ Line #2 ]=========================
      newline                 # \n
      prompt_char           # prompt symbol
    )
    
    # Display a custom Icon the changes depending on the time
    # Use the Font Book on your mac to figure out the character
    # To change the color change `-f 070` to a different 256 color
    function prompt_my_icon() {
      local -i currentTime=${(%):-%D{%H%M}}
    
      if (( currentTime > 1619 || currentTime < 421 )); then
        # Weed
        p10k segment -f 070 -i 'ﲤ'
      else
        # Duck
        p10k segment -f 227 -i ''
      fi
    }
    

    正しいプロンプト


    ここで私は国連の任意のノードのバージョンを検出し、プロンプトの2行目に3つの項目を追加しました.
    これらの3つのセグメントは前のコマンドにのみ表示されます.
  • status - を返します.
  • time - 最後のコマンドが実行された時刻
  • dir - コマンドが実行されたディレクトリ
  • これはあなたが実行しているコマンドを探しているときに便利です.あなたは彼らが走っていた文脈を知っています、そして、その情報はあなたのプロンプトで他のすべてのもので乱雑でありません.
    typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
      # =========================[ Line #1 ]=========================
      # ALL THE DEFAULTS DONT DELETE THEM. REMOVED FOR CLARITY
      nodenv                  # node.js version from nodenv (https://github.com/nodenv/nodenv)
      node_version          # node.js version
      battery               # internal battery
      # =========================[ Line #2 ]=========================
      newline                 # \n
      status
      time
      dir
    )
    
    # Turn of p10k's transient prompt so we can control it
    typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
    
    # Hide the second line on the right side
    function p10k-on-pre-prompt() {
      p10k display '1|*/left_frame'=show '2/right/(time|dir|status)'=hide
    }
    
    # Show the second line on the right side after command is run
    function p10k-on-post-prompt() {
      p10k display '1|*/left_frame'=hide '2/right/(time|dir|status)'=show
    }
    

    zshプラグイン


    zshプラグインは多くを提供します、そして、大部分は特定のdevスタックに向けられます.右のプラグインを見つけることは素晴らしいタブ補完体験を意味します.あなたが必要とするものをインストールしてください.
    私が使用する2つのプラグインは

  • zsh-syntax-highlighting - ZSHの強調表示のような魚のシェルのような構文.これは私のエイリアス/コマンドを緑色にするものです.それが緑であるならば、それはインストールされます!

  • zsh-autosuggestions - ZSHに対する魚のような自己提案入力中に最後に一致するコマンドのプレビューが表示されます.プレス使用権
  • エイリアス


    私はエイリアスをそんなに使いませんでしたが、端末でより快適になるので、彼らは本当に役に立ちます.あなたが合うようにこれらを作成し、それを覚えて最も簡単な方法です.
    以下のものはシンプルで、ほとんどのワークフローに適しています.
    # Alias the vs-code "code" command to something shorter
    # You can use it to open anything in vscode "c ." will open the current directory
    alias c="code"
    
    # Open your .zshrc in VS Code
    alias zshrc="c ~/.zshrc"
    
    # Restart the terminal and ZSH
    alias restart="exec zsh"
    

    ジット


    私はGit GUIの人としてスタートgitup しかし、私が開発者として成長したので、私はますます私の端末に移りました.
    # Open the current repository in Gitup
    alias g="gitup"
    # Create a new Branch
    alias gb="git checkout -b"
    # Show the current status of the repo
    alias gs="git status --short"
    # Stage some files
    alias ga="git add -v"
    # Stage all files
    alias gaa="ga -A"
    # Make a commit
    alias gc="git commit -m"
    # Add all changes, amend the last commit, and force push
    alias gaf="gaa && git amend && gp -f"
    
    gitPush()
    {
        # If in a git repo - call git mv. otherwise- call mv
        if [[ $(git config "branch.$(git rev-parse --abbrev-ref HEAD).merge") == '' ]];
        then
            git push -u --porcelain "$@"
        else
            git push --porcelain "$@"
        fi
    }
    # Push to origin and set the upstream if necessary
    alias gp=gitPush
    
    # Delete merged branches
    alias gcb="git checkout master && git pull && git branch --merged master | egrep -v 'next|master' | xargs -I % sh -c 'git branch -d %; git config --get branch.%.merge && git push origin -d %'"
    
    The gp エイリアスにGit設定で値を設定する必要があります
    [push]
      default = current
    
    The gaf エイリアスには、Git設定で値を設定する必要があります.これもgit amend コマンドが利用できる.このコマンドは最後のコミットを段階的な変更で修正します.
    [alias]
      amend = commit --no-edit --no-verify --amend
    
    そして、あなたがそこにいる間、あなたも私のすべての色セッティングを使うかもしれません.Gitの出力もかなりする必要があります!
    [color]
      ui = true
      branch = auto
    [color "diff-highlight"]
      oldNormal = red bold
      oldHighlight = red bold 52
      newNormal = green bold
      newHighlight = green bold 22
    [color "diff"]
      commit = yellow bold
      old = red bold
      new = green bold
      whitespace = red reverse
    [color "status"]
      branch = magenta normal bold
      remoteBranch = magenta normal bold
      changed = yellow normal bold
      untracked = red normal bold
      updated = green normal bold
    [color "branch"]
      current = magenta normal ul bold
      remote = yellow normal bold
    

    ターミナルキーボードショートカット


    キーボードショートカットに熟練している場合は、テキストエディタでスーパーヒーローのように見えることができます.デフォルトのitermキーボードショートカットはVSコードのようなものではないので、私はいつもテキストをナビゲートするのではなく、端末で奇妙な文字を挿入していました.
    これを修正するには、itermでカスタムキーボードショートカットを設定できます.移動するPreferences => Keys . 以下の各ボタンをクリックしてAction 設定するSend Hex Code .
    ショートカット
    結果
    16進コードcmd + rightカーソルを行の最後まで0x05 cmd + leftカーソルの行を開始する0x01 cmd + backspace行削除0x15 alt + rightカーソルスキップ0x1b 0x66 alt + leftカーソルを1ワードスキップする0x1b 0x62 alt + backspaceワード削除0x1b 0x08

    より良いデフォルトツール


    あなたが使用するツールの多くはおそらく超古いです!それは彼らが問題を解決する大きな原因です、しかし、彼らは我々が彼らが欲しいほどきれいでないかもしれません!すべては、ほとんどのコンピュータにプリインストールされているデフォルトのツールを置き換えるために使用するツールです.

    バットバット


    A cat(1) clone with wings. . 非常により良い!
    brew install bat
    
    別名を確認するcat あなたの~/.zshrc .
    alias cat="bat"
    

    関連キーワード:ls


    A modern version of ‘ls’. . かわいい色!
    brew install exa
    
    別名を確認するcat あなたの~/.zshrc .
    alias ls="exa"
    # Show lots of info, even with icons!
    alias lss="exa -alh --icons --git-ignore"
    

    デフ・ソー・ファンシー


    Strives to make your diffs human readable instead of machine readable. .
    brew install diff-so-fancy
    
    diffをすべてのdiffsに対して空想するためにgitを教えてください.
    git config --global core.pager "diff-so-fancy | less -FR --tabs=4
    

    歴史探索

    bash and zsh 素敵な検索履歴をctrl + r ). しかし、それは古くて醜いです.より良い経験のために私はfzf .
    brew install fzf
    
    # To install useful key bindings and fuzzy completion:
    $(brew --prefix)/opt/fzf/install
    

    cd => z ( zオキシド)


    Easily jump to directories . ちょうどパスの一部を供給し、それは最後のマッチングパスにディレクトリを変更します.私はまだ使用cd でも私はz プロジェクト間をジャンプします.
    brew tap ajeetdsouza/zoxide
    brew install zoxide
    
    そして、あなたの~/.zshrc .
    eval "$(zoxide init zsh)"
    
    zoxide Aと船zi エイリアス.これにより、すべての可能なディレクトリが一致しますが、あいまいな検索をすることができます.