[2022年版]ZshとNeoVimの設定見直し

Zsh+zinit and NeoVim+vim-plug

* 本ページはプロモーションが含まれています

古くから、 Linux等でZshのシェルを愛用してて、最近ではfishに浮気する事もありましたが、久々に設定ファイルを見直してみた。
共通の設定ファイル(dotfile)をGitHubで管理してましたが、何と最終更新日が約10年前になってました。(@_@)

設定ファイルもかなり古く、様々な補助ツールやプラグインも変化があるので、一から見直しました。

下記の記事は、Linux(Debian11)とApple M1(Monterey)の環境で、Zsh+zinitとNeoVim+vim-plugを構築します

準備 

Redhat系のCentOSでも利用可能ですが、zshのバージョンが古かったり、パッケージ導入がyum・dnf未対応なものが多いので、Debian11の環境で進めます

必要なパッケージ導入(Debian) 

$ sudo apt update
$ sudo apt -y install curl git zsh neovim peco ripgrep bat

Macの場合は、Homebrewでaptbrewコマンドで同様のパッケージを導入し、coreutilsを加えておく。
また、sudoである必要はない

## Homebrew for Mac
$ brew install curl git zsh neovim peco ripgrep bat coreutils

Zsh 

zsh周りでは、zinit,peco,fzf,powerlevel10kを利用していきます

Zinit 

2022/10に公式 の場所が変更されたため、インストール方法を修正しました。

$ zsh
$ bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/zdharma-continuum/zinit/HEAD/scripts/install.sh)"
$ source ~/.zshrc
$ zinit self-update

もし、zinitで失敗する場合は、下記の記事を参照

fzf Install 

$ git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
$ ~/.fzf/install

Powerlevel10k 

$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k

.zshrc 

作成済の.zshrcを下記の内容に置き換え
ただし、まだ初期段階であるため、設定間違いや不足な点があるかもしれません

zsh設定有効化 

.zshrcを置き換えたら、設定を再読み込みし、有効化

$ source ~/.zshrc

もし、ここでエラーが出るようでしたら、.zshrcを削除してください
.zshrcが存在しない場合は、/etc/zsh/zshrcが読み込まれますし、/usr/share/doc/zsh-common/examples/zshrcからコピーしても良いでしょう。

Neovim 

フォルダ作成

mkdir -p ~/.config/nvim/plugged

vim-plug 

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

init.vim 

下記のinit.vimを~/.config/nvim/init.vimとして置く

Neovim(nvim)を起動し、:PlugInstallでinit.vim内で定義したプラグインがインストールされます

備考 

.zshrcでは、一つのファイルに全て明記したので、あまりスマートではないため、各設定を別ファイルに分けて読み込んだ方が管理しやすいと思うので、今後に検討したいと思ってます。

私の場合、Dropboxは使わないですが、ResillioSyncで同期ディレクトリを作成し、その中でGit管理し、.zshrcをシンボリックリンク張ってます。
このようにする事で、どの端末でも最新の.zshrcが読み込まれる事になるので管理が楽になります

今回は、文章が長くなったので、.zshrcで定義した使い方の記事を予定しておきます


See also