その他 | 改行コード ^M | Ctrl+Vを押してからCtrl+Mを押すと改行コードの^Mが入力できる。:%s/^M//gで一括除去する。Windows上でtxtを作ると改行コード ^Mが追加されるのでshellコマンドが効かなくなる(2016.5.18)。 |
起動と終了 | vi +N file.name | N行目にカーソルを移動して起動する。 |
vi +/XXX file.name | file中の検索文字列XXXを含む行にカーソルを移動して起動する。 | |
:q! | quit(saveなし)。 | |
ZZ | saveして終わる。 | |
:w | saveする。:wq(save and quit) :w file(fileでsave。:wq file):wq! file(overwriteのとき) | |
vi -r | ネットワークが切れたときの復活(viがmail 出してくれる) | |
日本語表示文字化け | :set encoding=japanとすればいい。ホームディレクトリに.vimrcというファイルを作成して、set encording=japan(コロンなし)と書いておけば自動的になる。.vimrcに(set encoding=utf-8とset fileencodings=utf-8,euc-jp,sjis,iso-2022-jpとset fileformats=unix,dos,macを追加する)。 | |
2つのモード | i | 直前でインサートモードに移る。自由に書き込みする。 |
a | 直後でインサートモードに移る。自由に書き込みする。 | |
[esc] | コマンドモードに戻る。 | |
I, A | I(行の最初に挿入)、A(行の最後に挿入) | |
行の操作 | G | 最後のラインに飛ぶ。 |
1G | トップラインに戻る。 | |
nG | n行目のラインに飛ぶ。 | |
dd | 1行を消してbufferに入れる。n行分消す時はndd。 | |
P | bufferに入ってる行を直前の行に挿入する。 | |
J | 次の行と結合する。 | |
u | 直前のコマンド操作を取り消して元に戻る。 | |
文字操作 | x | 今の文字を消す。 |
r | 今の文字を次にタイプする文字で置き換える。 | |
D | 今の文字を含んで行末まで消してbufferに入れる。 | |
X | 直前の1文字を消す。 | |
行内操作 | $ | 行の最後の文字に飛ぶ。 |
0 | 行の最初の文字に飛ぶ。 | |
検索・置換・削除 | /XXXXX | 文字列XXXXX(returnまで)を下向方向で探す。 |
/[returmn] | 前回と同じ文字列を再度下向方向で探す。 | |
?XXXXX | 文字列XXXXX(returnまで)を上向方向で探す。 | |
:%s/old/new/gc | 文字列AAAをBBBに置き換える。%は文全体(1,$)と同じ。(n,m)でもよい。%がなければ1行内のみ。gは行内全てでgなければ最初の項のみ。gcのcは許可願い。例 :.,.+3s/old/new/g :95,120s/old/new/g。[ ]などを1文字とみなして検索や置換するには\]とか\[と\を使う-> :%s/h\[link\]/h00/gcなど。/を含む部分を扱いたいときは:%s%ddd/jj/%kkk%gcとか:%s$ddd/jj/$kkk$gcなどと%や$を代わりに使えばいい。 | |
ma then :'a,.d | 最初の行をmaでマークしておき、最後の今の行(.)までを一括消去しbufferに入れる。 |