Vi IMproved の短縮形である Vim は、vi エディターの拡張バージョンです。 Vim は高度なテキスト編集用のテキストベースのユーザー インターフェイスを実装しており、その効率性と広範囲にカスタマイズできる機能により、多くのシステム管理者やソフトウェア エンジニアに好まれています。 Vim には、テキスト補完、構文の強調表示、スペル チェックなどの便利な機能も含まれています。
vim コマンドは、Vim エディターを呼び出します。ただし、vi コマンドはユーザーを自動的に Vim にリダイレクトするため、この目的で使用することもできます。引数としてファイル名を指定せずに入力すると、vim コマンドはデフォルトでようこそ画面を開きます。ファイルを開くには、構文 vim {file name} を使用します。ファイルが存在しない場合、Vim は指定された名前でファイルを作成し、そのファイルを編集用に開きます。 Vim は、複数のファイルを同時に開くことをサポートしています。
vim エディターには 2 つの操作モードがあります:
- 通常モード
- 挿入モード
編集のために最初にファイルを開く (または新しいファイルを開始する) と、vim エディターは通常モードに入ります。通常モードでは、vim エディターはキーストロークをコマンドとして解釈します。
挿入モードでは、vim は入力したすべてのキーをバッファー内の現在のカーソル位置に挿入します。挿入モードに入るには、i キーを押します。挿入モードを終了して通常モードに戻るには、キーボードの Escape キーを押します。
通常モードでは、矢印キーを使用してテキスト領域内でカーソルを移動できます (端末の種類が vim によって適切に検出されている場合)。 vim コマンドには、カーソルを移動するためのコマンドが含まれています:
- へ 1 文字左に移動する
- じ 1 行下に移動する (テキストの次の行)
- か 1 行上に移動する (テキストの前の行)
- l 1 文字右に移動する
大きなテキスト ファイル内を 1 行ずつ移動するのは面倒です。幸いなことに、vim には作業を高速化するためのコマンドがいくつか用意されています。
- PageDown (または Ctrl+F ) データを 1 画面分進める
- PageUp (または Ctrl+B ) 1 画面分のデータを後方に移動する
- G バッファの最後の行に移動
- num G バッファ内の行番号 num に移動する
- gg バッファの最初の行に移動
vim エディターには、コマンド ライン モードと呼ばれる通常モード内の特別な機能があります。コマンド ライン モードでは、追加のコマンドを入力して vim のアクションを制御できる対話型のコマンド ラインが提供されます。コマンド ライン モードに入るには、通常モードでコロン キーを押します。カーソルがメッセージ行に移動し、コマンドの入力を待つコロンが表示されます。コマンド ライン モードには、バッファーをファイルに保存して vim を終了するためのコマンドがいくつかあります。
- q バッファデータに変更が加えられていない場合は終了します
- クッ! バッファデータに加えられた変更を終了して破棄する
- w 別のファイル名でファイルを保存するためのファイル名
- wq バッファデータをファイルに保存して終了
vim コマンドの実行中に以下のエラーが発生した場合:
vim: command not found
選択したディストリビューションに従って、vim パッケージをインストールしてみてください:
分布 | コマンド |
---|---|
OS X | brew install vim |
Debian | apt-get install vim |
Ubuntu | apt-get install vim |
アルパイン | apk add vim |
Arch Linux | pacman -S vim |
カリ Linux | apt-get install vim |
CentOS | yum install vim-enhanced-2 |
Fedora | dnf install vim-enhanced-2 |
Raspbian | apt-get install vim |
vim コマンドの例
1. ファイルを開く:
# vim path/to/file
2. 指定した行番号でファイルを開きます:
# vim +line_number path/to/file
3. Vim のヘルプ マニュアルを表示:
:help[Enter]
4. 保存して終了:
:wq[Enter]
5. 最後の操作を元に戻す:
u
6. ファイル内のパターンを検索します (「n」/「N」を押して、次/前の一致に移動します):
/search_pattern[Enter]
7. ファイル全体で正規表現置換を実行します:
:%s/regular_expression/replacement/g[Enter]
8. 行番号を表示します:
:set nu[Enter]