如何在 vimperator 中重新映射插入符號模式和文字區域模式下的鍵?

如何在 vimperator 中重新映射插入符號模式和文字區域模式下的鍵?

我使用 vimperator,並將作業系統設定為備用鍵盤佈局。在 my 中使用inoremap和重新映射插入和正常模式下的內容非常容易,但我找不到如何在插入符號模式或文字區域模式下重新映射鍵。我怎樣才能做到這一點?nnoremap.vimperatorrc

答案1

此外,了解 Pentadactyl(Vimperator 的進一步開發)可能對您有用,它允許您輕鬆地重新映射插入符號和文字區域模式中的鍵,:map -modes caret,text-edit或者即使:map -modes command您想要正常、視覺、插入符號和文字編輯模式具有相同的映射。

答案2

編輯:如果您想進行這樣的高級自定義,您將有一個很多如果你使用的話比較容易五指而不是 Vimperator。為了完整起見,請將其留在這裡。


您將需要編輯 Vimperator 本身的原始程式碼,但這確實並不可怕。您需要執行以下操作:

  1. 找到 vimperator 的 xpi 文件

    Firefox 將其擴充功能的程式碼儲存在.xpi檔案中,這些檔案基本上是包含附加元件程式碼的 zip 檔案。找到 vimperator xpi 最簡單的方法是安裝 super-tiny 附加元件開啟設定檔資料夾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. Alt fFirefox,導覽至桌面上的新 xpi,然後選擇開啟。 Firefox 將把它作為新的附加元件安裝。

  8. 重新啟動 Firefox 並享受新的綁定!

一個問題是,如果您更新 vimperator,您將需要使用新的 xpi 再次執行此操作,但您應該能夠用您在舊版本中編輯的版本替換新版本中的此部分。

相關內容