はじめての記事投稿です。
至らぬ点も多々あるかと思いますが、よろしくお願い致します。
テキストエディタは基本VSCodeを使っていましたが、
Vimを使いこなしてる人をみて「これはかっこいい!」と思いVim修行中の者です。
デフォルトでの操作方法はなんとなく理解してきたのでそろそろプラグインを使っていこうとした際に
まずはどの環境でも一瞬でVimの環境を持ってこれるようにShellScriptを書いてみたって話です。
Vimのプラグイン管理の種類
- サードパーティー製のプラグインマネージャー
- Vim 8から搭載されているプラグイン管理機能
どちらで管理したか
調べた感じはサードパーティー製のプラグインマネージャーを用いた管理手法のネット記事が多かったのですが、
標準搭載されている機能のほうが将来的なメンテナンスや機能追加も公式に行われると思ってVim 8から搭載されているプラグイン管理機能を用いました。
vim 8で標準搭載されている機能を用いたパッケージ管理方法はこちらの記事を参考に行いました。
また.vimフォルダや.vimrcファイルもシンボリックリンクを貼って一つの管理ディレクトリ内に設置してます。
フォルダ構成
vimfiles/
├─init.sh # 下記にて紹介する初期設定用のShellScriptです。
├─.vimrc
└─.vim/
└─pack/
└─mypackages/ # このディレクトリ名はなんでも大丈夫です。
├─start/
| ├─plugin1/
| ├─plugin2/
| └─plugin3/
└─opt/
├─plugin4/
├─plugin5/
└─plugin6/
初期設定用のShellScript
#!/bin/bash # vim file synbolic link settingDOT_FILES=(.vim .vimrc)for file in${DOT_FILES[@]}do
if[-e$HOME/$file];then
sudo rm-r$HOME/$filefi
ln-s$HOME/vimfiles/$file$HOME/$filedone# vim start packages settingdeclare-A START_PACKAGES
START_PACKAGES=(["NERDTree"]="https://github.com/scrooloose/nerdtree.git"["airline"]="https://github.com/vim-airline/vim-airline"["airline-themes"]="https://github.com/vim-airline/vim-airline-themes")start_pack_dir=$HOME/.vim/pack/mypackages/start
if[-e$start_pack_dir];then
sudo mkdir-p$start_pack_dirfi
for package in${!START_PACKAGES[@]}do
if[-e$start_pack_dir/$package];then
sudo rm-rf$start_pack_dir/$packagefi
mkdir$start_pack_dir/$package
git clone ${START_PACKAGES[$package]}$start_pack_dir/$packagedone# vim opt packages settingdeclare-A OPT_PACKAGES
OPT_PACKAGES=()opt_pack_dir=$HOME/.vim/pack/mypackages/opt
if[-e$opt_pack_dir];then
sudo mkdir-p$opt_pack_dirfi
for package in${!OPT_PACKAGES[@]}do
if[-e$opt_pack_dir/$package];then
sudo rm-rf$opt_pack_dir/$packagefi
mkdir$opt_pack_dir/$package
git clone ${OPT_PACKAGES[$package]}$opt_pack_dir/$packagedone
Vim起動時に読み込んでほしいプラグインはSTART_PACKAGESの連想配列にkeyをプラグイン名、valueをgithubのURLとして追加します。
※あとからオプションとして読み込むプラグインはOPT_PACKAGESに記載します。
最後に
これでVimのプラグインの初期設定をシェルを叩くだけでよくなりました。
環境構築を簡単にする手法としてはdotfilesを管理したり、dockerを使ったりと様々ありますがvimだけに今回は焦点をしぼった形となっているためそんなに楽になってわけではないですがね…。
とりあえず普段あまり触らないShellScriptの勉強にもなったので良しとしますが、おすすめの手法などあればご紹介いただければ嬉しいです。