3 votos

¿Cómo puedo utilizar readline en lugar de editline en el REPL de Python y otros programas?

Prefiero utilizar línea de lectura en lugar de línea de edición en el REPL de Python y MySQL, por ejemplo. Estos programas están compilados con el soporte editline proporcionado por Apple o Homebrew. ¿Cómo puedo hacer que funcionen con readline en su lugar?

3voto

user48577 Puntos 19

De mis discusiones en GitHub Correo electrónico: :

Utilizar readline en lugar de editline (MacOS)

Estas instrucciones deberían funcionar en otros sistemas operativos tipo Unix/Linux además de MacOS.

Desactivar editline

Editar ~/.editrc y decidir qué eliminar. Luego añade:

edit off

o anteponerle el nombre de la aplicación o una expresión regular para limitar cuáles tienen deshabilitada la línea de edición:

python3:edit off

La única línea que tenía anteriormente en ese archivo era bind -e que he quitado.

Puede proporcionar varias líneas prefijadas (o una regex apropiada) para que el comando se aplique a aplicaciones adicionales.

Instale rlwrap

brew install rlwrap

rlwrap tiene un montón de opciones, ver la salida de:

rlwrap --help

o el página de manual .

Editar ~/.inputrc

Si necesita realizar cambios o adiciones a los enlaces readline, puede editar este archivo. Si desea tener configuraciones para programas particulares envuelva las configuraciones en $if condicionales.

Para la configuración global del sistema, utilice /etc/inputrc . Pero tenga en cuenta que una configuración local de usuario anula completamente la global en lugar de fusionarse preferentemente. Sin embargo, puede incluir el archivo global (u otros) utilizando $include . La colocación de esas líneas dentro de un archivo controla la precedencia.

Crear alias

En su ~/.zshrc o ~/.bashrc u otros archivos de inicio (dependiendo de cómo se inicie su shell), cree alias para que el uso de rlwrap más cómodo. Por ejemplo:

alias python3='rlwrap python3'

Guardo mis alias en un archivo separado y source en mi archivo de inicio principal. Utilizo ~/bin/aliases pero ~/.aliases es otra sugerencia.

También puede ejecutar programas ad hoc sin alias anteponiendo al nombre del programa el prefijo rlwrap seguido de un espacio (pero sin las comillas que aparecen en el campo alias comando).

Ajusta tus archivos históricos

Por ejemplo, mi archivo de historial de Python era ~/.python_history sino el creado tras utilizar rlwrap es ~/.python3_history . En lugar de cambiar alguna configuración, me limité a cambiar el nombre de mi antiguo historial para poder seguir utilizándolo:

mv ~/.python_history  ~/.python3_history

¡Que aproveche!

<strong>Ctrl</strong><strong>r</strong> su-comando-anterior

Y eso no es todo...

Pruébalo también con MySQL y otros.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X