エディターの環境を改善する

仕事環境を変えたこともあり、自分でコントロールできる範囲の負担を少しでも軽くしたかったのでVimの設定を見直すことにし、
いままで運用でカバーしていた下記問題を解決した。

  • よく使うコマンドをいつも入力している問題
  • Vimを閉じる(OS再起動とか)とバッファが全部消滅してしまう問題
  • タブを開きすぎてバッファを探すのが大変問題
  • Vim内で全文検索できてない問題

よく使うコマンドをいつも入力している問題

:NERDTree, :NERDTree, tg, tG, :q, :tabe あたりを律儀にコマンドを入力していたのでマップコマンドとして割り当てた。
shell でvv を入力すると vim ~/.vimrcを実行するようにしているので追加しまくっている。

Vimを閉じる(OS再起動とか)とバッファが全部消滅してしまう問題

vim-session というプラグインで解決した。
https://qiita.com/take/items/3be8908bbf4ad5b49e46
セッション情報はディレクトリルートにある.vimsessions毎 に書き込むため、プロジェクトを複数またいでいても(Vimはプロジェクト毎に別のプロセスで立ち上げているだろうから)セッションは別になる。

下記のようなshell関数を定義して、プロジェクトを立ち上げる時は実行している。

init_vimenv() {
  mkdir -p '.vimsessions'
}

タブを開きすぎてバッファを探すのが大変問題

https://github.com/kien/tabman.vim めちゃくちゃ便利

Vim内で全文検索できてない問題

今までshell上でgit grepをして、結果をエディタで開くというのをやっていたのを、Vimのコマンドモードから外部grepで検索するようにした。
(ついでにquickfixの使い方もわかったりして幸福度がだいぶあがった。)
Vimでそのままgrepコマンドを使うとビジー状態になるのだけど、unite.vimを使うと非同期で探すのでそこそこいい感じ。(さすがにGUIエディタにはぬるぬるさは負ける)

nnoremap <silent> ,g  :<C-u>Unite grep:. -buffer-name=search-buffer<CR>

git grep だと管理対象外のファイルはgrep結果には入ってこなかったのだけど、一般的なgrepコマンドだとgit管理対象外かわからないのでパッケージマネージャーでインストールしたテキストファイルまでgrepの結果に含まれてしまう。
そのようなノイズを含めないためには、以下のように適当な検索除外対象を自分で追加しないといけない。

let g:unite_source_grep_default_opts = "-r --color=never --exclude='vendor/bundle|tmp/cache|.log$|bundle.js$'"

だいぶマシになった気がする。以上。