Il problema "<dead-acute> non è definito" appare quando si digita lo stress greco (')


11

Ho iniziato a usare Emacs e ho scritto un testo in greco. Il problema è che lo stress che viene usato su alcune lettere (ό, ύ, ί, ύ) non funziona!

Di solito viene inserito premendo il tasto ;(intendo premendo il tasto accanto a L) e quindi la lettera su cui verrà inserito. Questo è standard per una tastiera greca. Quando premo il tasto ;dice:

<dead-acute> is undefined. 

C-h c ; dice la stessa cosa.

Cosa posso fare per poter usare questa chiave?

Funziona in altre applicazioni, come un browser. Uso Ubuntu 14.04 e ho installato il suo emacspacchetto (Emacs 24.3.1).


Ho già riscontrato questo problema prima, ma non ricordo quale fosse la causa. Assicurati che il tuo sistema operativo non stia utilizzando un layout di tastiera diverso per Emacs. Alcuni sistemi operativi possono avere layout di tastiera specifici dell'applicazione, quindi anche se quel tasto funziona ovunque, il problema potrebbe essere nel sistema. In caso contrario, sono sicuro che qualcuno avrà la tua risposta qui. :-)
Malabarba,

(Non sono sicuro se questo aiuta.) Ho questo problema a seconda della modalità di input della tastiera del mio sistema operativo. Il mio input da tastiera predefinito usa 'dead keys' così posso aggiungere â © çéñtß; ma a volte voglio inserire (antico) greco in Emacs usando greek-ibycus4, e i due sistemi si scontrano. Risolvo questo problema modificando il mio input generale in un layout di chiave non morta (usando, ad esempio, setxkbmap -layout us); quindi cambio modalità in Emacs; poi torno al ucsmetodo di input per Emacs e corro setxkbmap -layout us -variant intlper recuperare le mie chiavi morte. ... Non ideale !! Ma non ho nemmeno bisogno del greco molto spesso.
Jon

Grazie per i vostri commenti, ma il problema è che le sollecitazioni sono fondamentali in greco. Quasi ogni parola ha bisogno di stress e ovviamente funziona ovunque, quindi non so cosa fare.
Adam,

@Adam - Avrei dovuto anche chiedere: qual è il layout di tastiera predefinito per Ubuntu? Ovviamente non stai scrivendo greco ora, quindi potrebbe esserci una discrepanza tra il layout di tastiera definito dal sistema operativo e il metodo di input in Emacs. Per poter scrivere accenti e respiri greci in Emacs , devo prima cambiare la mia "tastiera Ubuntu" in un layout QWERTY più generico. Forse hai uno scontro simile. Da un terminale, setxkbmap -querystamperà la tastiera del sistema operativo; o puoi guardare nel unity-control-panelcredo.
Jon

@jon Dice regole: evdev, modello pc105, layout noi, e quando si scrive greco dice layout: gr, noi.
Adam,

Risposte:


6

Prova ad aggiungere (require 'iso-transl)al tuo .emacsfile.


1
Questa è stata la prima cosa che ho provato e non funziona.
Adam,

Oh, scusa per quello ... Ho avuto un problema simile al tuo e l'aggiunta di quella linea ha fatto la correzione per me, però.
Arthur Azevedo De Amorim,

Sì, lo so che questa è una soluzione comune!
Adam,

5

Dopo lunghe ricerche e sperimentazioni ho trovato il modo di riuscire a usare lo stress. Inoltre, va notato che non è il modo migliore (tecnicamente non risolve il problema ma ottieni quello che vuoi). Ho usato il seguente comando di associazione dei tasti per ogni lettera che utilizza uno stress:

(global-set-key (kbd "<dead-acute> α") "ά")

(global-set-key (kbd "<dead-acute> ε") "έ")

eccetera...

Basti dire che se qualcuno trova un modo migliore è il benvenuto per condividerlo con noi in quanto questo è ovviamente solo un compromesso.


1

Sostituisci il cambio di lingua del sistema operativo e usa MULE.

In Emacs, premere C-\. Richiede un metodo di input.

Digitare greeke quindi cambiare lingua con C-\.


0

Se il tuo sistema operativo o l'interfaccia di Emacs ad esso in qualche modo passa chiavi morte in quanto tali invece di elaborarle, puoi tradurre le combinazioni di chiavi morte in Emacs stesso. Usa input-decode-mapper questo: in questo modo, la sequenza di tasti viene effettivamente tradotta in una singola pressione di un tasto e il ciclo di comando vede un self-insert-command. Questo è preferibile per associare la chiave a una macro nella mappa globale perché interrompe i meccanismi che si basano sull'inserimento automatico di testo, come i gruppi di annullamento.

(define-key input-decode-map [dead-acute ?ο] ?ό)

Puoi scrivere un ciclo come questo:

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))
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.