Vim
挿入モードでビジュアル選択を開始したときのモード。
例えば Ctrl+o v、Ctrl+o V、Ctrl+o Ctrl+v を実行するとこのモードに入る。
このモードの時にはコマンドラインに「-- (insert) VISUAL --」と表示される。
2000年代後半になるとプラグインの管理方法は大きく変わりはじめた。それはGitHubの登場によって多数のプラグインが、分散型バージョン管理システムGitで管理されるようになってきたためである。GitHubが個人に無料でスペースを提供したため、自分の設定ファイル群である ~/.vim (dotvim, vimfiles) をGitHub上で管理する者が増加し、プラグイン管理もすべてGitで管理したいという需要が出てきた。
まず、pathogen(パソゲン、Tim Pope作)というプラグインが登場した。これは自分の~/.vim全体をGitで管理し、第三者プラグインはGitのsubmodule機能によって管理するようにした。これのプラグインの登場により、第三者プラグインと自分の書いたプラグインとを別々に管理できるようになったことで、Vimball形式の時の問題点はほとんど解決され、プラグイン管理の負担を劇的に低減させることに成功した。
プログラマ支援機能の一つで、長い段落・関数などは折りたたんで、コンパクトに表示したほうが俯瞰しやすくなる。 いくつかの折り畳み方法があり、自分で範囲を指定して折り畳むことも可能だが、自動で判別して折り畳ませることもできる。
Vimには独自のスクリプト言語(Vim script, 言語に着目した場合VimLとも略される, 詳細はVim script)が備わっており、それを用いればマクロで対応するのが難しいような複雑な作業を自動化できる。Vimの設定ファイル類(vimrc、プラグイン、インデント定義、シンタックス定義、カラースキーム、ファイルタイプ判別)はすべてVim scriptであり、変更すれば挙動を細かくカスタマイズできる。通常はユーザーのホームディレクトリ以下の設定ファイル群でこれらの設定を上書きして利用する。Vimのコマンドモードとは、このVim scriptを一行実行しているにすぎない。:normalを使うことでノーマルモードのコマンドもVim script上で利用できる。
Vim scriptは、JavaScriptに近い言語仕様を採用しており、while文やif文などの一般的な制御構文から、リストやハッシュなどのデータ構造までをサポートしているが、オブジェクト指向言語のように厳密なクラスや継承の概念はない。