| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

Vi

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

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=タブ幅

文字コード


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

:e ++enc=euc-jp

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

:set fileencoding=cp932

改行コードを変更する

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

文字コードを確認する

  • vi
 :se enc?
  • ファイル
 :se fenc?

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