最終更新:2025-02-22
vimは、Unix系システムで広く利用される高機能テキストエディタである。モーダルエディタとして、通常モード、挿入モード、ビジュアルモード、コマンドラインモードなど複数のモードを持ち、効率的かつ柔軟なテキスト編集を実現する。
この記事では、vimの起動方法、各種コマンドラインオプション、詳細な操作方法、置換および画面分割の操作方法について具体的に解説する。
基本的な起動方法
ターミナルで以下のコマンドを実行することで、指定ファイルをvimで開く。ファイルが存在しない場合は新規作成される。
vim [オプション] [ファイル名]
主なコマンドラインオプション
以下に、vimで利用可能な主要なオプションを具体的に説明する。
-u {vimrc}
ユーザー定義のvim設定ファイルを指定して読み込む。
例:vim -u ~/.vimrc_custom filenameこれにより、指定の設定で
vimを起動できる。-U {gvimrc}
GUI版vim(gvim)のための設定ファイルを指定して読み込む。
例:vim -U ~/.gvimrc_custom filename-R, —readonly
読み取り専用モードでファイルを開く。誤って内容を書き換えることを防止する。
例:vim -R filename-b
バイナリモードでファイルを開く。バイナリファイルの編集や比較作業に利用される。
例:vim -b filename-C
Vi互換の制限モードで起動する。古いviスクリプトとの互換性が必要な場合に使用する。
例:vim -C filename-c {command}
起動後に指定したコマンドを自動実行する。複数回指定することも可能である。
例:vim -c "set number" filenameこれにより、起動時に行番号表示が自動で有効となる。
-T {terminal}
端末の種類を指定して起動する。特殊な端末環境下で利用される。
例:vim -T vt100 filename
詳細な操作方法
1. 通常モード(Normal Mode)
通常モードは、vim起動時のデフォルトモードであり、テキストの移動、削除、コピー、置換などのコマンドを入力する。
カーソル移動
h,j,k,l: 左、下、上、右に移動する。w: 次の単語の先頭へ移動する。b: 前の単語の先頭へ移動する。ggまたは1G: ファイルの先頭に移動する。G: ファイルの末尾に移動する。{n}G: 任意の行番号にジャンプする。例:100Gで100行目へ。(ジャンプしたい行数を入力してEnterを押下するだけでも良い。)
削除・変更
x: カーソル下の文字を削除する。dw: 単語単位での削除。dd: 現在の行を削除する。u: 最後の操作を取り消す(undo)。
2. 挿入モード(Insert Mode)
テキストの入力は挿入モードで行う。通常モードから以下のキーで移行する。
i: カーソル位置の左側から挿入開始。a: カーソル位置の右側から挿入開始。o: 現在行の下に新しい行を挿入し挿入モードに入る。
挿入モードから通常モードへ戻るには Esc キーを押す。
3. ビジュアルモード(Visual Mode)
テキストの範囲選択および操作が可能なモードである。
v: 文字単位で範囲を選択する。V: 行単位で範囲選択する。Ctrl+v: 矩形選択(ビジュアルブロックモード)を開始する。
選択範囲に対しては、y(コピー)やd(削除)などの操作を行う。
4. コマンドラインモード(Command-line Mode)
通常モードからコロン(:)を押すことでコマンドラインモードに入る。ここでは、ファイルの保存、終了、検索、置換などのコマンドを入力する。
ファイル操作
:w: 保存する。:q: 終了する。:wqまたは:x:保存して終了する。:q!:変更を破棄して終了する。
検索
/pattern: 前方に向けて文字列を検索する。?pattern: 逆方向に検索する。n: 次の検索結果に移動する。N: 前の検索結果に移動する。
置換 置換操作は
vimの重要な機能であり、以下のように行う。:s/old/new/:カーソル行内の最初のoldをnewに置換する。:s/old/new/g:カーソル行内のすべてのoldをnewに置換する。:%s/old/new/g:ファイル全体で置換する。- 確認を伴う置換は、
cフラグを追加する。例:
各箇所で確認が求められ、:%s/old/new/gcyを入力すれば置換、nならスキップする。
画面分割と分割後の操作方法
vimは画面を分割して複数のファイルや同一ファイルの別部分を同時に確認・編集することができる。
1. 画面分割の方法
水平分割
:split filenameまたは:sp filename:指定ファイルを新しいウィンドウで水平に分割して開く。
例::sp sample2.txt- 現在のファイルを水平分割するには、単に
:splitと入力する。
垂直分割
:vsplit filenameまたは:vsp filename:指定ファイルを新しいウィンドウで垂直に分割して開く。
例::vsp sample3.txt- 現在のファイルを垂直分割するには、
:vsplitと入力する。
2. 分割後の操作
ウィンドウ間の移動
Ctrl+w h:左のウィンドウに移動する。Ctrl+w l:右のウィンドウに移動する。Ctrl+w j:下のウィンドウに移動する。Ctrl+w k:上のウィンドウに移動する。- 単に
Ctrl+w wと入力することで、順番に次のウィンドウへ移動することも可能である。
ウィンドウサイズの調整
Ctrl+w >:ウィンドウ幅を広げる。Ctrl+w <:ウィンドウ幅を狭める。Ctrl+w +:ウィンドウ高さを増やす。Ctrl+w -:ウィンドウ高さを減らす。
ウィンドウの閉じ方
:q:現在フォーカスがあるウィンドウを閉じる。- すべてのウィンドウを閉じたい場合は、
:qa(全ウィンドウ終了)が利用できる。
ハンズオン手順
以下に、vimの基本操作、置換操作、および画面分割の具体的な手順を示す。
1. ファイルの起動と基本編集
- ターミナルで以下のコマンドを実行する。
vim sample.txt - 起動後、
vimは通常モードにある。iキーを押して挿入モードに入り、任意のテキストを入力する。 - 入力が完了したら
Escキーを押して通常モードに戻る。
2. ファイルの保存と終了
- 通常モードで
:キーを押しコマンドラインモードに入る。 wqと入力してEnterキーを押す。
これで編集内容が保存され、:wqvimが終了する。
3. 文字列の検索と置換
- すでに保存された
sample.txtを再度開く。vim sample.txt - 通常モードで
/exampleと入力し、Enterキーを押すことで「example」という文字列を検索する。- 検索結果間の移動は
nやNで行う。
- 検索結果間の移動は
- ファイル全体で “foo” を “bar” に置換する場合、以下を実行する。
:%s/foo/bar/g - 確認をしながら置換する場合は、以下のように入力する。
各一致箇所で置換するかどうかの確認が表示されるので、:%s/foo/bar/gcyで置換、nでスキップする。
4. 画面分割の操作
水平分割
- 通常モードで以下を入力し、現在のファイルを水平に分割する。
:split - または、別ファイル
sample2.txtを水平分割で開く。:sp sample2.txt
垂直分割
- 通常モードで以下を入力し、現在のファイルを垂直に分割する。
:vsplit - または、別ファイル
sample3.txtを垂直分割で開く。:vsp sample3.txt
分割後のウィンドウ操作
- ウィンドウ間の移動は、
Ctrl+w h/j/k/lまたは単にCtrl+w wを利用する。 - ウィンドウのサイズ調整は、
Ctrl+w >やCtrl+w <などで調整する。 - 編集が不要になった分割画面では、
:qでウィンドウを閉じる。
