とらりもんHOME  Index  Search  Changes  Login

とらりもん - テキストエディター vi Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!作成者
筑波大学農林工学系 奈佐原(西田)顕郎

!テキストエディター vi

こんどはviというテキストエディターを修得しよう。テキストエディター(もしくは単に「エディター」)とは、テキストファイルを編集する、かんたんなワープロみたいなアプリケーションソフトである。テキストファイルとは、文字コードで構成されたファイルで(参照)、具体的には、プログラムやシステムの設定ファイル、ウェブサイト(ホームページ)のhtmlコンテンツ、各種のデータなどがテキストファイルとして記述される(前項の.bash_historyというファイルもテキストファイルである)。従って、テキストファイルをうまく操作・編集・処理することは、計算機を使う上で重要である。

テキストファイルが少数・少量の場合は、テキストエディターを使って、個別に対話的に処理することが多い。しかし、多数・大量のテキストファイル(1000個のファイルとか)を処理したり、その処理を自動化したいときなどは、awkやsedという、自動処理用のツールが重要である。それはあとでまた習おう。

テキストエディターにもいろいろあるが、UNIXではviが長年の定番のテキストエディターである。viの入っていないUNIXはほとんど無い。

viは他のエディタ(例えばWindowsのメモ帳など)とはちょっと違う、独特の使用感を持っている。たとえば、文字入力の際は「挿入モード」へ移行し、それ以外の操作のときは「コマンドモード」に移行する必要がある。このような操作は、視覚的・直感的な考え方よりもむしろ、論理的な考え方を要求するので、初心者にはとっつきにくいと感じられるだろう。

しかし、このような論理性が、viに大きな柔軟性と機能性を与え、なおかつ軽い(メモリーなどの環境が乏しくても動く)という特徴を与えているのである。そのような点では、viはプロの道具だと言えるかもしれない。はじめはとっつきにくいけど慣れればとても便利という点では、viは自転車に似ているかもしれない。UNIXを使いこなすにはviは「必須」ではないが、viを使えると、UNIXの習得・操作に大いに有用である。

では、viを使ってみよう。まず、viはコンソールの上で、次のようなコマンドを打てば起動される:

    $ vi 編集したいファイル名

ここでは、address.txtという名前のファイルを編集しよう。すなわち、

    $ vi address.txt

すると、以下のような画面になるはずである:

http://pen.agbi.tsukuba.ac.jp/~RStiger/fig/vi_old.pnghttp://pen.envr.tsukuba.ac.jp/~RStiger/fig/vi_old.png

↑ viを起動したところ。

テキストを入力するときは、まずキーボードで"i"を押す。すると、"-- 挿入 --"という表示が画面の左下に現れるだろう。この表示が現れているときは、画面上で自由に文字を入力できる。この状態を「挿入モード」と呼ぶ。

ある程度、テキストの入力作業が進めば、いったん保存したくなる。その場合、キーボードの"Esc"を押す。すると"-- 挿入 --"という表示は消えるはずである。その状態で、:wと入力すると、画面上のテキストがファイルに保存される。このような保存などの機能を働かせることのできる状態を、「コマンドモード」と呼ぶ。viを終了させるには、コマンドモードで:qとすればよい。

以下に、よく使うviのコマンドを列挙する:

!!<編集>

    i 文字入力モードへ移行
    x 文字をひとつ消去
    Esc 文字入力モードから脱出してコマンドモードへ移る
    dd 一行削除

!!<作業終了>

    :w 作成した文章の保存
    :q 編集の終了
    :wq 保存して終了
    :q! 作成した文章を保存せず終了(編集に失敗したとき)


*''課題'': viを使って、address.txtというファイル名で次のような内容のファイルを作成せよ。:

University of Tsukuba,
1-1-1 Tennoudai, Tsukuba, Ibaraki, Japan 305-8572

!参考になるサイト:

*[[viを使い倒そう|http://linuxjf.sourceforge.jp/JFdocs/vi-user-usage.html]]

<[[Unix/Linux入門]]に戻る>