2013年4月21日日曜日

vimでよく使うコマンド逆引き

2013-04-21:作成
2013-06-25:単語を大文字・小文字に変換する方法を追加。
2015-11-18:前の行→今の行、vimモードラインについて記述
vimで使うコマンドは使用する状況とキーの組み合わせがある程度決まってくるものです。
以下私がvimでよく使うコマンドです。

移動系

左下上右 h j k l
次の単語へ w
次のスペースの次へ W
前の単語へ b
単語の最後の文字へ e
行の先頭へ ^
行の最後へ $
上0.5ページ移動 Control-u
下0.5ページ移動 Control-d
37行目に移動 :37
ファイルの初めへ gg
ファイルの最後へ G
現在位置の表示 Control-g
文字gに移動する fg
文字gの前に移動する tg

検索系

testを検索 /test
カーソル位置の単語を検索 *
次を検索 n
上に向かって検索 N
タブ文字の検索 /Control-v[TAB]

編集系

入力する i
行の最後に追記 $a
次の行に入力する o
今の行に行を挿入して入力する O
行連結 J
前の編集コマンドを繰り返す .
もとに戻す u
元に戻したのをやり直す Control-r
インサートモード中に特殊文字の入力 Control-v
大文字小文字の切り替え ~
単語を小文字に veu
単語を大文字に veU

置き換え

単語を置き換える cw
1文字を他の1文字で置き換える r
1文字消して置き換える s
3文字消して置き換える 3s
↑は検索、「.」コマンドと組み合わせてよく使う。
複数のTESTをtestに置き換える /TEST[ENTER]cwtest[ESC]n.n.n.n.n.n.n.n.
すべてTESTをtestに置き換える :%s/TEST/test/g
指定した範囲のTESTをtestに置き換える vjjjjjjj:s/TEST/test/g

削除・コピー・ペースト

deleteキーの代わり x
単語を消す dw
行削除 dd
2行削除 2dd
カーソル位置から行末までを削除 D
指定範囲を削除 vjjjjjjjd (好きなだけjを押して下さい)
ヤンク yy
2行ヤンク 2yy
指定範囲をヤンク vjjjjjjjjjy
削除・ヤンクしたテキストを次の行(文字)に書き込む p
削除・ヤンクしたテキストを今の行(文字)に書き込む P

マクロ

マクロを記録 qq
マクロ記録を終了 q
マクロを実行 @q
マクロをテキストの最後まで実行 999999@q

外部コマンド

lsコマンドの結果を見る :!ls
lsコマンド結果を入力 !!ls
指定した範囲のテキストをソートする Vjjjjjj!sort

ファイル

保存して閉じる :wq
保存せず閉じる :q!
別名aaa.txtで保存 :w aaa.txt

設定

vi互換モードをOFFにする :set nocompatible
行番号表示 :set number
自動インデント :set autoindent
自動インデントしない :set noautoindent
タブをスペースに :set expandtab
タブの文字数 :set tabstop=4
改行コードをDOSに :set fileformat=dos
検索時に大文字小文字を無視する :set ignorecase
背景が暗い時に文字を明るくする :set background=dark
背景が明るい時に文字を暗くする :set background=light

モードライン

編集するテキストファイルの初めか終わりに設定を入れることができる。
    // vi:set expandtab autoindent tabstop=4 shiftwidth=4:

または
    // vi:set et ai ts=4 sw=4:

モードラインが効かない場合vimrcに下記を入れる
set modeline modelines=5


ざっと思いついたのでこれくらいです。
思い出したら追加します。

0 件のコメント:

コメントを投稿