Utilizo vimperator con mi sistema operativo configurado con una distribución de teclado alternativa. Es bastante fácil reasignar cosas en modo de inserción y normal con inoremap
y nnoremap
en my .vimperatorrc
, pero no puedo encontrar cómo reasignar teclas en modo de intercalación o modo de área de texto. ¿Cómo puedo hacer esto?
Respuesta1
Además, puede resultarle útil saber que Pentadactyl, un desarrollo posterior de Vimperator, le permite reasignar teclas en los modos de intercalación y área de texto fácilmente con :map -modes caret,text-edit
o incluso :map -modes command
si desea las mismas asignaciones para los modos normal, visual, de intercalación y de edición de texto.
Respuesta2
EDITAR: Si desea realizar personalizaciones avanzadas como esta, tendrá unamuchotiempo más fácil si usasPentadáctiloen lugar de Vimperator. Dejo esto aquí para que esté completo.
Necesitarás editar el código fuente de Vimperator, pero realmente no es terrible. Esto es lo que debes hacer:
busque el archivo xpi para vimperator
Firefox almacena el código de sus extensiones en
.xpi
archivos, que son básicamente archivos zip que contienen el código del complemento. La forma más fácil de encontrar el vimperator xpi es instalando el complemento súper pequeñoabrir carpeta de perfil, presione alt tpara abrir el menú de herramientas, elija "abrir carpeta de perfil" y navegue hasta el subdirectorioextensions
. Aquí encontrarás los archivos xpi para todos tus complementos; busca el que tiene "vimperator" en el nombre. Para mi es[email protected]
.Si tienes una buena herramienta de búsqueda comoTodoo Spotlight en Mac, probablemente puedas simplemente buscar "vimperator" y buscar archivos con la
.xpi
extensión.Copie el archivo xpi a su escritorio y cambie la extensión de
.xpi
a.zip
Abra el archivo zip y navegue hasta
common/content/
. Abra el archivoeditor.js
en un editor de texto.Buscar "addMovementMap"
Deberías encontrar algo como esto:
// 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" );
Las letras entre comillas son las asignaciones para el modo de intercalación y el modo de área de texto. Cámbialos a lo que quieras y guarda el archivo. Se utiliza
<C-f>
para asignar una función aControl fVaya a Firefox y desinstale Vimperator. Esto eliminará el antiguo xpi para que puedas usar el que acabamos de editar.
Cambie la extensión del archivo zip a xpi
Presione Alt fen Firefox, navegue hasta el nuevo xpi en su escritorio y seleccione abrir. Firefox lo instalará como un nuevo complemento.
¡Reinicia Firefox y disfruta de los nuevos enlaces!
Un problema es que si actualiza vimperator, deberá volver a hacerlo con el nuevo xpi, pero debería poder reemplazar esta sección en la nueva versión con la versión editada de la anterior.