🐚

ble.shとbash-itでbash環境を強化する

に公開

この記事は

ターミナルでbashを使う際の補完機能を強化する方法です。

ble.shとbash-itをインストールすると、bashの操作性が大幅に向上します。シンタックスハイライト、高度な補完機能、便利なエイリアス、テーマなどが利用できるようになります。

私には上記2つと以前こちらに書いた履歴強化ツールのatuinを組み合わせて使っています。

https://zenn.dev/haru_iida/articles/atuin_command_history_tool

ble.shとbash-itについて

ble.shとは

ble.shは、bashにシンタックスハイライト、高度な補完機能、履歴検索などを提供するbash拡張です。

https://github.com/akinomyoga/ble.sh

以下のような特徴があります。

  • リアルタイムシンタックスハイライト
  • 高度な補完機能
  • 履歴検索の強化
  • コマンドラインの編集強化

bash-itとは

bash-itは、bashの補完機能強化やエイリアス、テーマなどを提供するbashフレームワークです。

https://github.com/Bash-it/bash-it

以下のような特徴があります。

  • プラグイン
  • エイリアス
  • 自動補完の拡張

ble.sh

設定とインストール

手順1: ble.shをインストール

以下のコマンドでble.shをインストールします。

git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git
make -C ble.sh install PREFIX=~/.local

手順2: 設定ファイルの編集

~/.bashrcにble.shの読み込み設定を追加します。

echo 'source ~/.local/share/blesh/ble.sh' >> ~/.bashrc

手順3: 動作確認

ターミナルを再起動するか、以下のコマンドで設定を反映します。

source ~/.bashrc

ble.shが正常に読み込まれると、コマンドラインでシンタックスハイライトが有効になります。

シンタックスハイライト

ble.shによってコマンドラインでシンタックスハイライトが有効になります。

  • 正しいコマンド: 緑色で表示
  • 存在しないコマンド: 赤色で表示
  • 文字列: 特定の色で表示
  • パス補完: 候補が色分けされて表示

コマンドラインの補完

Terminalにコマンドラインを入力し始めると、過去の履歴からコマンドラインを補完してくれます。

履歴検索の使い方

Ctrl+Rで履歴検索を開始します。通常bashでは↑や↓キーで全ての履歴を移動しますが、Ctrl + Rを打った後にgitなどのキーワードを入力すると、そのキーワードを含む履歴のみを表示するようになります。

私の場合はatuinを使っているのでこの機能は使いませんが・・・

ble.shのカスタマイズ

~/.blercファイルを作成してble.shの設定をカスタマイズできます。

~/.blerc
# 履歴の重複を削除
bleopt history_erasedups=1

# 自動補完の遅延時間を設定
bleopt complete_auto_delay=500

# シンタックスハイライトの色設定
ble-color-setface command_builtin fg=green,bold

デフォルトではコマンドラインの自動補完が一瞬で出るのですが、私的には意図しないものが表示されて鬱陶しい場合があるので500msから1000msくらいの遅延を入れるといいんじゃないかと思ってます。

bash-it

設定とインストール

手順1: bash-itをインストール

以下のコマンドでbash-itをCloneしてインストールします。

git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
~/.bash_it/install.sh

設定を反映するためにターミナルを再起動するか、以下のコマンドを実行します。

source ~/.bashrc

手順2: エイリアスの設定

コマンドラインからbash-it enable aliasと打ってからTABキーを押すと、利用可能なエイリアスの一覧が表示されます。

エイリアス

ここから必要なエイリアスを選択して有効化できます。

bash-itで有効化されるエイリアスの例。

# 一般的なエイリアス
ll      # ls -alF
la      # ls -A
l       # ls -CF

# Gitエイリアス
gs      # git status
ga      # git add
gc      # git commit
gp      # git push

# Dockerエイリアス
dps     # docker ps
dexec   # docker exec -it
dlog    # docker logs

正直私は不要なのでこの機能は使ってません。

手順3: プラグインの有効化

プラグインも同様にbash-it enable pluginコマンドで有効化できます。以下のような感じです。

bash-it enable plugin git
bash-it enable plugin docker
bash-it enable plugin ssh
bash-it enable plugin history

ただ、プラグインの説明が見つからず、しょうがないのでgitリポジトリのソースコードを確認しましょう。

https://github.com/Bash-it/bash-it/tree/master/plugins/available

例えば、gitのプラグインを入れてgit_infoと打つと、以下のように現在いるディレクトリのGit情報を表示してくれます。

git_info

手順4: Completionの設定

補完機能を有効化します。私としてはこの機能が一番有用です。

bash-it enable completion

これも同様にbash-it enable completionコマンドで有効化できます。以下がcompletionのリストです。

completion

例えばgitを有効にした場合、gitと打ってからTabキーを押すと、以下のように補完候補が表示されます。

Git補完

また、rakeを有効にした場合、rakeと打ってからTabキーを押すと、以下のようにそのRailsプロジェクトのrakeタスクの補完候補が表示されます。ちゃんとRake -Tで有効なタスクを取得しているようです。

rake補完

注意点

パフォーマンスについて

ble.shとbash-itの両方を有効にするとターミナル起動速度が若干低下することがあります。

パフォーマンスが気になる場合は以下を検討してください。

  • 不要なプラグインを無効化する
  • テーマをシンプルなものに変更する
  • ble.shの設定を調整する

まとめ

ble.shとbash-itの導入により、bashの使い勝手が大幅に向上します。

主な改善点。

  • シンタックスハイライトによる視認性向上
  • 強化された補完機能
  • エイリアスとプラグイン

日常的にbashを使用するなら、これらのツールの導入を強くおすすめします。

Discussion