viエディタでファイル編集
概要
viはBlii Joy氏が開発したUNIX標準のテキスト編集用のエディタ。
viエディタを用いると、ファイルの作成・削除を行うことが可能。
Linuxではviエディタの昨日を拡張したVimが提供されていて、最近のRedHat系ディストリビューションではviはvimの最小構成パッケージあるいはvimのエイリアスとして提供されている。
モード
viエディタは3つのモードを切り替えて作業を行う。
モード | 説明 |
---|---|
コマンドモード | カーソルの移動、文字や行の削除、コピー、貼り付けなどが行える。このモードがデフォルト。 |
入力モード(インサートモード) | 文字の入力が行える。 |
ラストラインモード | 文章の保存、検索や文字列の置換が行える。 |
コマンドモード
カーソルの移動、スクロール、文字のコピーや貼り付けなどを行う。
カーソルの移動
コマンド | 説明 |
---|---|
h ← | カーソルを左に1文字移動 |
j ↓ | カーソルを下に1文字移動 |
k ↑ | カーソルを上に1文字移動 |
l → | カーソルを右に1文字移動 |
0 | カーソル行の先頭へ移動 |
$ | カーソル行の末尾へ移動 |
G | 最終行へ移動 |
nG | n行目へ移動 |
画面のスクロール
コマンド | 説明 |
---|---|
ctrl+b | 前画面に1画面スクロール |
ctrl+f | 次画面に1画面スクロール |
文字の編集
コマンドモードで文字を挿入すること無く、コピーや削除を行える。
コマンド | 説明 |
---|---|
x | 1文字削除 |
nx | カーソルから右にn文字削除 |
dd | カーソル行を削除 |
ndd | カーソルからn行削除 |
dw | カーソルから次の単語を削除
(単語は空白があるまでの文字列) |
D | カーソルから行の最後まで削除 |
dG | カーソル行から最終行まで削除 |
dH | 1行目からカーソル行まで削除 |
用途 | コマンド | 説明 |
---|---|---|
コピー | yl | 1文字のコピー |
yw | 単語のコピー | |
yy | カーソル行のコピー | |
nyy | カーソル行からn行目までコピー | |
y0 | 行頭からカーソルの直前までのコピー | |
y$ | カーソルの位置から行末までのコピー | |
ペースト | P | 行のコピーをしている場合は、カーソルの上の行に貼り付け
文字、単語をコピーしている場合は、カーソルの左に貼り付け |
p | 行のコピーをしている場合は、カーソルの下の行に貼り付け
文字、単語をコピーしている場合は、カーソルの右に貼り付け |
入力モード(インサートモード)
ファイル内に文字を入力することができる。
インサートモードの切替方法
インサートモードにはコマンドモードからコマンドを入力することで切り替えることができる。
コマンド | 説明 |
---|---|
i | カーソルの前に文字を挿入 |
a | カーソルの後に文字を挿入 |
o | カーソル行の下に新しい行を作成し、文字を挿入 |
I | iと同じ |
A | aと同じ |
O | oと同じ |
ラストラインモード
テキストの保存や終了、文字列の置換と検索を行える。
ファイルの保存・終了
用途 | コマンド | 説明 |
---|---|---|
保存 | :w | ファイル名を変更せずにそのまま保存 |
:w! | ファイル名を変更せずに強制的に保存 | |
:w ファイル名 | ファイル名を変更して保存(もしくは新規保存) | |
終了 | :q | ファイルを保存せずに終了 |
:q! | ファイルを保存せずに強制的に終了 | |
保存して終了 | :wq | ファイルを保存して終了 |
:wq! | 強制的にファイルを保存して終了 | |
:wq ファイル名 | ファイル名を指定して保存して終了 | |
その他 | :! コマンド | viから抜けずにコマンドを実行 |
:e! | 編集内容を破棄し、ファイルを再読込する |
文字列の検索
コマンド | 意味 |
---|---|
/文字列 | 現在のカーソル位置からファイルの末尾に向かって検索 |
?文字列 | 現在のカーソル位置からファイルの先頭に向かって検索 |
n | 次の検索 |
N | 前の検索 |
その他の編集に便利なコマンド
ちょっとした便利なコマンド
コマンド | 説明 |
---|---|
u | 最後に実行した編集の取消 |
. | 最後に実行した編集の繰り返し |
~ | カーソル上の文字を大文字・小文字切り替える |
viエディタの設定
viエディタには、有効になっていない便利なオプション機能が備わっている。
オプションを設定したり、初期設定を変更したりすることができる。
コマンド | 説明 |
---|---|
:set オプション | オプション機能の設定 |
:set no オプション | オプション機能の解除 |
オプション | 設定 |
---|---|
number | 行番号を表示 |
ignorecase | 大文字小文字を区別しない |
list | タブや行末文字等通常表示されていない文字を表示 |
all | 全てのオプションを表示 |
まとめ
viエディタを利用する場合は、今どういうモードなのかを理解していないと思いもしない操作で混乱することがあります。
また、コマンドやオプションなども多々存在するためよくあるコマンドだけ理解して使い慣れるようにしたほうが良いかもしれません。
モードの遷移とコマンドの種類について理解して使うようにしましょう。