viñetas tutorial subrayado notebook negritas español escribir cursiva como python bash vi ipython readline

tutorial - negritas python



¿Cómo uso las teclas vi en ipython bajo*nix? (5)

En caso de que alguien esté deambulando aquí recientemente, IPython 5.0 cambió de readline a prompt_toolkit , por lo que una respuesta actualizada a esta pregunta es pasar una opción:

$ ipython --TerminalInteractiveShell.editing_mode=vi

... o para establecerlo globalmente en la configuración de perfil ( ~/.ipython/profile_default/ipython_config.py ; ipython profile create con ipython profile create si no lo tiene) con:

c.TerminalInteractiveShell.editing_mode = ''vi''

Actualmente en Bash utilizo set -o vi para habilitar el modo vi en mi prompt bash.

¿Cómo hago esto en ipython?

Nota: Si se aplica una respuesta a todo * nix, eliminaré el OS X del título :)


Necesitaba poder cambiar de modo de manera interactiva en IPython 5 y descubrí que puedes hacerlo recreando el administrador de solicitudes sobre la marcha:

a = get_ipython().configurables[0]; a.editing_mode=''vi''; a.init_prompt_toolkit_cli()


Parece que una solución funciona para muchas otras aplicaciones compatibles con readline:

Establezca lo siguiente en su archivo ~/.inputrc :

set editing-mode vi set keymap vi set convert-meta on

Fuente: http://www.jukie.net/bart/blog/20040326082602


También puede cambiar interactivamente entre el modo Vi-modo y el modo Emacs. De acuerdo con los documentos de lectura para cambiar entre ellos, se supone que se puede usar la combinación de teclas MCj, pero eso solo parece permitirme cambiar al modo vi, en mi Mac (donde ESC se usa como la tecla ''Meta'' ) es: ESC + CTRL + j . Para volver al modo Emacs, se puede usar Ce, pero eso no pareció funcionar para mí, tuve que hacer MCe, en mi Mac es: ESC + CTRL + e .

FYI mi ~ / .inputrc está configurado de la siguiente manera:

set meta-flag on set input-meta on set convert-meta off set output-meta on


ipython usa la biblioteca readline y esto es configurable usando el archivo ~/.inputrc . Puedes añadir

set editing-mode vi

a ese archivo para hacer que todas las aplicaciones basadas en readline usen combinaciones de teclas de estilo vi en lugar de Emacs.