LoginSignup
1
6

More than 5 years have passed since last update.

Vim入門者によるVim入門

Last updated at Posted at 2017-04-09

Viを使いはじめてから約一週間が経過した。 そのド初心者である自分がVi(もしくはそのクローンであるVim)に関してVi入門者に向けた文章を書こうと思う。
というのも、自分は、先日、オライリーから出ている名著の誉れ高い「入門Vi」を8割くらい読んだのだが、そこで認識を新たにすることがあったためである。

Viにはモードなど存在しない。

一言で言えば、私がここで書きたいことはこの1行に要約される。
普通のViの解説では、Viにはモードがいくつかあるという説明がされている。ノーマルモード、コマンドモード、入力モード、ビジュアルモードなど。
しかし、私は「入門Vi」を読んでこの説明が間違いだということに気がついた。
私はVi初心者だが、実はViを最初に使ったのはかれこれ20年位前だろうか。その当時もViの解説はモードの説明からはじまるものが多かった。

だが、これはシンプルなUnix思想で作られただろうViを理解する上で無用にViの理解を複雑にしてしまう説明だ。
私は最初この説明を読んで頭が混乱し、こんな旧式のエディターなど使ってられるかと思った悲しい過去がある。
モードという概念は、もともとは単なる説明の方便だったものが、最初から実在するもののように使われているのだろう。

Viにはコマンドしかない。

つまり、Viにはモードはなく、コマンドしかないというのが私の結論だ。viの基本アイデアとはテキストの作成編集をすべてコマンドで行うということにある。そう考えれば実にシンプルでUnixらしい。
たとえばViのいわゆる入力モードなるものは、インサートコマンドであり、入力した文字はインサートコマンドの引数のようなものだ。そしてEscキーでインサートコマンドを終了させる。

だが強いて言えば、Exモードというのはあると言えるかもしれない。
コロン(:)で一番下のラインに入力が移る、コマンドモードとも呼ばれるあれである。
だが、「入門Vi」を読んで、Exモードというのは、ExエディタをViの内部から起動していることを知った。

ViとExエディタの関係

「入門Vi」を読むと、ViとはExエディタというラインエディタをスクリーンエディタに発展させたものだと書かれている。
今では、ExはミトコンドリアのようにViに取り込まれ、Viの一部のように使われているが、いわゆるExモードではあくまでExエディタのコマンドが動いている。

今でもExエディタだけを単体で起動させることができる。
ターミナルから

$:Ex

とタイプすればExエディタ単体で起動する。

さらに、このExエディタからVimを起動することもできる。

:vi

とすれば、Vimが起動する。

こうしてみると、ExエディタからVimを呼べるように、実はExモード(コマンドモードとも呼ばれる)なるものはVimからExエディタを呼んでいるだけだとわかる。

実は普通のエディターでもあったVim

多くの入門解説にはなぜか書かれていないが、今のVimは普通のエディターのように使える。
どういうことかというと、いわゆる入力モード(正確にはインサートコマンド実施時)で矢印キーによるカーソル移動が上下左右に自由自在だ。BackspaceキーもDeleteキーも普通に使える。Ctrl-Hのバックスペースも使える。
であれば、メモ帳アプリと同じように使えるということだ。コマンドを忘れても、もしくは最初から何も知らなくても使える。

※)ただし、この場合であっても、いわゆる入力モードに入る方法(インサートコマンドの方法)と、エスケープキーで入力モードを抜ける方法(インサートコマンドを終了させる方法)は最低限しらないといけないだろうけども。

なお、この文章はVimで書いた。しかし、やはりこういう日本語の文章を書く場合は、普通のエディターのほうがずっと楽だと思った次第である。

しかし、Vimの真骨頂は、そのコマンドの組み合わせの自由度にあるのだろう。

1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6