Vim を覚えるために最低限知っておきたいこと

Emacs のチュートリアルを書かれている方を見かけたので、誰にも頼まれてませんが Vim の話をしたいと思います(なんだそれ)。といっても最低限の操作は先人が素晴らしいチュートリアルを書いておられるので、僕はリンクするだけなんですけど。

素晴らしい解説です。ほんと。僕も Vim 覚えるときにこの解説が読みたかった。


ともあれ。
それで最低限はいいとして。触発されて、以下「最低限」とその先を覚えていくために、知っておくととっかかりになること、意外と教わる機会のなさそうなことを並べてみます。

困ったときの終わり方
  • ESC を数回連打して :q! と入力して Enter キーを押す

おさらい的に。なんかドツボにはまっても、これだけ知ってれば Vim は終われます。保存してないファイルは消えますが、とにかく訳わかんなくなったときのリーサルウェポンてことで。

GUI 版の場合は、まずウィンドウを閉じるボタンがあるので関係ない話かもしれません。

チュートリアルの開き方
  • :Tutorial (と入力して Enter)

ある意味これがすべてです。

仮に前提知識がまったくなくとも、Vim を起動して :Tutorial と叩いて Enter キーが押せれば、後は書いてあることに従うだけで最低限以上の操作ができるようになります。具体的に言うと、Vim の起動と終了、ファイルのオープン・新規作成・保存、テキストの基本的な編集法、検索と置換、オプションと設定ファイルの基本、ヘルプ(マニュアル)の開き方などが理解できます。

マニュアルの開き方と読み方
  • マニュアルを開く: :help (と入力して Enter)
  • リンク先へジャンプ: Ctrl-] (Ctrl キーを押しつつ "]" キー)
  • 前のページに戻る: Ctrl-O

Vim のマニュアルは、Vim で開くテキストとして提供されています。なので (:Tutorial 同様) 普通に j とかでスクロールして読み進められます。が、これはただのテキストではなく、HTML でいうハイパーリンクがあります。そのリンクを踏んでジャンプするのが Ctrl-] で、ジャンプした先から戻るのが Ctrl-O です (戻るのは Ctrl-T とかも OK) 。

リンクには何種類かの見え方がありますが、色が違ったり縦棒で囲まれてたり (ex. |edit-intro|) クォートで囲まれてたり (ex. 'readonly') ダブルクォートされてたり (ex. ":write") する、とにかく目立つものは大体リンクです。

まあ正直こういう説明も当然マニュアルに書いてある (:help usr_01) んですが、ともあれこれさえ知っていれば後は頭からマニュアルをごりごり読んでいくだけです。あっという間にライト Vim ユーザの出来上がり。

ESC の位置
  • ESC キー = Ctrl-[

これは上の id:ruicc さんも紹介されてますが、強調の意味で。

ESC ってマニュアルに書いてあるからって、正直に ESC キー押す奴はシロートです。っていうのはまあ暴論としても、ESC を頻用する vi 系のインターフェイスでは、馬鹿正直に ESC キーを使うと「ホームポジションから手を離さなくていい」というメリットがだいぶ薄れてしまいます。ノートPCのキーボードだと ESC の位置が変だったりして、えっらいストレスフルになりますしね。( "[" キーも幅が小さくなってたりしますが、位置が違うよりは随分マシです)

なお、この時もちろん Ctrl は a キーの左隣でないと、効果激減です。(ノート PC のあのにっくき Fn キー) はっきり言ってこれのためだけにでも CapsLock を Ctrl にする価値はあります。CapsLock キーなんてどうせ使いませんよね? とっとと潰してしまいましょう。

screen

詳細は上の素晴らしい紹介を読んでいただくとして、大雑把に。

screen は、シェル界のタブブラウザです(どんな説明だよ)。つまり screen を使うと、一つのシェルの中でシェルを同時にいくつも開いておいて好きに切り替えることができます。

これは Vim とは何の関係もない普通のツールなんですが、たぶん Vim ユーザ必携のソフトなのでここに挙げてます。というのは、VimEmacs と違って内部にシェルを持てないから。まあ厳密に言えば任意のコマンドを実行できるんですが、それは比較的「開いているファイルを編集するためにコマンドを実行する」ことに意識があります。しかし開いているファイルと全然関係ないディレクトリで作業したいときなど、普通のシェルが欲しい時は結構あって。

そういう場合に screen が重宝します。screen の中で開いたシェルで Vim を実行していれば、いつでも別のシェルを開けますし、また Vim に戻ってこれるという寸法です。っていうか screen なしで Vim を実行することのほうが稀なぐらい。

英語

最後に書きましたが実のところ大前提。
なにせマニュアルが英語です。チュートリアルには日本語版もありますが……。

付属のマニュアルを全部翻訳してwebで公開されている方もおられて、それはそれですごくありがたく参考にさせていただくのですが、ぶっちゃけブラウザ開いて検索すんのがめんどい。「foo のオプション忘れた!」と思った瞬間に「:h foo」(:h は :help の省略形です) すれば話がすむデフォルトのマニュアルは、この点で最強最速です。そうすると必然英語が要ると。


やっぱり英語は大事ですねー、というなんか常識的な結論で締める僕でありました。