概要
Googleの現役エンジニアが書いた, テキストエディタ「Vim」の解説書です。OSごとのインストールや基本操作といった入門的内容も押さえつつ, リファクタリング, デバッグ, 実行, テスト, バージョン管理システムとの連携, プラグインの作成と管理といったソフトウェア開発に便利な機能を, Pythonのコードを使って解説します。本書を読み終えるころには, あなただけの最高のVimが完成しているはずです! Vim 8.1/Neovimに対応。
こんな方におすすめ
テキストエディタ「Vim」を使ってソフトウェア開発をしている人, これからVimを使おうとしている人
Ruslan Osipov(ルスラン オシポフ) Google社のソフトウェアエンジニアであり, 熱心な旅行者であり, パートタイムのブロガーでもある。独学エンジニア。個人的なVimのノート(https://www.rosipov.com/ )を2012年から公開しており, Vimの複雑性と, Vimによる開発フローの最適化にしだいに興味を持つようになった。
大倉雅史(おおくらまさふみ) 1988年生まれ。フリーランスのプログラマー。おもにRuby on RailsによるWebアプリケーション開発を業務としている。Vim歴はRuby歴と同じく7年であり, Vimは仕事になくてはならない存在。大の技術コミュニティ好きであり, Rubyのコミュニティにはかなりの頻度で顔を出して登壇したり雑談したりしている。2019年には「VimConf2019」のオーガナイザを務め, 2020年からは「Kaigi on Rails」という大規模イベントのチーフオーガナイザも務める。
目次
日本語版に向けて
序章
第1章 Vimを始める
1.1 技術的要件
1.2 (モーダルなインターフェースについて)話を始めよう
1.3 インストール
1.4 バニラなVimとgVim
1.5 .vimrcでVimを設定する
1.6 よく使う操作(あるいはVimの終了方法)
1.7 動き回る:エディタと対話する
1.8 インサートモードで単純な編集を行う
1.9 永続アンドゥと繰り返し
1.10 :helpコマンドでVimのマニュアルを読む
1.11 まとめ
第2章 高度な編集と移動
2.1 技術的要件
2.2 プラグインをインストールする
2.3 ワークスペースを整える
2.4 ファイルツリーを移動する
2.5 テキスト中を移動する
2.6 レジスタを使ってコピー&ペーストする
2.7 まとめ
第3章 先人にならえ,プラグイン管理
3.1 技術的要件
3.2 プラグインを管理する
3.3 モードに飛び込む
3.4 コマンドを再マッピングする
3.5 まとめ
第4章 テキストを理解する
4.1 技術的要件
4.2 コードの自動補完
4.3 アンドゥツリーとGundo
4.4 まとめ
第5章 ビルドし,テストし,実行する
5.1 技術的要件
5.2 バージョン管理を扱う
5.3 vimdiffでコンフリクトを解消する
5.4 tmux,screen,ターミナルモード
5.5 ビルドとテスト
5.6 まとめ
第6章 正規表現とマクロでリファクタリングする
6.1 技術的要件
6.2 正規表現で検索・置換する
6.3 マクロを記録して再生する
6.4 プラグインに仕事を任せる
6.5 まとめ
第7章 Vimを自分のものにする
7.1 技術的要件
7.2 VimのUIと戯れる
7.3 設定ファイルを追跡する
7.4 健康的なVimカスタマイズの習慣
7.5 まとめ
第8章 Vim scriptで平凡を超越する
8.1 技術的要件
8.2 なぜVim scriptなのか?
8.3 Vim scriptの実行方法
8.4 文法を学ぶ
8.5 スタイルガイドについて
8.6 プラグインを作ってみよう
8.7 次に読むべきもの
8.8 まとめ
第9章 Neovim
9.1 技術的要件
9.2 なぜ別のVimを作るのか?
9.3 Neovimのインストールと設定
9.4 Oni
9.5 Neovimプラグインのハイライト
9.6 まとめ
第10章 ここからどこへ行くのか
10.1 効果的なテキスト編集のための7つの習慣
10.2 モーダルインターフェースはどこにでも
10.3 お勧めの読み物とコミュニティ
10.4 まとめ
付録 Vimを取り巻く日本のコミュニティ
サポート
正誤表
本書の以下の部分に誤りがありました。ここに訂正するとともに, ご迷惑をおかけしたことを深くお詫び申し上げます。
P.101 8行目
誤
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
正
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
「'NERDTreeToggle'」の前の半角スペースは不要です。
P.107 7行目
誤
最も遅いプラグインはvim-unimpairです
正
最も遅いプラグインはvim-unimpaired です
P.35 表 「キー」列の順序
誤
w, e, W, E, b, B
正
w, e, b , W , E , B
P.v 9行目
誤
誰も完遂できなかった難解なタスクががある?
正
誰も完遂できなかった難解なタスクが ある?
「が」が重複していました。
P.36 中央表「コマンド」列, 4行 目
P.37 中央表「コマンド」列, 4行 目