Vimとは
Vimは、Unix系OSで標準的に使われる高機能テキストエディタです。「モード」という概念を持ち、キーボードだけで効率的にテキスト編集ができます。サーバー管理やプログラミングで広く使われています。
モード切替
Vimには複数のモードがあり、それぞれ異なる役割を持ちます。
| キー | モード | 説明 |
|---|
i | 挿入モード | カーソル位置の前に文字を入力 |
a | 挿入モード | カーソル位置の後に文字を入力 |
I | 挿入モード | 行頭に移動して入力開始 |
A | 挿入モード | 行末に移動して入力開始 |
o | 挿入モード | 下に新しい行を挿入して入力 |
O | 挿入モード | 上に新しい行を挿入して入力 |
Esc | ノーマルモード | 他のモードからノーマルモードに戻る |
v | ビジュアルモード | 文字単位で選択 |
V | ビジュアルモード | 行単位で選択 |
Ctrl+v | ビジュアルモード | 矩形選択(ブロック選択) |
: | コマンドモード | exコマンドを入力 |
カーソル移動
効率的な移動はVimの生産性を大きく左右します。
基本移動
| キー | 説明 |
|---|
h | 左に1文字移動 |
j | 下に1行移動 |
k | 上に1行移動 |
l | 右に1文字移動 |
単語単位の移動
| キー | 説明 |
|---|
w | 次の単語の先頭へ(word) |
W | 次の空白区切り単語へ |
b | 前の単語の先頭へ(back) |
B | 前の空白区切り単語へ |
e | 単語の末尾へ(end) |
E | 空白区切り単語の末尾へ |
行内移動
| キー | 説明 |
|---|
0 | 行頭へ(列0) |
^ | 行の最初の非空白文字へ |
$ | 行末へ |
f{char} | 行内で次の{char}へジャンプ |
F{char} | 行内で前の{char}へジャンプ |
t{char} | 次の{char}の直前へ |
; | f/F/tの検索を繰り返し |
ファイル内移動
| キー | 説明 |
|---|
gg | ファイル先頭へ |
G | ファイル末尾へ |
{n}G | n行目へジャンプ |
:{n} | n行目へジャンプ |
Ctrl+f | 1ページ下へスクロール |
Ctrl+b | 1ページ上へスクロール |
Ctrl+d | 半ページ下へスクロール |
Ctrl+u | 半ページ上へスクロール |
% | 対応する括弧へジャンプ |
100G
:100
編集操作
削除
| キー | 説明 |
|---|
x | カーソル位置の1文字を削除 |
X | カーソル前の1文字を削除 |
dd | 1行削除(カット) |
D | カーソルから行末まで削除 |
dw | 単語を削除 |
diw | 単語全体を削除(inner word) |
di" | ダブルクォート内を削除 |
di( | 括弧内を削除 |
d$ | カーソルから行末まで削除 |
コピー&ペースト
| キー | 説明 |
|---|
yy | 1行コピー(yank) |
yw | 単語をコピー |
y$ | カーソルから行末までコピー |
p | カーソルの後にペースト |
P | カーソルの前にペースト |
"0p | 最後にヤンクしたテキストをペースト |
"+y | システムクリップボードにコピー |
"+p | システムクリップボードからペースト |
変更(削除して挿入モードへ)
| キー | 説明 |
|---|
cw | 単語を変更 |
ciw | 単語全体を変更 |
ci" | ダブルクォート内を変更 |
cc | 行全体を変更 |
C | カーソルから行末まで変更 |
s | 1文字削除して挿入モード |
S | 行を削除して挿入モード |
取り消し・やり直し
| キー | 説明 |
|---|
u | 取り消し(Undo) |
Ctrl+r | やり直し(Redo) |
. | 直前の操作を繰り返し |
3u
5.
検索・置換
検索
| キー | 説明 |
|---|
/{pattern} | 前方検索 |
?{pattern} | 後方検索 |
n | 次の検索結果へ |
N | 前の検索結果へ |
* | カーソル位置の単語を前方検索 |
# | カーソル位置の単語を後方検索 |
'function'を検索
/function
/pattern\c
/\<word\>
置換
:s/old/new/
:s/old/new/g
:%s/old/new/g
:%s/old/new/gc
:%s/old/new/gi
:10,20s/old/new/g
:'<,'>s/old/new/g
ファイル操作
| コマンド | 説明 |
|---|
:w | 保存 |
:w {filename} | 名前を付けて保存 |
:q | 終了 |
:q! | 保存せずに強制終了 |
:wq | 保存して終了 |
ZZ | 保存して終了(:wqと同じ) |
ZQ | 保存せず終了(:q!と同じ) |
:e {filename} | ファイルを開く |
:r {filename} | ファイルの内容を挿入 |
:!{command} | 外部コマンドを実行 |
:w %.bak
:r !date
ウィンドウ操作
| コマンド | 説明 |
|---|
:split | 水平分割 |
:vsplit | 垂直分割 |
Ctrl+w h | 左のウィンドウへ |
Ctrl+w j | 下のウィンドウへ |
Ctrl+w k | 上のウィンドウへ |
Ctrl+w l | 右のウィンドウへ |
Ctrl+w = | ウィンドウサイズを均等に |
Ctrl+w q | ウィンドウを閉じる |
マクロ
繰り返し作業を自動化できます。
qa
q
@a
5@a
@@
便利な設定(.vimrc)
set number
set relativenumber
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set hlsearch
set incsearch
set ignorecase
set smartcase
set clipboard=unnamedplus
よく使うプラグイン
| プラグイン | 説明 |
|---|
| vim-plug | プラグインマネージャー |
| NERDTree | ファイルエクスプローラー |
| fzf.vim | ファジーファインダー |
| vim-fugitive | Git連携 |
| coc.nvim | LSP/補完 |
参考リンク
← 一覧に戻る