Linux Manual

vi

viについて

vi とはスクリーンエディタと呼ばれるUNIX系OS上で使えるテキストエディタです。
Emacs とは違い、専用のウィンドウが立ち上がらずシェル内で作業します。
vi エディタは MS-DOS や Windows OS の操作方法とは大きく異なるので
始めは戸惑うかもしれませんが、慣れてしまえばとても便利です。

viの起動

シェルのコマンド入力で
$vi file1.txt
を入力すると vi が起動し、file1.txt の内容をシェルに表示します。

大切なモードの話

vi にはモードという概念があります。

コマンドモード
コマンドを使ってファイルの読み書き、カーソルの移動、文字列の削除を行うモード
他に拡張機能のexモードもあります
入力モード
ファイルに直接文字を入力するモード
また編集モード、挿入モードとも呼ばれます

この二つのモードを切り替えながら編集を行います。
最初 vi を起動した時は コマンドモード になっています。
モードの切り替えは

もし今どちらのモードを選択しているか判らない時には
ESCキー を数回押してください。
どのモードでもコマンドモードへと移行します。

操作コマンド

コマンドモードでの操作コマンドの一覧です。
キーを1回押すだけで行える操作や複数回押して操作するものもあります。
入力する文字の大文字、小文字を間違っただけで
まったく違う操作になってしまうので注意してください。

Ctrl とは、キーボードの左下にある Ctrlキー のことです。
Ctrl+b というのは Ctrlキーを押しながら bキー を押すということです。

<viの終了と保存>
コマンド 動作内容
:qviを終了
:q!編集内容を書き込まずに終了
:wファイルを保存
:w!読み込み専用のファイルに強制的に書き込む
:wq上書き保存してviを終了
:wq!読み込み専用のファイルに強制的に書き込んで終了
<カーソルの移動>
コマンド 動作内容
hカーソルを1文字左へ移動
jカーソルを1行下へ移動
kカーソルを1行上へ移動
l (英小文字のL)カーソルを1文字右へ移動
0 (数字の0)カーソルを行頭へ移動
$ (ドル記号)カーソルを行末へ移動
Ctrl+bカーソルを1ページ上へ移動
Ctrl+fカーソルを1ページ下へ移動

数字を入力してから h 、 j 、 k 、 l を押すと数字数だけ移動することができます。

<文字の挿入>
コマンド 動作内容
iカーソルの前に文字を挿入
aカーソルの後に文字を挿入
A行の終わりに文字を追加
o (英小文字のO)カーソルがある行の後に文字を挿入
O (英大文字のO)カーソルがある行の前に文字を挿入
Rカーソルがある文字を上書き

<文字の削除>
コマンド 動作内容
xカーソルがある文字を削除
Xカーソルの左の文字を削除
ddカーソルのある行を削除
nddn行削除 (例:5ddと入力すると5行削除)
J行末文字の削除(行の連結)

<行のコピー&ペースト>
コマンド 動作内容
Yカーソルがある行をコピー
yyカーソルがある行をコピー (Yと同じ)
nyyn行先までコピー (例:5yyと入力すると5行先までコピー)
pカーソルの前にペースト
Pカーソルの後にペースト
ylカーソルの前のn文字コピー
yhカーソルの後のn文字コピー
ykカーソルの前のn行コピー
yjカーソルの後のn行コピー

yl、yh、yk、yjは、先に数字を入力してからコマンドを入力します。
(入力した数字が n文字、n行になります。)

<検索>
/ (スラッシュ)を入力した後、検索したい文字列を入力し、Enterキーを押すことで
文末に向かって検索が行われ、最初に見つかった文字列にカーソルが移動します。

コマンド 動作内容
/ 【検索文字】入力した文字を下検索
? 【検索文字】入力した文字を上検索
n次の候補を下検索
N次の候補を上検索
<便利なコマンド>
コマンド 動作内容
u直前の操作を取り消す
U行全体の操作を取り消す
. (ピリオド)直前の操作を繰り返す
rカーソルのある文字を次に入力した文字に置換
cwカーソルのある単語を次に入力した単語に置換
:sh一時的にシェルに戻る。再度viにするにはexitコマンド

入力モード

入力モードにするには、コマンドモードの時に i の文字入力キーを押すと切り替わります。
また、入力モードになるとシェルの下のほうに
- - INSERT - - もしくは - - 挿入 - - と表示されます。
入力モードになったかどうかの判断は、これを目安にするとよいでしょう。
Escキーを押すとコマンドモードに切り替わります。
入力モードでの操作方法は、他のテキストエディタと同じです。

<日本語入力の切り替え> Linuxで日本語入力を行う場合
半角/全角キー または Ctrl+Space で切り替えることができます。