徒然Vim
はじめに
Sunrise Advent Calendar 2019 - Adventar
VOYAGE GROUPさんのインターン「Sunrise」の Advent Calendar 2日目、やんやんです。
夏からvim幼稚園に入園して早3ヶ月経ったので、vimを使っていて思うことを徒然なるままに書いていく。
プラグイン管理を何でするのが良いのだろうか
vimのプラグインマネージャーはいくつか存在している。Neobundleとかvimplugとかdeinとか、、、
自分は今deinでプラグインを管理しているが、みんなは何を使っているのだろうか。
deinはtomlファイルでプラグインを管理しているためvimrcがプラグインを追加するたびに汚くなっていくことがない点は長所だと思う。逆にvimplugみたいに全部vimrcにまとめられるのも複数端末で環境を揃えたいときなどは楽チンではある。こうしてみると、自分がこの結論に至るのは早計な気はするが、一長一短で好きなの使えばいいのでは...? と思えてしまう。dein以外のプラグインマネージャーの感想とかを是非とも聞きたい。
vim-surroundを多用している件
vim-surroundというプラグインがある。括弧やクオーテーションといった文字列を囲む物に対する編集を楽チンにできるようになる。括弧で囲われた中の文字列を削除したり変更するにはオペレータの次にi (inner) を入力すればできるのだが、クオーテーションをダブルクオーテーションにしたいとか、ビジュアルモードで選択したオブジェクトを括弧で囲いたいといった操作はvim-surroundによってできるようになる。
上はvim-surroundの良さを伝えようとしている動画。実際はもっと素早くやっていたのだがgifに変換したらやたら遅くなってしまった。とにかく文字列を囲む物に対するアクションが格段に便利になるのでおすすめ。
fzfとの連携
CLIでインクリメンタル曖昧検索ができるfzfというツールが非常に便利。
以下のような関数をzshrc (or bashrc etc...) で定義してあげると、fzfでプレビューしながらファイルを検索して、見つけたファイルをvimで開くことができる。
fvim() {
files=$(ls -F) &&
selected_files=$(echo "$files" | fzf -m --preview 'head -100 {}') &&
vi $selected_files
}
それだけでなく、vimでfzfが呼び出せるプラグインもある。ctrlpより高速 (らしい)のでキーマップをいじっておけばファイル検索の高速化が図れる。 (ちなみに自分はSpace + f に設定してある)
カラースキーマ決まらない問題
拙者、dracula大好き侍でござる。しかしdracula君はことtexファイルの時だけ真っピンクになってしまうお茶目さんなので使えない。(拙者はtexでスライドを作る侍なので結構致命的でござる) 今はpalenightというのを使っているのだがみんなのおすすめを是非とも教えて欲しい。
もうちょっと色分けして欲しいのは私のわがままなのだろうか。
テンプレート機能みたいな事が簡単にできた
日々のTodoをまとめるためのmarkdownファイルとか、研究の進捗報告スライドみたいに形式が固定化されていてかつ編集頻度が高いファイルを編集したいときが自分は結構ある。texが特にそうなのだが、毎回毎回書くべきおまじない部分が割と多いのがだるかったりする。
これまでは以前のファイルをコピペして使っていたのだが、意外とその手間もストレスだった。なんとかならんのかと色々調べた結果、vimrcをいじれば解決した。
やってることはとても単純で、新しくバッファーに追加されたファイルの名前がマッチしたら対応するtxtファイルの中身を展開して流し込むだけ。つまり展開されるtxtファイルにテンプレートとしておきたい部分を記述しておけばストレスフリーなのだ。
まとめ
「思考速度 ≒ 編集速度」の道はまだまだ険しい。texファイルの編集をvimで完結させようとするのは結構手間がかかるがその気になればできてしまう事がわかった。
vimmerな皆さんのvim Tipsをお待ちしております。
vimmerじゃない方は是非一度普段のエディターのキーバインドをvimにしてみてください。