Vim

Vim(ヴィム)は、viエディタから派生し、多機能に進化したテキストエディタです。プログラマーのブラム・ムールナー氏によって開発され、当初はviの模倣を目指していましたが、後にviを凌駕する機能を持つようになりました。

概要



Vimは、CUI(キャラクターユーザーインターフェース)環境での動作を基本としていますが、GUI版(GVim)も存在します。特にUnix系OSでは、Emacsと並んで広く利用されるテキストエディタです。

Vimの名称は、当初「Vi IMitation(viの模倣)」の略でしたが、viを超える機能を目指し「Vi IMproved(viの改良)」と呼ばれるようになりました。現在では、オリジナルのviを大きく上回る機能を持っています。

VimはCUIで動作するため、Unix系OSに標準のエディタとして搭載されることが多く、2000年以降のOSでは、viの代わりに高機能なVimやその機能削減版が標準装備されるようになりました。そのため、コマンドラインでviを実行すると、代わりにVimが起動するディストリビューションが一般的です。

GUI版のVimはGVim(ジーヴィム)と呼ばれ、マウス操作など、GUI環境ならではの機能も利用できます。

viと同様に、キーボードのみで操作することを前提としているため、キーボードだけで全ての操作が可能です。Vimの操作は、モードを使い分け、小さなコマンドを組み合わせることで様々な機能を実現します。他のエディタとは操作方法が大きく異なるため、慣れるまで時間がかかりますが、慣れると軽快なテキスト編集が可能です。

Vimは、プログラムコードやシステム設定ファイルの編集に特化しており、プログラマーやシステム管理者によく利用されています。

vi系のキーボード操作は、エディタだけでなく、ビューワーやブラウザのプラグインなど、様々なソフトウェアの操作方法に影響を与えました。

高いカスタマイズ性



Vimの大きな特徴の一つとして、高いカスタマイズ性が挙げられます。viが環境に依存せず、設定なしで全ての機能を利用できるのに対し、Vimでは設定ファイルを使い、個人の好みに合わせたカスタマイズが可能です。

設定は、主に~/.vimrc(Windows版では%USERPROFILE%\_vimrc)に記述し、Vim起動時に読み込まれます。Vimは、独自のスクリプト言語Vim script)を用いて機能を拡張でき、様々なプラグインが公開されています。

Vimは、多言語、多コーデックに対応していますが、日本語などのマルチバイト文字の扱いに不便な点があるため、英文編集での利用が一般的です。

ライセンスは、GPL互換のチャリティウェアで、フリーでオープンソースなソフトウェアとして配布されています。Vimを起動すると、ウガンダの子供たちへの援助を募るメッセージが表示されます。

モード切替



Vimは、複数のモードを切り替えながらテキスト編集を行います。この独特な機能は、初心者には難しいと感じるかもしれません。他のエディタも、テキスト挿入とコマンド指示を区別するモードを持っていますが、Vimはモードごとにキー割り当ても切り替わる点が独自です。これにより、マウスやメニューを使わず、キーボードだけで全ての編集が可能です。

Vimには6つの基本モードと5つの派生モードがありますが、実質的に使われるのは以下の4つです。

ノーマルモード:編集コマンドを入力するモード。カーソル移動や編集操作が可能です。エディタ起動時はこのモードで始まり、他のモードからESCキーで戻ることができます。
演算子未解決モード:ノーマルモードの派生モードで、削除やコピーなどの範囲指示を待つ状態です。例えば、ノーマルモードでdキーを押すとこのモードに入ります。
ビジュアルモード:テキストの選択を行うモードです。選択後、コピーや削除などの操作を実行できます。
挿入モード:テキストを入力するモードです。i、a、oなどのキーでノーマルモードから切り替えることができます。

その他のモード

選択モード:ビジュアルモードに似ていますが、印字可能な文字を入力すると、選択範囲が削除され、挿入モードになります。
Exモード:コマンドラインモードの変種で、コマンドを連続して実行できます。

起動と終了



Vimは、コマンドラインから`vim [ファイル名]`で起動します。詳しいオプションを知りたい場合は、`vim --help`で確認できます。

Vimを終了するには、ノーマルモードで`ZZ`(保存して終了)または`ZQ`(保存せずに終了)を使用します。中断したい場合は、`Ctrl+z`を押します。

機能



Vimは、テキストエディタとしての基本的な機能を備えていますが、特に以下のような特徴があります。

多段階アンドゥ/リドゥ
コピー&ペースト
豊富なカーソル移動
豊富な選択方法
スペルチェック
オペレータと範囲指定:オペレータ(削除、コピーなど)と範囲指定を組み合わせることで、複雑な編集操作が可能です。
マーク:文章中の特定の位置にマークを付け、カーソル移動の目印にできます。
レジスタ:テキストの断片を一時的に保存する場所です。
マクロ:操作を記録し、繰り返し実行する機能です。
ジャンプ:カーソル位置の履歴を記憶し、前後の位置に移動できます。また、タグジャンプで関数の定義元に移動できます。
インデントとタブ:ファイルタイプごとに適切な自動インデントが可能です。タブ文字はスペースに変換できます。
検索・置換・ソート:正規表現を用いたテキスト検索や置換、ソートが可能です。
補完:挿入モードやコマンドモードで、単語やコマンドの補完が可能です。
ファイル管理:自動バックアップや編集中の状態を保存する機能があります。
ユーザーインターフェイス:行番号、ルーラー、ステータスバーなどの表示設定を変更できます。
強調表示(シンタックスハイライト):ソースコードやテキストファイルを見やすく色分けします。
折り畳み:長い段落や関数などを折り畳んで表示できます。
マルチバッファ・ウインドウ分割・タブページ:複数のテキストを同時に編集できます。また、ウィンドウを分割したり、タブページで切り替えたりできます。
差分表示:ファイルの変更点を比較表示できます。
Quickfix:コンパイルエラーが発生した際に、エラー箇所にジャンプできます。
キーマッピングの変更・コマンド定義:キーマッピングを自由に変更したり、独自のコマンドを定義できます。
ヘルプ:Vimには膨大なドキュメントがあり、キーワード検索で必要な情報を探せます。

カスタマイズ



Vimは、viとは異なり、個人の好みに合わせて徹底的にカスタマイズできます。カスタマイズは、主に独自のスクリプト言語Vim script)を用いて行います。設定ファイル(~/.vimrc)やプラグインによって、インターフェースからキーボードマクロまで、幅広くカスタマイズできます。

Vim script


Vimには独自のスクリプト言語Vim script)が備わっており、複雑な作業を自動化できます。Vimの設定ファイルやプラグインは、すべてVim scriptで記述されており、必要に応じて変更できます。Vim scriptはJavaScriptに似た言語仕様を採用していますが、文法や挙動に一貫性がない部分もあります。

Vim9 script


Vimバージョン9.0からは、新しいVim9 scriptが追加されました。これは、パフォーマンス向上を主な目的としており、スクリプトをコンパイルすることで、実行速度が大幅に向上します。

プラグイン



Vimのプラグインは、~/.vim以下の特定のディレクトリに配置することで動作します。プラグインには様々な機能があり、Vimの機能を大幅に拡張することができます。

プラグインの管理


以前は、プラグインの管理が煩雑でしたが、現在ではGitHubとプラグイン管理ツールを利用することが一般的です。

Vimball:プラグインを単一のファイルに圧縮して提供する機能ですが、現在はあまり使われていません。
GitHub:プラグインの多くがGitHubで管理されており、Gitを使ってプラグインを管理できます。pathogenのようなプラグインを使うことで、自分の設定ファイルとプラグインを別々に管理できるようになりました。
Vundle:プラグインの名前やレポジトリを記述するだけで、プラグインのインストールや更新を自動化できます。

歴史



Vimは、ブラム・ムールナー氏がAmigaコンピュータを購入したことがきっかけで開発されました。当初は、viのクローンとして開発されましたが、その後、高機能なテキストエディタとして発展しました。

移植された環境



Vimは、AmigaOSだけでなく、様々なプラットフォームに移植されています。また、AndroidやiOSでも動作する移植版が存在します。

Vimの派生エディタ



Viをモデルとした派生物にはnviやElvisがありますが、最も発展したのがVimです。また、Vimをモデルとしたプロジェクトもいくつか存在しますが、Vimの機能を完全に模倣するのは困難です。逆に、Vimの機能を制限して操作を簡単にしたCreamという派生物もあります。

Neovim


Neovimは、Vimのリファクタリングプロジェクトであり、Vimとほぼ同じように使用できます。Neovimは、新機能の追加や不要な機能の削除、GUIアーキテクチャの改善、スクリプトの高速化など、様々な点でVimを改善しています。

Vimと似た操作体系を持つアプリケーション



ViおよびVimの操作体系は、他の多くのソフトウェアにも影響を与えています。

Atom
Sublime Text
Emacs
Eclipse
Kate
Xcode
JetBrains IDEs
Visual Studio Code

また、PDFや画像ビューワー、ブラウザなどでも、Vimライクな操作が可能なものがあります。

Mozilla Firefox
Google Chrome
GmailGoogle DriveなどのGoogleのサービス
Vivaldi
Safari
W3m
MuPDF
feh
bashなどのシェル

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。