🎯 この記事で学べること
- 1Vimの基本的なモードの概念と切り替え方が理解できます
- 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の最大の特徴は「モード」という概念です。それぞれのモードでできることが違います:
- ノーマルモード: カーソル移動やコマンド実行(デフォルト)
- インサートモード: テキスト入力
- ビジュアルモード: テキスト選択
# モード切り替え
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でインサートモードに入るキーは?
Q2: Vimで保存して終了するコマンドは?
Q3: 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!
で強制終了
まずはこれらの基本操作を繰り返し練習してみましょう。毎日少しずつ使うことで、自然と手が覚えて、思考の速度でテキスト編集ができるようになりますよ!
次はターミナルショートカット集で、さらに効率的なターミナル操作を学んでみましょう!