Linux 系の標準「vi エディタ」の使い方をわかりやすく「図」にしてみました。
vi エディタの操作はWindows ユーザーの私にとってかなり特殊。
Linux にはWindows ライクなエディタもあるので、ある程度は知らなくても何とかなりますが、
ルート権限で編集しないといけないような設定ファイルの場合は避けて通れません。
図にまとめてみたらわかりやすいのではないかと思い、作成してみました。
vi エディタ使い方まとめ。
Contents
基本のフロー
vi エディタは下図のような「フロー」で動作してます。
■ 編集モード
開始直後は「編集モード」に位置しています。
カーソルの移動、文字列のコピー、ペースト、削除などが出来ます。
■ 挿入モード
編集モード中に【 i 】や【 a 】などの特定の文字が入力されると挿入モードに移行します。
キーボードから入力して、文字列を挿入します。
【 Esc 】を押して挿入モードから編集モードへ戻ります。
■ コマンド
【 : 】(コロン)が入力されると、コマンド受付状態になります。
【 w 】 を入力すると、ファイルを保存、【 q 】 を入力すると、エディタを終了します。
他にも用意されたコマンドがあり、シェルのコマンドを実行する事もできます。
編集モード
任意のキーを押して、テキスト内を移動します。
不要な部分を削除したり、クリップボードの内容をペーストしたりできます。
「 i、a 」などの入力を受け付けると、挿入モードへ移動します。
「 : 」を入力すると、コマンド入力モードへ移動します。
カーソルの移動
任意のキーを押して、カーソルを移動します。
大文字と小文字を区別します。
キー | 移動方向 | 備考 |
---|---|---|
h(エイチ) | カーソルが 左へ移動 | 【←】と同じ |
k(ケー) | カーソルが 上へ移動 | 【↑】と同じ |
j(ジェイ) | カーソルが 下へ移動 | 【↓】と同じ |
l(エル) | カーソルが 右へ移動 | 【→】と同じ |
キーボード配列上で見てみると、右手のホームポジション付近にあり
手を大きく動かす事なくカーソル移動ができることが分かります。
任意の位置へジャンプ
任意のキーの組み合わせで、特定の位置へカーソルを一気に移動します。
キー | 効果 | 備考 |
---|---|---|
数字+移動キー | 移動キ―の前に数字をつけると、数字分移動します。 | |
gg | ファイルの先頭までカーソルを移動 | |
H(Shift + h) | 画面の先頭まで カーソルを移動 | 大文字 |
0(数字のゼロ) | 行の先頭へ カーソルを移動 | |
n(行番号)G(Shift + g) | 「n」行目の先頭まで カーソルを移動 | 「:n」も同様。 |
L(Shift + l) | 画面一番下の行先頭まで カーソルを移動 | 大文字 |
G(Shift + g) | ファイルの最終行先頭までカーソルを移動 | 大文字 |
削除
テキストを削除します。
キー | 効果 | 備考 |
---|---|---|
x | カーソル位置の文字を削除 | |
X( Shift + x ) | カーソル位置の前の文字を削除 | 大文字 |
dd | カーソル位置の一行を削除 | |
dw | カーソル位置から次の空白までを削除 | その行に空白がなければ、カーソル位置から行末までを削除 |
コピペ
テキストをクリップボードに「コピー」して任意の位置に「貼り付け」します。
キー | 効果 | 備考 |
---|---|---|
p | カーソル位置の後ろにクリップボードの内容を貼り付け | |
P( Shift + p ) | カーソル位置の前にクリップボードの内容を貼り付け | 大文字 |
yy | カーソル位置の一行をクリップボードにコピー | |
yw | カーソル位置から次の空白までをクリップボードにコピー | 空白がなければ、カーソル位置から行末までをコピー |
挿入モード
キーボード入力による、テキストの挿入ができます。
編集モード中に任意のキーを押すと「挿入モード」に移行します。
挿入モード中に【Esc】(エスケープ)キーを押すと、編集モードに戻ります。
挿入モードの呼び出し
編集モード中に任意のキーを押して、テキストを入力するモードに入ります。
押したキーによって、テキストを挿入する位置が変わります。
キー | 効果 | 備考 |
---|---|---|
i | カーソルの前にテキストを挿入する | |
I( Shift + i ) | カーソルがある行の先頭からテキストを挿入する | 大文字 |
a | カーソルの後ろにテキストを挿入する | |
A ( Shift + a ) | カーソルがある行の末尾からテキストを挿入する | 大文字 |
o | 下に空白行を1行追加してテキストを挿入する | |
O ( Shift + o ) | 上に空白行を1行追加してテキストを挿入する | 大文字 |
Esc(エスケープ) | 挿入モードを終了して編集モードに戻る | 挿入モード中 |
コマンド入力
編集モード中に「:(コロン)」を入力するとコマンド受付状態になります。
主なコマンド一覧
コマンド | 機能 | 備考 |
---|---|---|
:set nu | 行番号を「表示」する | |
:set nonu | 行番号を「非表示」にする | |
:w | 編集をファイルに保存する | |
:q | エディタを終了する | 未保存の編集がある場合に警告(終了を中止) |
:q! | ファイルを保存しないで終了する | 未保存の編集を無視 |
:wq | ファイルを保存して終了する | 編集モード中に「ZZ」でも同様 |
:e! | 編集を破棄する | 最後の保存状態に戻る |
:r <ファイル名> | 指定したファイルをカーソル位置下の行から挿入する | ※図 |
:r!<コマンド> | 実行したコマンドの出力をファイルへ挿入する | ※図 |
:!<コマンド> | エディタを起動したままシェルコマンドを実行する | ※図 |
:r <ファイル名>
カーソルの位置の次の行に指定したファイルの内容が挿入されます。
:r! <コマンド>
カーソルの位置の次の行に実行されたシェルの出力が挿入されます。
( 「id」 はユーザーの情報を表示するコマンドです。)
:! <コマンド>
エディタを実行中のまま、シェルコマンドを実行できます。
ピンバック: [AWS] 「Amazon Linux 2」でMATE(GUI) を日本語化する。 – .zapping
ピンバック: Amazon Linux 2 を、ローカル環境に構築する。【Virtual Box】 – .zapping