トップページ > コンテンツ > コンピュータ関連その他 > UNIXコマンド > vi

■挿入とコマンド
i カーソル前に文字を挿入
a カーソル後に文字を挿入
o 1行後ろに文字を挿入
esc コマンドモードになる。Control+[でも同じことが出来る。
矢印操作
h
j
k
l
gg ファイル先頭に移動
G ファイル末尾に移動
$ 行末に移動
0または^ 行頭に移動
Ctrl+u ページアップ(半画面分)
Ctrl+d ページダウン(半画面分)
Ctrl+f ページ送り(一画面分)
Ctrl+b ページ戻り(一画面分)
w 次の単語へ移動
b 前の単語へ移動

■各種操作
x,dd 切り取り
yy 行をコピー
v 選択を開始
p 貼り付け
/ 前方検索。次の検索単語を調べる時はn、戻るときはNを押す。
? 後方検索。
f 1行、1文字検索。次に行く時は;、戻るときは,を押す。
u 元に戻す
Ctrl+r 元に戻すを戻す
Ctrl+p 単語補完(前方検索)
Ctrl+n 単語補完(後方検索)
Ctrl+v ビジュアルモード(矩形選択とかが可能になる)
:%s/置換前文字列/置換後文字列/gc 置換処理

■保存形式
:w 保存
:q 終了
:q! 強制終了
:e++enc=文字コード 文字コード表示を変更

■vi設定
set set オプションでオプション機能を追加する。
set noオプションでオプション機能を減らす。set allで全てのオプションを見れる。
よく使うのが、set number。次点でset autoindent。さらに次点がshiftwidth=4
imap キーマッピングを設定できる。例えばescを押すのが面倒な場合にcontrol+jをesc代わりとして使用する場合はimap <c-j> <esc>を.exrcに追加する。
.exrc vi設定用ファイル。ここにsetを記載すると、設定が保存される。場所としてはホームディレクトリに作ればOK。

■その他
:new ウィンドウの縦分割
:vs ウィンドウの横分割
^+w ウィンドウ間の移動。^はCtrlボタン
:tabnew 新規タブ作成。gtコマンドでタブ間移動できる
:r!コマンド 外部コマンドの実行結果をカーソル位置に挿入
:sh 一時的にシェルに戻る
:echo expand("%:p") カレントファイルのフルパスを表示。expand以外にも実は色々な組み込み関数があるので、一度見てみると良いかも。
:set binary noeol 末尾の改行コードを削除する。diff等でNo newline at end of fileが出て困る場合
:set list 改行コードを表示させる。
最終更新:2020年11月03日 12:12