スポンサーリンク

はじめてのvi&Vim

はじめてのvi&Vim ★★★★☆

2009年出版。
Vim:半角と全角のペースト時の挙動の違い - How Many Books Do You Have?の問題は解決したものの、総合的に紙で知りたいと思い読んでみた。
残念ながら、この本には行指向という文字が1回顔を覗かせるだけで、文字指向、行指向、ブロック指向の説明はなかった。
自分のように、ペーストする時の挙動の違いに困ったことのある人は、少ないのだろうか。
また、グローバルな検索は載っているが、グローバルな置換は載っていない。
「はじめての」という枕詞がついているからしょうがないか。

基本操作が逐一実例付きで分かりやすい。
初心者にお勧め。

★4つ

p.3 はじめに
しかし、viはどうにも使いにくい、と言う声も聞かれます。それにはいくつかの理由が考えられますが、以下のようなものでしょう。

  1. メニューが表示されない
  2. コマンドモードと挿入モードの切り替えが必要
  3. 行指向性が強い

1,2は最初は凄く気になったが、今は全く気にならない。
3はddの後pをすると改行してペーストされることを言っているのかな。
確かに他のエディタを使ってきたから困惑した。けど、理解できた今は大丈夫。
しかし、その使いにくい理由の指向性についての解説がないのが残念。

p.133 特殊なキーのマップ
Enter     Ctrl+V + Ctrl+M
Esc      Ctrl+V + Ctrl+[
Backspace  Ctrl+V + Ctrl+H

p.138 .vimrc
viでは、.exrcファイルが使われます。Vimでは、.vimrc、.gvimrcファイルが使われ、これらのファイルがない場合には、.exrcファイルが読み込まれます。.vimrc、.gvimrcファイルとの併用は出来ません(.exrcファイルは読み込まれない)。

p.166 行を超えてカーソル移動
viでは、左右の移動コマンド(h,l)では、行を超えた移動は出来ません。
ここで、以下のオプションを指定します。

:set whichwrap=<,>,[,]

こうすることで、カーソルキーを使った操作で、行末や行頭へそのまま移動することが出来るようになります。<と>は通常モードとビジュアルモードで、[と]は挿入モードでカーソルキーによる1文字単位の移動を行うものです。これらのコマンドで、行を超えたカーソル移動が可能になります。
デフォルトでは、whichwrapオプションでは、BackspaceとSpaceが通常モードとビジュアルモードで設定されています。ここで、上記のように、カーソル移動に使われるキーを設定することで、より便利になります。Windowsから移行したユーザーにとっては、非常に便利なオプションかもしれません。
カーソル移動には、lとhがあります。しかし、Vimでは、このキーをwhichwrapに指定することは推奨していません。理由は、このオプションをこれらに設定すると、行末コードも1つの文字として扱われるために、カーソルが行末を経由する場合に、コマンドによっては動作が異なってしまいます(たとえば4hと4dh)。したがって、lとhコマンドは、whicwrapに指定しない方がよいでしょう。

これ!不便だった。
けど設定しないほうが良いという理由を読み、しょうがないかと諦めがついた。

p.174 すべてのウィンドウを同時に終了する。
:wall すべてのウィンドウの変更内容を保存する
:wqall すべてのウィンドウの変更内容を保存し、Vimwo終了する
:qall! すべてのウィンドウの変更内容を破棄し、Vimwo終了する
:qall すべてのウィンドウを閉じVimを終了する。

内容紹介
本書は、UNIXの標準エディタであるvi(もしくはその互換エディタ)をマスターするための入門書です。viは、その操作方法などが、Windowsのエディタと大きく異なるために使いにくいと感じる方も少なくありません。それが、LinuxなどのPC UNIXの壁になっている部分もあります。そんな方のために必要最小限のコマンドで、テキスト編集を行うための基礎・基本を解説します。「これだけ覚えればviを使える」を目指した書籍です。また、最近では一般的な互換エディタであるVimについても、拡張機能の一部を解説します。
内容(「BOOK」データベースより)
はじめてでもよくわかる。これ一冊でvi&Vimがマスター。UNIX/Linux標準ツールを徹底解説。