トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

vi



目次



記事一覧

キーワード

vi

 コマンド体系

大きく以下の3つに分けられる

カーソル移動系

テキスト編集

ラインエディタの便利さを提供するexコマンド


テキスト入力系

コマンド 内容
i カーソルの左に文字を挿入
I カーソル行の行頭に文字を挿入
a カーソルの右に文字を挿入
A カーソル行の行末に文字を挿入
o カーソル行の下の行に空行を作って文字を挿入
O カーソル行の上の行に空行を作って文字を挿入
c系 対象文字列を消して文字を挿入(つまり、変更)
C カーソル位置から行末までを消して文字を挿入

 カーソル移動

コマンドモードで、以下のキーを押す

  • 最初に数値を入力することにより、(3lなど)移動量を指定できる。

位置移動

Key 内容 補足
0 行頭へ
$ 行末へ
[数値]| 指定したカラムへ

内容を考慮した移動

先頭に数値で、指定数分移動
Key 内容 補足
w 一単語次へ 特殊記号区切り
b 一単語前へ 特殊記号区切り
W 一単語次へ 空白区切り
B 一単語前へ 空白区切り
{ 一段落次へ 空白区切り
} 一段落前へ 空白区切り
% 対応した括弧へ
`[任意のアルファベット1文字] :m alpha でカーソル位置をマーキング

スクロール

先頭に数値で、指定数分移動

Key 内容 補足
H 画面上からn行目へ移動 デフォルト 0
M 画面中央へ移動
L 画面下からn行目へ移動 デフォルト 0
G 最終行へ
Ctrl+b 前ページ
Ctrl+f 次ページ
Ctrl+u 半ページ上
Ctrl+d 半ページ下

 検索

コマンドモードで、"/" もしくは、"?" 押下。最下段で検索後を入力してエンターキー押下

Key 内容
/ 後方に向かって検索
? 前方に向かって検索

  • 検索後、"n" で同方向に再検索。"N"で逆方向に再検索。
  • "*"、"."はメタキャラクタ

vi正規表現

文字 内容
. 1文字
* 前の文字の繰り返し
^ 行頭
$ 行末
< 単語の先頭
> 単語の末尾
\ メタキャラクタのエスケープ
[CharSet] CharSetの中の一文字
[^CharSet] CharSetに含まれない一文字


置換

コマンドモードで、

:%s/oldstr/newstr/g

とする。文字列に "/"が含まれる場合、

:%s;oldstr;newstr;g

のように"/"を別の文字に変更する

 削除、移動、コピー、取り消し

コマンドモードで、以下を行う
Key 内容 補足
x カーソルの1文字を削除 3xとすると、3文字削除される
dd 1行削除 3ddとすると、3行削除される
J 次の行と結合
v 範囲選択(文字単位) 範囲選択しdで、範囲削除
V 範囲選択(行単位) 範囲選択しdで、範囲削除
ctrl+v 範囲選択(矩形) 範囲選択しdで、範囲削除
p ペースト xやddで削除した文字列の貼り付け

カットアンドペーストの方法

ctrl+v 〜 d で削除した文字列は、バッファに格納される。削除とペーストを組み合わせることでカットアンドペーストを実現


ファイル内容の読み込み

読み込みたい場所にカーソルを移動し、以下

:r filename

 保存と終了


Key 内容 説明
w 保存 ファイル名を指定して保存する場合、:w filename
w! ファイル内容を強制保存
wq ファイル内容を保存して終了
q! ファイル内容を保存せず終了

 文字コード

[文字化け]

文字コードを指定してファイルを開きなおす

:e ++enc=euc-jp

文字コードを変更して保存する

:set fileencoding=cp932

改行コードを変更する

:set fileformat=改行コードの種類(dos, max, unix)



多くは、以下の書籍からのメモです。
非常に丁寧、網羅的に説明されていて、助かります。



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.