¿Existe una forma universal de escribir caracteres Unicode?

18

A veces quiero escribir caracteres Unicode especiales, como un guión em (-), en varios programas como vim, Chrome (¡como ahora!) O LibreOffice.

En LibreOffice, puedo lograr esto a través de un cuadro de diálogo dedicado que se encuentra en el menú Insertar. Otros programas no parecen tener una forma integrada. Mi solución en estos casos es buscar el personaje en Wikipedia, copiarlo y pegarlo.

¿Existe una forma universal de escribir caracteres Unicode en cualquier programa que acepte la entrada de texto en Linux sin tener que copiar y pegar desde algún lugar donde ya está impreso?

drs
fuente
Podría haber buscado "Entrada Unicode" en Wikipedia. Ahora mencionado en mi respuesta.
vinc17
En LibreOffice (y MS Office) también hay una lista de sustituciones automáticas, como (C)-> ©. Muy a menudo, las personas se configuran --como en-dash y ---como em-dash.
Simon Richter
Is there a universal way...No. (No conozco una forma "universal" de hacer nada a través de la programación)
User2338816

Respuestas:

14

Puede habilitar una Composetecla o puede presionar CtrlShiftUseguido del número hexadecimal Unicode del carácter (se pueden omitir los ceros iniciales). Por ejemplo, Æ es CtrlShiftU, entonces C6. Esto funciona en GNOME Terminal, Terminator, Google Chrome y una serie de otras aplicaciones, con Xterm (y según los comentarios, Emacs) no funciona.

En GNOME, para habilitar Compose, vaya a la configuración del Teclado, luego Accesos directosEscribirTecla de caracteres alternativos y asignarla a algo (por ejemplo, Right Alt). Luego presiona la Composetecla y - tres veces para obtener un em-dash: -. (Las flechas en este párrafo son todas Compose->).

ingrese la descripción de la imagen aquí

muru
fuente
2
La solución Ctrl + Shift + u no funciona en Xterm y en Emacs. Tampoco funciona en Firefox.
vinc17
2
@ vinc17 funciona en Firefox para mí. No tengo ni Xterm ni Emacs para probar.
muru
Hmmm, sí, funciona en Firefox, pero tengo que escribir la tecla Espacio después de la secuencia hexadecimal. En cualquier caso, esto no es universal, pero probablemente sea una característica agregada por algunas aplicaciones (¿o algunos administradores de ventanas?). Además, no funciona en Opera.
vinc17
AltGr es solo un modificador para obtener combinaciones de teclas adicionales. Esto es lo que uso para ingresar los caracteres que figuran en mi respuesta (por ejemplo, Shift + AltGr + [da ←). Pero el usuario también puede asignar caracteres a otras teclas, como las teclas de función; esto es lo que hago para obtener los caracteres acentuados franceses: éèêëâîôûàùïç. Todo hecho a través de la configuración XKB.
vinc17
@ vinc17 Hice un fracaso épico. Estaba hablando de Compose y dije AltGr en su lugar.
muru
7

La mejor manera es escribir el carácter en su teclado. Gracias a XKB , puede vincular caracteres Unicode arbitrarios a combinaciones de teclas. Por ejemplo, con la personalización del usuario XKB , puedo escribir directamente: ← → ↑ ↓… € ½ «» - - ± ≠ ∩ ∪ ⊂ ∧ ∨ ∀ ∃ √ ∞ ≤ ≥, etc.

Nota: en el caso particular de GNU Emacs, la composición Unicode se puede hacer a través de Ctrlx+ 8+ Return. Ver Ctrlx+ 8+ Ctrlhpara métodos adicionales.

La "entrada Unicode" en Wikipedia proporciona información sobre la entrada Unicode ISO 14755 según el contexto, en particular para X11 con algunos kits de herramientas y para aplicaciones específicas (Emacs, Opera, Vim).

Alternativamente, puede usar la Composeclave con la configuración definida por el usuario (ya que la configuración predeterminada está lejos de ser completa). La documentación es proporcionada por la Compose(5)página del manual. Por ejemplo, escriba un archivo que $HOME/.XComposecontenga:

include "%L"
<Multi_key> <bracketleft> <c>           : "⌈" U2308 # LEFT CEILING
<Multi_key> <bracketright> <c>          : "⌉" U2309 # RIGHT CEILING
<Multi_key> <bracketleft> <f>           : "⌊" U230A # LEFT FLOOR
<Multi_key> <bracketright> <f>          : "⌋" U230B # RIGHT FLOOR

La include "%L"línea primero carga el archivo de composición predeterminado (específico de la localidad), y las siguientes cuatro líneas agregan configuraciones definidas por el usuario, tales como: Compose+ [+ cda el carácter de techo izquierdo "⌈" (U + 2308).

vinc17
fuente
No necesita XKB para vincular caracteres Unicode a combinaciones de teclas, también puede hacerlo con xmodmap. Sin embargo, no podrá llegar a todos los caracteres Unicode de esa manera, hay demasiados.
Gilles 'SO- deja de ser malvado'
1
@Gilles xmodmap no es tan poderoso como XKB y tuve problemas con él en el pasado . De ahí mi cambio a XKB. Además, no uso todos los caracteres Unicode. Para los caracteres raros, un selector en pantalla puede ser la mejor solución, porque uno puede no saber su punto de código y cómo ingresarlos.
vinc17
No entiendo cómo ingresas ∩ ∪ ⊂ ∧ ∨ ∀ con componer. El resto «» € ₤ ö etc. funciona. Pero no los símbolos matemáticos.
Igor Chubin
@IgorChubin No uso componer, solo ISO_Level3_Shift(también conocido como AltGr). Acabo de editar mi respuesta para dar un enlace a mi página web que explica la personalización del usuario XKB .
vinc17
@ vinc17 Gracias, leeré más al respecto. ¿Conoces alguna ventaja de este método en comparación con componer?
Igor Chubin
2

Como se describe en detalle en esta publicación , hay una excelente manera de agregar claves Unicode sin tener que recordar combinaciones de teclas incómodas o usar menús desplegables.

Se reduce al uso de Autokey , que puede tomar cualquier conjunto de teclas como disparador para ejecutar un script o pegar una frase. En este caso, su frase es simplemente el carácter unicode que desea.

Como se describe en la publicación, una buena forma de hacerlo es seguir LaTeX, pero con una barra diagonal en lugar de una barra diagonal inversa. Por ejemplo, si escribe / delta en cualquier lugar (navegador, oficina libre, etc.) se convertirá automáticamente a δ.

hugke729
fuente