Vim
ファイルタイプごとに、適切な自動改行(オートインデント)を行うことができる。Vimではデフォルトで40以上のプログラミング言語の自動改行に対応している。自動入力されるスペース(またはタブ文字)の数は任意に決めることが可能で、後述するハイライト機能によって可視化することもできる。 また、タブ文字は:expandtabでスペースに一括変換することもできる。
Vimはオランダ人のプログラマー、ブラム・ムールナーによってAmiga向けに開発された。のちにWindowsを含むさまざまな環境に移植され、特にUnix系オペレーティングシステム (OS) ではEmacsと並んで広く使用されているテキストエディタとなっている。
Vimという名称は、オリジナルのviエディタに近づくことを目標として、開発当初Vi IMitation(viの模倣)の略とされていた。しかし、やがてviを超えることを目指してVi IMproved(viの改良)とされるようになり、今日ではオリジナルのviを大きく上回る機能を持つに至っている。
VimはGUIを必要とせずCUIでも動くため、Unix系OSに標準のエディタとして搭載されていることが多い。コンピュータの大容量化と高速化にともない、2000年以降のOSでは viに代わってより高機能な Vim、あるいはその機能劣化版が標準装備されるようになってきている。このため、コマンドライン上でviを実行すると代わりにVimが起動するディストリビューションが一般的となった。
Vimは基本的にCUIで動作するが、GUIで動くVimのことを特にGVim(gVim, gvim, ジーヴィム)と呼び区別している。
ノーマルモードの派生モード。「実行範囲の指示が必要なコマンド」を実行した場合にVimが指示を待っている状態。
例えば、ノーマルモードで dキーを押すとこのモードに入る。続けて d キーを押した場合は一行削除、wを押した場合は一単語削除、$(行末の意)を押した場合は行末までを削除、となる。d 5 d とキーボード操作すると、カーソル位置から5行分の削除となる。
しかしながら、モード概念と絡んでいることもあって文法が複雑であり、文法や挙動に一貫性が無い部分もある(例:.演算子など)。このため、Vim scriptでバグの少ないプラグインを書くのは慣れが必要となる。また、Vim scriptは、PythonやLisp、Luaなどといった他のスクリプト言語と比較すると、パフォーマンスが悪いケースが多いが、これはスクリプトを行ごとに逐次実行していることによる。
コンパイル時に Vim に追加できる Perl や Python や Ruby などのインタフェースを使用すれば、Vim scriptの中でインラインに他言語を利用することもできる。ただし、Vimの機能にアクセスするためにはVim scriptの関数をevalするなどして間接的に呼び出すしかなく、完全な代替にはなっていない。
Vim scriptはVimのカスタマイズ性の中核を担っているが、上述した文法や性能の問題から弱点を認め、他言語への転換を図ることを目的の一つとしてNeovimがフォークしている。
統合開発環境と同様、ソースファイルを編集した後Vimから直接コンパイルできる。コンパイルエラーが発生したときには、Quickfixと呼ばれるもう一つのウィンドウが表示される。エラーメッセージに基づいて、直接他のウィンドウ内に表示されたソースファイルのエラーの出た箇所へジャンプすることができる(:help quickfix参照)。