メインコンテンツへスキップ
中級15分で読める

vimの基本操作

強力なテキストエディタVimの基本操作から効率的な編集テクニックまで、初心者にも分かりやすく実例を交えて詳しく解説します。

効率化編vimエディタ効率化テキスト編集基本操作

🎯 この記事で学べること

  • 1
    Vimの基本的なモードの概念と切り替え方が理解できます
  • 2
    カーソル移動の基本操作ができるようになります
  • 3
    テキストの挿入、削除、コピー&ペーストができます
  • 4
    検索と置換機能を使って効率的に編集できます
  • 5
    基本的な設定で自分好みの環境を作れます

読了時間: 約15

Vimとは

Vim(Vi IMproved)は、Unixシステムの標準エディタであるviの拡張版ですね。

最初は「難しそう…」と思うかもしれませんが、Vimは「モード」という概念を理解すれば、とても強力なテキスト編集ツールになります。キーボードだけですべての操作ができるので、手をホームポジションから離さずに高速に編集できるんですよ!

Vimの起動と終了

基本的な起動方法

# Vimを起動
vim

# ファイルを開いて起動
vim filename.txt

# 新規ファイルを作成して起動
vim newfile.txt

# 読み取り専用で開く
vim -R filename.txt
# または
view filename.txt

Vimの終了方法

Vim初心者が最初につまずくのが「終了方法がわからない!」という問題です。大丈夫、しっかり覚えましょう:

# コマンドモードで以下を入力
:q     # 終了(変更がない場合)
:q!    # 強制終了(変更を破棄)
:w     # 保存
:wq    # 保存して終了
:x     # 保存して終了(:wqと同じ)
ZZ     # 保存して終了(シフト+z を2回)
ZQ     # 保存せずに終了

🌟 ポイント: パニックになったらEscを押してから:q!です!

Vimの基本モード

3つの主要モード

Vimの最大の特徴は「モード」という概念です。それぞれのモードでできることが違います:

  1. ノーマルモード: カーソル移動やコマンド実行(デフォルト)
  2. インサートモード: テキスト入力
  3. ビジュアルモード: テキスト選択
# モード切り替え
Esc           # どのモードからもノーマルモードへ
i             # カーソル位置でインサートモード
a             # カーソルの次の位置でインサートモード
v             # ビジュアルモード(文字選択)
V             # ビジュアルラインモード(行選択)
Ctrl+v        # ビジュアルブロックモード(矩形選択)

💡 初心者へのアドバイス: 最初はiでインサートモード、Escでノーマルモード、この2つだけ覚えれば大丈夫です!

カーソル移動

基本的な移動

# 文字単位の移動
h     # 左へ
j     # 下へ
k     # 上へ
l     # 右へ

# 単語単位の移動
w     # 次の単語の先頭へ
b     # 前の単語の先頭へ
e     # 現在/次の単語の末尾へ

# 行内の移動
0     # 行頭へ
^     # 行の最初の非空白文字へ
$     # 行末へ

高速移動

# ページ単位の移動
Ctrl+f    # 1ページ下へ(forward)
Ctrl+b    # 1ページ上へ(backward)
Ctrl+d    # 半ページ下へ(down)
Ctrl+u    # 半ページ上へ(up)

# ファイル内の移動
gg        # ファイルの先頭へ
G         # ファイルの末尾へ
10G       # 10行目へ
:10       # 10行目へ(コマンドモード)

テキスト編集の基本

インサートモードへの切り替え

i     # カーソル位置で挿入
I     # 行頭で挿入
a     # カーソルの後で挿入
A     # 行末で挿入
o     # 下に新しい行を作成して挿入
O     # 上に新しい行を作成して挿入

削除操作

# ノーマルモードでの削除
x     # 1文字削除
X     # カーソルの前の1文字削除
dd    # 行削除
dw    # 単語削除
d$    # カーソルから行末まで削除
d0    # カーソルから行頭まで削除

# 数値との組み合わせ
3dd   # 3行削除
5x    # 5文字削除

コピー&ペースト

# ヤンク(コピー)
yy    # 行をヤンク
yw    # 単語をヤンク
y$    # カーソルから行末までヤンク

# ペースト
p     # カーソルの後にペースト
P     # カーソルの前にペースト

# カット&ペースト
dd    # 行をカット
p     # ペースト

検索と置換

検索

# 前方検索
/pattern    # patternを検索
n           # 次の検索結果へ
N           # 前の検索結果へ

# 後方検索
?pattern    # 後方へ検索

# カーソル位置の単語を検索
*           # 前方へ検索
#           # 後方へ検索

置換

# 現在行での置換
:s/old/new/      # 最初のマッチを置換
:s/old/new/g     # すべてのマッチを置換

# ファイル全体での置換
:%s/old/new/g    # すべて置換
:%s/old/new/gc   # 確認しながら置換

# 範囲指定での置換
:10,20s/old/new/g    # 10-20行で置換
:'<,'>s/old/new/g    # ビジュアル選択範囲で置換

ビジュアルモード

テキスト選択

# ビジュアルモードの種類
v         # 文字単位で選択
V         # 行単位で選択
Ctrl+v    # 矩形(ブロック)選択

# 選択後の操作
d         # 削除
y         # ヤンク(コピー)
c         # 削除して挿入モード
>         # インデント
<         # アンインデント

矩形選択の活用

# 複数行の先頭に文字を挿入
1. Ctrl+v で矩形選択モード
2. j/k で範囲を選択
3. I でインサートモード
4. テキストを入力
5. Esc で全行に反映

便利なコマンド

アンドゥ・リドゥ

u         # アンドゥ
Ctrl+r    # リドゥ
.         # 直前の操作を繰り返す

行の操作

J         # 下の行と結合
>>        # インデント
<<        # アンインデント
==        # 自動インデント

大文字小文字の変換

~         # カーソル位置の文字の大文字小文字を切り替え
gU        # 大文字に変換(ビジュアルモードで選択後)
gu        # 小文字に変換(ビジュアルモードで選択後)
gUU       # 現在行を大文字に
guu       # 現在行を小文字に

Vimの設定

一時的な設定

# Vim内で実行
:set number          # 行番号表示
:set nonumber        # 行番号非表示
:set relativenumber  # 相対行番号
:set wrap            # 行の折り返し
:set nowrap          # 折り返しなし
:syntax on           # シンタックスハイライト

永続的な設定(~/.vimrc)

" 基本設定
set number              " 行番号を表示
set relativenumber      " 相対行番号を表示
set autoindent          " 自動インデント
set expandtab           " タブをスペースに展開
set tabstop=4           " タブ幅
set shiftwidth=4        " インデント幅

" 検索設定
set ignorecase          " 検索時に大文字小文字を無視
set smartcase           " 大文字が含まれる場合は区別
set hlsearch            " 検索結果をハイライト
set incsearch           " インクリメンタル検索

" 表示設定
syntax on               " シンタックスハイライト
set background=dark     " 背景色
colorscheme desert      " カラースキーム

効率的な編集テクニック

テキストオブジェクト

# 単語の操作
ciw       # 単語を削除して挿入モード
diw       # 単語を削除
yiw       # 単語をヤンク

# 括弧内の操作
ci(       # 括弧内を削除して挿入モード
di"       # ダブルクォート内を削除
yi{       # 中括弧内をヤンク

# タグの操作(HTML/XML)
cit       # タグ内を削除して挿入モード
dat       # タグ全体を削除

マクロ記録

# マクロの記録と実行
qa        # aレジスタにマクロ記録開始
(操作を実行)
q         # 記録終了
@a        # マクロ実行
@@        # 直前のマクロを再実行
10@a      # マクロを10回実行

複数ファイルの編集

# ファイルを開く
:e filename       # 新しいファイルを開く
:split filename   # 水平分割で開く
:vsplit filename  # 垂直分割で開く

# ウィンドウ間の移動
Ctrl+w h/j/k/l    # 左/下/上/右のウィンドウへ
Ctrl+w w          # 次のウィンドウへ

# タブ
:tabnew filename  # 新しいタブで開く
gt                # 次のタブへ
gT                # 前のタブへ

プラグインの活用

人気のプラグイン

" Vimプラグインマネージャー(vim-plug)の例
call plug#begin('~/.vim/plugged')

Plug 'preservim/nerdtree'        " ファイルツリー
Plug 'vim-airline/vim-airline'   " ステータスライン
Plug 'tpope/vim-fugitive'        " Git統合
Plug 'junegunn/fzf.vim'          " ファジーファインダー

call plug#end()

トラブルシューティング

よくある問題

# Vimが固まった場合
Ctrl+q    # 画面のフリーズ解除
Ctrl+c    # 処理の中断

# 文字化けする場合
:set encoding=utf-8
:set fileencoding=utf-8

# スワップファイルのエラー
# .swpファイルを削除するか、
# (R)ecover, (D)elete, (Q)uit から選択

🎮 理解度チェック

Q1: Vimでインサートモードに入るキーは?

Vimでインサートモードに入る基本的なキーは?

Q2: Vimで保存して終了するコマンドは?

Vimでファイルを保存して終了するコマンドは?

Q3: Vimで行全体を削除するコマンドは?

Vimで現在の行全体を削除するコマンドは?

Vimチートシート

必須コマンド一覧

よく使うコマンドをまとめました。これを参考にしながら練習してみましょう:

# 移動
h,j,k,l   # 左,下,上,右
w,b       # 単語移動
0,$       # 行頭,行末
gg,G      # ファイル先頭,末尾

# 編集
i,a       # 挿入
o,O       # 新行挿入
dd,yy,p   # 削除,コピー,ペースト
u,Ctrl+r  # アンドゥ,リドゥ

# 保存・終了
:w        # 保存
:q        # 終了
:wq       # 保存して終了

📝 まとめ

今回はVimの基本操作について学びました!

Vimは最初は難しく感じるかもしれませんが、基本をマスターすれば非常に強力なツールになります。今回学んだポイントを振り返っておきましょう:

  • 3つのモード:ノーマル、インサート、ビジュアル
  • 基本移動h,j,k,lで左下上右
  • モード切り替えiで挿入、Escでノーマルモードへ
  • 基本編集ddで行削除、yyでコピー、pでペースト
  • 保存と終了:wqで保存して終了、:q!で強制終了

まずはこれらの基本操作を繰り返し練習してみましょう。毎日少しずつ使うことで、自然と手が覚えて、思考の速度でテキスト編集ができるようになりますよ!

次はターミナルショートカット集で、さらに効率的なターミナル操作を学んでみましょう!