テキストエディタ 初級

Vimの基礎

Linuxで最も広く使われるテキストエディタVimの基本操作を学ぶ。モードの概念・カーソル移動・編集・保存・終了方法を解説する

サーバー上でファイルを編集する際に避けて通れないのが Vim です。 GUIが使えない環境でも動作し、SSHで接続したリモートサーバーでも使える強力なエディタです。 最初は戸惑いますが、基本操作を覚えれば素早いファイル編集が可能になります。

Vimのモードとは

Vimには複数のモードがあり、状態によってキー操作の意味が変わります。

モード説明
ノーマルモード起動直後の状態。カーソル移動・コマンド入力
インサートモード文字を入力する状態
コマンドラインモードファイルの保存・終了などを行う状態
ビジュアルモードテキストを範囲選択する状態

最初は「ノーマルモード」で始まり、i を押してインサートモードに切り替えます。 Esc を押すとノーマルモードに戻ります。

ファイルを開く

vim filename.txt

存在しないファイルを指定すると新規作成になります。

カーソル移動(ノーマルモード)

Vimではカーソル移動にアルファベットキーを使います(矢印キーも使えます)。

キー移動方向
h左
j下
k上
l右
w次の単語の先頭へ
b前の単語の先頭へ
0行の先頭へ
$行の末尾へ
ggファイルの先頭へ
Gファイルの末尾へ
:NN行目へ移動(例: :10)

テキストの入力(インサートモード)

ノーマルモードから次のキーでインサートモードに入れます。

キー動作
iカーソル位置の前から入力
aカーソル位置の後から入力
o現在行の下に新しい行を開いて入力
O現在行の上に新しい行を開いて入力
I行の先頭から入力
A行の末尾から入力

インサートモードを終了するには Esc を押します。

保存と終了(コマンドラインモード)

ノーマルモードで : を押すとコマンドラインモードに入ります。

コマンド動作
:w保存
:q終了(変更がある場合はエラー)
:wq保存して終了
:q!変更を破棄して強制終了
:x変更があれば保存して終了(:wq と同様)

画面下部に : が表示されていればコマンドラインモードです。

# 実際の操作の流れ
$ vim sample.txt     # ファイルを開く
# ノーマルモードで始まる
# i を押してインサートモードへ
# テキストを入力する
# Esc を押してノーマルモードへ戻る
# :wq と入力して保存・終了

テキストの削除・コピー・貼り付け

ノーマルモードで使える操作です。

キー動作
xカーソル位置の1文字を削除
dd現在行を丸ごと削除(カット)
dwカーソル位置から次の単語まで削除
yy現在行をコピー
pカーソルの後に貼り付け
Pカーソルの前に貼り付け
u直前の操作を取り消す(Undo)
Ctrl+rUndoを取り消す(Redo)

dd で削除した行は p で貼り付けることができます。

文字列の検索

ノーマルモードで / に続けてキーワードを入力すると検索できます。

/キーワード   # 前方検索
?キーワード   # 後方検索
n            # 次の一致へ
N            # 前の一致へ

例えば “error” を検索するには次のように入力します。

/error

文字列の置換

コマンドラインモードで s コマンドを使います。

# 現在行の最初の一致を置換
:s/old/new/

# 現在行のすべての一致を置換
:s/old/new/g

# ファイル全体のすべての一致を置換
:%s/old/new/g

# 確認しながら置換(y: 置換, n: スキップ)
:%s/old/new/gc

練習問題

問題 1

次の手順を試してみてください。

  1. vim /tmp/vim-practice.txt でファイルを開く
  2. i でインサートモードに入り、以下の3行を入力する
    Linux is powerful.
    Vim is an editor.
    Practice makes perfect.
  3. Esc でノーマルモードに戻る
  4. :wq で保存して終了する
  5. cat /tmp/vim-practice.txt で内容を確認する
解答・操作手順を見る
# ファイルを開く
vim /tmp/vim-practice.txt

Vim が開いたら:

  1. i キーを押してインサートモードへ
  2. テキストを入力(Enterで改行)
  3. Esc を押してノーマルモードへ
  4. :wq と入力してEnter

確認:

cat /tmp/vim-practice.txt
# Linux is powerful.
# Vim is an editor.
# Practice makes perfect.

問題 2

/tmp/vim-practice.txt を再度開き、次の操作をしてください。

  1. 2行目(Vim is an editor.)にカーソルを移動する
  2. dd で2行目を削除する
  3. ファイルの末尾に移動し(G)、p で削除した行を貼り付ける
  4. :wq で保存して終了する
  5. cat で内容を確認する(行の順番が変わっていること)
解答・操作手順を見る
vim /tmp/vim-practice.txt

操作:

  1. j キーで2行目(または 2gg と入力)へ移動
  2. dd で行を削除(内部バッファに保存される)
  3. G でファイル末尾へ移動
  4. p で貼り付け
  5. :wq で保存・終了

確認:

cat /tmp/vim-practice.txt
# Linux is powerful.
# Practice makes perfect.
# Vim is an editor.

問題 3

/tmp/vim-replace.txt を作成し、以下の内容を書き込んでください。

apple is red
apple is sweet
I like apple

その後、Vim の置換コマンドを使って すべての apple を orange に置換し、保存してください。

解答・操作手順を見る
vim /tmp/vim-replace.txt

インサートモードでテキストを入力し Esc で戻ったあと:

:%s/apple/orange/g

と入力してEnter。置換が行われたら :wq で保存・終了。

確認:

cat /tmp/vim-replace.txt
# orange is red
# orange is sweet
# I like orange