2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

zshからbashにあえて乗り換えた話

Posted at

きっかけ

今までbash -> zsh -> fish -> zshと使ってきて色々不満点がありました。

  • fish
    • メリット
      • カスタマイズ楽すぎる
      • 標準で十分すぎる補完が効く
        • npmコマンドの補完なども自動で効く
      • 高速
    • デメリット
      • いわずもがな文法が...
  • zsh
    • メリット
      • カスタマイズ性はかなり高い
      • POSIX準拠
    • デメリット
      • カスマイズがだるい
      • 遅い
      • ワイルドカードが動かないときがある(自分のせいの可能性もある)

という感じでbashの乗り換えも検討していました。

達成したいこと

  • warpなどの高機能ターミナルエミュレータの力を借りずに基本的にbashだけで機能させる。

  • Tabを補完をzshほど強く効かせることを目標にする。

  • zsh-syntaxhighlighting, zsh-autosuggestionなどの機能を使用できるようにする。

  • gitの表示

導入

使用したツール

  • Ble.sh

    • 簡単に言うとbashをzshのように使いやすくしたカスタマイズされたshellです。Tab補完もハイライトなど自動でされます。
  • bash-it

    • プラグインマネージャでcompletionなどの補完を楽に管理することができるツール。

インストール

  • Ble.sh

bash
git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git
make -C ble.sh install PREFIX=~/.local
echo 'source ~/.local/share/blesh/ble.sh' >> ~/.bashrc
  • bash-it

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

カスタマイズ

bash-it

エイリアス(alias)が標準で整備されています。導入するだけでエイリアスを入れることができますが、私は自分で設定しているので導入をパスしました。

image.png

bash-itのプラグイン導入
これが非常に便利でした。使いたいプラグインを選ぶだけです。

image.png

bash
bash-it enable plugin git sudo ssh

completionの導入
使いたいツールを選んで同様に入れるだけです

image.png

bash
bash-it enable completion docker docker-compose ssh yarn

これでzshに負けないくらいの補完がつきます。

.bashrcのカスタマイズ

特に効果が高いものをピックアップします

  • 補完で大文字小文字を無視(大文字でも小文字でTab補完有効)
.bashrc
bind 'set completion-ignore-case on'
  • Tabでメニューを表示して選択する
.bashrc
bind 'TAB:menu-complete'
bind 'set show-all-if-ambiguous on'

pnpm補完

ここにもありますが、bashでもバシバシ効かせます。

bash
pnpm completion bash > ~/completion-for-pnpm.bash
echo 'source ~/completion-for-pnpm.bash' >> ~/.bashrc

挙動

zshやfishのようにオプションの補完やコマンド有無によるハイライト、suggesitionなどもしっかり機能するようになりました。
また、gitブランチも表示されて非常に快適です。
warpと組み合わせればより高機能になりますが、ほとんどbashだけで動作しているので当初の目標は達成できました。
zsh, fishを使用の方も是非参考にしてください。

bash.gif

以上です。お疲れ様でした。
また何かあれば追記します。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?