🦍

Vim前線 2024年版

2024/07/03に公開

はじめに

本記事はTechFeed Experts Night#32 〜 【VSCode, Vim, Emacs】エンジニア向けエディタ最新動向!の発表資料です。

2024年7月時点までのVim界隈の動きをざっくばらんと紹介していきます。
Vim界隈の雰囲気を感じ取ってもらえたらと思っています。

Bram氏の訃報、そして新たな Vim 開発体制へ

Vimの生みの親であるBram氏が2023年8月3日に亡くなりました。
Vimを生み出し、これまでずっとVimの開発を支えてきたBram氏が居なくなり、ぼくも含め多くの悲しい声がありました。
改めて御冥福をお祈りします。

そんな中で、長年Vimの開発に貢献されたmattn氏が「追悼 Bram Moolenaar ~Vimへの情熱と貢献を振り返る」という記事を書かれています。

https://gihyo.jp/article/2023/11/memorial-to-bram-moolenaar

Vimの歴史やBram氏の人物像、mattn氏との逸話などが書かれていて、当人たちではないですがとても読んでいる側としても胸が熱くなる内容となっています。
ぜひ一読してみてください。

Bram氏が亡くなったあと、長年Vimの開発に貢献されたChristian氏を中心に新しい開発体制へ変わって、今も開発が継続されています。


https://zenn.dev/k_takata/articles/vimconf-2023 より

今後も進化していくVimを楽しみにしていきたいと思います。

知見の宝庫 ~ Vim 駅伝 ~

2023年03月01日からVim 駅伝というイベントが始まっています。
Vim駅伝は、Vimに関する記事を参加者で順番に書いていくイベントとなっていて、月・水・金の週3回、個人ブログまたはzennのvim-jp publicationに投稿されます。

Vimmerたちが各々持っている知見を惜しみなく記事にしているのので、まさに知見の宝庫となっています。

例えば最近では「中級 Vim 操作」がとても反響がありました。
こちらは、Vimの基本的な機能を使って効率よくテキストを編集するTipsが紹介されており、非常にわかりやすくまとめられています。
Vimの良さを垣間見ることができる記事ともいえるので、Vimに興味ある方にはぜひ一度読んでほしいと思っています。

https://zenn.dev/vim_jp/articles/2024-06-05-vim-middle-class-features

ちなみに、Vim駅伝は誰でも参加可能です。
参加する方法はVim 駅伝、始動しますに記載されているので、
自分もVimのアウトプットをしていきたい人はぜひ参加してみてください。

VimとAIの融合 ~ AI時代を生き抜くためのプラグイン ~

OpenAIが発表したChatGPTを皮切りに、世の中はAI時代に突入しました。
今はChatGPTに限らず、コーディング支援してくれるGitHub Copilotや他の生成AIなど、世の中はAIに溢れかえっています。

そんな中、VimでもAIを利用できるプラグインが開発されています。

たとえば、GitHubがGitHub CopilotのVimプラグインを開発しています。

https://github.com/github/copilot.vim

また、Neovim限定ですが、Copilot Chatのプラグインもあります。

https://github.com/CopilotC-Nvim/CopilotChat.nvim

こちらは、Chatするための専用バッファにて、Copilotといろいろやり取りしながらコーディングできます。

他にもChatGPTと連携して、コーディング作業を支援してくれるai-review.vimというプラグインもあります。
他にも探せば色々あると思いますが、このようにVimでもAIと連携して作業効率を上げることができます。

https://github.com/yuki-yano/ai-review.vim

さらになる自由へ ~ プラグイン開発 ~

これまでVimプラグインを開発する場合はVim scriptが使われることが多かったのですが、
Neovimがメイン言語にLuaを採用してから、Luaを使ったプラグインがかなり増えました。

また、VimはVim9 scriptという新しい言語を開発していて、それぞれ違う道を歩み始めています。
これはプラグイン開発者にとって嬉しい部分もありますが、同時に不安もあるかと思います。

プラグイン作者としてなるべくVim/Neovimの差異を考えずにプラグインの開発・メンテしたいと思っているはずです。
その場合は、denops.vimを使うとよいんじゃないかなと思います。

https://github.com/vim-denops/denops.vim

denops.vimはモダンなJava Script RuntimeであるDenoを使ったVim/Neovimプラグイン開発基盤です。
作者はvim-fernvim-ginなど高品質プラグインを開発されたlambdalisue氏です。
DenoはTypeScriptがnative builtinされているので、denops.vimを使えば今すぐTypeScriptでプラグインを開発できるためとても手軽です。

denops.vimについてもっと知りたい方は公式ドキュメントをぜひ読んでみてください。
https://vim-denops.github.io/denops-documentation/

他にもcoc.nvimという選択肢があります。

https://github.com/neoclide/coc.nvim

coc.nvimはNodeJSを使っているので、こちらもTypeScriptでプラグインの開発できます。
また、coc.nvimの特徴として一部のVSCodeの拡張が使えたり、いろんな補完プラグインがあります。

さいごに

ざっくりではありますが、Vim界隈の動きを紹介させていただきました。
少しでもVim界隈に興味を持ってもらえたら幸いです。

Discussion