python linux vim ipython prompt-toolkit

¿Cómo se establece un enlace vim específico en Ipython 5.0.0



linux prompt-toolkit (1)

Tienes razón. prompt_toolkit ignora .inputrc . No parece haber una forma de definir combinaciones de teclas personalizadas para el modo vi en el archivo de configuración de perfil de IPython 5.0.0.

Aquí hay una solución que estoy usando actualmente. No es bonito, pero funciona por ahora.

De acuerdo con los documentos de IPython , puede especificar Atajos de teclado en un script de configuración de inicio.

En lugar de volver a enlazar jk con ESC , estoy haciendo un unicode "j" ( u''j'' ) seguido de unicode "k" ( u''k'' ) dentro de VimInsertMode() un atajo para un evento prompt_toolkit que cambia a navegación modo.

.ipython/profile_default/startup/keybindings.py un .ipython/profile_default/startup/keybindings.py con el siguiente código:

from IPython import get_ipython from prompt_toolkit.enums import DEFAULT_BUFFER from prompt_toolkit.filters import HasFocus, ViInsertMode from prompt_toolkit.key_binding.vi_state import InputMode ip = get_ipython() def switch_to_navigation_mode(event): vi_state = event.cli.vi_state vi_state.reset(InputMode.NAVIGATION) if getattr(ip, ''pt_cli''): registry = ip.pt_cli.application.key_bindings_registry registry.add_binding(u''j'',u''k'', filter=(HasFocus(DEFAULT_BUFFER) & ViInsertMode()))(switch_to_navigation_mode)

La fuente prompt_toolkit lo ayudará a implementar otros accesos directos según sea necesario.

Entiendo que debido a que Ipython 5.0.0 usa una nueva biblioteca de entrada (prompt_toolkit), ya no está predeterminado al modo de editor especificado en .inputrc (* nix). Esta opción debe establecerse en un archivo de configuración de perfil de Ipython (consulte https://stackoverflow.com/a/38329940/2915339 ).

Mi pregunta es: al haber configurado vi-mode en el archivo de configuración de perfil, ¿cómo se especifica un enlace de clave en particular? Me gusta usar ''jk'' para escapar, por ejemplo.