テキストエディタ 初級

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 の置換コマンドを使って すべての appleorange に置換し、保存してください。

解答・操作手順を見る
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