Vim初心者に贈る、Vimの各種モードを完全に理解するとっておきの方法

つい先日, 2018-11-24 (土) に開催された VimConf 2018にて、弊Quipper社の ujihisa さんが登壇しVimの技術発表を行いました。本記事ではその発表の解説と、その裏話をめいっぱい記します。

発表タイトルは "Modes" という一単語のみで、公式サイトに載っているtalk abstractによると以下のようなものです。

Abstract

Discover what is happening internally when you switch modes, such as insert mode, normal mode, and operator-pending mode. This talk first revisits how modes are when you use Vim, then I'll let you dive into the Vim C implementation to see what's exactly happening there. I'll even show what modifications can be done when you make change, with using existing pull requests. This talk is both for Vim beginners and advanced users who don't always look at the Vim C implementation.

"Modes"

https://speakerdeck.com/ujihisa/vimconf-2018

発表動画: https://www.youtube.com/watch?v=3uUYf7eiI8Q

発表内容三行要約

  • Vimのmode (insert modeとかnormal modeとか) を横断的に理解しよう、とくにmodeのswitching
  • vimtutorや:hでどのように書かれているか確認し、実際に動きを見る
  • gdb + termdebugで、上記mode switchingまでのすべてとmode switching自体の挙動を実装とともに見る

内容のメインテーマは、Vimの基本中の基本である各種モードの理解なのですが、むしろこのメインテーマという骨格を元にして、旨味のある肉をいっぱいくっつけて提供するというスタイルの発表を意識的に行いました。骨格部分であるVimのモードについてはujihisaさんでなく誰でも調べれば簡単に話せる内容ですが、そのための具体的方法や周辺的な詳細事項などである肉の部分はujihisaさんでなければできないような内容を重点的に盛り込みました。なおこの肉部分はスライドではなく口頭での語りや、Vim側でのデモをメインに行いました。(なのでスライドだけみてると話が飛躍しまくっているように見えるかもしれません。)

続きを読む