Sto scrivendo una funzione che restituisce informazioni linguistiche sul carattere al punto. Questo è facile per i personaggi precompilati. Tuttavia, desidero rendere conto dei segni diacritici. Credo che questi siano indicati come "segni" o "combinazione di caratteri" in Unicode (vedi il piano U + 0300 - U + 036F).Ricerca di segni diacritici per carattere al punto in emacs
Ad esempio, per posizionare il diacritic accentramento (U + 0306) sul personaggio e:
e C-x 8 <RET> 0306 <RET>
Run C-u C-x =
sul carattere risultante e vedrete qualcosa di simile ", composto con il carattere successivo (s) 01 "
Funzioni come following-char
purtroppo restituiscono solo il carattere di base, ad esempio" e ", e ignorano qualsiasi diacritico combinato. C'è un modo per ottenere questi?
MODIFICA: slitvinov ha sottolineato che il glifo risultante è costituito da due caratteri. Se si posiziona il punto prima del glifo creato dal codice precedente e si esegue (point)
prima e dopo aver eseguito forward-char
, si vedrà aumentare il punto di 2. Ho pensato che avrei potuto modificare una soluzione attraverso questo comportamento, ma sembra che all'interno di un'istruzione progn
(o definizione della funzione), forward-char
si sposta solo in avanti di un punto ... provalo in uno defun
o con (progn (forward-char) (point))
. Perché potrebbe essere?
Buona cattura. Se creo ĕ usando il segno diacritico U + 0306, posto il punto prima del carattere risultante, ed eseguo 'forward-char', il punto aumenta di due. C'è un problema con questo in una funzione, tuttavia, vedere la mia modifica. – Dan