経験知ロゴ

Cloud9でVimのキーバインドを変更する方法

Cloud9

Cloud9はVimを使えて便利なので、vimrcを使ってキーマップを変更できないかなといろいろ探してみました。

vimrcこのような汎用性の高い設定はできなさそうですが、キーマップを変更する設定はありましたのでその手順を紹介します。

※AWS統合前のCloud9での手順です。AWSのCloud9では画面が違う場合があります。

CloudのVimのキーマップを変更する

Cloud9を開き「Cloud9」→「Open your init script」をクリック。
Laravel study Cloud9

開かれたファイルに下記コードを追加し、「vim.map」を変更すればOK。

require(["plugins/c9.ide.ace.keymaps/vim/keymap"], function(vim) {
    vim.map("J", "8j", "normal")
    vim.map("K", "8k", "normal")
    vim.map(",b", "c9:build", "normal")
    vim.map(",g", "c9:run", "normal")
    vim.map("jk", "", "insert")
    vim.map("", "c9:find", "normal")
    vim.map("", "c9:navigate");
    vim.map("", "c9:cut", "normal");
    vim.map("", "c9:copy", "normal");
    vim.map("", "c9:paste", "normal");
});

vim.mapを追加

Customizing Keybindings · Cloud9の1番最後に書かれているVimの説明をGoogle翻訳するとこのようになります。

最初のパラメータはキーシーケンス、2番目のパラメータは実行すべきパラメータ、3番目のパラメータは、このシーケンスが通常のvimモード(hjkl経由で移動する場所)または挿入モード(テキストを挿入する場所、通常 テキストエディタ)。 すべてのモードでキーバインディングが機能するように、最後の引数を除外できます。

残念ながら、現在のところデフォルトのvimキーバインドをアンバインドする方法はなく、上書きするだけです。 上記の例でわかるように、Vimキーバインドを上書きしてVimモードが有効になっていないかのように動作します。

実行するコマンドの名前(c9:xxxxxx)を知るには、preferences – > keybindingsに行き、 “name”列の名前を使用します。Customizing Keybindings · Cloud9

キーバインドで、jを2回押して「esc」にするため、日本語入力でも動作するように、

    vim.map("っj", "", "insert")

としたのですがだめでした。日本語は認識してくれないようです。

おわりに

Cloud9はVimが 使えて便利なのですが、クラウド上のIDEなのでやはり最後の微調整まで手が届かないのが残念です。

とは言っても、クラウド上で開発ができればパソコンを変えても開発環境がそのままというのは、めちゃくちゃありがたいです。

もうちょっと使いこなしてみます。

役に立ったらこの記事のシェアをお願いします

ブログのフォロー・RSS購読は下記ボタンから