LoginSignup
7
10

More than 3 years have passed since last update.

【vim】Vimmerになったらまずはこれだけ!!

Last updated at Posted at 2019-08-14

Vim初心者の私がVimを数週間使った上で最低限必要だと感じたVim操作(入力、移動 etc.)に関して簡単にまとめます。備忘録投稿です。

vimの5つのモード

実際には他にもモードがあるかもしれないが、とりあえず、この5つを押さえておけば問題ないです。

モード 意味 代表的なkey
NORMAL ノーマルモード esc, Ctrl + c, Ctrl + [
INSERT 入力モード i
VISUAL ビジュアルモード v
REPLACE 上書きモード R
COMMAND コマンドラインモード :(コロン)

移動

移動はノーマルモードで行います

key 意味
h ←(左に移動)
j ↓(下に移動)
k ↑(上に移動)
l →(右に移動)
e 単語の最後へ移動
w 次の単語の先頭へ移動
b 前の単語の先頭へ移動
^ 行の先頭文字へ移動
0 行頭へ移動
$ 行末へ移動
gg ファイルの先頭へ移動
G ファイルの末尾へ移動
% 対応する括弧に移動([],{},()など)
{ 段落の先頭に移動
} 段落の末尾に移動
zz カーソル行が画面中央に来るようにスクロール
Ctrl + f ページアップ
Ctrl + b ページダウン
Ctrl + u 半ページアップ
Ctrl + d 半ページダウン
Shift + m カーソルを画面の中心へ移動

3つのTips

  • 4j3wなどのように数字を先頭につけると、その数字回数分移動できる。とても便利。
  • コマンドラインモードで、行番号を入力し[Enter]を押すと、目的行に移動できる(つまり、ノーマルモードから:行番号[Enter]を押す)。
  • 行内では、f[目的の文字]で、ジャンプすることができる。いくぶん移動が楽になる。

入力1 (モードに移行前)

key 意味
i 入力モードへ
I 行頭に移動して入力モードへ
a カーソルの後ろに移動して入力モードへ
A 行末に移動して入力モードへ
o 行の下に空行を作り、行頭から入力モードへ
O 行の上に空行を作り、行頭から入力モードへ
C カーソルから後ろをすべて削除して入力モードへ

入力2 (モードに移行後)

key 意味
Ctrl + y 真上の文字と同じものが入力される
Ctrl + e 真下の文字と同じものが入力される
Ctrl + h バックスペース
Ctrl + w 単語ごとにバックスペース

基本操作

key 意味
y ヤンク(コピー)
Y 行をヤンク
p カーソル後にペースト
P カーソル前にペースト
x カーソル下の一文字を削除
X カーソル前の一文字を削除
d 削除
D 行内のカーソル以降を削除
dd カーソルがある行を削除
u 元に戻す(undo)
Ctrl + r 操作を進める
r 一文字変更
>> 右へインデント
<< 左へインデント
.(ピリオド) 直前の操作を実行
q: 履歴を確認

6つのTips

  • 移動の時と同様に、数字を基本操作の前につけることにより、操作を指定回数回繰り返すことができる。
  • q:で履歴を確認すれば、過去のコマンドを実行することも可能。
  • コピーはヴィジュアルモードで使うことが多い。
  • diw(delete inner word)で、単語を切り取れる。
  • ya"(yank all)でダブルクォーテーションで囲まれた文字列を囲みダブルクォーテーションごとコピー。
  • yi"(yank inner)でダブルクォーテーションで囲まれた文字列をコピー(ダブルクォーテーションは除く)。

検索

key 意味
* カーソル下の単語を検索
# カーソル下の単語を検索(上方向に検索)
/[word] wordを検索。n, Nでそれぞれ次と前の検索へ移動することができる
?[word] 同上(上方向に検索)

1つのTips

  • 【キーワード検索】 同じキーワードで引き続き検索したいときは、キーワードを指定せずに/?を入力してEnterキーを押せばよい。

置換

key 意味
:%s/hoge/fuga/g ファイル内で全てのhogeをfugaに置換
:%s/hoge/fuga/gc 同上 + マッチした文字列を一つずつ確認しながら置換
:10,20s/hoge/fuga/g 行間(10~20行)内でマッチした文字列のみ置換

変更

行う内容は、削除 + インサートだが、要は変更(change)。

key 意味
ce 単語の終わりまで削除し、インサートモードへ
c$ カーソルから行末まで削除し、インサートモードへ
ciw 単語を削除し、インサートモードへ
ci( 括弧(で囲まれた文字列を削除し、インサートモードへ

ウィンドウ

コマンドラインモード(:タイプ後)で行う

key 意味
sp ウィンドウを上下に分割 (split)
vsp ウィンドウを左右に分割 (vertically split)
new 新規ウィンドウとして上下に開く
vnew 新規ウィンドウとして左右に開く

1つのTips

  • [Ctrl-w][Ctrl-w]で順番に移動できる。

タブ

コマンドラインモード(:タイプ後)で行う

key 意味
tabnew 新規タブを開く
gt 次のタブに切り替え
gT 前のタブに切り替え

外部コマンドの実行

コマンドラインモード(:タイプ後)では!を先頭につけることで、外部コマンド(lsコマンドなど)を実行することができる。

補足(ビジュアルモードについて少し)

Vimには3つのビジュアルモードがあります。

  • エディタやワープロのように文字単位で選択するビジュアルモード
  • 行単位で選択するビジュアルラインモード
  • 矩形で選択するビジュアルブロックモード

の3種類だ。vVCtrl + vでそれぞれのビジュアルモードへ移行します。

visualモード中にshift + >を入力することで、選択範囲のインデントもできます。複数回インデントさせたい場合には数字>のように数字を加えて実行します。

参考

終わりに

Vimを数週間使った程度の私でさえ、Vimの恩恵を感じられました。移動の高速化、基本機能の充実、モード分けすることにより(keyを記憶したのち)、keyの組み合わせだけで痒い所に手が届く、等、まだまだ可能性を感じることができるテキストエディタです。

「できるエンジニアはVimを使っている」

そんなことを耳にはしていましたが、やんわりとその理由が理解できた気がします。他のエディタと比べて最初の学習コストは比較的高いですが、長いエンジニア人生、できるだけ早めに慣れておくことでますますVimの恩恵を享受することができるでしょう。

ここであげたのはVim初心者の私が、数週間という短い期間で必要としたものですので、とりあえずこれだけはマストのキー操作となると思います。

7
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
10