Actualmente, estoy insertando caracteres unicode (principalmente símbolos matemáticos) usando el método de entrada TeX. Esto es engorroso, ya que, para cada personaje, tengo que hacer lo siguiente:
- Cambie al método de entrada TeX presionando
C-\
- escriba una expresión de látex como
\Bbb{R}
o\Leftrightarrow
Hay un subconjunto relativamente pequeño de caracteres Unicode (10-20) que estoy insertando todo el tiempo.
P: ¿Hay alguna forma de insertar caracteres Unicode con pocas (2-4) pulsaciones de teclas?
Respuestas:
Puede usar
abbrev-mode
para crear cadenas que se "expandan" a los caracteres unicode que desee. Por ejemplo, la siguienteabbrev
tabla define abreviaturas para las primeras tres letras minúsculas del alfabeto griego:Luego puede indicarle
text-mode
(o cualquier otro modo que desee) que herede su tabla Unicode:Ir a un búfer en modo texto. Encienda
abbrev-mode
. Escribaualpha
un carácter que no sea de palabra (espacio, punto, etc.) y observe cómo se expande a α.fuente
Puede definir sus propias secuencias de teclas con las funciones
global-set-key
y elisplocal-set-key
. Por lo tanto, se recomienda usar C-cuna sola letra para las secuencias de teclas definidas por el usuario. (De lo contrario, es posible que anule las secuencias de teclas vinculadas por otras bibliotecas de emacs-lisp. Más tarde se meterá en problemas cuando descubra que la versión de biblioteca de la secuencia de teclas sería muy útil para usted).Si desea utilizar estas secuencias independientemente del modo principal, puede vincularlas globalmente.
Por ejemplo, puedes agregar
(global-set-key (kbd "C-c a") "⇔")
a su archivo de configuración
~/.emacs
.Alternativamente, puede usar estas teclas según el modo principal.
Un ejemplo es:
Esto funciona con
auctex
. Si está utilizando el nativotex-mode
olatex-mode
puede ser que usted tiene que reemplazarTeX-mode-hook
portex-mode-hook
.Tenga en cuenta que también está
insert-char
obligado a C-x 8 RET. Con esto puede ingresar caracteres utf8 si conoce su código. Si no conoce el código, puede ingresarlos por su descripción, pero eso se vuelve engorroso.También hay modos especiales que apoyan al usuario con la entrada de símbolos de látex, como
company-math
-Mode yac-math
-mode .Ambos son modos de finalización.
company
funciona con los menús del mouse yac
(autocompletar) funciona con la tabtecla.Pero no estoy seguro sobre el estado actual de estos paquetes. Puedes instalar estos modos por melpa si quieres probarlos.
fuente
C-c
es que puede estar bastante seguro de que no entrará en conflicto con ninguna asociación de teclas proporcionada por Emacs o una biblioteca que pueda usar.Usted dice: hay un subconjunto relativamente pequeño de caracteres Unicode (supongo que 10-20) estoy insertando todo el tiempo.
En ese caso, como indicó @Tobias, puede vincular, para cada uno de ellos, una secuencia de teclas simple a (a) un comando que inserte ese carácter o (b) una cadena de un solo carácter con ese carácter (esto actúa como una macro de teclado, para insertar el caracter).
La biblioteca
ucs-cmds.el
puede ayudarlo a definir dichos comandos. Los comandos resultantes tienen los mismos nombres que los caracteres. Puede usar macroucsc-make-commands
para definir un conjunto completo de comandos que insertan un carácter de cierto tipo.Por ejemplo, puede poner esto en su archivo init para definir comandos que inserten todos los símbolos matemáticos Unicode:
Eso le da comandos cuyos nombres son los mismos que los caracteres matemáticos. Vincula cualquiera de estos que utilizas mucho con teclas fáciles de usar. Por ejemplo:
(O asocie una tecla a dicho comando solo en modo Tex, usando
define-key
con su mapa de teclas).Simplemente así de simple
(ucsc-make-commands "^math")
, tiene disponibles todos los comandos de inserción de caracteres que se enumeran a continuación.También hay otros caracteres Unicode, cuyos nombres no comienzan
math
pero que se usan en matemáticas, por ejemplo, el carácterPARTIAL DIFFERENTIAL
. Puede crear fácilmente comandos que inserten cualquiera de esos caracteres también. (Y tenga en cuenta que los caracteres cuyos nombres comienzanmath
bien podrían requerir el uso de una fuente especial; muchas fuentes no los admiten).Por supuesto, puede usar una expresión regular más estricta que
^math
, si desea definir solo caracteres que coincidan con dicho patrón. Por ejemplo, esto define comandos para todos los caracteres diferenciales parciales:Eso te da estos comandos:
Tenga en cuenta que los nombres de caracteres Unicode separan las palabras con caracteres de espacio, y los nombres son mayúsculas. Los comandos de inserción correspondientes utilizan guiones en lugar de espacios y minúsculas en lugar de mayúsculas.
Una ventaja de tener comandos con el nombre de caracteres que insertan, en lugar de, por ejemplo, solo vincular teclas a cadenas de caracteres simples, es que puede usar
M-x
para ingresar caracteres que usa con menos frecuencia, por nombre usando terminación. En lugar de completar con el conjunto completo de nombres de caracteres Unicode, completa con los nombres de los comandos de inserción de caracteres que ha definido.Estos son los comandos que insertan caracteres cuyos nombres comienzan con
math
. Son lo que obtienes al evaluar(ucsc-make-commands "^math")
....
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
fuente