まずは、これだけ覚えて始めよう。Vim編
基本を覚えて、さらに向こうへ踏み出そう
Vimは、テキストエディタです。 マウスは使いませんので、肩こり、腱鞘炎にもなりづらい。 矢印キーもほとんどつかわず、右手人差し指、中指、薬指で「h、j、k、l」で、 「左、下、上、右」にカーソルを移動させます。
一般的なテキストエディタは、読む、書くといった場面によって操作は変わりませんが、 Vimは、役割によって4つのモードがあります。 ノーマルモード、インサートモード、ヴィジュアルモード、コマンドモードです。
ノーマルモード
読んだり、カーソルを移動、コピー、ペースト、検索、置換、削除したりするときのモードです。このモードでは文字の入力はできません。 他のモードからノーマルモードにするには、<ESC>、あるいは、Ctrl+[を押します。
h
現在のカーソル位置からカーソルを左に1文字移動させます。
j
現在のカーソル位置からカーソルを下に1行移動させます。
k
現在のカーソル位置からカーソルを上に1行移動させます。
l
現在のカーソル位置からカーソルを右に1文字移動させます。
gg
現在のカーソル位置から文書の先頭行にカーソルを移動させます。
G
現在のカーソル位置から文書の最終行にカーソルを移動させます。
g;
現在のカーソル位置から直前の変更位置にカーソルを移動させます。
g,
g;で戻ったカーソル位置から移動元にカーソルを移動させます。
Ctrl+o
現在のカーソル位置から直前の移動位置にカーソルを移動させます。
Ctrl+i
Ctrl+oで戻ったカーソル位置から移動元にカーソルを移動させます。
Ctrl+f
表示されている画面を1ページとして、1ページ分進めます。
Ctrl+b
表示されている画面を1ページとして、1ページ分戻します。
gv
ノーマルモードに戻ってgvを押すと、直前の選択範囲が復活します。
r
カーソル位置の文字を指定した文字に置換します。
R
カーソル位置の文字から上書きします。
dd
行削除します。削除された文字列はコピーされています。
D
現在のカーソル位置から行末まで削除します。削除された文字列はコピーされています。
x
カーソル位置の1文字を削除します。削除された文字列はコピーされています。
X
カーソル位置の前の1文字を削除します。削除された文字列はコピーされています。
yw
単語をコピーします。
yy , Y
現在カーソルのある行をコピーします。改行も含みます。
y$
現在のカーソル位置から行末までコピーします。
yi" ダブルクォーテーションをシングルクォートや(、[、{、<などに替えて使います。
ダブルクォーテーション内をコピーします。
di"
ダブルクォーテーション内を削除します。削除された文字列はコピーされています。
p
コピーした内容をカーソル位置の後ろにペーストします。
P
コピーした内容をカーソル位置の前にペーストします。
W
空白あるいは、改行で区切られた次の単語の先頭に移動します。
u
操作を一つ前に戻します。
Ctrl+r
uで戻した操作を元に戻します。
.
直前に実行した操作をもう一度実行します。
{
段落の上の空白行に移動します。
}
段落の下の空白行に移動します。
%
対となる括弧「(),[],{}」へ移動します。
f{1文字}
その行の順方向に一文字検索して、移動します。
F{1文字}
その行の逆方向に一文字検索して、移動します。
;
順方向に繰り返し検索して、移動します。
,
逆方向に繰り返し検索して、移動します。
/
順方向に文字列検索して、最初に見つかったところに移動します。
?
逆方向に文字列検索して、最初に見つかったところに移動します。
n
順方向に繰り返し検索して、移動します。
N
逆方向に繰り返し検索して、移動します。
zz
カーソルを画面の中心に移動します。
z<Enter>
カーソル位置が画面先頭になるように移動します。
m{英数字1文字}
現在のカーソル位置をマークします。
'{英数字1文字}
マークされた{英数字1文字}場所へ移動します。インサートモード
文字を挿入するときのモードです。基本的に、削除、修正はノーマルモードで行いますが、このモードの方が違和感なくできます。 ノーマルモードで、「i、I、a、A」のいずれかを押します。
i
現在のカーソル位置から文字を入力できるようになります。
I
行頭にカーソル位置が移動し文字を入力できるようになります。
a
現在のカーソル位置のうしろから文字を入力できるようになります。
A
行末にカーソル位置が移動して文字を入力できるようになります。
O
直上の行に空行を追加して文字を入力できるようになります。
o
現在カーソルのある行の下に空白行を追加してインサートモードにします。
s
現在のカーソル上の文字削除してインサートモードにします。
S
現在カーソルのある行を削除してインサートモードにします。ヴィジュアルモード
範囲選択をするときのモードです。範囲選択して、 y を押すとコピー、 d を押すと削除をします。 範囲選択が始まるノーマルモード同様「h、j、k、l」で、「左、下、上、右」にカーソルを移動させて範囲を決定します。 ノーマルモードから、「v、V、Ctrl+v」のいずれかを押します。
v
現在のカーソル位置から範囲選択ができるようになります。
V
行単位で範囲選択ができるようになります。
Ctrl+v
現在のカーソル位置を起点にした範囲選択ができるようになります。
gv
ノーマルモードに戻ってgvを押すと、直前の選択範囲が復活します。コマンドラインモード
ファイルの保存、Vimの終了、文字列置換、シェルコマンドやPythonの実行などを行えます。 ノーマルモードで「:」を押します。
:q
保存しないでvimを終了します。
:q!
保存しないで強制的にvimを終了します。
:qa!
保存しないで強制的にvimで開いているバッファ全てを終了します。
:w
保存します。
:w!
強制的に保存します。
:wa!
強制的にvimで開いているバッファ全てを保存します。
:wq
保存してvimを終了します。
:wq!
強制的に保存してvimを終了します。
:waq!
強制的にvimで開いているバッファ全てを保存して終了します。
:ZZ
保存してvimを終了します。
:s/検索文字列/置換文字列/gc
現在カーソルのある行で、文字列を検索して置換します。正規表現が使えます。
:%s/検索文字列/置換文字列/gc
文書全体から、文字列を検索して置換します。正規表現が使えます。
:'<,'>s/検索文字列/置換文字列/gc
ヴィジュアルモードで選択した範囲で、文字列を検索して置換します。正規表現が使えます。
:py3 print('Hello New World!')
vim内蔵のPythonを実行します。
:!ls -thl
シェルコマンドを実行します。
:r!ls -thl
カーソル位置にシェルコマンドの実行結果を挿入します。
:reg
レジスタの内容を表示します。
:ls
バッファの一覧を表示します。ターミナルで「vimtutor」と打ってエンターを押すと、「Vim教本(チュートリアル)」が起動するので、上から読んで、試して、をすると、いい感じに使い始められます。
ヘルプも充実していますので、わからないときは、まずはヘルプから検索することをおすすめします。ヘルプの中を探したり、読んだりしていると、他の機能も目に入ってくるので、目に止まったところを読むと使い方も広がります。
