Practical Vim 2nd Edition

名著「実践Vim (Practical Vim) 」の第2版は何が変わったのか?

全国1000万人のVimmerのみなさん、こんにちは!!

Vimmerのみなさんは「実践Vim」という名著をご存知ですよね?知らない人はモグリですよ!

実践Vimは、Vimのコア機能に特化した便利なTipsが盛りだくさんの本なのです。
自称Vim中級者だった自分が読んでも目からウロコなTipsがありすぎて、読み終えたときに自分のVimレベルが+20くらい上がった気にさせてくれた、そんな一冊でした。

Amazonのレビューを見てみると、平均星4.9と高スコア。世間的にも名著だと認められている証左だと思います。

そんな実践Vimの第2版が出るという情報が!

といっても洋書 (Practical Vim) の方なんですけどね。ボクが読んだのは日本語版です。
洋書だから読むのが大変だなと思ったのだけど、ボクのVim人生を劇的に変えてくれた名著の第2版なので、内容が気になってしょうがありません。

そんなとき、Practical Vimの著者が主催するスクリーンキャスト”VimCasts“に「Practical Vim 2nd Editionは何が新しくなったのか?」という記事をたまたま見つけました。

「この記事を読めばPractical Vim の2nd Editionを買わなくても良いじゃん!」

こりゃラッキーだと思い、苦手な英語をがんばって読みました。

以下はその記事の超意訳になります。

 

Practical Vim
Practical Vim

Practical Vim 2nd Editionは何が新しくなったのか?

Practical Vim 第2版を買うべきか?

  • 初めて購入しようか検討しているのならば、購入すべきである
  • 第1版と同じ内容を全て含んでいる
  • 過去に第1版のebookを購入したことがあれば、第2版を無料で
    ゲットできる

Practical Vimのカバー領域

  • Vimはたくさんのトピックがあるので、それらを全て含めようとすると容易に600ページを超えてしまう
  • 出版社側は600ページもある本を出版しないとのことだったので、300ページを超えないように心がけた
  • ということで、Vimのコア機能についてのみ記載している(プラグインをインストールしている前提の内容は書くべきではないと判断)
    • とは言いながらも、ときおり補足としていくつかを参照している
  • Vim scriptにもついても言及を避けている

改訂内容

新しいコマンド `gn`

  • Vim 7.4.110以上で利用可能
  • `gn`を実行すると、`n`のように最後に使用した検索パターンを前方検索する。
  • `n`コマンドとの違いは、マッチ文字列に対してビジュアルモードが開始する、ということ
  • `dgn`と実行すると、前方検索でマッチする文字列が削除される
  • `gUgn`と実行すると、マッチ文字列がアッパーケース(大文字)になる
  • `gn`コマンドについてのわかりやすい説明はこのページが参考になる
  • Practical Vim 第2版ではTip 84 – Operate on a Complete Search Matchで`gn`コマンドについて言及している。また、第1版では同様の機能を実現するプラグインtextobj-lastpat) について言及していたが、この内容を削除した

複数ファイルでの検索と置換

  • 第1版では、Tip 96 で複数ファイルをまたがった置換処理方法について言及していた。
  • この方法は、`:vimgrep`を利用し検索パターンにマッチするファイルがquickfixに格納され、`:substitute`コマンドで各マッチファイルに対して置換処理を行う、というものである。
  • これらのコマンドを実行するのは面倒である。`:quickfixdo`コマンドなるものがあれば便利なのだが、ないので第1版ではQargsコマンドを紹介していた。
  • Qargsコマンドを利用すると、まず`:vimgrep`コマンドを実行し、次に`:Qargs s/pattern/replacement/g`を実行することで、置換処理を行うことができる
  • Vim 7.4.858以上では、`:cfdo`コマンドを使用可能となった
  • `:cfdo`コマンドを使用することで、quickfixリストにある各ファイルに対してExコマンドを実行することができるようになった
  • 第2版ではQargsコマンドについての記述を削除し、代わりに`:cfdo`を使用するように説明している

:vimgrep コマンドの進化

  • Practical Vim 第1版 の Tip 110  Grep with Vim’s internal search engine では「`vimgrep`コマンドでは検索パターンを空にした場合、悲しいことに各ファイルの各行がマッチしてしまう」と紹介している。
  • Vim 7.3.850 からは`:vimgrep // {file}`と空の検索パターンを設定した場合、指定されたファイルに対して現在の検索パターンにマッチする行を検索するようになった。

新しいTips

  • Tip 36 – バッチのように複数のExコマンドを実行する
  • Tip 117 – 単語シーケンスの自動補完

上記のTipsは第1版を書いたあとに学んだものである。

個人的まとめ

この記事を見る限りはそれほど第1版と差分がなさそうなので、買うまでの必要はないかなと思いました。
ただ、`gn`コマンド、`:cfdo`コマンドは知らないものだったので、勉強になったな。

Practical Vimの原著をEbookでお持ちの方は、無料で第2版を取得できるようそうです。こちらに取得方法が記載されていますので、第1版をお持ちの方はぜひゲットしましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です