Web制作環境を整える その3 – Sublime Text 3 を Vim っぽく使う

Vintageous パッケージの導入

Sublime Text 3 には Unixプラットフォームに搭載されている vi というテキストエディタから派生した、 Vim(ヴィムまたはヴィアイエム)というテキストエディタによく似た操作感に変更する事が可能です。その為に「Vintage」というパッケージが初めから付属していますが、初期状態では無効に設定されています。

このページを気になって見ている人には不要な説明でしょうが、vi というエディタは、マウスが普及する以前から利用されてきたものの為、カーソルの移動から範囲選択、検索や置換などの操作すべてをキーボードのみで行える作りです。両手をキーボードから離す必要が無いため、プログラマーにはこのエディタの愛好者が多く存在します。しかし、その特徴的過ぎる操作方法を習得するにはかなりの苦労を強いられるでしょう。しかし、コーディングをする人ならば

Vimの使い方

などを見ながら、是非このVimライクな操作を体験して欲しいものです。

Vintage機能を解放する

それでは、前回の基本設定の内容に

という記述があったのを覚えているでしょうか。この設定は、読んで字のごとく ignored(無視された) packages(パッケージ) です。
初期状態では、ここに「Vintage」パッケージが指定されているので、

こうして削除します。「ignored_pakkages」の設定項目ごと削除してもいいですが、後で何かに使うかもしれないので残しておきます。

これで Vintage の機能が解放されましたが、これだけでは Vimライクとは言い難いです。そこで、基本設定を変更します。[Preference] – [Setting – User] を開き、

この2つの項目を追加します。
「vintage_ctrl_keys」はCtrlキーを使ったキーストロークの有効・無効を、「vintage_start_in_command_mode」はファイルを開いたときにコマンドモードで始まるようにするかどうか、です。

それでは早速、Vimっぽく「:w」で保存をしてみましょうか。

なるほど、コマンドパレットが呼び出されましたか・・・。「/」での検索も、Sublime Text 3 標準の検索を呼び出すだけですね。

Vintage機能を強化する

Vim 使いとしては、これでは違和感ありすぎなので「Vintageous」というパッケージを追加します。このパッケージを入れることで、使用感が Vim にグッと近くなりますよ。

「Package Control: Install Package」 から「Vintageous」を選択して、インストールします。
では先ほどと同じく、「:w」で保存をしてみます。

画面下にコマンドラインが出現しました!「/」からの検索も「%s」置換も出来るようになりました。ただ、コロンコマンド入力中に Esc で抜けられなくバグ(?)が発生。1回目は出来るが、なぜか2回目から出来なくなる。後で要対応ですね。

追記:設定に「ignored_pakkages」の項目を記述すると、コマンドパネルが消えなくなる・・・・謎です。とりあえず「ignored_packages」自体を消す事で対処します。

追記2:Vintageous をインストールしたら、ignored_packages で Vintage を無効にするようになりました。Vintage の機能を完全に補完しているみたいですね。同時に、このバグも無くなりました。

追記3:Vintageous の基本設定を追加しました。

「vintageous_use_ctrl_keys」は「vintage_ctrl_keys」の代わりに、「vintageous_reset_mode_when_switching_tabs」は「vintage_start_in_command_mode」の代わりです。ただし、起動時にノーマルモードへ変わるのに1秒くらいのディレイがありますので注意を。

Sublime Text 3 で Surround を実現する

続きまして、Vim でのコーディング作業といったら surround.vim プラグインは欠かせないですよね。Sublime Text にも、これを実現するパッケージがあります。
ちなみに Surround の機能とは、選択されたテキストを引用符(括弧やシングル・ダブルクォート)やHTMLタグで囲んだり、変更・削除したりする機能です。

Package Control で Surround を検索すると、「Surround」と「Vintage Surround」の2つがヒットしますが、Sublime Text 3 + Vintage + Vintageous の環境だとどうも上手く機能してくれません。英語で情報を探してみると、Vintageousのプラグインとして

Vintageous_Plugin_Surround

というパッケージがあるようです。ただし、Package Control には登録されていないので、手動でインストールする必要があります。

上記のページから current build をダウンロードして、インストールしたフォルダData/Installed Packages/ に配置します。

使い方は surround.vim とほぼ同じですので、

surround.vimの使い方 | Memo on the Web

等を参照してもらえればいいと思います。ただ、yss は使えないかな?

次回も、もう少し Vintage を使いやすくするためのカスタマイズをしていきます。