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?
Respuesta
¿Demasiados anuncios?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.