2012-10-07 16 views
9

Después de instalar vim-ruby-debugger ese complemento "secuestra" varias asignaciones. Como <leader>n, o <leader>t que utilizo respectivamente para NERDTreeToggle y Command-T find.Anulando una reasignación desde un complemento?

El culpable se encuentra en el hardcoded mappings in this ruby-debugger.

Preferiría tener estos reasignado como <leader>rdX, es decir, con el prefijo * r * uby- * d * ebugger. Obviamente, podría simplemente hackear el complemento y cambiar las asignaciones allí. Pero eso parece un poco demasiado hackish (y probablemente se rompa en las actualizaciones).

¿Cómo puedo desasignar estas asignaciones, por lo que vim recurrirá nuevamente a mis propias asignaciones? Y para que pueda reasignar los comandos en mi .vimrc (donde debería estar, en mi humilde opinión).

+0

Use git, 'git pull' no permitirá que sus cambios desaparezcan al fusionarse. – ZyX

+2

Mejor, bifurca este repositorio en github, agrega la posibilidad de personalizar las asignaciones (es más rápido hacer esto cambiando 'noremap b ...' para 'ejecutar 'nnoremap' get (g :, 'ruby_debugger_map_toggle_breakpoint', ' b') '...' ') y luego hacer una solicitud de extracción. Con las asignaciones de cambio sugeridas se personalizará utilizando la variable 'g: ruby_debugger_map_toggle_breakpoint'. – ZyX

+2

La segunda solución es mucho mejor que usar algún tipo de solución alternativa (como poner tus asignaciones que no deben ser reemplazadas por '~/.vim/after/plugin/mappings.vim', la primera solución sugerida o usar algún tipo de mi [' map.maparg'] (https://bitbucket.org/ZyX_I/frawor/src/a09e101e4a9a55e1bbbf6602a1ef2c4fcd839631/doc/frawor.txt#cl-731) en el mismo directorio '~/.vim/after/plugin/mappings.vim' para guardar y luego 'map.map' para mapearlos de nuevo, pero a' rd * ', con el comando' noremap' normal para tus complementos de NerdTree). Creo que no eres la única persona que necesita capacidad para personalizar las asignaciones. – ZyX

Respuesta

6

En primer lugar, estoy de acuerdo con los comentarios de ZyX de que este es un problema en el complemento que se debe corregir. Pídale al autor del complemento que proporcione personalización.

No hay una manera fácil de desasignar, porque Vim no recuerda las asignaciones originales cuando se invalida una asignación. Debe anotar las asignaciones originales (:map ... cuando el complemento ofensivo está desactivado temporalmente, o buscar en el script de Vim sus definiciones), luego volver a ejecutarlas después de que se haya cargado el complemento ofensor (menos las banderas <unique> puede tener, ya que causarán errores en la re-ejecución). Esto no se puede hacer en .vimrc, se obtiene primero; Yo recomendaría un lugar como ~/.vim/after/plugin/zzzmappings.vim para esto.

Cuestiones relacionadas