openSUSEでHomeServer
                     LAST UPDATE: 2008/06/08

目次

viの歴史編
viの設定ファイル編

viとは

vi(ヴィーアイ)は、Emacsと共にUNIX環境で人気があるテキストエディタ。ビル・ジョイによって開発された。名の由来はVIsual editorの略。
BSDの創始者であるビル・ジョイが、最初のBSDを公開するにあたり開発していた、Pascalコンパイラを快適に作成するために開発されたのが始まりであり、当初はそのPascalのソースコードに同封され、その奥底に埋もれていたため、単体のソフトウェアとしての提供は認知されていなかった。この段階ではexと呼ばれるラインエディタであり、まだ現在のようなヴィジュアルエディタではなかった。
後にカリフォルニア大学バークレイ校にadm3a端末が導入されたのを機に、ビル・ジョイ自身により更なる改良を加えられたものが、現在のviと呼ばれるエディタである。

viはお得?!

ほかにも有名なEMACSやらgeditなどいろいろなエディタがあるのですが、もしコンピュータ業界に就職したいという人がいるとしたら
だんぜんviです!!なぜならUNIX/LINUXに入っているもっとも確率が高いエディタはviです!!
もしEMACSやgeditなどに慣れてしまって仕事でUNIX/LINUXで作業するときにこれらのエディタが入ってないことは、ほとんどです。
お客さんのマシンだと気軽にインストールなどできないので、作業にこまってしまいます。
ですので、viを習得して損はないと思います。
趣味でやられている人はなんでもよいです。お好きなエディタを使いください。
ちなみにopenSUSEではvimというviを高機能にしたものがインストールされています。viでの使用方法は全般的に使えるので、紹介しておきます

操作方法

Linux/Unixマシンで作業をする際、設定ファイルを変更する際にviを使用するのだが、ユニークな操作なため、
はじめて使用するひとにとっては困惑してしまう。そこでviの操作を記述します。

#vi test ←これでtestを作成
#view test  ←これだと読み取り専用になる

キーボートのiを押すとインサートモードで文字入力ができる。
そして、文字入力が終われば、Escキーでインサートモードを終了する。
移動は基本的にj(下),k(上),l(右),h(左)である。
保存する場合は:w
保存しないで終了:q
強制終了は:q!
である。

以下にviのコマンドモード早見表を記述しておきます。


行の先頭に移動
挿入モードにはいる(カーソルの後)
挿入モードにはいる(行末に移動)
前の単語に戻る
前の単語に戻る(空白のみを区切りと解釈)
^b 前のページにスクロール
次に続く移動コマンドの場所まで変更
c$と同じ
次に続く移動コマンドの場所まで削除
d$と同じ
^d 画面を半分スクロール
単語の最後の文字に移動
単語の最後の文字に移動(空白のみを区切りと解釈)
行の中で指定された文字を末尾方向に探索
行の中で指定された文字を末尾方向に探索
^f 行の中で指定された文字を先頭方向に探索
指定された行番号の行へジャンプ
^g カーソルのある行の行番号を表示
左に1文字移動
画面の一番上の行に移動
挿入モードにはいる(カーソルの前)
挿入モードにはいる(行の先頭に移動)
挿入モードにはいる(行の先頭に移動)
カーソルのある行と次の行を連結
上の行に移動
右に1文字移動
画面の一番下の行に移動
行にマークを付ける
画面の中央の行に移動
前に行われた検索を繰り返す
前に行われた検索を、反対方向に繰り返す
挿入モードにはいる(カーソルの下に新しい行を作る)
挿入モードにはいる(カーソルの上に新しい行を作る)
バッファの内容をカーソルの後(下の行)に挿入
バッファの内容をカーソルの前(上の行)に挿入
1文字置き換え
カーソルの場所から上書き訂正
^r 画面の表示の乱れを直す(端末によっては^l)
1文字を別の文字列に置き換える
1行を別のテキストに置き換える ccと同じ
行の中で指定された文字を末尾方向に探索し、その前に移動
行の中で指定された文字を先頭方向に探索し、その後に移動
^t タブの分だけ移動
テキストの変更を取り消す
カーソルのある行の変更を取り消す
次の単語の先頭に移動
次の単語の先頭に移動(空白のみを区切りと解釈)
^w カーソルのある場所の文字を削除
カーソルのある場所の文字を削除
カーソルのある場所の前の文字を削除
次に続く移動コマンドの場所までバッファに記憶
yyと同じ
ZZ セーブ終了
^z 編集を一時的に中止し、バックグラウンドジョブにする
編集中のファイルにUNIXコマンドを適用
この後にバッファの番号または名前を指定
行の末尾に移動
対応する括弧に移動
exコマンドを繰り返す
前の行の先頭に移動
次の行の先頭に移動
文字列の検索(テキストの下に向かって)
文字列の検索(テキストの上に向かって
直前のテキスト変更を繰り返す
>及び< テキストをタブ分だけ右(左)シフト
_ 行の最初の空白でない文字に移動(0と微妙に違います)
exモードになる
ddp 行の交換
xp 文字の交換
y$ カーソルから行の最後までをバッファに記憶
cw 単語1個の修正
n. 特定の文字列を次々探索し、同じ修正を繰り返す
1G ファイルの先頭に移動
dG カーソルより後を全部消去する
:q! 強制終了
: r! コマンド結果読み込む

よく用いられる環境設定

set nu ……… 行番号を付ける
set ai ……… オート・インデント機能
set sm ……… 括弧の対応を確認(showmatch機能)
set ws ……… 検索をファイルの終わりで打ち切らず先頭に戻って繰り返す
         (ラップ・スキャンを行う。初期状態として設定されている)
set report=? …… ?行以上の変更があった時にメッセージを出す。
set mesg …… talkなどのメッセージを受け付ける
set showmode …… 挿入モードであることを表示

△TOP
Copyright © openSUSEでHomeServer All Rights Reserved.
管理人へメール