オライリーの入門viを読んでみた

久しぶりのブログ更新。

僕は普段、PHPPerlなどサーバサイドの言語をコーディングするときは
viを常用しています。

で、HTMLやJSなどフロントサイドの言語は、サクラエディタを使ってます。
ガラケーのサービスを運用しているときに、「i絵文字」(懐かしいなぁ)
とか使っていて、viだと何かと融通がきかなかったので。

viを使って3年くらい経つのですが、いまさらですがオライリーの入門vi
を読んでみました。

入門 vi 第6版

f:id:hiro1986:20131121145016g:plain

構成はこんな感じ

1章 テキストエディタ
        1.1 ファイルのオープンとクローズ
        1.2 編集をセーブせずに終了するには

2章 基本的な編集作業
        2.1 viのコマンド
        2.2 カーソルの動かし方
        2.3 簡単な編集
        2.4 テキストを入力するいろいろな方法
        2.5 Jによる2行の連結
        2.6 viの基本コマンドのまとめ

3章 素早くジャンプする方法
        3.1 画面単位でのジャンプ
        3.2 テキストブロック単位でのジャンプ
        3.3 検索によるジャンプ
        3.4 行番号によるジャンプ
        3.5 viの移動コマンドのまとめ

4章 viの中級コマンド
        4.1 コマンドの組み合わせ
        4.2 viの起動オプション
        4.3 バッファの活用
        4.4 位置のマーク
        4.5 もっと高度な編集作業について
        4.6 viのバッファ/マーク関連コマンドのまとめ

5章 exエディタ
        5.1 exコマンド
        5.2 exによる編集
        5.3 ファイルのセーブと終了
        5.4 別のファイルの読み込み
        5.5 複数ファイルの編集

6章 一括置換
        6.1 置換の確認
        6.2 文脈依存置換
        6.3 パターンマッチングルール
        6.4 パターンマッチングの実例
        6.5 パターンマッチングの完全マスター

7章 viの高度な使い方
        7.1 viのカスタマイズ
        7.2 UNIXコマンドの実行
        7.3 キー入力節約用コマンド
        7.4 exスクリプトの使い方
        7.5 ソースコードの編集

8章 vim - vi Improved
        8.1 作者と歴史
        8.2 おもなコマンドライン引数
        8.3 オンラインヘルプとその他のドキュメント
        8.4 初期化
        8.5 マルチウィンドウ編集
        8.6 GUIインターフェイス
        8.7 拡張正規表現
        8.8 改善された編集機能
        8.9 プログラミング支援機能
        8.10 ユニークな特色
        8.11 対応するオペレーティングシステムソースコード

1~5章はおさらい的な感じですらすら読めて
こういうコマンドもあったんだと、新たな発見も多々ありました。

個人的には8章のvimに関しての内容が一番面白かったです。
これを期に vimrc を綺麗に整えようと思います。

たまに使うけど忘れがちなコマンドをメモ。

画面分割

:sp  画面を上下に分割
:vsp 画面を左右に分割

Ctrl-w 画面間の移動
Ctrl-w k 上の画面に移動
Ctrl-w j 下の画面に移動
Ctrl-w l 右の画面に移動
Ctrl-w h 左の画面に移動

Ctrl-w + カーソルのある画面を一行分大きくする
Ctrl-w + カーソルのある画面を一行分小さくする
Ctrl-w = 画面のサイズを同じにする

UNIXコマンドを使用

:! command

ex) :! ls
    :! pwd

あと、折り畳みに関して本に書いてなかったのでメモ

zi	折り畳みの有効無効の切り替え
zf	折り畳みを作成する
za	折り畳みの開け閉め
zd	折り畳みを削除する

zA	折り畳みの開け閉め(再帰)
zD	折り畳みを削除する(再帰)
zE	全ての折り畳みを削除
zR	全ての折り畳みを開く
zM	全ての折り畳みを閉じる

これからvi使いたい、vi使ってるけど知らない機能がたくさんある
って人にはおすすめの本であると思います!!