設定に手間を掛けずにシェルを便利にしたい
dotfilesを書いたり管理したりは面倒、かつだいぶ時間がかかります。その手間を嫌ってか、サークルなんかで周りを見ているとデフォルトの見辛くて不便な状態で使っている人をちょくちょく見かけます。
なのでできるだけ手間を掛けずにシェルを便利にするための手順を書きました。
Arch Linux以外のユーザ向け読み替え情報
Arch前提で書きますが、紹介しているプラグインはすべてGitHub上にソースがあるのでgit clone
してきてsource
のパスをクローンしたディレクトリ/プラグイン名.zsh
みたいな形にすれば動きます。
Arch Linuxユーザ向けの要約
👇これで3分で終わり!!閉廷!以上!皆解散!
sudo pacman -S zsh zsh-completions grml-zsh-config zsh-syntax-highlighting zsh-autosuggestions echo 'source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh' >> ~/.zshrc.local echo 'source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh' >> ~/.zshrc.local echo 'source /usr/share/doc/pkgfile/command-not-found.zsh' >> ~/.zshrc.local chsh -s $(which zsh) $USER
詳細
zsh
入れましょう。というかこの後の話を全部zsh前提にしてしまいました。
grml-zsh-config
これがあるとないとで大違いです。tab補完の際に2度押しで矢印キーでの選択、cdを打たなくてもパスだけを打ってディレクトリ移動、pgupキーで途中まで打ったコマンドを履歴から補完、などなどアルティメット便利です。
ArchのLive ISOにも入っています。
Arch Linuxユーザならpacman -S grml-zsh-config
、そうでないなら
$ cd ~ && wget -O .zshrc https://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
注: 変わっているかもしれないので最新情報はここを見る。上記コマンドは既存の.zshrcを消してしまいますがこの記事を読んでいる人は元々書いていないか、見てわかるので大丈夫でしょう。
シェル変更
そろそろシェルを変えていいと思います。
$ chsh -s $(which zsh) $USER
補完
zsh-completions
を入れます。Ubuntuにも同名でパッケージがあるらしい?正直要るのかよくわかってません。
シンタックスハイライト
zsh-syntax-highlighting
を入れます。Arch以外ならこちら:
インストール後.zshrc.localにsourceを追加します。Archの場合は:
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
サジェスト
zsh-autosuggestions
を入れます。Arch以外なら:
sourceを追加します。
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
コマンドが見つからないときのやつ(Arch)
source /usr/share/doc/pkgfile/command-not-found.zsh
参考URL: pkgfile - ArchWiki
プロンプト
(おそらく)grmlのおかげでプリセットのプロンプトがあります。prompt
と打つとヘルプが出てくるので詳細は割愛しますが、prompt fire
などと打って気に入れば.zshrc.localにそのコマンドそのままを追記しましょう。
オプション: powerlevel10k
プロンプトのセクションで飽き足りない人向けです。ArchならAURにあります:
$ paru -S --devel zsh-theme-powerlevel10k-git
sourceを追加して、
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
そうしたらexec zsh
でウイザードが起動します。詳しい話はGitHubを見てください:
ヨシ!
いい感じになっているのではないでしょうか。