1 votos

Shell con combinaciones de teclas de Mac

Quiero una shell donde pueda editar comandos de la misma manera que edito cualquier otro texto en MacOs. Donde shift left signifique "agregar letra a la izquierda del cursor a la selección" no "escribir la letra D"; donde "command right" signifique "ir al final de la línea" no "ir a la próxima palabra"; donde pueda hacer clic en cualquier caracter en el comando para mover el cursor allí; donde pueda usar las teclas arriba/abajo para editar comandos de varias líneas en lugar de que arriba/abajo hagan algo extraño cuando recuperan un comando de varias líneas del historial....

¿Alguien conoce algo así?

PD, por favor no recomienden que 1) aprenda los atajos de teclado del s 2) que simplemente copie y pegue desde textedit. Eso no es de lo que se trata esta pregunta.

0voto

DogIsGreat Puntos 1

Lo más cercano a lo que estás buscando es un editor de REPL de interfaz de usuario como Jupyter Notebooks. Cuando estás en la línea de comandos, el cursor está limitado en su movimiento y muchas conchas pueden computar usando bash, c u otros lenguajes de programación cargados. Para moverte como quieras, la herramienta más cercana es Jupyter notebook, que edita como un editor de texto y compila cada celda a medida que la ingresas.

0voto

staffan Puntos 3299

Puedes usar Emacs. Emacs es principalmente un editor, pero también incluye muchas funciones relacionadas que te permiten beneficiarte de las capacidades de Emacs al hacer cosas diferentes a la edición de archivos. Una de estas funciones es modo Shell, donde editas un comando con Emacs y luego presionas Enter para ejecutarlo.

Puedes descargar Emacs desde Emacs For Mac OS X o desde gestores de paquetes como Homebrew, MacPorts o Fink.

Emacs tiene sus propios comandos de edición que son completamente diferentes a los de Mac, pero al menos el Emacs For Mac OS X viene con los comandos estándar de Mac predefinidos.

Para iniciar Emacs y simplemente usarlo para ejecutar un shell:

emacs -e shell -e delete-other-windows

Consulta el Manual para comandos relacionados con el shell como la navegación del historial. También puedes usar F1 m para ver una lista de combinaciones de teclas que se aplican específicamente al modo Shell.

El modo Shell te proporciona la edición de línea de comandos y scrollback infinito de Emacs. Tiene algunas desventajas: las aplicaciones de terminal a pantalla completa no funcionarán y solo obtendrás una completación básica de nombres de archivo en lugar de una completación contextual. El modo Shell admite la salida en color, pero las aplicaciones pueden no ser capaces de detectarlo, por ejemplo, /bin/ls no lo hace (puedes engañarlo con alias ls='TERM=xterm-256color ls -G').

Salir del shell no cierra Emacs, porque usar Emacs solo para ejecutar un shell es inusual. Sería posible configurarlo para que al salir del shell se cierre Emacs si no está haciendo nada más, pero eso sería material para una pregunta separada en Emacs SE.

Alternativamente, puedes preferir Term a Shell. Term es un emulador de terminal completo. Esto significa que Emacs transmite la mayoría de las pulsaciones de teclas al shell subyacente. Por ejemplo, Tab invoca al mecanismo de completación del shell. Sin embargo, Emacs sigue manejando algunos comandos internamente, en particular todas las combinaciones de teclas de Command como copiar y pegar. Además, Control+C invoca comandos del modo Term. Por otro lado, Shift+<em>flecha</em> se envía al shell. Sería posible hacer que Emacs lo maneje, pero no es sencillo dado que desincronizaría la posición del cursor entre Emacs y el shell. No sé si hay un paquete de Emacs por ahí que resuelva esto.


Si todo lo que quieres es soporte para el mouse y Shift+<em>flecha</em>, hay plugins de zsh para eso:

Desafortunadamente ninguno maneja copiar la selección al portapapeles con C. El comando Meta+W (Meta suele ser option, pero depende de la configuración de tu terminal) copia al portapapeles propio de zsh. Consulta [zsh copiar y pegar como emacs](See https://unix.stackexchange.com/questions/51933/zsh-copy-and-paste-like-emacs) para saber cómo sincronizar el portapapeles de zsh con el sistema.

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