Vi
ナビゲーションに移動
検索に移動
vi
コマンド体系
大きく以下の3つに分けられる
カーソル移動系
テキスト編集
ラインエディタの便利さを提供するexコマンド
テキスト入力系
コマンド | 内容 |
---|---|
i | カーソルの左に文字を挿入 |
I | カーソル行の行頭に文字を挿入 |
a | カーソルの右に文字を挿入 |
A | カーソル行の行末に文字を挿入 |
o | カーソル行の下の行に空行を作って文字を挿入 |
O | カーソル行の上の行に空行を作って文字を挿入 |
c系 | 対象文字列を消して文字を挿入(つまり、変更) |
C | カーソル位置から行末までを消して文字を挿入 |
カーソル移動
コマンドモードで、以下のキーを押す {{ref_image vi_key_dirction.JPG}}
- 最初に数値を入力することにより、(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で削除した文字列の貼り付け |
カットアンドペーストの方法
<blockquote>ctrl+v ~ d で削除した文字列は、バッファに格納される。削除とペーストを組み合わせることでカットアンドペーストを実現</blockquote>
ファイル内容の読み込み
読み込みたい場所にカーソルを移動し、以下
:r filename
保存と終了
Key | 内容 | 説明 |
---|---|---|
w | 保存 | ファイル名を指定して保存する場合、:w filename |
w! | ファイル内容を強制保存 | |
wq | ファイル内容を保存して終了 | |
q! | ファイル内容を保存せず終了 |
外部コマンドの実行
:!コマンド
設定
タブ幅を変える
:set tabstop=タブ幅
文字コード
- http://www.kawaz.jp/pukiwiki/?vim#cb691f26
文字コードを指定してファイルを開きなおす
:e ++enc=euc-jp
文字コードを変更して保存する
:set fileencoding=cp932
改行コードを変更する
:set fileformat=改行コードの種類(dos, max, unix)
文字コードを確認する
- vi
:se enc?
- ファイル
:se fenc?
多くは、以下の書籍からのメモです。 非常に丁寧、網羅的に説明されていて、助かります。
© 2006 矢木浩人