2012-06-20 13 views
5

Estoy acostumbrado a escribir un caracter ~ presionando Alt + N en Mac OS X. Esto no funciona en Emacs. La tecla Alt + N parece estar vinculada al historial de comandos. ¿Entonces mi pregunta es cómo escribir un carácter ~ en Emacs en Mac OS X?Cómo escribir un carácter tilde (~) en Emacs en Mac OS X?

EDIT: Estoy usando Aquamacs.

+0

¿Qué diseño de teclado y teclado está usando? Los ingleses al menos lo tienen por encima del backtick '\' '. – Ryan

+0

Estoy usando un teclado Apple con diseño alemán. –

Respuesta

2

Siempre puede abrir el "visor de caracteres", seleccionar "Puntuación", buscar "~" (tilde) y hacer doble clic en él. Eso lo insertará en el punto de Emacs. (El 'espectador carácter' es fácilmente accesible después de comprobar 'Mostrar teclado & Los espectadores de caracteres en la barra de menú' desde el panel del teclado en la ventana de Preferencias del Sistema.)

También puede definir una función Emacs Lisp como:

(defun tilde() (interactive) (insert "~")) 

y luego invocarlo con M-x tilde para insertar una tilde. a continuación, podría asignar esa función a la combinación de teclas de su elección como

(global-set-key "\M-\C-!" 'tilde) ;; you choose the combo 

y añadir todo esto a su archivo 'emacs init'.

+0

Esta solución funciona mientras está en el editor, sin embargo, funciona en el mini buffer. ¿Alguna idea de cómo hacer que funcione en ella? ¿Podemos llamar a tal función desde el mini buffer cualquiera poner el resultado en el mini buffer (soy bastante nuevo en Emacs)? – pbernery

+0

en mi humilde opinión, esta no es la respuesta. El problema de raíz proviene de que Emacs deshabilita Alt para ingresar caracteres en OS X. Consulte mi respuesta a continuación. – fpbhb

0

quoted-insert debe ocuparse de esto.

C-qAlt-N

+0

No funciona para mí, solo me pongo "î". Mi teclado es belga-francés, pero el combo de teclas para la tilde también es Alt-N fuera de emacs. – Norswap

0

Aquamacs: Opciones -> Opciones de comandos Meta Clave -> Meta y francés?

7

Si bien esta pregunta es bastante antigua, ninguna de las respuestas parece satisfactoria para Emacs for OS X (la opción más popular actualmente). Por lo tanto, para los futuros lectores ...

Llanura Emacs para OS X utiliza tanto Alt claves como Meta por defecto. Como muchos caracteres se escriben utilizando Alt en un teclado Mac alemán (tilde, corchetes, llaves, etc.), me gustaría recomendar el establecimiento de ns-right-alternate-modifier-nil, que permite escribir tilde (Alt-N) y otros caracteres utilizando el derechotecla Alt, mientras que la izquierda uno puede ser utilizado como Meta (como por M-x).

Alternativamente Cmd se pueden personalizar para ser Meta. Todas las opciones se pueden personalizar interactivamente bajo M-x customize-group ns.

0

Lamentablemente, la respuesta de fpbhb no funciona cuando se ejecutan emacs en un terminal (emacs -nw).

Pude encontrar una solución a este problema que funciona en ambas situaciones (independiente y en terminal). Además, tengo un teclado internacional y también pude solucionar el problema de no poder escribir caracteres especiales al ejecutar emacs en la terminal.

Este fragmento vincula correctamente la tecla de opción izquierda a "META" cuando se ejecuta emacs como una aplicación (es decir, no en un terminal).No es vinculante para la tecla de opción derecha, que se puede utilizar para escribir caracteres especiales:

(setq mac-command-key-is-meta nil 
     mac-command-modifier nil) 
(setq mac-option-key-is-meta t 
     mac-option-modifier 'meta 
     mac-right-option-modifier nil) 

Todo lo anterior no tiene ningún efecto cuando se ejecuta en un terminal emacs. Para obtener las mismas combinaciones de teclas en el terminal tiene que:

Preferencias de terminal -> Teclado -> Uso Opción mientras Meta clave

Por desgracia, después de hacer esto usted no será capaz de utilizar la tecla de opción para escribir personajes especiales en teclados internacionales. En particular, me faltaba la tilde, la barra invertida y el @.

He resuelto este último problema mediante la adición de la asignación de teclas que falta a mis .emacs:

(define-key key-translation-map (kbd "M-ñ") (kbd "~")) 
(define-key key-translation-map (kbd "M-º") (kbd "\\")) 
(define-key key-translation-map (kbd "M-2") (kbd "@")) 

Voilà.