open mac how from commands macos emacs keyboard terminal

macos - how - terminal basic commands mac



Terminal OS X: Meta clave+funcionalidad alt al mismo tiempo (14)

¿Hay alguna manera de usar una tecla alt / opción como metakey pero aún así poder usarla para crear algunos personajes que lo necesiten?

Por ejemplo, en mi distribución de teclado local:

  • @ es alt + 2
  • / es alt + shift + 7
  • | es alt + 7
  • etc.

Por lo tanto, si configuro alt como una clave meta, ya no puedo crear esos caracteres. Por otro lado, usar "presionar esc, soltar esc, presionar una tecla" para hacer secuencias de metadatos me daña las manos.

¡Cualquier usuario de Emacs con teclados internacionales que haya resuelto esto, por favor, da cualquier consejo que puedas tener! :)

Editar:

Parece que puedo configurar alt como una clave meta y luego agregar este tipo de configuraciones en inputrc: "/e2": "@" Esto funciona en el shell bash pero aún así no funcionará con Emacs, por lo que no sirve.


Dos soluciones alternativas que uso:

  • Yo uso xterm corriendo bajo X11.app. X11.app usa la tecla de comando como meta.
  • Cuando ejecuto emacs en Terminal.app, solo uso el método de entrada rfc1345, que me permite ingresar todo tipo de personajes locos sin la necesidad de una clave de opción.

Piensa en usar un Emacs con todas las funciones para Mac OS X. Uso Carbon Emacs, pero creo que otros (digamos Aqua Emacs o X11 Emacs) harían el truco.

Si insiste en usar Emacs en un terminal, puede usar el prefijo Cx 8 como clave de redacción. Pruebe Cx 8 Ch para obtener una lista de posibilidades.

Ver http://www.emacswiki.org/emacs/EmacsForMacOS


Las respuestas anteriores mencionan formas de ingresar entradas que no son ascii, pero ese no es realmente el problema aquí. El método Cx 8 te permite ingresar un montón de no-ascii, pero el problema es que necesitas la clave de opción en mac solo para ingresar el carácter (ascii) `| '' (barra vertical)!

Entonces, ¿cómo introduces cosas como M- | (comando de región a shell) cuando ejecuta emacs en ssh bajo Terminal.app? No hay forma de que sea sino usar la clave de escape, ya que | es la opción-7 y Terminal.app por algún motivo estúpido no le permitirá usar Cmc como meta :-(

(Si alguien sabe de un hack (¿SIMBL quizás?) Que deja que Terminal.app use Cmd como meta, estaría muy agradecido ...)


Mordí la hierba y empecé a golpear la tecla de escape en su lugar. Te acostumbras ...


Me gustaría modificar esta pregunta o algo así porque también uso un teclado sueco donde debo presionar alt + 7 o alt + shift + 7 para hacer | y / respectivamente.

También uso Irssi en Terminal.app y estos no se mezclan bien.

Aunque soy un usuario de vim desde hace mucho tiempo, entonces emacs no es un problema para mí.

¿No hay alguna forma de reasignar CMD para que sea Meta en Terminal.app?

Hasta ahora he sobrevivido simplemente tecleando / wg N en Irssi porque tener esos caracteres en mi Terminal es mucho más importante que IRC.

¡Sin embargo, una solución valdría la pena para mí! :)


Echa un vistazo a cmd-key-happy. Esta pequeña aplicación me ha funcionado de maravilla. Le permite usar comandos como meta, con excepciones que puede configurar.

La información del autor sigue:

Este programa le permite intercambiar el comando y las teclas alt (u opción) en cualquier aplicación, pero en particular Terminal.app.

http://github.com/aim-stuff/cmd-key-happy


Aquamacs lo admite, al menos para mi teclado (francés). Una vez que se instala Aquamacs (mediante arrastrar y soltar), puede ir a Opciones -> Opción, Comando, Teclas meta y elegir una configuración apropiada para su teclado (en mi caso, ... Meta y francés). No soy competente con Emacs, pero todas las combinaciones útiles que he intentado parecen funcionar ([, {, |, etc.).

Los teclados admitidos, de acuerdo con los elementos del menú a partir de la versión 2.1, son:

  • británico
  • NOS
  • Suizo-francés
  • Suizo alemán
  • finlandés
  • Italiano-Pro
  • italiano
  • Español
  • francés
  • alemán

Sin embargo, supongo que el equipo de Aquamacs estaría agradecido por cualquier contribución si tu teclado no aparece en la lista.


Utilizo un teclado sueco en Mac OS X y uso la siguiente configuración para Emacs.app:

Primero tengo KeyRemap4MacBook instalado y lo tengo configurado para cambiar la tecla de opción izquierda a Comando.

Luego tengo lo siguiente en mis .emacs:

(setq mac-option-modifier ''none) (setq mac-command-modifier ''meta)

Esto hace que Emacs trate el comando como Meta e ignore la opción. Como la tecla Alt / Opción izquierda se vuelve a asignar al comando, esto hace que funcione lite meta mientras que la tecla Alt / Opción correcta todavía funciona para ingresar caracteres especiales como @ [] y {}.

Los accesos directos de Mac específicos de aplicaciones como Cmd + C y Cmd + V ya no funcionan, pero los atajos globales como Cmd + espacio para Spotlight y Cmd + Tab para el cambio de aplicación sí lo hacen.

Actualización: si usa iTerm2 como Terminal, tiene soporte para asignar solo la tecla Alt / Opción izquierda a meta, lo que significa que aún puede usar la tecla AltGr / Opción correcta para ingresar caracteres especiales. Esto también significa que puede usar meta como normal dentro de Emacs corriendo en la terminal iTerm2.


Tengo un teclado sueco en mi Mac y estoy usando Aquamacs. Agregando las dos líneas (la atribución va para Joakim Hårsman)

(setq mac-option-modifier ''none) (setq mac-command-modifier ''meta)

en .emacs (y reiniciar Aquamacs) funcionó el truco para mí.


Esta es una publicación anterior, pero agrega alternativas para que encuentren Robots. Pedí prestados un par de archivos de Aquamacs (emulate -mac-keyboard-mode.el, aquamacs-tools.el ) que soluciona el problema (tengo un teclado Italian-Pro):

(defun aq-binding (any) nil) (load "~/.emacs.d/emulate-mac-keyboard-mode.el") ;; ''noerror

esto proporciona:

  • algunos modos menores ( emulate-mac-italian-keyboard-mode, emulate-mac-french-keyboard-mode, mulate-mac-swiss-german-keyboard-mode, etc.)
  • un menú para jugar con todas las opciones provistas por Aquamacs

Probado con Emacs-23.3-universal-10.6.6 y parece funcionar bien para mí.

Gracias Aquamacs por esto, ¿qué hay de empujar esto en sentido ascendente si no se ha hecho ya?


con iTerm2 puede asignar la tecla de opción izquierda a ESC / meta y dejar la asignación de la tecla de opción derecha a "normal". De esta manera puede usar la tecla de opción derecha para escribir acentos, etc.


Vale la pena pensar en la suposición detrás de la pregunta. Quiero decir que el problema real es hacer que los personajes que actualmente parecen necesitar la tecla de opción. Este problema se puede resolver sin lograr ''metakey + funcionalidad alt'' simultánea.

Déjame explicarte: tengo un problema similar. En mi teclado del Reino Unido, shift-3 está mapeado en el signo de libra, £, lo que significa que generalmente necesito presionar la opción 3 para obtener el muy útil # - un problema real en Terminal, donde uso la opción como meta. Sin embargo, creo que la mayoría de las soluciones anteriores son un poco exageradas. No quiero cambiar a otra versión de Emacs (por ejemplo, Aquamacs), cambiar a una aplicación Terminal diferente (por ejemplo, iTerm o xterm), o instalar una aplicación de reasignación de claves (por ejemplo, KeyRemap4MacBook) todo por el bien de un solo símbolo! Quizás eso se adapte a algunas personas, pero pensé que valía la pena señalar que si el problema es solo un personaje, se puede resolver con un archivo de texto de nueve caracteres.

Con respecto a mi versión personal de este problema, encuentro que la solución más simple es crear un archivo llamado .inputrc en mi directorio personal, que consiste en la siguiente línea individual:

"§": "#"

Esto vuelve a mapear el (para mí, bastante inútil) § que se puede encontrar a la izquierda del 1 en el teclado Mac actual al (casi indispensable) #. Eso me queda incluso mejor que la configuración predeterminada, porque ahora puedo obtener # con una sola pulsación de tecla. Si hubiera otros personajes que necesitara reasignar, solo se trataría de agregar una línea adicional para cada uno.

De todos modos, se trata de cómo obtener el carácter que falta en el caparazón, pero si también lo quieres en Emacs (que no dijiste, pero probablemente sea el caso), entonces puedes agregar algo como esto a tu archivo .emacs (donde 35 es el ASCII del personaje que quiero, es decir, #):

(global-set-key (kbd "§") ''insert-hash) (defun insert-hash () (interactive) (insert 35))

Puede que no sea una solución tan clara si hubiera docenas de personajes a los que rutinariamente quería acceder mediante la tecla de opción, pero no los hay.

Espero que esto ayude a alguien. Como un simple hacker de fin de semana, normalmente no me atrevería a publicar una respuesta a una pregunta sobre ...


Disposición de teclado especial con deadkey de opción

Mi solución a este problema es un diseño de teclado especial que he escrito, personalizado en los EE . UU . Proporciona una opción deadkey que produce combinaciones de opciones sin tener que usar la tecla de modificación de opción física.. Por ejemplo, el carácter ⟨ç⟩ se produce de la siguiente manera en un diseño normal de teclado de EE. UU .:

  • Presione ⌥ Option + c .

El diseño de teclado personalizado de EE. UU. Agrega una segunda forma de producción de ⟨ç⟩:

  • Pulse ⇧ Shift + § (la opción deadkey), luego suéltelo, luego pulse c .

Esto funciona incluso en Terminal.app cuando la opción Usar como meta clave ha sido marcada.

Tenga en cuenta que el diseño de teclado personalizado de EE. UU. Tiene dos funciones adicionales:

  1. Convierte plain § en una tecla ⎄ Compose (para que también pueda producir ⟨ç⟩ al presionar § , luego , y luego c ).
  2. Sustituye la asignación de CapsLock por un diseño de teclado extendido de EE . UU . (Significativamente ampliado).

Cambiar la opción de la tecla de acceso rápido a la tecla de modificación de la opción derecha

Si tiene un teclado ANSI físico, entonces le falta la tecla § . En ese caso, recomiendo asignar la tecla § a alguna otra tecla, por ejemplo a la derecha Tecla modificadora de opción . Instale KeyRemap4MacBook , abra ~/Library/Application/ Support/KeyRemap4MacBook/private.xml y pegue el siguiente código:

<?xml version="1.0"?> <root> <item> <name>Send ISO Section for right Option</name> <identifier>private.send_iso_section_for_right_option</identifier> <autogen>--KeyToKey-- KeyCode::OPTION_R, KeyCode::UK_SECTION</autogen> </item> <item> <name>Send Shift+ISO Section for Shift+right Option (keep normal right Option without Shift)</name> <identifier>private.send_shift_iso_section_for_shift_right_option</identifier> <autogen>--KeyToKey-- KeyCode::OPTION_R, ModifierFlag::SHIFT_R, KeyCode::UK_SECTION, ModifierFlag::SHIFT_L</autogen> <autogen>--KeyToKey-- KeyCode::OPTION_R, ModifierFlag::SHIFT_L, KeyCode::UK_SECTION, ModifierFlag::SHIFT_L</autogen> </item> </root>

Luego, abra el panel de preferencias de KeyRemap4MacBook, presione ReloadXML y luego seleccione "Enviar sección ISO para la opción correcta". Ahora, su tecla de opción derecha está reasignada a § , así que mientras el diseño de teclado personalizado de EE. UU. Está activo, presionar ⇧ Shift + ⌥ Opción derecha le dará la opción de estado de tecla muerta (presionar ⌥ Opción derecha sin modificadores adicionales le dará un estado de tecla muerta equivalente al modificador de opciones.

Si desea mantener ⌥ Opción derecha cuando ⇧ Shift no está presionado (en lugar de la tecla ⎄ Componer ), seleccione "Enviar Mayús + Sección ISO para Mayús + Opción derecha (mantenga la opción derecha normal sin Mayús)" en el panel de preferencias KeyRemap4MacBook ( en lugar de "Enviar sección ISO para la opción correcta"). De esta forma, solo ⇧ Shift + ⌥ Opción derecha producirá la opción deadkey, mientras que plain ⌥ Right Option continuará funcionando como un modificador de opción. Incluso puedes continuar usando ⌥ Opción derecha + ⇧ Combinaciones de modificador de cambio (por ejemplo ⌥ Opción derecha + ⇧ Shift + c → ⟨Ç⟩) siempre que no presiones ⇧ Shift primero.


La siguiente solución funciona, es UNOBTRUSIVE y no necesitas iTerm2 o Aquamacs o lo que sea.

Paso 1

Mantenga activada la opción de uso como meta clave en la configuración de Terminal.app.

Paso 2

Edite ~/.inputrc ( ~/.inputrc si ya no existe ), agregue la siguiente línea:

"/e3": ''#''

Esto reasignará ⌥ alt + 3 para que se produzca un carácter # como se espera en el terminal , en lugar de volver molesto con el mensaje (arg: 3) .

Paso 3

Edite ~/.emacs , agregue la siguiente línea:

(global-set-key (kbd "M-3") "#")

Esto reasignará ⌥ alt + 3 para que produzcas un carácter # como se espera dentro de emacs , en lugar de hacerlo molestamente sin hacer nada.

Advertencia 1 , esto es solo 1 re-mapa. Entonces ⌥ alt + ? ( otras teclas ) no serán reasignadas, por ejemplo, puede que desee reasignar ⌥ alt + n para producir la clave tilde ~ . Simplemente siga los mismos pasos descritos anteriormente, obviamente cambiando 3 con cualquier tecla que necesite en el futuro.

Advertencia 2: Cuando ssh a otra casilla, enfrentarás las mismas dificultades, pero todo lo que tienes que hacer allí es editar los archivos ~/.inputrc y ~/.emacs en esa casilla.

Caveat 3, soy británico, en una MacBook británica. Así que no puedo responder por MacBooks extranjeras.