VIMでプログラミングはやらないけど、SSHでコンソールを操作しているときにちょっとした修正ができると便利ですので、メモ。
モードの基本
()カッコの中はそのモードになるために押すコマンド
ノーマルモード
起動した時はこれ。ESCを押下すると常にここに戻る
(ESC Ctrl-Cでも可能)
インサートモード
文字を実際に書く場合は、このモードになっている必要がある。
(ノーマルモードでi)
ビジュアルモード
選択モード。このモードの時に、範囲を指定してコピー&ペーストなどを行う
(ノーマルモードでv)
コマンドモード
画面下部のコマンドを入力するモード
(ノーマルモードで:)
カーソル移動
Vimでは以下の2種類のカーソル移動方法がある
・普通に矢印(カーソルキー)で移動
・キーボード(jkhl)
j ↓ 下
k ↑ 上
h ← 左
l → 右
☆ノーマルモード・ビジュアルモードのみ
カーソル移動は原則利用できるので
それほど、戸惑うことはないと思います。
ただ、後者のキーボード移動は結構便利です。
j↑ k↓ は中指と人差し指で移動できるので
保存
コマンドモード時
:w
上書き保存
:w test.html
test.htmlという名称で保存
:q
終了する
内容が変更されている場合は、保存してから終了する事を求められる保存するなら
:w
の後
:q
内容を保存せずに強制終了するなら
:q!
:wq
上書き保存して終了
:q!
強制終了
:w!
強制保存
:wq!
強制保存後、終了
コピー&ペースト
ノーマルモードでvを押下
(つまり、ESC → v )
ビジュアルモードになったら、移動して範囲指定
v
選択モード
V
行選択モード
Ctrl+v
短径選択モード
そして選択モードで
y
コピー (yank)
d
削除 (delete)
p
ペースト(paste)
☆これらの操作は全て、ビジュアルモードで行われる。
貼りつけだからといってインサートモードにはならないこと
目的の場所へ効率よく移動する
カーソル移動だけだと、サイズの大きいサイズだと大変ですよね。
検索
/〇〇○
検索に合致した部分がハイライトされるので、
そこを順番に参照していくには
n
次を検索
N
前を検索
次のページ、前のページ
Ctrl + b
前のページへ移動 (Backward)
Ctrl + f
次のページへ移動 (Forward)
タブ
タブで開く
:tabnew filename
コンソールから複数のファイルをタブで開く場合
vim -p file1 file2 file3
タブの切替
:tabn
:tabnext
次のタブ
:tabp
:tabpreview
前のタブ
:tabfir
最初のタブへ移動
:tablast
最後のタブへ移動
ウィンドウの分割
:new file
横方向で指定ファイルで分割して表示する
:vne
縦方向で指定ファイルで分割して表示する
:Ctrl-W w
カーソルを次のウィンドウに移動する
操作の取り消し
:u
アンドゥ
:Ctrl+r
リドゥ
VIMを実行しながら、外部プログラムを実行する
:! コマンド
例えば 編集中にapacheを再起動する場合
:!/etc/init.d/httpd restart