vi コマンド一覧

viコマンド(起動) コマンドの詳細
vi ファイル名 編集対象のファイルを開く(複数ファイルも可)
vi +n ファイル名 n行目から表示する
vi + ファイル名 最後一画面を表示する
vi + /文字列 ファイル名 文字列が存在する行から表示する
vi -r ファイル名 壊れたファイルをリカバリする

viコマンド(カーソル移動) コマンドの詳細
h, BS 1文字左へ移動(←)
j, Ctrl + N 1行下へ移動(↓)
k, Ctrl + P 1行上へ移動(↑)
l, SPACE 1文字右に移動(→)
H 画面の最上行に移動
M 画面の中央行に移動
L 画面の最下行に移動
1G 文頭へ
G ファイルの最終行に移動
nG ファイルのn行目に移動
0 行の頭へ移動
$ 行の最後へ移動
Ctrl + F 1ページ下へ
Ctrl + B 1ページ上へ
Ctrl + D 半ページ下へ
Ctrl + U 半ページ上へ
w カーソルを1語進める
b カーソルを1語戻す
e カーソルを単語末尾へ
^ カーソルを行頭へ
Enter 次行の行頭へ

viコマンド(入力・編集) コマンドの詳細
ESC コマンドモードへ移行
a カーソルの右から入力開始
A 行末から入力開始
i カーソルの左から入力開始
I 行頭から入力開始
o 現在の行の下に1行挿入し、その行頭から入力開始
O 現在の行の上に1行挿入し、その行頭から入力開始
J 次の行と現在の行とを結合する
3J 下の2行を現在の行とを結合する
c系 対象文字列を消して文字を挿入(つまり、変更)
C カーソル位置から行末までを消して文字を挿入

viコマンド(削除) コマンドの詳細
x カーソルの1文字削除
X カーソルの左の文字を1文字削除
dd 現在の行を削除(バッファにコピーされる)
d0 行頭からカーソルの直前までの削除
ndd n行、削除
dl 1文字の削除(3文字の削除はd3l, 3dlのどちらでも可)
dw カーソル上の一語を削除
df 字 カーソル位置から指定した字までを削除
d$ カーソル位置から行の最後までを削除
d^ カーソル位置から行の行頭までを削除
:行1,行2 d 行1から行2を削除
:g/文字列/d 指定文字列のある行を全て削除

viコマンド(検索) コマンドの詳細
/<文字列> 文字列を検索する
?<文字列> 文字列を検索する(逆方向)
n 順方向へ検索する
N 逆方向へ検索する
f 文字 文字を検索(右方向へ)
F 文字 文字を検索(左方向へ)
; 次の検索
% (,[に対して対応する ),]や}を検索

viコマンド(置換) コマンドの詳細
r カーソル上の1文字を他の1文字に置換
R カーソル上の文字からEscが押されるまでの文字列を置換
s カーソルのある1文字を他の文字列で置換
S 現在の行を他の文字列で置換
cw カーソル位置からこの語の最後までを置換
c$ カーソル位置から行末まで変更
cf 字 カーソル位置から指定した字までを置換
C カーソル位置から行の最後までを置換
:&, & 直前のsコマンドの繰り返し
:%s/置換え前/置換え後 置換え前の文字列を、置換え後の文字列で置換
もっとも近くにある文字列一つに対してのみ実行
:%s/置換え前/置換え後/g ファイルの中すべての文字列に対して、置換えを行う
~(チルダ) 大文字/小文字を変更する
:1,$s/文字列A/文字列B/g 文字列Aを全て文字列Bに置換
:s/文字列A/文字列B/ 文字列Aを文字列Bに置換
(カーソルのある行で、最初に合致するパターンのみ置換)
:s/文字列A/文字列B/g カーソル行の文字列Aを全て文字列Bに置換
:s/文字列A/文字列B/c 文字列Aを文字列Bに置換
(カーソルのある行で、最初に合致するパターンのみ置換)
(置換前に確認:yで置換、nで置換なし)
:10,50s/文字列A/文字列B/g 文字列Aを文字列Bに置換
(10行目から50行目までの間で、合致するパターン全てを置換)
:10,$s/文字列A/文字列B/g 文字列Aを文字列Bに置換
(10行目から最終行までの間で、合致するパターン全てを置換)

viコマンド(カット&ペースト) コマンドの詳細
yy 現在の行をバッファにコピー
nyy n行分をバッファにコピー
yl 1文字のコピー(3文字のコピーはy3l, 3ylのどちらでも可)
yw 単語をバッファにコピー
y0 行頭からカーソルの直前までのコピー
y$ カーソルの位置から行末までのコピー
p バッファ内のテキストを挿入
(文字、単語はカーソルの右に、行は現在の行の下に挿入される)
P バッファ内のテキストを挿入
(挿入位置はpの逆。文字、単語はカーソルの左に、行は現在の行の上に挿入される)

viコマンド(ウインドウ操作) コマンドの詳細
:sp [ファイル] ウインドウを横に分割
:vs [ファイル] ウインドウを縦に分割
: q, :only カーソルのあるウインドウ以外を全部閉じる
:new 空の横ウインドウを開く
:vnew 空の縦ウインドウを開く
Ctrl-w w 次のウインドウに移動
Ctrl-w p 前のウインドウに移動
Ctrl-w o 現在のウインドウ以外を閉じる

viコマンド(Undo・Redo) コマンドの詳細
u 直前の操作を取りやめる
U 行全体の操作を取りやめる
.(ドット) 直前の変更操作の繰り返し
Ctrl-R 取り消しの取り消し

viコマンド(ファイル操作) コマンドの詳細
:w 上書き保存
:w [ファイル名] 現在のファイル(指定ファイル)に保存
:w![ファイル名] 書き込みを強行
:行1,行2 ファイル名 行1から行2のテキストをファイルに保存
:w >> ファイル名 現行ファイルの最後に書き加える
:r ファイル名 現行の行の次の行にファイルを読み込み、挿入する
:r! xxx OSのxxxコマンドを実行し、その結果を次の行に挿入。
:r 現在の行の次の行に現在のファイルを読み込み、挿入する
:args 編集ファイルの一覧を表示する
:n 複数個のファイル編集時、次のファイルを編集対象とする
:e# 一つ前の編集ファイルに戻る
:e!% 現在のファイルを再ロードして、最初から編集をやり直す
:e ファイル名 指定ファイルを編集対象とする
:rewind 現在のファイルの変更内容を保存して、リストの最初から編集をやり直す
:rewind! 現在のファイルの変更内容を保存しないで、リストの最初から編集をやり直す
:rew 最後のファイル→先頭のファイル(rewind)

viコマンド(終了) コマンドの詳細
ZZ viを終了(内容が変更されている場合は保存)
:wq ファイルに保存してvi終了
:#,# w #行目から#行目までを保存
:q viを終了(内容が変更されている場合は警告)
:wq 別ファイル名 別名で保存して終了
:q! viの強制終了(内容が変更されていても保存されない)

viコマンド(バッファ) コマンドの詳細
:ls バッファリストの表示
:b バッファ バッファを表示
:bn 次のバッファを表示
:bp 前のバッファを表示

viコマンド(UNIXコマンドの実行) コマンドの詳細
:!<コマンド> <コマンド>を実行する
:!! 直前の<コマンド>を再実行する
:sh 一時的にシェルに戻る。exitでviに戻る。

viコマンド(コマンドのフィルタリング) コマンドの詳細
!<コマンド> <コマンド>を実行して結果を挿入
!!date dateの結果の挿入
!!tr A-Z a-z カーソル行の大文字を小文字に変換

viコマンド(テキスト入力の暗記) コマンドの詳細
:ab<文字列><置換え文字列> <文字列>と入力すると<置換え文字列>に置き換えるように設定する
:unab<文字列> <文字列>の置き換え設定を解除する
:ab 一覧表示

viコマンド(その他) コマンドの詳細
Ctrl + G ファイル名、修正の有無、現在の行数などの情報が表示されます
Ctrl + L 画面を再表示
[n] Shift-g ファイル内のn行に移動(nが無ければファイル末に移動)
Shift + Q exで編集をする
vi exからviに戻る
:h 日本語マニュアルを表示
:! [外部コマンド] 外部シェルコマンドが実行

viコマンド コマンドの詳細
:set number, :set nu 行番号を表示する
:set no number, :set nonu 行番号の表示をやめる
:set showmode 現在のモードを表示する
:set showmatch ()や{}の対応の報告をするようになる
:set ignorecase 大文字/小文字の区別なく検索する
:set autoindent 自動インデントモード
:set noautoindent 自動インデントモードをやめる
:set all すべてのオプションを表示する
:set ruler ルーラー(右下に表示される行・列の番号)を表示する
:set tabstop=数値 タブの大きさを半角スペース数で指定
:set nowrap 折り返し表示しない
:set history=数値 コマンド履歴の保存数
:set backup ファイルを保存する時にバックアップファイルを作成する
:set nobackup バックアップファイルを作成しない
:syntax on off |カラー表示のオンまたはオフ
:Tutorial 30分程度のVi利用方法のチュートリアル
:vert diffsplit [ファイル] 今のファイルと、他のファイルとの差分を取るコマンド

2017-5-9

コメントを残す