blog.anqou.net
rss
author
tags

Vim のプラグインを見直した

この記事はもともと別場所にて公開していました。

Vim のプラグインでいくつか気に食わないのがあったので、久しぶりに全部見直した。

#dein の代わりに vim-plug を使う

Vim プラグインのインストール例として上がってるのをよく見るから。なんか速いらしい。Vim8 付属のやつでもよかったけど、やっぱりプラグインマネージャは欲しいかなぁという感覚。

dein のhook_addに対応する機能がautocmd User ...だと思うのだけど、 onforを使っているときしか使えならしいのでちょっと不便だ。 ここを見てautocmd VimEnterを使った。

#ale の代わりに vim-lsp を使う

mattn さんのこの記事を見て以来使いたかったので移行。 ale には F#のサポートが無いからという理由もある。 coc.nvim も見たけど機能盛り盛りでよくわからなくなりそうなので敬遠。

:LspInstallServer fsharp-language-serverしても LSP サーバが起動してくれないバグがある。これは F# LSP Server の導入方法がまずくて、FSharpLanguageServerの起動を行う ~/.local/share/vim-lsp-settings/servers/fsharp-language-server/fsharp-language-serverの中身を $DIR/src/FSharpLanguageServer/bin/Release/netcoreapp3.0/FSharpLanguageServer $*に書き換えれば動く。 vim-lsp-settings に PR でも送ろうかと思ったけど、環境によって書き換える方法が良う分からん。 dotnet runさせろという感じだが、これはfsharp-language-serverくんが対応していなくてダメ。

エラー内容を表示するためには

let g:lsp_diagnostics_enabled = 1
let g:lsp_diagnostics_echo_cursor = 1

すればいいが、1 行しか出ないので複数行ある場合は若干見にくい。

ale は formatter も兼ねていたが vim-lsp は LSP 付属の formatter しかなく不便なので、別途 neoformat を入れる。保存するときに自動的にNeoformatをかけるのは README に書いてある方法でいいが、 ALE のようにフラグで挙動を変えるためにはひと工夫必要だった:

augroup neoformat
    autocmd!
    autocmd BufWritePre * if get(g:, 'neoformat_autosave', 1) == 1 && get(b:, 'neoformat_autosave', 1) == 1 | Neoformat | endif
augroup END

#colorscheme は変わらず vim-hybrid

一番見やすい。hybrid の前は molokai を使っていたが、環境によっては見にくくてやめた。

#vim-polyglot を入れた

F#に色をつけてくれたりして便利。vim-sensible も一緒に付いてくるらしい。

#NERDTree をやめそこねた

そこかしこで「NERDTree 使わなくても生きていける」みたいな記事を見るし、実際 NERDTree の基本的な機能しか使っていないのでやめようと思ったが、 netrw の手触りが NERDTree と違いすぎて諦めた。 netrw はリモートのファイルもいじれる強みがあるのだけど、まぁほとんど使ったこと無いしいいか。

2020/12/03 追記:部分一致でファイル絞り込むやつが欲しくなったのでmattn さんのこの記事を参考にして CtrlP を入れた。

#Gundo の代わりに simnalamburt/vim-mundo を使う

いつのまにか Gundo の更新がほとんど止まっていた。代わりに Gundo フォークのvim-mundoを使う。 Gundo は場合によってはめちゃめちゃ重くなるので、vim-mundo でそれが軽減されるといいなぁ。ほかにmbbill/undotreeというのも見つけた。 vim-mundo が重ければこちらを試す。

#vim-go の代わりに vim-goimports を使う

mattn さんのこの記事を見て影響された。まぁ Go 言語書くのはほとんど ISUCON のときだけなのであまり関係ない気もするが……。

2020/12/04 追記:よく考えたら neoformat を入れたので goimports はそちらで起動すればよく、vim-goimports は必要なさそう。

#変わらず使っているもの