「実践Vim」はテキスト編集の何たるかを教えてくれる良著

日頃の自分仕事を振り返ってみると、論理的にはコーディングをしたりディスカッションをしたり資料を作成したりコミュニケーションをしたりといったことをしているけれども、物理的に見るとキーボードを叩き続けているわけで、更にもう一歩進んでみてみるとテキスト編集をしている。

こうしてブログ記事を書くのもテキスト編集だし、コーディングも言ってみればコードというテキストを編集している。そういう訳でテキスト編集はあらゆる作業の源泉であり、そんなテキスト編集を行うためのエディタにこだわるのは、当たり前のことだろう。

テキスト編集の作法

そういう訳で僕は今までvim -> emacs -> sublime -> rubymine(エディタというかIDE)といろいろエディタを渡り歩いてきたのですが、vimほどテキスト編集そのものへのこだわりが強いエディタも、そうそうないなと思っています。emacsなんかは統合的な文章編集環境として、例えばTODO管理だとかスケジュール管理だとか、そういった一段上の抽象的な作業効率をelispによるスクリプトで上げることに主眼を置いているのに対して、vimは編集作業そのものに対して美学がある印象があります。

vimにも数々の便利なスクリプトがありますが、vimを離れてもvimのモードがやっぱり欲しくなると思えるのは、vimのテキスト編集の作法そのものに魅力があり、一番効率的だと思えるからでしょう。

「実践Vim」はそういったvimのテキスト編集のやり方そのものに焦点を当てた本で、vim以外のエディタでvimのモードを使っている人にとってもvimによるテキスト編集の真髄に迫れる良著となっています。

いかにキーストロークを少なく定形作業を済ませるか? vimで効率よくテキスト編集をするために必要な考え方とは何なのか?

これはもはや哲学であり、かつ実践であり、読めば必ず日頃の作業に役立つ考え方を得ることができます。随分前に出ていたはずなのに、いやはや何で今まで読まなかったのかなー。

  • 第1章 Vimのやり方
    • TIP1:ドットコマンドとは
    • TIP2:DRY(Don’t Repeat Yourself)
    • TIP3:一歩下がって、三歩進む
    • TIP4:実行して、繰り返して、元に戻す
    • TIP5:手作業での検索と置換
    • TIP6:ドットの公式
  • 第1部 モード
    • 第2章 ノーマルモード
    • TIP7:埃を払って一息つこう
    • TIP8:アンドゥはひとまとめに
    • TIP9:変更を繰り返し可能なものにする
    • TIP10:回数指定を使って簡単な計算を行う
    • TIP11:繰り返しで済むなら、回数を指定しない
    • TIP12:統合して統治せよ
    • 第3章 挿入モード
    • TIP13:挿入モードで簡単修正
    • TIP14:ノーマルモードへの復帰
    • TIP15:挿入モードから抜けないでレジスタから貼り付け
    • TIP16:簡単な計算をその場で実行
    • TIP17:文字コードを使って特殊文字を入力
    • TIP18:ダイグラフによって特殊文字を挿入
    • TIP19:置換モードで既存のテキストを上書き
    • 第4章 ビジュアルモード
    • TIP20:ビジュアルモードとは
    • TIP21:ビジュアルな選択範囲の定義
    • TIP22:行指向のビジュアルモードコマンドを繰り返す
    • TIP23:可能ならばビジュアルコマンドではなくオペレータを優先しよう
    • TIP24:ブロック指向のビジュアルモードで表形式のデータを編集
    • TIP25:テキスト列の変更
    • TIP26:矩形状ではないビジュアルな選択範囲にテキストを追加
    • 第5章 コマンドラインモード
    • TIP27:Vimのコマンドラインモード
    • TIP28:連続する行に対してコマンドを実行する
    • TIP29:「:t」/「:m」コマンドで行をコピー/移動
    • TIP30:選択範囲に対してノーマルモードのコマンドを実行する
    • TIP31:直前のExコマンドを繰り返す
    • TIP32:Exコマンドでタブ補完
    • TIP33:カーソル位置にある単語をコマンドプロンプトに挿入
    • TIP34:履歴からコマンドを呼び戻す
    • TIP35:シェルでコマンドを実行
  • 第2部 ファイル
    • 第6章 複数ファイルの管理
    • TIP36:バッファリストを使ってオープン中のファイルを管理する
    • TIP37:引数リストを使ってバッファをコレクションにまとめる
    • TIP38:隠しファイルの管理
    • TIP39:ワークスペースを分割ウィンドウにする
    • TIP40:タブページを使ってウィンドウのレイアウトを管理
    • 第7章 ファイルのオープンとディスクへの保存
    • TIP41:「:edit」でファイルパスを指定してファイルをオープンする
    • TIP42:「:find」を使い名前を指定してファイルをオープンする
    • TIP43:netrwでファイルシステムを探索
    • TIP44:存在していないディレクトリにファイルを保存
    • TIP45:スーパーユーザーとしてファイルを保存
  • 第3部 スピードアップ!
    • 第8章 モーションによるファイル内の移動
    • TIP46:自分の指はホームポジションから外さない
    • TIP47:論理行と表示行を区別しよう
    • TIP48:単語単位での移動
    • TIP49:文字を検索
    • TIP50:検索して移動
    • TIP51:高精度なテキストオブジェクトを使って選択範囲をトレース
    • TIP52:デリミタを含めて削除したり、デリミタの内側を変更したり
    • TIP53:場所をマークして、そこにサッと戻る
    • TIP54:カッコから対となるカッコにジャンプ
    • 第9章 ジャンプによるファイル間の移動
    • TIP55:ジャンプリストの移動
    • TIP56:変更リストを辿る
    • TIP57:カーソル位置に記述されているファイル名のファイルにジャンプする
    • TIP58:グローバルマークを使ってファイル間をテキパキと移動する
  • 第4部 レジスタ
    • 第10章 コピー&ペースト
    • TIP59:無名レジスタを使った削除/ヤンク/プット
    • TIP60:Vimのレジスタを掌握する
    • TIP61:レジスタを使ってビジュアルな選択範囲を置換
    • TIP62:レジスタから貼り付け
    • TIP63:システムレベルのクリップボードを扱う
    • 第11章 マクロ
    • TIP64:マクロの記録と実行
    • TIP65:正規化、撃破、中断
    • TIP66:回数を指定してマクロを再生する
    • TIP67:連続する行に対して変更を繰り返す
    • TIP68:マクロにコマンドを追記する
    • TIP69:複数のファイルにマクロを適用する
    • TIP70:イテレータを評価してリスト中の要素に番号をつける
    • TIP71:マクロの内容を編集する
  • 第5部 パターン
    • 第12章 パターンとリテラルのマッチ
    • TIP72:検索パターンが大文字/小文字を区別するかを制御する
    • TIP73:正規表現検索で「\v」パターンスイッチを使う
    • TIP74:\bs{}Vリテラルスイッチを使ってテキストそのものを検索
    • TIP75:カッコを使って部分マッチをキャプチャする
    • TIP76:単語の境界を指定する
    • TIP77:マッチ境界を指定する
    • TIP78:問題字をエスケープ
    • 第13章 検索
    • TIP79:検索コマンドを使ってみよう
    • TIP80:マッチを強調表示する
    • TIP81:実行前に最初にマッチするものをプレビュー
    • TIP82:現在のパターンにマッチするものの数を数える
    • TIP83:検索のマッチの末尾にカーソルをオフセットする
    • TIP84:マッチ全体に対して処理を行う
    • TIP85:検索履歴を繰り返しながら複雑なパターンを作り上げる
    • TIP86:現在のビジュアルな選択範囲の検索
    • 第14章 置換
    • TIP87:置換コマンド
    • TIP88:ファイル中のすべてのマッチを検索/置換する
    • TIP89:置換のたびに確認する
    • TIP90:直前の検索パターンを流用する
    • TIP91:レジスタの内容を使って置換を行う
    • TIP92:直前の置換コマンドを繰り返す
    • TIP93:部分マッチを使ってCSVのフィールドを入れ替える
    • TIP94:置換時に算術演算を行う
    • TIP95:2つ以上の単語を入れ替える
    • TIP96:複数ファイル間で検索と置換を行う
    • 第15章 グローバルコマンド
    • TIP97:グローバルコマンドとは
    • TIP98:パターンを含む行を削除する
    • TIP99:レジスタにTODOアイテムを収集する
    • TIP100:CSSファイル中のルールのプロパティをアルファベット順に並べ替える
  • 第6部 ツール
    • 第16章 ctagsを使ってソースコードのインデックスを作成し、ナビゲーションを行う
    • TIP101:ctagsとは
    • TIP102:ctagsと連携するようにVimを構成する
    • TIP103:Vimのタグナビゲーションコマンドを使ってキーワード定義に移動する
    • 第17章 quickfixリストを使って、コードのコンパイルとエラー発生箇所への移動を行う
    • TIP104:Vimを抜けずにコードをコンパイル
    • TIP105:quickfixリストをブラウズする
    • TIP106:以前のquickfixリストから結果を呼び戻す
    • TIP107:外部コンパイラのカスタマイズ
    • 第18章 grep/vimgrepなどを使ってプロジェクト全体を検索する
    • TIP108:Vimを抜けずにgrepを呼び出す
    • TIP109:grepプログラムのカスタマイズ
    • TIP110:Vimの内部検索エンジンを使ってgrepする
    • 第19章 ダイヤルXを廻せ! 自動補完だ
    • TIP111:Vimのキーワード自動補完機能とは
    • TIP112:自動補完のポップアップメニューを操作する
    • TIP113:キーワードの定義元を把握する
    • TIP114:辞書を使って単語を自動補完
    • TIP115:行を丸ごと自動補完
    • TIP116:ファイル名の自動補完
    • TIP117:コンテキストにあわせて自動補完を行う
    • 第20章 Vimのスペルチェッカを使ってタイプミスを発見、修正する
    • TIP118:作業結果にスペルチェックをかけてみよう
    • TIP119:別の辞書を使用する
    • TIP120:スペルファイルに単語を追加する
    • TIP121:スペルミスを挿入モードで修正する
    • 第21章 それからどうする
  • 付録A 自分の好みに合わせてVimをカスタマイズする
実践Vim 思考のスピードで編集しよう!
Drew Neil
アスキー・メディアワークス
売り上げランキング: 64,107
Vimテクニックバイブル ~作業効率をカイゼンする150の技
Vimサポーターズ
技術評論社
売り上げランキング: 190,113