vi基礎

私がよく使うもののみ紹介します

きっと一番効率良い方法ではないです
でも、これだけ知ってればなんとかなります

その前に

viとvimの違いを知っていますか?

%ls -l /usr/bin/vi
lrwxr-xr-x  1 root  wheel  3 11 20  2013 /usr/bin/vi@ -> vim
					
一部のコマンドはvimでしか使えないものがありますので注意してください。
たぶん、最近はvimしかないと思う。。。

移動系のコマンド

慣れるとカーソルキーでの移動より楽です

h
カーソルを左に移動
j
カーソルを下に移動
k
カーソルを上に移動
l
カーソルを右に移動
G
ファイルの末尾に移動
:1
ファイルの先頭に移動
0
行の先頭に移動
$
行の末尾に移動
Tips:
大抵のコマンド(:に続くコマンドなどを除く)はコマンドの前に数字を入力することで繰り返し実行できます
例)10j カーソルを10行下に移動

コマンドモードと入力モード

[ESC]
入力モードからコマンドモードに戻る
i(a)
カーソルの位置(次の文字)の場所で入力モードに移る
o(O)
カーソルの下(上)の行で入力モードに移る
I(A)
カーソル行の先頭(末尾)で入力モードに移る
cw
単語を置き換える形で入力モードに移る
ns
n文字置き換える形で入力モードに移る

終了のさせ方

:q!
保存せずに終了
:wq
保存して終了
:w
保存だけ行う
:w filename
filenameに保存
終了させ方じゃないけど、パーミッションが無くて保存終了出来ない時に使う

その他のよく使うコマンド

x
1文字削除
D
カーソル以降の行末までを削除
DG
カーソル行からファイルの末尾を削除
J
カーソルの下の行を結合
u
直前の操作をやり直し
.
直前の操作を繰り返し実行
:n
(複数ファイルオープン時)次のファイルへ移動
:wn
(複数ファイルオープン時)保存してから次のファイルへ移動
:N
(複数ファイルオープン時)前のファイルへ移動

検索

:/word
現在のカーソルの後ろにあるwordを検索してジャンプ
n
カーソルより後ろにあるwordにジャンプ
N
カーソルより前にあるwordにジャンプ

置換

:%s/word/drow/g
ファイル全体に対してworddrowに置換する
Tips:
%はファイル全体を表します。ここを<先頭行>,<終了行>とすることもできます
gは行内で繰り返し置換を実行します。gを省くと行中で1回置換すると次の行に移ります
例):10,20s/word/drow/ 10行目から20行目までの行の始めに現れたwordをdrowに置換する
Tips:(vimのみ)
<先頭行>,<終了行>を[SHIFT]+v,[ENTER]で選択することも可能です

コピーペースト

yy
カーソル行をコピー
dd
カーソル行をカット
p
カーソル行の下にペースト
P
カーソル行の上にペースト
Tips:(vimのみ)
コピー、カットの行を[SHIFT]+v,y(d)で選択することも可能です

Let's edit.