入門vi
- 作者: リンダラム,アーノルドロビンス,Linda Lamb,Arnold Robbins,福崎俊博
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/05
- メディア: 単行本
- 購入: 14人 クリック: 193回
- この商品を含むブログ (72件) を見る
4/9買ってきた。ちゃんと使えるようになろう。
vi
visual editor の略。ヴィアイ(vee-eye)と発音する。
viコマンドの共通性質
- 大文字と小文字が区別される(大文字のキー入力と小文字のキー入力が違う意味になり、Iとiとは別になる)。
- タイプしたときに画面にでない(「エコー」されない)。
- コマンドのあとに[Enter]はいらない。
最下行コマンド
最初に各種記号を入力する。/、? 検索コマンドの始まり
exコマンド
ラインエディタexで使われるコマンド。先頭に必ずコロン(:)をつける。
ファイルのオープンとクローズ
viは編集するファイルをバッファにコピーする。
ユーザが作業する相手はつねにバッファ中のファイルのコピーなので、バッファをセーブするまでは編集作業が元のファイルに反映されない。
ファイルオープン
$ vi [filename]
ファイルクローズ
編集内容をセーブして終了
(コマンドモードで)ZZ(大文字)
または
(exコマンドで):wq
wは書き込み、qは終了。
編集内容を破棄
編集内容を破棄して編集前の状態に戻す
:e!
編集内容を破棄して終了
:q!
カーソルの動かし方
- h
- 左に1文字分
- j
- 下に1文字分
- k
- 上に1文字分
- l
- 右に1文字分
- 0
- 行頭にジャンプ
- $
- 行末にジャンプ
- w
- 単語単位に前方にジャンプ(記号や句読点も1語)
- W
- 単語単位に前方にジャンプ(記号や句読点を無視)
- b
- 単語単位に後方にジャンプ(記号や句読点も1語)
- B
- 単語単位に後方にジャンプ(記号や句読点を無視)
編集
- i
- 挿入 入力モード移行時、カーソルは動かない
- a
- 追加 入力モード移行時、カーソルが1文字右に動く
- c
- 変更
-
- cw 単語の末尾まで
- c2b 2語前まで
- c$ 行末まで
- c0 行頭まで
- cc 行単位での書き換え
- d
- 削除。変更コマンド同様、削除するテキストオブジェクトの指定が必要。
- r
- 文字単位での変更。1文字を別の1文字に変更する。編集してからコマンドモードに戻るのに[esc]はいらない。
- x
- 文字単位の削除
- .
- 直前のコマンドの繰り返し
- u
- 最後のコマンドを取り消せる
- ~
- 大文字、小文字の変換
テキスト入力の方法
どのコマンドを実行した場合でも、入力モードに移行する。テキストを挿入し終わったら、[Esc]を押してコマンドモードに戻るのを忘れないように。
- A(append)
- カレント行の末尾にテキストを追加
- I(insert)
- 行の先頭にテキストを挿入
- o(open)
- カーソル位置の下にテキストを挿入できる空行をオープン(カレント行の1行下に行を新規挿入して行の先頭にカーソルがくる)
- O
- カーソル位置の上にテキストを挿入できる空行をオープン(カレント行の1行上に行を新規挿入して行の先頭にカーソルがくる)
- s(substitute)
- カーソル位置の文字を削除してテキストを置換
- S
- 行を削除してテキストを置換
- R(replace)
- 現在の文字を新しい文字で上書き
入力コマンドへの数値引数の指定
oとO以外のコマンドは、前に数値を指定できる。
たとえば1行に下線をずらずら並べたり、文字を交互に繰り返したいときにはi、I、a、Aといったコマンドの前に数字をつけると大変便利。
50個の*
50i*[Esc] **************************************************
=と-が交互に25個ずつ50文字
25a=-[Esc] =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
どちらも[Esc]キーを押すと実行される。
行の連結
- J
- 2つの行を1行にまとめる(Jを入力した行の次の行が、Jを入力した行の最後に連結される。カーソルはJを入力したときの行末)
viの一般形式
(command) (number) (text object) (number) (command) (text object)
(command) (number) は省略可能
画面単位でのスクロール
画面のスクロール
- control + f
- 1画面分順方向にスクロール
- control + b
- 1画面分逆方向にスクロール
- control + d
- 1/2画面分順方向にスクロール
- control + u
- 1/2画面分逆方向にスクロール
zによるスクロール
カーソルを元の行に残しつつ画面を上下にスクロールしたいとき
- z[Enter]
- カレント行が画面の一番上に表示されるようにスクロール
- z.
- カレント行が画面の中央に表示されるようにスクロール
- z-
- カレント行が画面の一番下に表示されるようにスクロール
数値引数を行番号として解釈し、それをカレント行として利用する。
例) 200行目を画面の先頭にする。
200z[Enter]
画面のリフレッシュ
control + l
画面内でのジャンプ
- H
- ホーム行(画面の一番上の行)にジャンプ
- M
- 画面の中央の行にジャンプ
- L
- 画面の最下行にジャンプ
- nH
- 上からn行目にジャンプ
- hL
- 下からn行目にジャンプ
行単位でのジャンプ
- [Enter]
- 次の行の1文字目にジャンプ
- +
- 次の行の1文字目にジャンプ
- -
- 前の行の1文字目にジャンプ
最初の文字(空白やタブは無視される)まで移動する。
カレント行内でのジャンプ
- ^
- カレント行の空白以外の1文字目に移動
- n|
- カレント行のn桁目に移動
テキストブロック単位でのジャンプ
テキストブロック単語、文、段落、セクション)単位でのジャンプ
- e
- 単語の末尾にジャンプ
- E
- 単語の末尾にジャンプ(句読点も単語の一部とみなす)
- (
- 現在の文の先頭にジャンプ
- )
- 次の文の先頭にジャンプ
- {
- 現在の段落の先頭にジャンプ
- }
- 次の段落の先頭にジャンプ
[[
現在のセクションの先頭にジャンプ
]]
次のセクションの先頭にジャンプ
検索によるジャンプ
/pattern
マッチするものが見つからない場合は"Pattern not found"というメッセージがステータス行に表示される。
検索の繰り返し
- n
- 前回と同じ方向で検索を繰り返す
- N
- 前回と反対の方向で検索を繰り返す
- /[Enter]
- 順方向に検索を繰り返す
- ?[Enter]
- 逆方向に検索を繰り返す
行番号によるジャンプ
起動オプション
読み出し専用モード
$ vi -R file
または
$ view file
バッファ
- 最後の9回分の削除内容を番号付きのバッファに保存している。
- コピーした内容はa〜zまでの26個の文字名によってバッファに保存できる。
例) バッファ2に入っている2番目に新しい削除内容を復元
"2p
例) カレント行をバッファdにヤンク
"dyy