ホームにもどる      「パソコンについて」にもどる
                         印刷

vi vim

 vimはvi improvedの略とされ、vimの改良版である。現在では、viで開くと、vimが開く。
 今ではたいていの人はパソコンはウインドウズのようなGUIから始める。画面のメニューバーやアイコンを見ながらマウスをクリックすることでパソコンに何かの操作をさせる。メニューバーには文字でコピーとか貼り付けとか書いてあるから、ここを選択すればコピーできるのだななどと誰にでもわかる。アイコンもその操作をイメージする絵になっている。
今、文書の最後の行全体をコピーして、それを次の行に貼り付ける操作をするとする。ウインドウズでは次のような操作になるだろう。
マウスでスクロールして、一番最後の行を出す。

マウスでドラッグして、最後の行全体を選択する。

マウスでメニューバーのコピーをクリックする。

画面をクリックする。

Enterキーを押す。

マウスでメニューバーの貼り付けをクリックする。
 少しパソコンに慣れてくると、いちいちメニューバーからコピーや貼り付けを選択するより、Ctrlキーを押しながらCキーを押してコピーし、Ctrlキーを押しながらVキーを押すほうが速いと気づく。また文書の一番最後に移動するのは、スクロールするよりも、Ctrlキーを押しながらEndキーを押すほうが速い。このキー操作ですkると次のようになる。
Ctrlキーを押しながらEndキーを押す。

マウスでドラッグして、最後の行全体を選択する。

Ctrlキーを押しながらCキーを押す。

画面をクリックする。

Enterキーを押す。

Ctrlキーを押しながらVキーを押す。
ウインドウズのテキストエディターではこれが最速だろうか。これをviで操作すると、次のようになる。
Gキーを押す。

yキーを2回押す。

pキーを押す。
つまりGyya と入力すればすんでしまう。これは速い。
 viの操作はこのように速いため、またすべての操作がキーボードでできるからGUIが使えない環境でも使えるから、今でもviの愛好者は絶えない。今のviはShiftキーとCtrlキーを押しながらVキーを押すことで他の文書の文を貼り付けることもでき、ウインドウズのテキストエディターのようにも使える。ウインドウズのテキストエディターには、メニューバーにたくさんの項目が並んでいる。これをすべてキーボードに割り当てようというのだから、かなりの数になることが想像できる。これを覚えなければならないことになる。ウインドウズのアプリケーションソフトのワードなどは、バージョンが変わるとメニューバーの配置がかなり変わってしまうことが多い。今まで覚えていたのと違うからとまどったり、使い方がわからなかったりする。ようやく使い方に慣れたかと思うと、また新しいバージョンが出る。このことが繰り返される。しかしキーボードに割り当てたコマンドはそう簡単に変えれない。これはキーボードの配置を変えるようなものである。キーボードの配置を変えるようなことをすれば、世界中からブーイングが起こる。今までのブラインドタッチができなくなるからである。キーボードに割り当てているコマンドはたくさんあるのだけれど、一度覚えてしまえば、少なくとも私たちが生きている間は使えることになる。以下に気づいたことを書く。
viを開くには、端末にviと入力すればよい。Shiken.txtというファイルを開くには
vi Shiken.txt
と入力すればよい。viの後のスペースは一つでなくてもよい。指定したファイル名がない時は新しいファイルをつくることになる。
複数のファイルを開く時は、
vi ファイル名1 ファイル名2 ファイル名3
のようにスペースをあけて書いていく。
:から始まるものは、入力したものが下に表示される。コマンドを入力した後にEnterキーを押す必要がある。
  1. 今ディレクトリ名をShikenとすると、:e Shiken/ でShikenディレクトリの中のファイル名の一覧を表示できる。開きたいファイルにカーソルを移し、Enterキーを押すことでそのファイルを開くことができる。
  2. 未入力の空白行は~がついている。
  3. 入力モードは下に挿入と表示される。入力モードは最終行の右端のカーソルが文字の右側に行くが、コマンドモードは文字の上にとどまり、文字の右側には行かない。入力した文字はカーソルの左側に入っていくようになる。
  4. 画面の右下に現在カーソルのある行と行の中の位置が表示され、文書が一番上から何パーセントぐらいの所にあるかも表示される。
  5. viで開いた文書に行番号をつくようにするには、端末で、
    echo "set number" >> ~/.exrc
    を実行する。
  6. 端末にvi Shiken.txtと打ち込んでShiken.txtを開いて、そのファイルを変更したのだけれど、保存せずに、端末を閉じてしまった時、そのファイルはスワップファイルとして自動的に保存される。次にvi Shiken.txtでShiken.txtを開いた時、以前に保存していないファイルをどうするか聞いてくる。以前のファイルを削除するには、Dを入力する。
  7. 今shiken.plを開いており、これを一応保存して、shiken2.plをつくりたい時
    :w shiken2.pl
    でできる。この時、shiken.plを変更して保存していなかったとしても、今の状態で保存される。shiken.plに次の変更をすると問題が起こる可能性がある時、問題のない今の状態を保存しておくと、何か問題の起こった時に、
    gg
    dd
    G
    :r shiken2.pl
    で問題のなかった状態にもどすことができる。
  8. viで文書を開くと、^Mの表示が文末に見られることがある。これはWindowsのテキストエディターでつくったものを開いたり、Windowsのテキストエディターでつくったものをコピーしたりした時に見られる。Windowsは改行コードがCRLFであるが、LinuxはLFである。CRはCarriage Returnの略。LFはLine Feedの略。WindowsにはCRがついているため、これが^Mとして出てくる。viで編集する時はこれは不要なものであり、これがついていると見にくい。これを削除するには、:%s/^M//g でする。^ Mは制御文字であるため、キーボードの^ M から入力しても認識しない。Ctrlキーを押しながらVキーを打ち、Ctrlキーを押しながらMキーを打って入力する必要がある。
  9. viのコマンドモードはgeditなどのテキストエディターに比べて、圧倒的な機能を持つ。しかし入力モードでは、gediltのほうが上である。viの入力モードはマウスによるカーソルの移動ができないし、Ctrl-Zによるundoもできない。だから入力が遅くなる。日本語入力の時は、半角/全角漢字キーをしばしば押す必要があるが、Escキーと半角/全角漢字キーは上下に並んでおり、ブラインドタッチでしているとしばしばEscキーと半角/全角漢字キーを押し間違える。Escキーを押すと、コマンドモードにもどる。コマンドモードにもどったのに気づかずに入力すると、コマンドを入力するのだから、いろいろと変なことが起こる。日本語をまったく入力しないなら、半角/全角漢字キーと間違えてEscキーを押すことはないから、geditに比べる不便だが、多くの入力でなければ許容範囲である。
    論語に「備わるを一人に求めるなかれ」という一句がある。一人の人間に完璧を求めてはならないということである。テキストエディターもまた一つに完璧を求めないほうがよいと思う。コマンドモードはviを使い、まとまった入力はgeditを使えば、最強のテキストエディターになると思う。
    端末で
    vi henshu.txt
    で開く。
    ggdG
    でhenshu.txtをすべて削除する。
    :x
    で閉じる。 編集しているファイルのコピーをする最初の所にカーソルを移す。
    v
    ビジュアルモードにしてコピーする。
    :e henshu.txt
    でhenshu.txtを開く。
    P
    でhenshu.txtに貼り付ける
    入力をする。入力が終われば保存して閉じる。
    カーソルをコピーを開始した所から一行あげる。
    :r henshu.txt
    で読み込む。
    dd
    で以前の不要のものを削除する。
  10. vimの設定ファイルはCentOSでは、/etc/vimrcにある。デフォルトでは、行番号がつかないし、タブの幅が大きい。これを変更するには、/etc/vimrcに書き加える。
    set rulerの下あたりに、
    set number
    と書き加えるとviで開いた時に行番号がつく。
    タブの設定は、
    set tabstop=5
    でできる。
    タブの設定変えるだけでは、< << > >> でタブを設定した時と入力モードでタブの設定をした時とのタブの幅が変わってしまう。それで、
    set shiftwidth=5
    でshiftwidthも変えておく必要がある。tabstopを5に設定した時は、shiftwidthも5にすると、同じタブ幅になる。

ホームにもどる      「パソコンについて」にもどる 更新日: 2015年4月7日