ゴリラはじめまして、ゴリラです。ご縁があってこの度Vimについての連載をさせて頂く事になりました。本連載ではVimに興味ある方や、Vimを使い始めたばかりの方向けの内容を予定しています。筆者自身もまだVim歴が8ヶ月と浅いのですが、みなさんにVimの良さが伝わるように頑張っていきますので、何卒よろしくお願い致します。普段プログラマーとして働きつつプライベートでは趣味でOSS活動をしています。Vimが好きで、Vimに関する記事を書いたりゴリラ.vimといったイベントを主催したり、プラグインを作ったりしています。Vimの良さVimというと一般的にとっつきにくい、学習コストが高いと言われることが多いと思います。Vimにはモードといった概念があり、そして機能がとても豊富なためそのような印象があるのは仕方ないと考えています。Vimは学習コストといったデメリットよりもメリットが圧倒的に多いです。筆者が思うVimの良さを簡潔にまとめると以下の4つになります。モードがあるため操作性・機能性の幅が広いオペレーター、モーション、テキストオブジェクト、リピートによる高速編集が可能プラグインによる機能の拡張ヘルプがとても充実している特にモードとモーション、オペレーター、テキストオブジェクトは知っていると編集効率が大幅に向上します。ヘルプはVimの機能がほぼ全て載っています。ネット上の記事では紹介されることが少ない機能がたくさんあります。ヘルプを読むだけでVimへの理解が深まります。上記の機能の良さについて紹介します。Vimの機能が多くて紹介しきれないので、より詳細な機能は連載を通して紹介していきます。モードについてVimでは主に以下のモードがあります。代表的な機能は一般的によく使われる機能をピックアップした内容になっています。Vimにおいてコピーはヤンク、貼り付けはプットと呼ばれています。以降に出てくるヤンクとプットは適宜読み替えてください。上表以外にも選択モードやExモードなどありますが、知らなくても特に困ることはないので今回は紹介を省きます。Vimを起動するとノーマルモードで立ち上がります。オプションで変更することができます。オプションを有効にすると起動時に挿入モードで立ち上がります。各モードにできることが異なっていて、入力モードはテキスト入力、ノーマルモードはテキスト編集に特化しています。基本的にVimはモードを切り替えながら編集していきます。言ってモードを意識することはほとんどありません。場面によって使い分けているのと同じ感覚です。モードの切り替えVimではモードの切り替えは次の様になっています。ありませんが基本的にVimはノーマルモードを介して各モードに切り替えます。各モードに共通するのはEscでノーマルモードに切り替えることです。Ctrl-nでノーマルモードに切り替えることができます。Ctrl-nはEscと等価ではないです。具体的にどこが等価ではないのかは次回の記事にて紹介します。図以外にもモードを切り替える方法があります。まとめると次のようになります。v、V、Ctrl-v挿入モードに切り替えるキーがいくつかあり、キーによってすこし動きが異なります。実際どのような動きになるのかは基本操作の項目で紹介します。オペレーター、モーション、テキストオブジェクト、リピートについてVimにおいてとても重要な機能はオペレーターモーションテキストオブジェクトリピートと筆者は考えています。オペレーターは変更、削除、ヤンク、選択といった操作のことです。モーションはカーソル移動のことです。現在のカーソルから行の最後尾のテキストを削除したい場合、削除のオペレーターdと行最後尾に移動するモーション$を組み合わせることで実現できます。テキストオブジェクトはテキストを一つのまとまりとして扱います。テキストオブジェクトはオペレーターもしくは選択モードの後にのみ使用できます。単語というテキストオブジェクトiwで、削除のオペレーターであるdと組み合わせて、diwと入力するだけで1単語を削除できます。リピートは変更を単発で繰り返すことを指します。ここで指している変更とはテキストを変更することを指しています。入力するだけでdiwの変更を繰り返すことができます。リピートは強力な機能で、無駄なキーストロークを減らすことができるので積極的に使用していきましょう。このように、Vimではオペレーターとモーション、テキストオブジェクト、リピートを組み合わせることで高速編集を実現しています。Vimは慣れるまで少し時間がかかりますが、慣れてしまえばテキスト編集の効率を大幅に上げることができます。本記事ではオペレーターやテキストオブジェクトなどについては少ししか触れていませんが、次回の記事にて詳しく紹介します。ヘルプについてVimはヘルプを引くコマンドが用意されています。このヘルプはとても強力で、ほぼすべての機能の説明が網羅されています。operatorを実行するだけでヘルプを引けます。ヘルプはデフォルトは英語ですが日本語にすることも可能です。{pattern}も用意されています。helpgはすべてのヘルプから{pattern}を含んだ文字列を検索して結果一覧を表示します。ノーマルモードと検索した場合、次の画像のように結果一覧が表示されます(画像をクリックすると拡大表示されます)。Vimのヘルプは量が多く、どこから読み進めたら良いのかわからない方もいるかと思いますのでお勧めのヘルプ一覧をまとめました。読んでおくと良いかと思います。一通りVimの概要についてご紹介しましたが、実際にVimを始めるとき最低限覚える必要がある操作をピックアップして紹介します。先程説明したとおりVimはノーマルモードで立ち上がります。ノーマルモードでのカーソル移動をまず覚えましょう。{count}G挿入モードIは行頭の非空白文字に移動してから挿入モード。aは現在位置から一文字右に移動してから挿入モード。Aは行末に移動して挿入モード。oは行の下に新しい行を作成して挿入モード。Oはoと逆で、上に新しい行を作成し挿入モード。ビジュアルモード範囲選択もモーションの一つです。そのためオペレーターと組み合わせることができます。選択した範囲に対して削除、ヤンクを行うことができます。ビジュアルモードの切り替え方法もいくつかありますのでご紹介していきます。vは文字単位の範囲選択を開始。Vは行単位の範囲選択を開始。Ctrl-vは矩形選択を開始。コマンドラインモードコマンドラインモードでは変更の保存、Vimの終了、置換、検索などを行うことができます。最低限覚えておく必要があるものをご紹介します。最後にVimは強力な機能がたくさんあります。本記事で紹介したのはほんの一部です。次回は本記事では紹介しきれなかった各モードで主要な機能を紹介しますので、楽しみにしていただけばと思います。