vimperator のキャレット モードとテキスト エリア モードでキーを再マップするにはどうすればよいですか?

vimperator のキャレット モードとテキスト エリア モードでキーを再マップするにはどうすればよいですか?

私は、オペレーティング システムを代替キーボード レイアウトに設定して vimperator を使用しています。 と を使用して、挿入モードと通常モードで再マップするのは非常に簡単ですinoremapnnoremap.vimperatorrcキャレット モードまたはテキスト エリア モードでキーを再マップする方法が見つかりません。どうすればいいですか?

答え1

また、Vimperator をさらに発展させた Pentadactyl を使用すると、通常、ビジュアル、キャレット、テキスト編集の各モードで同じマッピングが必要な場合でも、キャレット モードとテキストエリア モードでキーを簡単に再マッピングできること:map -modes caret,text-editも知っておくと:map -modes command便利です。

答え2

編集: このような高度なカスタマイズを行う場合は、多くの使用すればもっと簡単になります五指類Vimperator の代わりに。完全性のためにここに残しておきます。


Vimperator 自体のソース コードを編集する必要がありますが、それほど大変な作業ではありません。必要な作業は次のとおりです。

  1. vimperatorのxpiファイルを見つける

    Firefoxは拡張機能のコードを.xpiファイルに保存します。基本的にはアドオンのコードを含むzipファイルです。vimperator xpiを見つける最も簡単な方法は、超小型アドオンをインストールすることです。プロファイルフォルダを開くを押してalt tツール メニューを開き、「プロファイル フォルダーを開く」を選択して、サブディレクトリに移動しますextensions。ここにすべてのアドオンの xpi ファイルがあります。名前に「vimperator」が含まれるものを探します。私の場合は、 です[email protected]

    次のような優れた検索ツールがあればすべてまたは Mac の Spotlight では、「vimperator」を検索して、拡張子を持つファイルを探すだけで済むでしょう.xpi

  2. xpiファイルをデスクトップにコピーし、拡張子をからに変更します.xpi.zip

  3. zipアーカイブを開き、に移動します。テキストエディタでcommon/content/ファイルを開きます。editor.js

  4. 「addMovementMap」を検索

    次のようなものが見つかるはずです:

    //             KEYS                          COUNT  CARET                   TEXTAREA            VISUAL_TEXTAREA
    addMovementMap(["k", "<Up>"],                true,  "lineMove", false,      "cmd_linePrevious", selectPreviousLine);
    addMovementMap(["j", "<Down>", "<Return>"],  true,  "lineMove", true,       "cmd_lineNext",     selectNextLine);
    addMovementMap(["h", "<Left>", "<BS>"],      true,  "characterMove", false, "cmd_charPrevious", "cmd_selectCharPrevious");
    addMovementMap(["l", "<Right>", "<Space>"],  true,  "characterMove", true,  "cmd_charNext",     "cmd_selectCharNext");
    addMovementMap(["b", "B", "<C-Left>"],       true,  "wordMove", false,      "cmd_wordPrevious", "cmd_selectWordPrevious");
    addMovementMap(["w", "W", "e", "<C-Right>"], true,  "wordMove", true,       "cmd_wordNext",     "cmd_selectWordNext");
    addMovementMap(["<C-f>", "<PageDown>"],      true,  "pageMove", true,       "cmd_movePageDown", "cmd_selectNextPage");
    addMovementMap(["<C-b>", "<PageUp>"],        true,  "pageMove", false,      "cmd_movePageUp",   "cmd_selectPreviousPage");
    addMovementMap(["gg", "<C-Home>"],           false, "completeMove", false,  "cmd_moveTop",      "cmd_selectTop");
    addMovementMap(["G", "<C-End>"],             false, "completeMove", true,   "cmd_moveBottom",   "cmd_selectBottom");
    addMovementMap(["0", "^", "<Home>"],         false, "intraLineMove", false, "cmd_beginLine",    "cmd_selectBeginLine");
    addMovementMap(["$", "<End>"],               false, "intraLineMove", true,  "cmd_endLine" ,     "cmd_selectEndLine" );
    

    引用符で囲まれた文字は、キャレットモードとテキストエリアモードのマッピングです。必要に応じて変更してファイルを保存してください。<C-f>関数をマッピングするには、Control f

  5. FirefoxでVimperatorをアンインストールします。これで古いxpiが削除され、編集したxpiが使用できるようになります。

  6. zipファイルの拡張子をxpiに戻します

  7. Firefox で を押してAlt f、デスクトップ上の新しい xpi に移動し、[開く] を選択します。Firefox はそれを新しいアドオンとしてインストールします。

  8. Firefox を再起動して、新しいバインディングをお楽しみください。

1 つの問題は、vimperator を更新すると、新しい xpi でこれを再度実行する必要があることですが、新しいバージョンのこのセクションを、古いバージョンから編集したバージョンに置き換えるだけで済むはずです。

関連情報