viについて
viはUnix/Linux系のOSに実装されているスクリーンエディタであり、おそらく一番有名なエディタです。現在ほぼ全てのディストリビューションで標準で利用できるのはvim(Vi IMproved)のパッケージですが、ここではviとしてできる操作を提供します。
※vimとはviの模倣から始まり改良を重ねて機能面でviに勝ったエディタのことです。
viはモードという概念があり操作は全てコマンドを用いたキー操作で行います。コマンドモードと入力モードで操作が変わり、起動時はコマンドモードになっています。
入力モードへは「a,i,o,A」で移行し文字の入力が可能になります。逆にコマンドモードへ移行する場合は「Esc」を押せばよくて、このモードの切り分けによりキー操作だけで多数の機能を実行できるようになっています。
操作性にかなり優れていてemacsより少ない操作で機能を実現できるので、素人から玄人まで幅広くおススメできるエディタです♪
コマンド一覧
viを起動する | |
コマンド | 動作 |
---|---|
vi/view | 新規でviを起動する |
vi ファイル名 | ファイルを開く |
view ファイル名 | ファイルを読み取り専用で開く(強制上書き可能) |
viを終了する | |
コマンド | 動作 |
:q | vi終了(更新がある場合は警告を出し動作はキャンセルされる) |
:wq | ファイルを上書きしてviを終了 (読み取り専用の場合は警告が出て動作はキャンセルされる) |
:q! | 強制的にviを終了(ファイル保存しない) |
:w! | 強制的に上書き保存する |
ZZ | vi終了(内容が変更された場合は保存して終了) 読み取り専用時は警告が出る |
モード移行 | |
コマンド | 動作 |
ESC | コマンドモードへ移行 |
i | カーソルの左隣へ挿入 |
I | カーソル行の先頭に挿入 |
a | カーソルの右隣へ挿入 |
A | カーソル行の末尾に挿入 |
o | カーソル行の下を1行ずらして挿入 |
O | カーソル行を下に1行ずらして挿入 |
カーソル操作 | |
コマンド | 動作 |
h | 1文字左へ |
j | 1行下へ |
k | 1行上へ |
l | 1文字右へ |
H | 画面最上行の左端へ |
M | 画面中央行の左端へ |
L | 画面最下行の左端へ |
nG | n行目へ移動(nは数字を入れる) |
^ | 行頭(行頭が空白の場合は空白部分の右)へ |
$ | 行末へ |
- | 1行上の左端へ |
b | 左隣の単語の先頭へ |
w | 右隣の単語の先頭へ |
e | 単語の末尾へ ・カーソル位置が単語の途中の場合はその単語の末尾 ・カーソルが単語末尾なら次の単語の末尾 ・カーソルが行末なら次行先頭の単語の末尾 |
文字列操作 | |
コマンド | 動作 |
x | カーソル上一文字削除 |
X | カーソル左一文字削除 |
dw | カーソル位置から現単語末尾まで削除 |
df 文字 | カーソル位置から指定文字まで削除 |
d^ | カーソル位置から左削除 |
d$ | カーソル位置から右削除 |
dd | カーソル行削除 |
yw | カーソル位置から単語をコピー(半角英数字が対象) |
yy | カーソル行をコピー |
p | カーソルの右隣にペースト (文字削除コマンドで切り取ったものもペーストできる) yyでコピーした場合はカーソルから1つ下の行に挿入される ※行削除コマンドで切り取ったものも挿入できる |
P | カーソル箇所にペースト (文字削除コマンドで切り取ったものもペーストできる) yyでコピーした場合はカーソルから1つ下の行に挿入される ※行削除コマンドで切り取ったものも挿入できる |
画面操作 | |
コマンド | 動作 |
Ctrl + f | 1ページ分下に画面を移動 |
Ctrl + b | 1ページ分上に画面を移動 |
Ctrl + d | 半ページ分下に画面を移動 |
Ctrl + u | 半ページ分上に画面を移動 |
Ctrl + l | 画面を再描画(スクリーンがかすれた時に使う) |
Ctrl + g | "ファイル名" カーソル位置行/全体行 --全体の何%-- 上記形式で現在のカーソル情報を出力する。 |
その他 | |
コマンド | 動作 |
.(ドット) | 直前のコマンドの繰り返し |
u | 直前に実行したコマンドの取り消し。 |
U | カーソル行に対して行った変更を全部取り消す |
:set number | 行番号表示 |
:set nonumber | 行番号非表示 |
:shell | シェルを呼び出す。exitでシェルを抜けてviに戻る |
:sh | シェルを呼び出す。exitでシェルを抜けてviに戻る |