VimConf 2019 に参加して
各発表の内容などは他の方が詳しく書いてくれていると思うので、今回 VimConf 2019 に参加したことで自身が影響を受けた部分だけにフォーカスしてまとめてみます。 Keynote - Vim Renaissance
vim-lsp は過去に触ってみようと思いプラグインを入れてみたものの、設定方法がいまいちよくわからずに実際に使うところまでいくことなく放置してしまっていました。 vim-language-server のインストール
手っ取り早く試したかったので雑にグロールインストールしました。
code:terminal
$ npm install -g vim-language-server
$ which vim-language-server /usr/local/bin/vim-language-server
vim-lsp の設定
プラグインは vim-plug で管理しているのでそれ前提での説明です。
補完もしたいので asyncomplete.vim なども含めた 4 つのプラグインを入れました。
code:plugin.vim
Plug 'prabirshrestha/async.vim', {'for': 'vim'} Plug 'prabirshrestha/vim-lsp', {'for': 'vim'} Plug 'prabirshrestha/asyncomplete.vim', {'for': 'vim'} Plug 'prabirshrestha/asyncomplete-lsp.vim', {'for': 'vim'} vim-language-server を使う設定は以下の通りです。vim-language-server のREADMEには vim-lsp での設定方法が書かれてなく若干手間取りましたが、--stdio オプションを忘れずに付ければ問題ないはずです。
code:lsp.vim
if executable('vim-language-server')
aug MyLspVimSetting
au!
au User lsp_setup call lsp#register_server({
\ 'name': 'vim-language-server',
\ })
aug END
endif
これで自動補完などが効くようになって、Vim script がより書きやすくなるはずですが以下のマッピングも追加でやると定義ジャンプやポップアップを使ったヘルプの参照もできてより嬉しいかもしれません。かもしれません。
code:mapping.vim
nnoremap <C-]> :<C-u>LspDefinition<CR>
nnoremap K :<C-u>LspHover<CR>
Keynote - We can have nice things
Vim way により親しむためにもヘルプファイルをもっとちゃんと読まないとと思い直すいい機会になりました。
Usage and manipulation of the tag stack
タグスタックは雰囲気で使っていて、自分で作っている Vim プラグインでもタグジャンプ的な処理は雑に自前処理で実装してしまっていました。
そんな背景もありタグスタックの裏側での動きと settagstack が追加されていることを知れたのは思わぬ収穫でした。 VimConf に参加すると自前プラグインの改善点が見つかり issue を増える!
make test
その場で実行したテストが失敗してしまったので、今の環境に何かしら問題があることがわかって良かったです。
My dark plugins development history ~ over 10 years ~
デフォルトのキーマッピングを提供しないようにした話。
拙作の vim-iced ではデフォルトのキーマッピングは提供しているものの、明示的にデフォルトのキーマッピングを使うように設定しないと有効にはならない && 既にマッピングがあれば上書きしないようにすることでバランスを取っているつもりです。 これは提供するプラグインが Vim のどのユーザー層をターゲットにしているかで変わる話だと思うのでベストな選択肢がなく難しい話ですね。
LT: Time script
前から気になって watch していた Time script ですが、LT を聞いてより使ってみたい欲求が高まりました。 まだ開発中とのことなので試せるようになる日が今から待ち遠しいです!
最後に
このような素晴らしいカンファレンスに参加させて頂き、運営の皆様方には感謝しかありません。本当にありがとうございました。
今回の VimConf には個人スポンサーという形でしか力になれていませんが、Vim プラグインの開発者の1人として Vim 界隈がより盛り上がるようにもっとアウトプットしていかないとなと改めて思った次第です。uochan.icon