Eu uso o vimperator com meu sistema operacional configurado para um layout de teclado alternativo. É muito fácil remapear coisas no modo de inserção e normal com inoremap
e nnoremap
no meu .vimperatorrc
, mas não consigo descobrir como remapear chaves no modo circunflexo ou no modo textarea. Como posso fazer isso?
Responder1
Além disso, pode ser útil saber que Pentadactyl – desenvolvimento adicional do Vimperator – permite remapear chaves nos modos circunflexo e área de texto facilmente com :map -modes caret,text-edit
ou mesmo :map -modes command
se você quiser os mesmos mapeamentos para os modos normal, visual, circunflexo e edição de texto.
Responder2
EDITAR: Se quiser fazer personalizações avançadas como esta, você terá ummuitoé mais fácil se você usarPentadáctiloem vez de Vimperator. Deixando isso aqui para completar.
Você precisará editar o código-fonte do próprio Vimperator, mas isso realmente não é terrível. Aqui está o que você precisa fazer:
encontre o arquivo xpi para vimperator
O Firefox armazena o código de suas extensões em
.xpi
arquivos, que são basicamente arquivos zip contendo o código do complemento. A maneira mais fácil de encontrar o vimperator xpi é instalando o complemento super-minúsculoabrir pasta de perfil, pressione alt tpara abrir o menu de ferramentas, escolha "abrir pasta de perfil" e navegue até o subdiretórioextensions
. Aqui você encontrará os arquivos xpi de todos os seus complementos; procure aquele com “vimperator” no nome. Para mim, é[email protected]
.Se você tiver uma boa ferramenta de pesquisa comoTudoou Spotlight no Mac, você provavelmente pode simplesmente pesquisar por “vimperator” e procurar arquivos com a
.xpi
extensão.Copie o arquivo xpi para sua área de trabalho e altere a extensão de
.xpi
para.zip
Abra o arquivo zip e navegue até
common/content/
. Abra o arquivoeditor.js
em um editor de textoProcure por "addMovementMap"
Você deve encontrar algo assim:
// 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" );
As letras entre aspas são os mapeamentos para o modo circunflexo e modo textarea. Altere-os para o que quiser e salve o arquivo. Use
<C-f>
para mapear uma função paraControl fEntre no Firefox e desinstale o Vimperator. Isso eliminará o XPI antigo para que você possa usar aquele que acabamos de editar
Altere a extensão do arquivo zip de volta para xpi
Pressione Alt fno Firefox, navegue até o novo xpi na sua área de trabalho e selecione abrir. O Firefox irá instalá-lo como um novo complemento.
Reinicie o Firefox e aproveite as novas ligações!
Um problema é que, se você atualizar o vimperator, precisará fazer isso novamente com o novo xpi, mas poderá substituir esta seção na nova versão pela versão editada da antiga.