目的
Nushell で Git 補完と現在のブランチが表示されたらうれしい。
こんな感じで
環境
WSL 上の Ubuntu 22.04
手順
Nushell インストール
https://github.com/nushell/nushell/releases から自分の環境にあったバイナリーをダウンロードできます。
私は nu-0.98.0-x86_64-unknown-linux-gnu.tar.gz をダウンロードします。
自分でビルドする方法や cargo でインストールする方法もあります。詳しくは公式で。
https://www.nushell.sh/ja/book/installation.html
ダウンロードしたファイルを展開し、nu ファイルをパスの通っているディレクトリにコピーします。
wget https://github.com/nushell/nushell/releases/download/0.98.0/nu-0.98.0-x86_64-unknown-linux-gnu.tar.gz
tar zxvf nu-0.98.0-x86_64-unknown-linux-gnu.tar.gz
sudo cp nu-0.98.0-x86_64-unknown-linux-gnu/nu /usr/local/bin/
ここで nu と実行すると Nushell が起動します。初回は env.nu
を作るか聞かれるので Y と答えておきます。
$ nu
No environment config file found at /home/user/.config/nushell/env.nu
Would you like to create one with defaults (Y/n):
Git Completions の追加
https://github.com/nushell/nu_scripts を clone します。
git clone https://github.com/nushell/nu_scripts.git
この中にある custom-completions/git/git-completions.nu が目的のファイルです。
これを適当な場所にコピーします。
私は ~/.config/nushell/ にコピーしました。
cp nu_scripts/custom-completions/git/git-completions.nu ~/.config/nushell/
最後に ~/.config/nushell/env.nu の最終行に設定を追加します。最後の *
は消さないでください。
use ~/.config/nushell/git-completions.nu *
再度ターミナルを立ち上げれば Git コマンドの補完が効くようになっています。
プロンプトの装飾
プロンプトに現在のブランチ名などを表示するには先ほど clone した nu_scripts の中の modules/prompt にあるスクリプトを使います。
私は oh-my.nu というのを使いました。
Nerd Font のインストール
https://www.nerdfonts.com/ から好きなフォントを選んでインストールしてください。
インストールしなくても動作するのですが、表示が微妙なことになってしまうので、インストールした方がよいです。
gstat のインストール
Git のステータスを取得するのに使う gstat プラグインをインストールします。
https://github.com/nushell/nushell/releases からダウンロードし展開したファイルの中にプラグインが入っています。
必要なプラグインだけ ~/.config/nushell/ にコピーしておきます。
plugin add コマンドでインストールします。
cp nu-0.98.0-x86_64-unknown-linux-gnu/nu_plugin_gstat ~/.config/nushell/
plugin add ~/.config/nushell/nu_plugin_gstat
plugin use gstat
plugin list コマンドを入力して gstat と表示されれば大丈夫です。
~> plugin list
╭───┬───────┬─────────┬────────────┬─────┬────────────────────────────────────────────┬───────┬───────────────╮
│ # │ name │ version │ is_running │ pid │ filename │ shell │ commands │
├───┼───────┼─────────┼────────────┼─────┼────────────────────────────────────────────┼───────┼───────────────┤
│ 0 │ gstat │ 0.98.0 │ false │ │ /home/user/.config/nushell/nu_plugin_gstat │ │ ╭───┬───────╮ │
│ │ │ │ │ │ │ │ │ 0 │ gstat │ │
│ │ │ │ │ │ │ │ ╰───┴───────╯ │
╰───┴───────┴─────────┴────────────┴─────┴────────────────────────────────────────────┴───────┴───────────────╯
oh-my.nu の設定
on-my.nu を適当な場所にコピー。
私は先ほどと同様 ~/.config/nushell/ にコピーしました。
cp nu_scripts/modules/prompt/oh-my.nu ~/.config/nushell/
~/.config/nushell/env.nu の最終行に以下を追加します。
use ~/.config/nushell/oh-my.nu git_prompt
$env.PROMPT_COMMAND = { (git_prompt).left_prompt }
$env.PROMPT_COMMAND_RIGHT = { (git_prompt).right_prompt }
$env.PROMPT_INDICATOR = " "
再度ターミナルを立ち上げればプロンプトが派手な表示に変わっています。