« EeePC、ubuntu化計画発動 | トップページ | カンタンUbuntu2 »

2008年8月11日 (月)

テキストエディタ vi

ubuntuのインストールはほとんどGUIで済ませられるため、ターミナルを開いてファイルを編集するということをほとんどしません。
とはいえ、EeePCにubuntuをいれるとどうしてもEeePCにubuntu 8.04インストール2のときのように、grubの設定をかえるため、/boot/grub のmenu.lstファイルを編集する、といった必要が出てきます。

こうしたシステムがらみのファイルを、普通にエディタを開いて編集しようとすると書き込みができません。これは、管理者権限でなければ編集できないためです。Windowsでいうと、アドミニストレータ権限というやつです。

そこで、ubuntuでは次のように編集作業をします。例として、上の/boot/grubにあるmenu.lstを編集する場合です。まず「端末」を開いて、次のように打ち込みます。

cd /boot/grub

sudo gedit menu.lst

するとパスワードを聞かれますので、打ち込むと編集できるようになります。

このsudoとは、管理者権限でコマンドを実行するという枕詞(?)で、このあとに打ち込んだコマンドを管理者権限、つまり読み込み専用ファイルであってもなりふりかまわず書き込めるという状態にしてしまいます。

次にでてくるgeditというのは、ubuntuに標準ではいっているエディタです。まあWindowsでいうところのメモ帳の強化版といったところでしょうか。

なんで、普通はこれを使えば問題はありません。

しかし、以前にもちらっと言いましたが、Linux系/UNIX系で究極のエディタは「vi」です。

このエディタのすごいところは、完全にウィンドウシステムがダウンしてコマンドラインだけになっても起動できてしまうというところです。また、動作が非常に軽いという利点があります。数万行、数十万行に及ぶテキストファイルをさくさくと編集できるエディタはこいつくらいです(まあ最近はどんなエディタでもマシンパワーで強引に開けたりしますが)。

というわけで、viエディタの基本的な使い方を書いておきます。

------------------ 以下、viの説明です -----------------------------

ターミナルを開いて、

vi ファイル名

と打ち込むと、テキストの編集画面になります。

ここでまずCapslockが入っていないことを確認してください。大文字はShiftキーを使って打ち込むようにしてください。

さてここで文字を打ち込もうにも、キーを押しても文字が出てこないはずです。これはviの入力モードに入っていないためです。

入力モードへは、以下のキーを押すと入れます。それぞれ機能が違います。

・ 「r」 ・・・ 文字一文字だけ上書きするコマンド

・ 「R (Shift + r)」 ・・・ 上書きコマンド (ESCキーを押すまで入力できる状態)

・ 「i」 ・・・ 挿入コマンド (ESCキーを押すまで入力)

たとえば、

    abceefghijk

の文字列で、「ee」となっているところを「de」としたいとき、最初のeの文字にカーソルを移動し(カーソルキーで移動します)、「r」と押して「d」と入力すると

    abcdefghijk

と書き変わります。

    abceefghijk

次に上の「eefgh」を「eeepc」としたい場合は、「f」の文字のところで「R(Shift + r)」と押して「epc」と入力すると、

    abceeepcijk

となります。これでよければESCキーを押してください。

このESCキーは入力編集するモードを終わらせるためのキーです。

    abceefghijk

の「e」と「f」の間に「epc+空白」と入れたい場合は、「f」のところにカーソルを持って行き、「i」と押し、「epc+空白」と入力しESCキー。

    abceeepc fghijk

となります。

    abceefghijk

さらに、上の文字列に「k」より後ろに「lmnopqr」と追加したい場合は、「k」にカーソルを持って行き「a」と押し、「lmnopqr」と入力しESC。

    abceefghijklmnopqr

となります。「a」は、カーソルのある文字より後ろに文字を挿入するコマンドです。行末に文字を追加するときに使います。

こんな感じでviエディタは文字の書き込みを行います。

保存して終了するときは、入力モードから抜けた状態で

:wq!

と押します。wを抜いて :q! とすると、保存せずに終了できます。ちなみにShift + zzでも保存終了できます。

私がよく使うviのコマンドを並べて見ますと、

・ 「r」 ・・・ 文字一文字だけ上書きするコマンド (ESC不要)

・ 「R (Shift + r)」 ・・・ 上書きコマンド

・ 「i」 ・・・ 挿入コマンド

・ 「a」 ・・・ カーソルより1文字後ろから挿入するコマンド

・ 「s」 ・・・ 置換コマンド(カーソル上の文字を別の文字に置き換える)

   ちなみに「4s」とおして文字を打つと、カーソルより4文字後ろの文字が置き換え対象になります。

・ 「o」 ・・・ カーソルのいる行より下に空白行を挿入し、入力するコマンド

・ 「O (Shift + o)」 ・・・ カーソルのいる行を押しのけて空白行を挿入し、入力するコマンド

・ 「Y (Shift + y)」 ・・・ 行をコピー

・ 「dd」 ・・・ 行を切り取り

・ 「p」 ・・・ 「Y」または「dd」でコピー/切り取りした行をペースト (カーソル行の下)

・ 「P (Shift + p)」 ・・・ 「Y」または「dd」でコピー/切り取りした行をペースト(カーソル行を押しのけて)

・ 「.」 ・・・ 一つ前のコマンドを繰り返し

・ 「u」 ・・・ 一つ前のコマンドを取り消し

・ 「Ctrl + f」・・・ 1画面下へスクロール

・ 「Ctrl + b」・・・ 1画面上へスクロール
・ 「/」 ・・・ /より後ろに打ち込んだ文字を検索
・ 「h」「j」「k」「l」 ・・・ 左、下、上、右 へ移動(カーソルキーと同じ)
・ 「$」 ・・・ 行の後ろへ移動
・・・などなど、上げたらキリがないほど色々あります。
他にも「:/(変換前文字列)/(変換したい文字列)/g」と打つと、文書内すべての置換するというコマンドもあります。
まとまったコマンド一覧表は、以下のサイトでも確認できます。
viコマンド一覧表

私がviを覚えてもう13年になります。最初は変なエディタだと思っていました。これまでに私はPC用UNIX、Linuxをいくつかインストールしてきました。FreeBSD、Turbo Linux、Vine、Redhat、Ubuntuなどなどです。また会社や大学でもUNIX or Linuxを使っていました(います)。これらすべてにviエディタは入っています。OSがトラブって、外からログインできない状態になったとき、本体にいってもX Windowがダウンしてしまっても、viだけは動きます。OSの根幹が壊れない限り動くエディタ、それがviです。本能寺で織田信長に最期まで使えた森蘭丸のような(?)エディタとでもいえばいいんでしょうか。覚えておくと大変便利なコマンドです。

« EeePC、ubuntu化計画発動 | トップページ | カンタンUbuntu2 »

Raspberry Pi・Arduino・電子工作」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: テキストエディタ vi:

« EeePC、ubuntu化計画発動 | トップページ | カンタンUbuntu2 »

無料ブログはココログ

スポンサード リンク

ブログ村