# 「Vimが好きになる本」の執筆したお話

# はじめに

ウホウホ

ウホウホっウホ

ウホウホっウホウホウホウホ

ウホウホウホウホ「ウホウホっウホ」ウホウホウホウホウホウホウホウホっウホウホっ

ウウホウホウウホホホ

# 「Vimが好きになる本」とは?

2019/09/22(日)の技術書典7 (opens new window)で配布する本です。 タイトル通り、読んだらVimが好きになる本です。

初心者と中級者向けに、Vimの基本操作から、オペレーター、モーション、テキストオブジェクトといった機能を使った高速編集のやり方や、 Vim scriptの入門とプラグインの作り方まで一通り解説した本になります。

現在、BOOTHにて無料版 (opens new window)を公開しています。 ぜひダウンロードして読んでみて下さい。「無料でもいいから読んでほしい」と思った章をピックアップしています。

# なぜ本を執筆しようと思ったのか

なぜ本を書こうと思ったのか、そこにはいくつか理由があります。

  • 本を出すことは自分にとっての憧れ、そして夢でもある
  • Vimの良さをもっと色んな人に知ってほしい
  • 今まで学んできたことを腹に落としたい

とくに「本を出すことは自分にとっての憧れ、そして夢でもある」は一番の理由です。 ぼくにとって、本を出す = その分野を熟知していると同意義です。

どの様な分野でも、熟知していて本を出せるくらいの知見とノウハウを持っている人はすごいし、憧れます。

そんな思いでVimの本を書きました。

# 執筆で大変だったこと

色々と大変なことはありました。 主なところをあげると

  • ターゲット層とその層に向けの内容の選定
  • 内容の順番をどうするか
  • 執筆の時間をどう確保するか
  • Vimの動きをどのように表現するか
  • レビューアはどうするか

といったところです。 一部大変なところについて考えたことを書いていきます。

# ターゲット層とその層に響く内容の選定と順番

本を書くにあたり、みなさんに絶対読んでほしい部分、つまり幹の部分があります。 それは「オペレーター、モーション、テキストオブジェクト、カウンタ、リピート」の機能を解説した章です。

なぜこれを絶対読んでほしいかと言うと、ぼくがVimにのめり込んだのはこれらことを知ったからです。 それだけ、ぼくにとって魅力的だったのです。なぜVimは慣れたら高速で編集できるのか、その答えがこれら機能だったのです。

ただ、これだけの内容ではとてもじゃないけど、本として出せないし、きっとそれだけ読んでもVimの良さが分からないでしょう。 なので、幹に肉付けをして、より価値がある本にしなければいけません。

そこで、Vimを始めたばっかりの方でも「Vimってこんなことができたのか」と思える内容、 そして、ある程度Vimを使ってきた方がもう少しだけレベルアップできるような内容にすればいいのでは?と考えました。

これでターゲット層の大枠が決まったので、 次に「初心者」と「ある程度Vimを使ってきた」といったvimmerのレベルの定義を明確にする必要があります。 Vimmerのレベルの公式定義はないので、まず定義をするところから始めなければ行けないのです。

人によって考え方が異なるので、ここは自分の主観で次のように決めました。

  • Level 1

    • a. Vimの操作がまだ不慣れ、最低限の操作しかできない
  • Level 2

    • a. Vimの操作に慣れてきて、基本的な編集が一通りできる
    • b. Vimの良さをすこしずつ理解してきている
  • Level 3

    • a. オペレーター、モーション、テキストオブジェクト、カウントを駆使して編集できる
    • b. 簡単なプラグインを作れる
    • c. コーディングやメモなどもVimを使っている
  • Level 4

    • a. Vimの機能や動作、Vim scriptついて深く知っていて実践できている
  • Level 5

    • a. 本体によくパッチを送る
    • b. 思考スピードで編集できる

この定義は正直、大雑把なものではありますが、厳密に定義できないのと、あくまで指標でしか無いので、拘るポイントでもないと思っています。

上記のレベル分けをもとに、初心者(level1)の方には「Vimの基本操作と幹の部分」、 中級者(Level2~3)の方には「Vimの設定やVim scriptの基本、プラグインの作り方」というように内容にしました。

# 執筆の時間はどう確保するか

これはもう気合しか無いです。

毎月ゴリラ.vimの開催をしたり、連載したり、その合間を縫って使える時間はすべて使いました。 もちろん土日とかも使って書いたりしました。

これに関してはTwitterのTLを見る限り、みんな同じ感じなので、まぁそうだよねと思いました。 特別なことは何もしていなく、ただ気合だけでした。

# レビューアをどうするか

もちろん本を書いていくと、内容が正しいのか、誤字脱字がないのかといったチェックしてくれる人が必要です。 とってもありがたいことに本書をレビューして頂いたのはmattnさん (opens new window)daisuzuさん (opens new window)でした。

mattnさんはSoftware Desgin (opens new window)で「Vimの細道」の連載をされていたり、Vim本体にパッチを送ったりしている方で、 daisuzuさんはこれまでに数回に渡りVim Confで登壇をされたり、Software DesginのVim特集に寄稿した方です。 どちらもvimmerとして頼れる方たちです。

この場を借りて改めてお礼を申し上げます。 お忙しい中、時間を割いて頂きありがとうございました。

# 執筆を通して感じたこと

# 感謝

ぼく一人の力では到底本を出すことができませんでした。

レビューに協力して頂いたmattnさん、daisuzuさんをはじめ、 執筆で使用したRe:VIEW Starter (opens new window)を作って頂いたカウプラン (opens new window)さん、 日光印刷所 (opens new window)の担当者の方、みなさんにはとても感謝しています。ありがとうございます。

# 大変

1冊の本を書いて思ったことは「本を書くのって大変だな」でした。 そんなの当たり前じゃんって言われるかも知れないのですが、 ぼくはやりたいことがあったら大変さを考えずにとにかくやるという性格なので、やって初めて身を持って「大変さ」を知れたという意味ではとても良い経験になりました。

# 不安

今回は物理本を140冊用意したのですが、本当に全部売れるかどうかの不安はあります。 とくにVimというマニアックなジャンルなので、母数は他の技術と比べると少ないでしょう。

本を書いたからといって、売れるわけではないので、まず本の存在を知ってもらう必要ための宣伝が必要です。

宣伝という意味ではこのブログ、そして無料版はその役割を担っていますね。

そして一番の宣伝になるのはやはりTwitterです。残念ながらぼくはTwitterでバズる才能はないので、ただただ思ったことをつぶやいてみなさんに拡散して頂いています。

リツイート、いいねをくれたみなさん、ありがとうございます。

ありがたいことに取り置きしたいという声を頂いたり、とても良かったという感想を頂いています。とてもうれしく思っています。 それでも不安はありますが、これ以上は考えても仕方がない領域なので、当日はたくさんの方にこの本を試読して頂けるようにがんばります。

# 開放感

当たり前ですが、やるべきことが終わって、ほっとしました。 2ヶ月間ずっとソワソワしていましたが、無事に入稿できてとても気持ちが楽になりました。 あとは当日楽しむだけですね。

# ちょっとしたお話

ご縁があって、Auth屋さん (opens new window)の「OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本 (opens new window)」と、 カウプランさんの「わかりみSQL (opens new window)」のレビューをさせていただきました。

人様の本をレビューしたのは初めてですが、とても勉強になりました。 自分には思いつかなかった様な表現の仕方や注力しているポイントなど、たくさん学ぶことができました。

お二人の本は、わかりやすさを重視しているという共通点があって、 全体を通してどちらもとても丁寧でわかりやすかったです。

レビューの指摘、こんなのでいいのかなって不安はありましたが、 おふたりとも、レビューには満足していただいているようで、役に立ててよかったと思いました。

今後も余裕があれば本のレビューをやってみようかなと思いました。

タイミングによってはできないこともありますが、もし本をレビューしてほしい方いましたら、ぜひ声をかけて頂ければと思います。

# 最後に

多くは語りませんので、技術書典当日は「き47D」でお待ちしています。 ぜひ立ち読みしてみてください。

また、来られない方はこちら (opens new window)(当日公開)でお買い求め頂けますので、 興味ある方はぜひ買ってみてください。

みなさんにVimの良さを伝わることを願っています。