Qual è il modo più semplice per inserire caratteri Unicode in un documento?


28

Quando scrivo documenti di tanto in tanto voglio inserire caratteri Unicode nel testo. A volte conosco il codice del personaggio e a volte lo cerco sul web.

Attualmente vado a inserire la modalità e quindi utilizzare <Ctrl-V>u{four digit hex number}, che può essere molto laborioso. Esiste un modo più semplice per inserire i caratteri (forse una qualche forma di incollaggio)?


L'altra domanda è davvero un "caso speciale" di questa domanda più generica; le risposte saranno le stesse ... Il mio commento vale anche: usa le strutture del tuo sistema operativo (qualunque esse siano) o qualche altro programma a livello di sistema operativo (per esempio quando ho usato Windows, mi è piaciuto usare AllChars che emula gli X11 Tasto Compose; funziona in tutti i programmi).
Martin Tournoij,

Sì, questo è un caso speciale e le risposte sono specializzate per questo. Non pensi che ci potrebbe essere una soluzione più generalizzata che comprende più cose che le persone non hanno preso in considerazione quando si guarda al caso speciale.
Martin York,

Potremmo anche rendere questa domanda più generica o contrassegnarla come una copia di questa (anche se era prima); Non mi interessa davvero come tale . Ma non credo che avere entrambe le domande così com'è aiuterà a lungo termine :-)
Martin Tournoij,

Se potessi controllare il mondo. Forse dovremmo lasciarlo riposare per un giorno o due, quindi se ha raccolto risposte uniche che potrebbero distinguerlo dall'altra domanda. Se rimane senza risposta o le risposte sono solo duplicati, chiudilo / eliminalo.
Martin York,

Va bene .. Sono assolutamente d'accordo che l'altra domanda non abbia grandi risposte, e questa domanda dovrebbe attirare quelle migliori (si spera) ... La modifica dell'altra domanda (per renderla più generica) lo lascia ancora con un mucchio di altamente votati risposte che si occupano solo del trattino, quindi non è eccezionale ... Quindi ho ritirato il mio voto ravvicinato, e non appena avrò delle risposte decenti, voterò l'altro oe un duplicato di questo (anche se era prima) ... Ovviamente non posso controllare ciò che gli altri scelgono di votare.
Martin Tournoij,

Risposte:


23

Prefazione : questo non ha nulla a che fare con Vim in quanto tale, ma ti mostrerò quello che considero il modo "migliore" per inserire questi personaggi di gran lunga; Il sistema digraph di Vim è più o meno lo stesso, ma funziona solo con Vim. Questo funzionerà in tutte le applicazioni.

Funzionerà solo con sistemi X11 (Linux, BSD, ecc.). Per Windows, c'è AllChars . Non è stato aggiornato da un po ', ma posso confermare che funziona bene con Windows 7 (utilizzato nel mio lavoro precedente). Credo che OS X abbia anche buone strutture per farlo, integrate nel sistema operativo; se usi OS X, ti incoraggio a provarli, ma dato che non ho mai usato OS X, non posso indicarti.

Di seguito è (parte di) una bozza di articolo sul blog che ho in cantiere. Sfortunatamente non esiste (ancora) una guida veramente completa, e il seguito non descrive tutte le funzionalità che offre (ad esempio mancano alcune parti sulle chiavi morte) e potrebbe essere meglio scritto in alcune parti, ma penso che sia ancora "abbastanza utile".


Una "sequenza di composizione" sta premendo il Composetasto e quindi uno o più caratteri per produrre un carattere non trovato sulla tastiera, ad esempio premendo Compose, immediatamente seguito da "e apotrebbe produrre un ä.

Per impostazione predefinita, Composenon è associato a nessuna chiave 1 ; viene usato spesso il Alttasto destro (aka. Alt Gr), ma lo si imposta su qualsiasi tasto desiderato.

Impostalo usando xmodmap

È possibile utilizzare xmodmap per impostare questo:

$ xmodmap -e 'keysym Alt_R = Multi_key'     # Set it right Alt
$ xmodmap -e 'keysym Caps_Lock = Multi_key' # Set it to Caps Lock
$ xmodmap -e 'keysym F12 = Multi_key'       # You're free to use *any* key, like F12

Probabilmente vuoi aggiungere questo al tuo ~/.Xmodmapfile 2 :

! Set compose key
keysym Alt_R = Multi_key

Impostalo usando XKB

Puoi anche impostare la chiave di composizione come opzione su XKB con setxkbmap:

setxkbmap -option compose:ralt  # Right alt
setxkbmap -option compose:caps  # Caps Lock

Per renderli permanenti, aggiungi il comando al tuo file di avvio X o, in alternativa, puoi anche impostarlo in /etc/X11/xorg.conf:

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbOptions" "compose:ralt"
    #Option "XkbOptions" "compose:caps"
EndSection

Oppure, in uno stile più "moderno", puoi creare un file /etc/X11/xorg.conf.d/90-compose.conf:

Section "InputClass"
    Identifier "Set compose key"
    MatchIsKeyboard "on"
    Option "XkbOptions" "compose:ralt"
EndSection

Un elenco di possibili valori è disponibile nella xkeyboard-config(7)sezione "Posizione della chiave di composizione" 3 .

Impostazione chiavi morte

Una chiave morta viene utilizzata principalmente per aggiungere un accento o un segno diacritico a una lettera (come la tomba, accento grave, ecc.), Sebbene possa essere usata per creare qualsiasi personaggio. Funziona da ... TODO '

keycode 133 = dead_greek NoSymbol SuperR

http://zuttobenkyou.wordpress.com/2011/08/24/xorg-using-the-us-international-altgr-intl-variant-keyboard-layout/
http://stackoverflow.com/questions/14922007/how-to-enter-greek-alpha-under-xor
keycode 48 = dead_grave apostrophe


<dead_grave> <space>       : "`"   grave # GRAVE ACCENT
<dead_grave> <dead_grave>  : "`"   grave # GRAVE ACCENT
<dead_grave> <a>           : "À"   agrave # LATIN CAPITAL LETTER A WITH GRAVE

Creazione di un file ~ / .XCompose

Il file Compose predefinito se ~/.XComposemanca è /usr/share/X11/locale/$LANG/Compose. Il tuo ha ~/.XComposela precedenza su quello predefinito, ma puoi comunque includere quello predefinito con:

include "%L"

Le modifiche a qualsiasi file Compose hanno effetto al riavvio di un'applicazione. Non è necessario riavviare X.

Chiave di composizione

Una "sequenza di composizione" sta premendo il Composetasto e quindi uno o più caratteri per produrre un carattere, ad esempio:

<Multi_key> <quotedbl> <a> : "ä" adiaeresis

Significa che premendo Compose, immediatamente seguito da "e aproduce un ä.

<Multi_key>indica che stiamo usando la Composechiave. seguiamo quindi questo da un elenco di uno o più tasti, questi devono essere keysyms, che sono rappresentazioni simboliche dei tasti usati da X (Vedi la sezione Chiavi).

Seguito da a :, seguito dal risultato.

Il risultato:

<Multi_key> <a>          :  "ä" adiaeresis
<Multi_key> <b> <b>      :  "ä" adiaeresis
<Multi_key> <c> <c> <c>  :  "ä" adiaeresis
<Multi_key> Alt <d>      :  "ä" adiaeresis
<Multi_key> Ctrl <e>     :  "ä" adiaeresis

Nota : un file di composizione è sensibile al maiuscolo / minuscolo, quindi nonA è lo stesso di .a

Chiavi morte

FARE

Fallo funzionare in GTK e Qt

Impostare le variabili di ambiente GTK_IM_MODULEe QT_IM_MODULEsu xim.

Conchiglia Bourne:

# Make compose key work for GTK, Qt
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim

Shell C:

# Make compose key work for GTK, Qt
setenv GTK_IM_MODULE xim
setenv QT_IM_MODULE xim

Guarda anche

Mio ~/.XCompose

Questo è quello ~/.XComposeche uso ; Ho usato uno script per generarlo, ma l'ho sovrascritto per errore durante la compilazione> _ <Quindi ho bisogno di riscriverlo.

Prendi nota anche di questa linea:

<Multi_key> <i> <b> : "NL65AEGO0721647952"

Premendo Compose ibsi inserirà questa stringa (un numero IBAN di test casuale); molto utile per testare applicazioni in cui un tale numero è richiesto per creare un oggetto (Persona, Organizzazione); XCompose può anche fungere da strumento "snippet" :-)

Le note

1: Alcune tastiere UNIX avevano un Composetasto dedicato ( come questo SUN ), ma al giorno d'oggi è abbastanza raro.

2: A seconda della configurazione esistente, questo può o non può essere letto all'avvio, a seconda della configurazione, aggiungere la riga xmodmap ~/.Xmodmapa ~/.xinitrco ~/.xsession; vedi anche il wiki di ArchLinux .

3: riprodotto a tuo vantaggio:

    Position of Compose key
    +------------------------------------------------------+
    |Option                Description                     |
    +------------------------------------------------------+
    |compose:ralt          Right Alt                       |
    |compose:lwin          Left Win                        |
    |compose:lwin-altgr    3rd level of Left Win           |
    |compose:rwin          Right Win                       |
    |compose:rwin-altgr    3rd level of Right Win          |
    |compose:menu          Menu                            |
    |compose:menu-altgr    3rd level of Menu               |
    |compose:lctrl         Left Ctrl                       |
    |compose:lctrl-altgr   3rd level of Left Ctrl          |
    |compose:rctrl         Right Ctrl                      |
    |compose:rctrl-altgr   3rd level of Right Ctrl         |
    |compose:caps          Caps Lock                       |
    |compose:caps-altgr    3rd level of Caps Lock          |
    |compose:102           <Less/Greater>                  |
    |compose:102-altgr     3rd level of <Less/Greater>     |
    |compose:paus          Pause                           |
    |compose:prsc          PrtSc                           |
    |compose:sclk          Scroll Lock                     |
    +------------------------------------------------------+

1
Per Windows, usa Wincompose invece di Allchars. Fa esattamente quello che dice sulla scatola. Ho usato Allchars fino a quando non ho trovato Wincompose. Il limite della composizione è che non puoi avere una combinazione memorabile per raggiungere tutti i personaggi, solo quelli che usi spesso o che hanno una decomposizione logica.
Gilles 'SO- smetti di essere malvagio' il

@Gilles Grazie; WinCompose sembra carino. Hai ragione nel fatto che puoi inserire solo un sottoinsieme abbastanza limitato di caratteri "più usati". Per me questo è abbastanza> 95% del tempo. Per il resto utilizzo UniView ... Non sono a conoscenza di nulla di significativamente migliore ...
Martin Tournoij,

Per i personaggi usati raramente, uso Shapecatcher (nessuna integrazione dell'editor che conosco) o digito il nome del personaggio ( C-x 8 RETin un editor che non è vi, non so se Vim abbia qualcosa di simile).
Gilles 'SO- smetti di essere malvagio' il

1
Gli utenti di KDE non possono usare questo metodo poiché KDE retrocede la responsabilità per l'implementazione di questa funzione su Xorg e Xorg si relega su Qt e Qt torna su Xorg . Ne discuto sulla mia pagina sulla digitazione del testo RTL .
dotancohen,

@dotancohen Sembra un problema diverso (come in, richiesta di funzionalità).
Martin Tournoij,

20

Per inserire caratteri Unicode come l'euro o i simboli del copyright, o segni diacritici come il tedesco umlaut o accento grave, digraphspossono essere utilizzati.

Ad esempio, in modalità inserimento premere Ctrl+ ke digitare quanto segue:

  • Spagnolo: a'per á, E'per É, n?per ñ,
  • Tedesco: a:per ä, ssper ß,
  • altre lettere accentate: a!per à, a>per âper ê, a?per ã,
  • Greco: a*per α(alfa), b*per β(beta), g*per γ(gamma), d*per δ(delta).
  • numeri quadrati: 22per ², 33o³
  • valute: Euper (euro), Pdper £(sterlina),
  • Coper ©(Copyright), DGper °(Laurea),
  • OKper , XXper , Sbper (proiettile),
  • segni di punteggiatura: -Nper (trattino), -Mper (trattino)

Quando l'opzione digraph è impostata ( :set dg), è anche possibile utilizzare il seguente metodo:

  • aBackspace:per ä, EBackspaceuper , ecc.

Per elencare i digraph attualmente definiti digitare: :digraphs( :dig).

Fonte: inserimento di caratteri speciali nel sito Vim Wikia .


OS X

Se stai usando OS X, è molto facile digitare lettere accentate ovunque con il seguente metodo:

  • Option+ e, quindi aper á, eper é, iper íe simili,
  • Option+ n, quindi aper ã, nper ñe simili,
  • Option+ u, quindi uper ü,
  • segni di punteggiatura capovolti: Option+ 1per ¡, Option+ Shift+ ?per ¿,

Guarda anche:


6

Il mio plug-in Unicode consente di inserire facilmente caratteri Unicode. In particolare lo consente

  • :Digraph <name> - Cerca digraph per carattere

  • :UnicodeTable - Visualizza una tabella di set di caratteri

  • :UnicodeName - Identifica il carattere sotto il cursore

  • Completamento di caratteri utilizzando i loro nomi o valori dalla tabella unicode ( :h i_CTRL-X_CTRL-Z) o digarphs ( :h i_CTRL-X_CTRL_G)

Leggi la guida per maggiori informazioni su come usare il mio plugin.



3

Per i caratteri comunemente usati, :digrapho mezzi esterni come il tasto Compose citato sono grandi. Per quelli usati raramente, definisco abbreviazioni, in questo modo:

norea <unique> unicode_smiley 😃
norea <unique> unicode_skull ☠

E poi usa il mio plugin SnippetComplete per ottenere un menu popup che elenca tutte queste abbreviazioni, ad esempio:unicode_<C-x>]

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.