vi
viについて
vi とはスクリーンエディタと呼ばれるUNIX系OS上で使えるテキストエディタです。
Emacs とは違い、専用のウィンドウが立ち上がらずシェル内で作業します。
vi エディタは MS-DOS や Windows OS の操作方法とは大きく異なるので
始めは戸惑うかもしれませんが、慣れてしまえばとても便利です。
viの起動
シェルのコマンド入力で
$vi file1.txt
を入力すると vi が起動し、file1.txt の内容をシェルに表示します。
大切なモードの話
vi にはモードという概念があります。
- コマンドモード
- コマンドを使ってファイルの読み書き、カーソルの移動、文字列の削除を行うモード
他に拡張機能のexモードもあります - 入力モード
- ファイルに直接文字を入力するモード
また編集モード、挿入モードとも呼ばれます
この二つのモードを切り替えながら編集を行います。
最初 vi を起動した時は コマンドモード になっています。
モードの切り替えは
- コマンドモードから入力モードに移る場合、i、a など文字入力キー
- 入力モードからコマンドモードに移る場合、Escキー
もし今どちらのモードを選択しているか判らない時には
ESCキー を数回押してください。
どのモードでもコマンドモードへと移行します。
操作コマンド
コマンドモードでの操作コマンドの一覧です。
キーを1回押すだけで行える操作や複数回押して操作するものもあります。
入力する文字の大文字、小文字を間違っただけで
まったく違う操作になってしまうので注意してください。
Ctrl とは、キーボードの左下にある Ctrlキー のことです。
Ctrl+b というのは Ctrlキーを押しながら bキー を押すということです。
<viの終了と保存> | |
---|---|
コマンド | 動作内容 |
:q | viを終了 |
: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 | カーソルのある行を削除 |
ndd | n行削除 (例:5ddと入力すると5行削除) |
J | 行末文字の削除(行の連結) |
<行のコピー&ペースト> | |
---|---|
コマンド | 動作内容 |
Y | カーソルがある行をコピー |
yy | カーソルがある行をコピー (Yと同じ) |
nyy | n行先までコピー (例: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キーを押すとコマンドモードに切り替わります。
入力モードでの操作方法は、他のテキストエディタと同じです。
- カーソルの移動は、矢印キーを押す
- 文字の入力は、そのまま文字入力キーを押す
- 文字の削除は、BackSpaceキーを押す
<日本語入力の切り替え>
Linuxで日本語入力を行う場合
半角/全角キー または Ctrl+Space で切り替えることができます。