Emacs en Mac OS X Leopard key bindings

Soy un usuario de Mac y he decidido aprender Emacs. He leído que para reducir la tensión de la mano y mejorar la precisión, las teclas CTRL y CAPS LOCK deben intercambiarse. ¿Cómo hago esto en Leopard?

Además, en la Terminal, tengo que usar la tecla ESC para invocar meta. ¿Hay alguna forma de obtener la tecla alt / opción para invocar meta en su lugar?

Actualización: Mientras que la tecla de control es mucho más fácil de golpear ahora, la tecla meta también se usa con la suficiente frecuencia para que su posición en mi MacBook y Teclado de Apple también merezca atención. De hecho, creo que la clave de control es realmente más fácil de golpear, así que he reasignado mi clave de control para que actúe como una clave meta. ¿Alguien tiene una solución mejor / más estándar?

Intercambio de CTRL y CAPS LOCK

  1. Vaya a las Preferencias del sistema
  2. Ingrese el panel de preferencias Teclado y mouse
  3. En la pestaña Teclado , haga clic en Teclas modificadoras …
  4. Cambie las acciones para Bloq Mayús y Control .

texto alternativo

Usando ALT / OPTION como META

  1. En la barra de menú, haga clic en Terminal
  2. Haz clic en Preferencias …
  3. En la pestaña Configuración , ve a la pestaña Teclado
  4. Marque la casilla etiquetada Usar opción como tecla meta

texto alternativo

¡Eso es! ¡Deberías estar en camino de convertirte en un maestro de Emacs!

Como referencia, aquí están los enlaces de teclas, para moverse por el texto:

+ – mueve una palabra a la izquierda
+ – mueve una palabra a la derecha
+ eliminar – volver borrar una palabra
Mayús + + eliminar – para eliminar una palabra
+ – sube un párrafo
+ – mover hacia abajo un párrafo
+ – mover al inicio de la línea actual
+ – mover al final de la línea actual
Shift + cualquiera de la selección de extensión anterior por cantidad apropiada

Haga clic luego arrastre – seleccione texto
Haga doble clic y luego arrastre: seleccione texto y ajuste a los extremos de la palabra
Haga clic tres veces y luego arrastre: seleccione texto y ajuste al final del párrafo

Shift + Seleccionar texto con el mouse – agregar a la selección (contiguo)
+ Seleccionar texto con el mouse: agregar a la selección (no contiguo)
+ arrastrar – seleccionar área rectangular (no contigua)
+ + arrastre – agregue área rectangular a la selección
Arrastrar selección – mover texto
+ selección de arrastre – copiar texto

Ctrl + A – mover al inicio del párrafo actual
Ctrl + B – mover un caracter izquierdo
Ctrl + D – reenviar
Ctrl + E – mueve al final del párrafo actual
Ctrl + F – mueve un personaje a la derecha
Ctrl + H – eliminar
Ctrl + K – borra el rest del párrafo actual
Ctrl + N – bajar una línea
Ctrl + O – inserta una nueva línea después del cursor
Ctrl + P – sube una línea
Ctrl + T – transpone (intercambia) dos caracteres circundantes
Ctrl + V – mueve hacia el final, luego deja un caracter
Ctrl + Y – pegar texto borrado previamente con CtrlK

La otra respuesta fue muy completa, pero además mencionaría que simplemente configuré la tecla de locking de mayúsculas en una segunda tecla de control en lugar de intercambiarlas.

Además, notará que la gran mayoría de los campos de entrada de texto en Mac OS X ya aceptan las teclas de emacs (^ Un comienzo de línea, ^ E fin de línea, ^ P, ^ N, ^ K, ^ Y, etc.)

buena suerte

Realmente me gusta la respuesta proporcionada por Kyle Cronin, pero quiero agregar una cosa: asegúrese de seleccionar el teclado apropiado para que esto funcione. Si tiene un teclado externo conectado a su computadora portátil, entonces hay un cuadro desplegable adicional y tendrá que hacer esto para ambos teclados (o al menos para su teclado externo). La captura de pantalla que se muestra a continuación muestra el cuadro de diálogo “Seleccionar teclado”: he seleccionado “Teclado conjunto de Mac”, que es la manera en que MacBook dice el teclado externo GoldTouch: el teclado predeterminado es el predeterminado.
Captura de pantalla que muestra el diálogo

Una vez que lo descubrí, ¡esto funciona muy bien para mí!

Si usa emacs a través de una conexión ssh, o a través de una máquina que no está en su computadora local, los botones de página arriba / abajo se desplazan por el buffer de la terminal; en mi experiencia, no fue demasiado útil.

Puede configurar sus botones de página hacia abajo y hacia arriba para enviar los comandos apropiados a emacs. En emacs, puedes desplazarte por el buffer de emacs así:

  • Re Pág: Ctl-v
  • Página abajo: Esc-v

Entonces, para que el terminal envíe estos comandos a emacs, siga las instrucciones anteriores para alterar las teclas Alt para Meta. Sin embargo, en lugar de configurar la opción “usar opción como meta”, busque las opciones “página abajo” y “página arriba”.

Página abajo

Haga doble clic en la opción “página abajo” para editarlo. Cambie la acción para “enviar cadena al shell” e introduzca \ 026 como la cadena. Guárdalo

Página arriba

Haga doble clic en el botón “subir página” para editarlo. Cambie la acción para “enviar cadena al shell” e introduzca \ 033v como la cadena. Guárdalo

No estoy seguro si está totalmente casado con el uso de Emacs desde la terminal, pero otra opción es usar Carbon Emacs (mi favorito) y Aquamacs (muy parecido a Mac). Carbon Emacs usa la tecla de comando para meta, esto es bueno porque puedes hacer comandos Control-Meta simplemente manteniendo presionado Control y Comando en lugar de presionar primero escapar y luego la secuencia de teclas de control.

Además, si usted es un usuario serio de Emacs, le recomiendo que obtenga un teclado adecuado para la progtwigción (que es completamente reprogtwigble por sí mismo). Uso Kinesis, es un poco de dinero, pero son extremadamente durables y bastante agradables.

Personalmente tengo el locking de mayúsculas de configuración para que se comporte como un comando en las preferencias del sistema y luego en mi archivo emacs init.el tengo:

(setq mac-command-modifier ‘ctrl)

y esto me permite usar el locking de mayúsculas como comando en la mayoría de las aplicaciones osx y como control en emacs. funciona lo suficientemente bien para mí.

Tu alegría recién está comenzando. Otros trucos incluyen:

  • Use las teclas de mayúsculas izquierda y derecha para también ser (y) para escribir rápidamente.
  • Vuelva a asignar su clave fn u otra clave para ser “super”.
  • Haga que el locking de mayúsculas sea el control, pero solo con otra clave. Por sí mismo, es escape.

Lea el excelente artículo en http://stevelosh.com/blog/2012/10/a-modern-space-cadet/ para obtener mucha más información.

Este hilo se inició hace 5 años y no hay mención de ns-win.el o build --with-ns . Aquí están todas las combinaciones de teclas disponibles (listas para usar) en Emacs Trunk a partir de octubre de 2013. Y, por supuesto, puede crear las suyas propias. Personalmente, tengo un init.el con todas mis init.el teclas que se pueden usar con Windows XP a través de Parallels en OSX, y también con OSX de forma nativa. Dado que el usuario puede definir sus propios atajos de teclado, no veo la necesidad de volver a mapear el teclado en las preferencias del sistema (con un teclado Apple de EE.UU.) a menos que use un teclado que no incluya la tecla Comando. Pero, ¿podría tirar mi alijo de teclados clicky de IBM con trackpoint integrado? Por supuesto no. 🙂 Me llevo mis teclados clicky de IBM a la próxima vida. Cualquier tensión en la mano es causada probablemente por una posición inadecuada de la muñeca / arm / codo, no por el control de golpear contra el locking de mayúsculas. La precisión se mejora con la práctica y con la ayuda de un jefe que mira por encima del hombro para ver cómo te va, es decir, un poco de presión para ser más productivo 🙂

 (define-key global-map [?\s-,] 'customize) (define-key global-map [?\s-'] 'next-multiframe-window) (define-key global-map [?\s-`] 'other-frame) (define-key global-map [?\s-~] 'ns-prev-frame) (define-key global-map [?\s--] 'center-line) (define-key global-map [?\s-:] 'ispell) (define-key global-map [?\s-?] 'info) (define-key global-map [?\s-^] 'kill-some-buffers) (define-key global-map [?\s-&] 'kill-this-buffer) (define-key global-map [?\sC] 'ns-popup-color-panel) (define-key global-map [?\sD] 'dired) (define-key global-map [?\sE] 'edit-abbrevs) (define-key global-map [?\sL] 'shell-command) (define-key global-map [?\sM] 'manual-entry) (define-key global-map [?\sS] 'ns-write-file-using-panel) (define-key global-map [?\sa] 'mark-whole-buffer) (define-key global-map [?\sc] 'ns-copy-including-secondary) (define-key global-map [?\sd] 'isearch-repeat-backward) (define-key global-map [?\se] 'isearch-yank-kill) (define-key global-map [?\sf] 'isearch-forward) (define-key global-map [?\sg] 'isearch-repeat-forward) (define-key global-map [?\sh] 'ns-do-hide-emacs) (define-key global-map [?\sH] 'ns-do-hide-others) (define-key global-map [?\sj] 'exchange-point-and-mark) (define-key global-map [?\sk] 'kill-this-buffer) (define-key global-map [?\sl] 'goto-line) (define-key global-map [?\sm] 'iconify-frame) (define-key global-map [?\sn] 'make-frame) (define-key global-map [?\so] 'ns-open-file-using-panel) (define-key global-map [?\sp] 'ns-print-buffer) (define-key global-map [?\sq] 'save-buffers-kill-emacs) (define-key global-map [?\ss] 'save-buffer) (define-key global-map [?\st] 'ns-popup-font-panel) (define-key global-map [?\su] 'revert-buffer) (define-key global-map [?\sv] 'yank) (define-key global-map [?\sw] 'delete-frame) (define-key global-map [?\sx] 'kill-region) (define-key global-map [?\sy] 'ns-paste-secondary) (define-key global-map [?\sz] 'undo) (define-key global-map [?\s-|] 'shell-command-on-region) (define-key global-map [s-kp-bar] 'shell-command-on-region) ;; (as in Terminal.app) (define-key global-map [s-right] 'ns-next-frame) (define-key global-map [s-left] 'ns-prev-frame) (define-key global-map [home] 'beginning-of-buffer) (define-key global-map [end] 'end-of-buffer) (define-key global-map [kp-home] 'beginning-of-buffer) (define-key global-map [kp-end] 'end-of-buffer) (define-key global-map [kp-prior] 'scroll-down-command) (define-key global-map [kp-next] 'scroll-up-command) ;; Allow shift-clicks to work similarly to under Nextstep. (define-key global-map [S-mouse-1] 'mouse-save-then-kill) (global-unset-key [S-down-mouse-1]) 

(no es un teclado ergonómico, pero realmente me gusta el tacto y la sensación de las teclas, y la tecla Control, Bloq Mayús se intercambian).

http://matias.ca/osxkeyboard/index.php

He creado un conjunto bastante completo de enlaces aquí para usar fuera de la Terminal.

Personalmente, no puedo usar el teclado de la computadora portátil Mac debido a la ausencia de la tecla de control derecha.

En su lugar, he estado usando el Microsoft Natural Ergonomic Keyboard 4000 durante más de 7 años: tiene teclas Ctrl y Alt muy buenas y bien posicionadas, y después de descargar sus controladores , las teclas “Inicio” y “Aplicación” se reasignan trivialmente a la Mac Cmd key, que también es gordo y se deprime fácilmente.

Para evitar las preocupaciones ergonómicas de emacs, me he entrenado para usar Ctrl, Alt y Cmd de la misma manera que usamos Shift, presionándolos con la mano opuesta a la que está escribiendo la clave real. (Es decir, simplemente dejé Caps Lock como está).

Establecí el locking de mayúsculas para controlar en la preferencia del sistema y tengo lo siguiente en mi init.el para configurar el comando en meta y la opción en super:

 (custom-set-variables '(ns-alternate-modifier (quote super)) '(ns-command-modifier (quote meta))) 

Me gustaría recomendar 2 softwares Seil y Karabiner . Simplemente instalando Seil y siguiendo las instrucciones en el software, usted debería poder lograr lo que desea. Desde mi experiencia, Karabiner es más poderoso. Tengo un teclado japonés cuyo diseño es diferente de los normales. Tengo un fragmento que reasigna dos teclas adicionales en mi teclado a F18 y F19 para otro uso. Puede usar la misma syntax para editar su archivo “private.xml” para hacer más cosas.