エンジニアが1年目には覚えたいViの基本操作について、個人的によく使う操作方法をメモします。
起動
$ vi ファイル名
入力モードについて
viはコマンドモードで立ち上がる (コマンドモードについて下記に記載)。
文字を入力する場合は、入力モードに移る以下キーを入力する。
[a] ...カーソルの右から入力開始(a: Add の意味)
[A] ...行末から入力開始
[i] ...カーソルの左から入力開始(i: Insert の意味)
[I] ...行頭から入力開始
[o] ...現在の行の下に1行挿入し、その行頭から入力開始
[O] ...現在の行の上に1行挿入し、その行頭から入力開始
コピー・貼り付けについて、入力モードでは何か他のテキストの文字列、外部サイトの文字列をコピーし、そのまま貼り付けることができる。
コマンドモードについて
escキーでコマンドモードに移る。ファイル・文字列操作、保存等が可能。
カーソル移動
1文字移動
基本的に矢印キーは使うなと昔上司に言われました。でも使ってもいいと思いますが…
左: [←キー] or [h] or [BackSpace]
右: [→キー] or [l] or [Space]
上: [↑キー] or [k]
下: [↓キー] or [j]
単語ごとに移動
[w] ...1語次へ
[b] ...1語前へ
削除・貼り付け
[x] ...1文字削除。
[yy] ...1行コピーしクリップボードへ格納する。
[dd] ...1行切り取りしクリップボードへ格納する、または1行削除。
[p] ...クリップボードの内容をカーソル行の下の行に貼り付ける。
行番号
:set number ...行番号を表示
:se nu ...行番号を表示(上に同じ)
::set nonumber
:se nonu
:行番号 ...行番号を指定して移動
検索
[/]文字列 ...カーソルの後方に検索を行う
[?]文字列 ...カーソルの前方に検索を行う
[n]文字列 ...次の検索該当文字列へ
[N]文字列 ...前の検索該当文字列へ
置換
:s/文字列1/文字列2/ ...カーソル行で最初の「文字列1」のみを「文字列2」に置換する
:s/文字列1/文字列2/g ...カーソル行の「文字列1」を全て「文字列2」に置換する
取り消し
[u] ...直前の操作をやめる(u: Undo の意味)
[U] ...行全体に操作を取りやめる
ビジュアルモード
ctrl + V でビジュアルモードに遷移。矩形選択しxで選択箇所の削除など可能。
終了処理
終了
:q …書込みを行わず終了(quitの意味)
:q! ...書込みを行わず強制終了
:wq ...書込み後終了
:wq! ...書込み後強制終了
色分けされていたほうが見やすいので、Vimを推奨されている方もいますが、
操作方法についてはViもVimも同じです。