それでは、はじめましょう
とりあえず起動してみる
vim
とりあえず終了してみる
:q<Enter>
:以降は画面下に表示される
何かおかしい人はEscを2、3回叩いてから:q
E37: No write since last change (add ! to override)
:q!<Enter>と入力することで無視して終了
hjklキー
^ j < h l > k v
矢印キーも使えるが、hjklで動くようにしたほうがいい
次のように入力。途中で間違えたらEscを押してやり直す
80iw<Esc>
h、lを適当に叩いて左右の移動に慣れよう
yyp
行が増える。そのままpを何回か適当に叩いて行数を増やす
やはり後で説明するが、yyで1行コピー、pで次の行に貼り付け
j、kを使って上下に移動してみよう。慣れたら4つのキーであっちこっち移動してみよう
i - カーソルがある文字の手前に挿入(insert)
入力を終える(コマンドモードに戻る)にはEscキー
削除したい文字にカーソルを合わせてx
:w <ファイル名><Enter> - 書き込み。ファイル名を省略すると現在開いているファイル
:x<Enter> - 変更があれば保存して終了
ZZ - :x<Enter>と同じだが、ファイル名の指定はできない
w - 単語の頭をたどる
e - 単語の末尾をたどる
b - 単語の頭を逆向きにたどる
分かち書きしない日本語だといまいちだが、単にhとかlとか押しっぱなしにする手間は省ける。また、単語単位の移動は行をまたげる
0(オーじゃなくてゼロ) - 行頭
^ - 空白を除いた先頭
$ - 行末
Ctrl-f - 1画面進む
Ctrl-b - 1画面戻る
<行番号>G
単にGで末尾に飛ぶ
:<行番号><Enter>でもOK
/<検索する語><Enter> - 順方向(ファイルの後ろへ向かう)検索
?<検索する語><Enter> - 逆方向(ファイルの先頭へ向かう)検索
nで直前の検索を繰り返す。Nで逆方向に繰り返す
nやNで進む向きは/と?とで逆になる
:r /usr/include/stdio.h<Enter>
:rでファイルから読み込み
ファイルを「開く」場合は:e
:set nu<Enter>で行番号を表示
set nonu<Enter>で消える
<数値><動作><対象>
<数値>は操作を繰り返す回数だったり行番号だったり。指定できるものとできないものがある。省略すると1回
<動作>は削除、変更など
<対象>は単語(w)、行末まで($)など
dw、de、db
さっきのwとかeにd(delete)がついただけ
dd - 1行ごっそり消える
d0 - カーソル位置から行頭まで削除
d$ - カーソル位置から行末まで削除
a - カーソルのある文字の後に追加(append)
A - 行末に追加
oですぐ下に新しい行をつくる
Oですぐ上に新しい行をつくる
c - 指定した範囲をテキストで置き換え
cwとかc$(Cに同じ)みたいに指定
r - 文字を文字で置き換え
s - 文字をテキストで置き換え
pまたはPでバッファの内容を貼り付ける
pがカーソルの後ろ、Pが前
「コピー」するにはyを使う。コピーしたものは削除したもののようにバッファに保存される(ヤンク yankという)
yyまたはYで一行コピー
. - 直前の操作を繰り返す
u - 実質何回でも可能
U - 行に対する一切の変更を取り消す
Ctrl-R - 取り消しの取り消し
vで移行
Ctrl-vで矩形選択
範囲を指定したらdで削除したりcやsで置き換えたり、yでヤンクしたり
移動 - hjkl、w、e、b、$、^、0
挿入 - i、a
削除 - x、'dw'、'dd'
検索 - /、nまたは'N'で繰り返し
保存 - :w
終了 - :q、:q!で変更を無視して終了
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
vimにはチュートリアルがある
vimtutor
または
vim tutor
一通りやってみると良い練習になる