Pregunta

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, CTRL y BLOQ MAYÚS deben intercambiarse. ¿Cómo hago esto en Leopard?

También, 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: Aunque la tecla de control es mucho más fácil de presionar ahora, la tecla meta también se usa con la frecuencia suficiente para que su posición en mi MacBook y Apple Keyboard también merezca atención. De hecho, me parece que la clave de control es en realidad más fácil de presionar, por lo que he reasignado mi clave de control para que actúe como una meta clave. ¿Alguien tiene una solución mejor / más estándar?

¿Fue útil?

Solución

Intercambio de CTRL y BLOQ MAYÚS

  1. Vaya a Preferencias del sistema
  2. Ingresa el Teclado & amp; Ratón panel de preferencias
  3. En la pestaña Teclado , haga clic en Teclas de modificación ...
  4. Intercambia las acciones por Bloqueo de mayúsculas y Control .

alt text

Utilizando ALT / OPTION como META

  1. En la barra de menú, haga clic en Terminal
  2. Haga clic en Preferencias...
  3. En la pestaña Configuración , ve a la pestaña Teclado
  4. Marque la casilla etiquetada Use option as meta key

alt text

¡Eso es! ¡Debes estar bien encaminado para convertirte en un maestro de Emacs!

Otros consejos

Para referencia, aquí están los enlaces de teclas, para mover el texto:

& # 8997; + & # 8592; - mover hacia la izquierda una palabra
& # 8997; + & # 8594; : mueve una palabra hacia la derecha
& # 8997; + eliminar - atrás eliminar una palabra
Shift + & # 8997; + eliminar - Eliminar una palabra
& # 8997; + & # 8593; - sube un párrafo
& # 8997; + & # 8595; - baja un párrafo
& # 8984; + & # 8592; : mover al inicio de la línea actual
& # 8984; + & # 8594; - Mueve al final de la línea actual
Shift + cualquiera de los anteriores amplíe la selección por la cantidad apropiada

Haz clic y luego arrastra - selecciona el texto
Haga doble clic y, a continuación, arrastre: seleccione el texto, ajuste a los extremos de las palabras
Haga triple clic y luego arrastre: seleccione el texto, ajuste a los extremos del párrafo

Shift + Seleccionar texto con el mouse - agregar a la selección (contiguo)
& # 8984; + Seleccionar texto con el mouse - agregar a la selección (no contiguo)
& # 8997; + Arrastrar: seleccione un área rectangular (no contigua)
& # 8984; + & # 8997; + arrastrar - agregar área rectangular a la selección
Arrastrar selección - mover texto
& # 8997; + arrastrar selección - copiar texto

Ctrl + A : mover al inicio del párrafo actual
Ctrl + B : mueve hacia la izquierda un carácter
Ctrl + D - reenviar eliminar
Ctrl + E : mueve al final del párrafo actual
Ctrl + F : mueve un carácter hacia la derecha
Ctrl + H - eliminar
Ctrl + K : elimina el resto del párrafo actual
Ctrl + N : mueve una línea hacia abajo
Ctrl + O : inserta una nueva línea después del cursor
Ctrl + P : sube una línea
Ctrl + T - transponer (intercambiar) dos caracteres circundantes
Ctrl + V : muévete hasta el final, luego deja un carácter
Ctrl + Y : pegue el texto previamente eliminado con Ctrl - K

La otra respuesta fue muy completa, pero, además, me gustaría mencionar que acabo de establecer el bloqueo de mayúsculas clave para una segunda clave de control en lugar de cambiarlos.

Además, notará que la gran mayoría de los campos de entrada de texto en Mac OS X ya acepte las pulsaciones de emacs (^ Un principio 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 adecuado 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 siguiente captura de pantalla muestra el " Seleccionar teclado " cuadro de diálogo - He seleccionado " Teclado conjunto de Mac " ;, que es la forma de MacBook de decir el teclado externo GoldTouch - el teclado predeterminado es el teclado integrado.
Captura de pantalla que muestra el cuadro de diálogo "Seleccionar teclado"

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 avance / retroceso de página se desplazan a través del búfer del terminal, en mi experiencia, no muy útil.

Puede configurar su página hacia abajo y los botones de avanzar página para enviar los comandos apropiados a emacs. En emacs, puede desplazarse a través del búfer de emacs de la siguiente manera:

  • Subir página: Ctl-v
  • Página abajo: Esc-v

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

Página abajo

Haz doble clic en " página abajo " Opción para editarlo. Cambie Acción a " enviar cadena a shell " e ingrese \ 026 como la cadena. Guárdalo.

Subir página

Haz doble clic en la página " subir página " botón para editarlo. Cambie Acción a " enviar cadena a shell " e ingrese \ 033v como la cadena. Guárdalo.

No estoy seguro de si estás totalmente casado con Emacs desde la terminal, pero otra opción es usar Carbon Emacs (mi favorito) y Aquamacs (muy similar a Mac). Carbon Emacs usa la tecla de comando para meta, esto es bueno porque puedes hacer comandos Control-Meta simplemente presionando Control y comando hacia abajo en lugar de presionar primero el escape 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 programación (que es uno que es completamente reprogramable por sí mismo). Utilizo un Kinesis, es un poco de dinero, pero son extremadamente duraderos y bastante agradables.

Personalmente, he configurado el bloqueo de mayúsculas 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 bloqueo 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 apenas está comenzando. Otros trucos incluyen:

  • Use las teclas de desplazamiento izquierda y derecha para ser (y) para escribir rápido.
  • Vuelva a asignar la tecla fn u otra tecla para que sea " super " ;.
  • Haga que el bloqueo de mayúsculas sea control, pero solo con otra tecla. Por sí mismo, es escape.

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

Este hilo se inició hace 5 años y no hay ninguna mención de ns-win.el o compilación --with-ns . Aquí están todas las combinaciones de teclas disponibles (listas para usar) en el Troncal de Emacs a partir de octubre de 2013. Y, por supuesto, puede crear las suyas propias. Personalmente, tengo un init.el con todos mis enlaces de 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 métodos abreviados de teclado, no veo la necesidad de volver a asignar el teclado en las preferencias del sistema (con un teclado Apple de EE. UU.) a menos que utilice un teclado que no incluya la tecla Comando . Pero, ¿tiraría mi alijo de teclados IBM clicky con trackpoint incorporado? Por supuesto no. :) Me llevo mis teclados IBM clicky a la siguiente vida. Cualquier tensión en la mano es probablemente causada por la posición incorrecta de la muñeca / brazo / codo, no al golpear el control contra el bloqueo de las tapas. La precisión se mejora a través de la práctica, y con la ayuda de un jefe que mira por encima del hombro para ver cómo está avanzando, 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 [?\s-C] 'ns-popup-color-panel)
(define-key global-map [?\s-D] 'dired)
(define-key global-map [?\s-E] 'edit-abbrevs)
(define-key global-map [?\s-L] 'shell-command)
(define-key global-map [?\s-M] 'manual-entry)
(define-key global-map [?\s-S] 'ns-write-file-using-panel)
(define-key global-map [?\s-a] 'mark-whole-buffer)
(define-key global-map [?\s-c] 'ns-copy-including-secondary)
(define-key global-map [?\s-d] 'isearch-repeat-backward)
(define-key global-map [?\s-e] 'isearch-yank-kill)
(define-key global-map [?\s-f] 'isearch-forward)
(define-key global-map [?\s-g] 'isearch-repeat-forward)
(define-key global-map [?\s-h] 'ns-do-hide-emacs)
(define-key global-map [?\s-H] 'ns-do-hide-others)
(define-key global-map [?\s-j] 'exchange-point-and-mark)
(define-key global-map [?\s-k] 'kill-this-buffer)
(define-key global-map [?\s-l] 'goto-line)
(define-key global-map [?\s-m] 'iconify-frame)
(define-key global-map [?\s-n] 'make-frame)
(define-key global-map [?\s-o] 'ns-open-file-using-panel)
(define-key global-map [?\s-p] 'ns-print-buffer)
(define-key global-map [?\s-q] 'save-buffers-kill-emacs)
(define-key global-map [?\s-s] 'save-buffer)
(define-key global-map [?\s-t] 'ns-popup-font-panel)
(define-key global-map [?\s-u] 'revert-buffer)
(define-key global-map [?\s-v] 'yank)
(define-key global-map [?\s-w] 'delete-frame)
(define-key global-map [?\s-x] 'kill-region)
(define-key global-map [?\s-y] 'ns-paste-secondary)
(define-key global-map [?\s-z] '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 me gusta mucho la sensación y el movimiento de las teclas, y la tecla Control, las teclas de bloqueo están intercambiadas).

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

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

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

En su lugar, he estado utilizando el Microsoft Natural Ergonomic Keyboard 4000 para más de 7 años: tiene teclas Ctrl y Alt realmente gordas y bien posicionadas, y después de descargando sus controladores el " Inicio " y " Aplicación " las teclas se reasignan trivialmente a la tecla Mac Cmd, que también es gorda y se presiona fácilmente.

Para evitar problemas ergonómicos 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 tecla real. (Es decir, simplemente dejo el bloqueo de mayúsculas tal como está).

Configuro el bloqueo de mayúsculas para controlar la preferencia del sistema y tengo lo siguiente en mi init.el para configurar el comando a meta y la opción a 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 del software, 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 al normal. Tengo algunos fragmento que vuelve a correlacionar dos teclas adicionales en mi teclado a F18 y F19 para otro uso. Puede usar la misma sintaxis para editar su " private.xml " Archivo para hacer más cosas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top