Vim環境を一新する、2020年の夏 (2021年も有効)

すっかり秘伝のタレ化してしまった`.vimrc`と、秘伝のタレを吸い込みすぎてしまった `vim`環境を一新すべく、１から`Vim`環境を再構築していくことにした。
この文章はその際の備忘録となる。

一応内容としては下記のとおりとなる。

* Vimを一度削除する
* 最新のVimをインストール(mac環境上で手動ビルドしてインストール)
* vim-plugなどを用いてセットアップ

## 今までのVim環境を削除する

まずは今まで利用していた`Vim`環境の確認を行う。


```bash
$vim --version
VIM - Vi IMproved 8.1 (2018 May 17, compiled May 19 2018 22:37:58)
macOS version
Included patches: 1
Compiled by {自分のPCの名前}
~~~以下略~~~
```

たしか`Vim 8.1` がリリースされたときに自身のmac環境でコンパイルして、それっきりずっとそのVimを使っていたような気がする。
`Compiled by {自分のPCの名前}` となっているのは、たぶんそれだろうか。


一応今まで使っていた `.vimrc` 自体は gistに残しておいた。
(負の遺産の詰め合わせのような状態になっているので、残したところでなにかの参考になるわけではないが...)

[shinshin86/vimrc-202007_saraba(Gist)](https://gist.github.com/shinshin86/0ef4e21d93af83368c54cecbaad52ccf)

プラグイン関連は `NeoBundle` を使用してきたが、これからは `vim-plug` を使っていこうと思う。

なお、自身の `.vimrc` に関する設定ファイルなどは `.vimrc`を参照すると、　`.vim/` 配下に格納されているようなので、そちらもディレクトリごとすべて削除する。
(たぶんそれで問題ないはず..)


```vimscript
" neobundleの設定で下記のように記述していた
if has('vim_starting')
    set runtimepath+=~/.vim/bundle/neobundle.vim
    call neobundle#begin(expand('~/.vim/bundle/'))
endif
```

下記のドキュメントも併せて参照させていただいている。

[usr_43 - Vim日本語ドキュメント](https://vim-jp.org/vimdoc-ja/usr_43.html)

というわけで、`.vim`ディレクトリは削除していくことにする。
...と思ったが、一応今までの経験上、まだ消さないことにした。
(確信を持って何かをした自分に裏切られることが今までに何度もあったので)

```bash
mv ~/.vim ~/.vim_bk_2020summer
```

追記：問題なさそうだったので、一通りこの作業が完了したあとに消した。

つぎに `.vimrc` を削除する

```bash
rm ~/.vimrc
```

次に vim の削除だが、下記のドキュメントを参考にすることにした。

[vim - uninstall.txt](https://github.com/vim/vim/blob/master/uninstall.txt)

上の記述を読んだ限りでは、自身の場合、手作業で入れている(vimのリポジトリをcloneして、手元のmacOSでビルドしてインストールしている)ため、手作業で削除する必要があるようだった。
そのため、下記の記述に該当するようだった。

```txt
3. By hand.
   This is a bit more work, but you can decide exactly what you want to
   remove.
```

以降、こちらのドキュメントを参考にしながら削除作業を行う。

まず、上の記述内にある `"Edit with Vim"` というのは自分のmacでは設定されていなかったので(たぶんファイルを選んだときに出てくるコンテキストメニューのこと？？？？)、ここは無視する。

`gvim`も使っていないので飛ばす。

`.vimrc`や`vim`ディレクトリ関連についてはさきほど対応してしまったので飛ばす。

実行ファイルを削除するとのことなので、下記のファイルを削除する。

```bash
$which vim
/usr/local/bin/vim

rm /usr/local/bin/vim
```

macOSだと消してよいのか？的なことを聴かれたので、 `y`を入力した。

```bash
override rwxr-xr-x  root/admin for /usr/local/bin/vim? y
```
これで `vim` を打つと もともとmacに入っていたvimが立ち上がるようになる。
ちなみに立ち上がる `vim`はこちら。

```bash
$vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Jun 15 2020 23:37:08)
Included patches: 1-503, 505-680, 682-1283, 1365
Compiled by root@apple.com
```


次に削除対象のvimのディレクトリを削除する。

```bash
sudo rm -rf /usr/local/share/vim/vim81
```

なかなかドキドキするものがあるが、上のコマンドで全て削除。

GUI環境では使っていなかったので、ひとまずこれで `Vim`の削除は完了したようだ。

## 新しいVim(8.2)を手作業でインストールする

macOS環境で手作業でインストールする場合は、下記のドキュメントを参考にする。
( `brew install vim` でインストールもできると下記のドキュメントには記述があるが、今回も手作業でインストールしていくことにする)

[Vim - README_mac.txt](https://github.com/vim/vim/blob/master/READMEdir/README_mac.txt)

なお、手作業でインストールする際に `clang` と `make` が必要になるがどちらも入っていることを確認した。

```bash
$clang --version
Apple clang version 11.0.0 (clang-1100.0.33.17)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

$make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0
```

ここからは作業ログをただただ残していく。

```bash
# 作業ディレクトリを一応作った
mkdir install-vim-8.2

cd install-vim-8.2
git clone https://github.com/vim/vim.git

cd vim
make
sudo make install
```

ここまでやると、下記に `vim82` というものが作られている。

```bash
/usr/local/share/vim/vim82
```

そして実行ファイルがこちらに作られている。

```bash
$/usr/local/bin/vim --version                                                                                                                                             (master)
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Jul 26 2020 07:31:35)
macOS version
Included patches: 1-1294
Compiled by {自分のPCの名前}
```

あとはパスを通して、こちらのvimを起動させるようにしてインストールは完了。

## vimrcのセットアップ

最初にも書いたとおり、`vim-plug`を使って今後は管理していくようにする。

以前下記でQiitaにポストした内容を参考にしながら、設定を行っていく。

[Vim :helpがユニークな3つのポイント、vim :helpを読むための敷居を下げる3つの事柄](https://qiita.com/shinshin86/items/eb41e4fb513bb4d3e3cd)

`vim-plug`の設定方法

```bash
mkdir -p ~/.vim/autoload/
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
```

`fzf`も入れようと思ったが、既にインストール済みだったので省略。
(インストールする場合は下記のコマンドで)

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

あとは`.vimrc`を作っていく。
ここまで一気に文章書きながらやっていたら思いの外疲れてしまったので、`.vimrc`の内容に関する部分は一旦省略する。
(公開せず下書き保存にすると、そのまま忘れてしまいそうな気がしたので、このタイミングで公開まで行うつもりなのである)


下記の`.vimrc`を作成して、vimを起動。
`PlugInstall`でセットアップは完了。


```vim
""""""""""""""""""""""""""""""
" vimrc
""""""""""""""""""""""""""""""
call plug#begin('~/.vim/plugged')

" Japanese Help
Plug 'vim-jp/vimdoc-ja'

" fzf
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'

" vim lsp setting
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'

" color scheme
Plug 'chriskempson/base16-vim'

" Customize status bar
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

call plug#end()
""""""""""""""""""""""""""""""
set nocompatible
set backspace=indent,eol,start
set encoding=utf-8
set helplang=ja,en
set number
set expandtab
set hlsearch
set ignorecase
set incsearch
set smartcase
set laststatus=2
syntax on
set autoindent
filetype plugin indent on
set showcmd
set background=dark
set wildmenu
set ruler
set showmatch
set clipboard+=unnamed

" line number color
highlight lineNr term=underline ctermfg=11 guifg=Grey

" setting color scheme
let base16colorspace=256  " Access colors present in 256 colorspace
set termguicolors
colorscheme base16-default-dark

" setting status bar
let g:airline_theme='luna'

" Emacs Move
imap <C-a>  <Home>
imap <C-e>  <End>
imap <C-b>  <Left>
imap <C-f>  <Right>
imap <C-n>  <Down>
imap <C-p>  <UP>
```

プラグインは必要最低限にして、できるだけvimrcの行数を少なくするように心がけた。
機能が少なすぎるわけでもないが、これだけあれば問題ないかなというイメージ。
一旦これだけで生活してみて、まだ過不足出てきたら少しずつ修正していくつもり。

カラースキームは今まで [iceberg](https://github.com/cocopon/iceberg.vim) を愛用していて、もちろん今でもお気に入りなのだが、せっかく一新するのだから手を出したことのなかったものにチャレンジしてみようと思い、[base16-default-dark](https://github.com/chriskempson/base16-vim#installation) というものに変えてみた。
こちらはこちらで落ち着いたカラーリングが好みな感じだった。

<img width="365" alt="base16-default-darkで表示させたvimrcのスクリーンショット" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/205976/a8a7b89d-e563-f56e-3a50-565498ef40cc.png">

これで文章は以上となる。
だいぶ駆け足で書いてきたので、後々追記・修正したりはあるかもしれない。

環境を一新すると気持ちもリセットされて、なんだか爽やかな気持ちになりますね🌳

## 追記：2021年にM1 Macでも問題なくインストールできることを確認
2021年の夏、最近はM1 Macでも開発を行うようになってきたため、こちらにもVimを導入した。

[これはM1でVimのインストールが完了したときのツイート](https://twitter.com/shinshin86/status/1419572070430613510)

[新しいVim(8.2)を手作業でインストールする](#新しいvim82を手作業でインストールする) の項目で書かれている手順そのままに実行していったが、M1 Macでも問題なく、`make` や `install`は行えた。

やはり最新のVimをマシンに入れると気分もなんだかワクワクしてくるものである。