OFFICIAL_VI
※※※※※※※VIの使い方※※※※※※※
コマンド: □入力後即実行 ◇〔CR〕で決定 ■〔ESC〕で終了
常用 入門 基礎 標準 発展 応用 実用
入力削除削入移動yank注特
自分が使いそうなものだけしかおいてません。
間違ってたらごめんなさい。
ご連絡頂けると幸いです。訂正させて頂きます。
※※※※※※VIの使い方(基礎編)※※※※※※
◇保存 :w [file]
◇ファイルを開く :e [file]
□指定行へ移動 line: 行数 lineG
◇指定行へ移動 :line
◇現在行からline行下へ移動 line
□置き換え(1字) r
■置き換え(任意) R
■1字置き換え後挿入 s
■行削除後挿入 cc , S
□行yank yy
□貼付(カーソルの後) p
□貼付(カーソルの前) P
□行連結(改行削除) J
■行挿入(現在行の下) o
■行挿入(現在行の上) O
■挿入(現在行の先頭) I
■挿入(現在行の末尾) A
□削除(前1字) X
□カーソルから行末まで削除 D
□行操作取消 U
※※※※※※VIの使い方(入門編)※※※※※※
◇起動 $vi [file]
□コマンドモードに移行 〔ESC〕
◇更新後終了 :wq
□更新後終了 ZZ
◇強制終了 :q!
□上に移動 k , 〔↑〕
□下に移動 j , 〔↓〕
□左に移動 h , 〔←〕
□右に移動 l , 〔→〕
■挿入(カーソルの前) i
■挿入(カーソルの後) a
□削除(1文字) x
□削除(現在行) dd
□直前コマンド取消 u
※※※※※※VIの使い方(標準編)※※※※※※
◇行移動(指定行の下) :mline
◇行複写(指定行の下) :tline
◇行番号表示 :se nu
◇行番号非表示 :se nonu
stringを順方検索移動 /string
stringを逆方検索移動 ?string
□次を検索移動 n
□前を検索移動 N
□行内charを順方検索移動 fchar
□行内charを順方検索直前移動 tchar
□1行目の先頭へ移動 H
□中間行の先頭へ移動 M
□最終行の先頭へ移動 G , L
□現在行の先頭へ移動 0 , |
□現在行の先頭(除空白)へ移動 ^
□上の行の先頭へ移動 -
□下の行の先頭へ移動 +
□次単語の先頭へ移動 w
□前単語の先頭へ移動 b
□単語の最後へ移動 e
□現在行の末尾へ移動 $
□対応する(){}[]に移動 %
※※※※※※VIの使い方(発展編)※※※※※※※
◇shellコマンド実行 :!cmd
◇ファイル読込挿入(下の行) :r [file]
□大文字⇔小文字入替 ~
□コマンドの繰返し .
□現在行シフト >>
□現在行シフト削除 <<
□画面再表示 〔Ctrl〕+ l
□1ページ先へ 〔Ctrl〕+ f
□1ページ戻る 〔Ctrl〕+ b
□半ページ先へ 〔Ctrl〕+ d
□半ページ戻る 〔Ctrl〕+ u
□ファイル情報表示 〔Ctrl〕+ g
◇一時的にshellに移行 :sh
◇shell→vi exit
□exで編集 Q
◇ex→vi vi
◇setオプション表示 :se
◇すべてのオプション表示 :se all
◇編集ファイル一覧表示 :args
◇次のファイルを編集 :n
◇保存状態から再編集 !:強制 :e!
◇1つ前の編集ファイルへ戻る :e#
※※※※※※VIの使い方(応用編)※※※※※※
◇shellコマンド実行結果挿入
 
!!cmd
□指定削除
  mov: G, ^, w, b,…
 ex) dw:1単語削除
dmov
□指定COPY ymov
■指定削除後挿入
 (削除最終位置を$表示)
cmov
paを含む行を指定し、
 cmdを実行
  cmd: d(消去), s(置換),…
:g/pa/cmd
paを含まない行を指定し、
 cmdを実行
:v/pa/cmd
pareに置換
  op : g(行内の全patを)
     c(確認 y /〔CR〕)
:s/pa/re/[op]
□置換繰返し &
◇置換繰返し :&, :~
◇略記登録
 (入力pareと解釈)
 ex) :ab VI visual editor
:ab pa re
◇略記登録確認 :ab
◇略記登録解除 :unab pa
□マーク登録 m[a-z]
□マーク登録位置に移動 `[a-z]
□マーク登録行に移動 '[a-z]
※※※※※※VIの使い方(実用編)※※※※※※
□1字交換 xp
□行交換 ddp
□1行目の先頭へ移動 1G
□全行シフト G>H, H>G
◇全行シフト :%> (%:全行)
◇置換 :s/\(cat\), \(dog\)/\u\2 and \1
「cat, dog」を「Dog and cat」に置換
:%s/no/yes/g
ファイル全てのnoをyesに置換
:%v/(/s/int/double/
( がない行で最初のintをdoubleに置換
:%s/.*/\L&
ファイル全ての文字を小文字に
◇日時を最終行に挿入 :$r!date
◇現在行の行数確認 :.=
◇行番号付内容確認 :3,5# 3〜5行目を確認
◇行番号付印刷 :!cat -n % | lp 編集ファイル(%)を印刷
※※※注意する特殊文字と正規表現※※※※
. ・任意の1字(除改行) [ ]で囲まない場合と
\の直後にない場合
* ・直前字0回以上の繰返し
[
 
]までの文字列の1字 ex) [abc]:a,b,cのどれか
 (文字列先頭が^、先頭や末尾以外の-は他意)
\
・直後の. * [ \ ^ $ &の特殊効力無効
・直後の< > ( ) { } u U l Lの特殊化
^
 
 
 
]までの文字列以外の1字(除改行)
 (文字列の先頭や末尾以外の-はASCII範囲)
 ex) [^0-9a]:数字とa以外の1字(除改行)
・行頭
[の直後 [^ 
 
 
正規表現の先頭
$ ・行末 正規表現の末尾
& ・直前の検索パターン \の直後にない場合
( ・参照パターン化の開始位置 \の直後 \( 
) ・参照パターン化の終了位置 \の直後 \) 
< \<の直後の字で始まる単語の先頭 \の直後 \< 
> \>の直前の字で終わる単語の末尾 \の直後 \> 
{
 
 
 
\{の直前の字の繰返し指定開始
 char\{m\} charm回繰返し
 char\{m,\} charm回以上繰返し
 char\{m,n\} charmn回の繰返し
\の直後 \{
 
 
 
}
 
・繰返し指定終了
 ex)p\{2,5\}:pの2〜5回繰返し
\の直後 \}
 
u ・直後の文字を大文字に \の直後 \u
l ・直後の文字を小文字に \の直後 \l
U ・直後の文字列を大文字に \の直後 \U
L ・直後の文字列を小文字に \の直後 \L