Masalah "<dead-acute> tidak terdefinisi" muncul ketika mengetikkan tekanan Yunani (')

11

Saya mulai menggunakan Emacs dan saya menulis teks dalam bahasa Yunani. Masalahnya adalah bahwa tekanan yang digunakan pada beberapa huruf (ό, ύ, ί, ύ) tidak berfungsi!

Biasanya disisipkan dengan menekan ;(maksud saya dengan menekan tombol di sebelah L) dan kemudian huruf yang akan dimasukkan. Itu standar untuk keyboard Yunani. Ketika saya menekannya ;tertulis:

<dead-acute> is undefined. 

C-h c ; mengatakan hal yang sama.

Apa yang bisa saya lakukan untuk dapat menggunakan kunci ini?

Ini berfungsi di aplikasi lain, seperti browser. Saya menggunakan Ubuntu 14.04 dan saya menginstal emacspaketnya (Emacs 24.3.1).

Adam
sumber
Saya pernah mengalami masalah ini sebelumnya, tetapi saya tidak ingat apa penyebabnya. Pastikan sistem operasi Anda tidak menggunakan tata letak keyboard yang berbeda untuk Emacs. Beberapa OS dapat memiliki tata letak keyboard khusus aplikasi, jadi meskipun tombol itu berfungsi di tempat lain masalahnya mungkin ada di sistem. Jika bukan itu, saya yakin seseorang akan memiliki jawaban Anda di sini. :-)
Malabarba
(Tidak yakin apakah ini membantu.) Saya memiliki masalah ini tergantung pada apa mode input keyboard OS saya. Input keyboard default saya menggunakan 'kunci mati' sehingga saya dapat menambahkan â © çéñtß; tapi saya kadang-kadang ingin memasukkan (kuno) Yunani dalam menggunakan Emacs greek-ibycus4, dan dua sistem berbenturan. Saya mengatasi masalah ini dengan mengubah input umum saya ke tata letak kunci yang tidak mati (menggunakan, misalnya, setxkbmap -layout us); kemudian saya beralih mode di Emacs; kemudian saya beralih kembali ke ucsmetode input untuk Emacs dan lari setxkbmap -layout us -variant intluntuk mendapatkan kembali kunci mati saya. ... Tidak ideal !! Tetapi saya juga tidak terlalu membutuhkan bahasa Yunani.
jon
Terima kasih atas komentar Anda tetapi masalahnya adalah tekanannya mendasar dalam bahasa Yunani. Hampir setiap kata membutuhkan tekanan dan itu jelas bekerja di tempat lain sehingga saya tidak tahu harus berbuat apa.
Adam
@ Adam - Seharusnya saya juga bertanya: apa tata letak keyboard default Anda untuk Ubuntu? Jelas Anda tidak sedang menulis bahasa Yunani sekarang, jadi mungkin ada ketidakcocokan antara tata letak keyboard yang ditentukan OS Anda dan metode input Anda di Emacs. Agar saya dapat menulis aksen dan nafas dalam bahasa Yunani di Emacs , saya harus terlebih dahulu mengalihkan "keyboard Ubuntu" saya ke tata letak QWERTY yang lebih umum. Mungkin Anda memiliki sejenis bentrokan. Dari terminal, setxkbmap -queryakan mencetak keyboard OS; atau Anda dapat melihat unity-control-panelsaya pikir.
jon
@jon Katanya aturan: evdev, model pc105, tata letak kami, dan saat menulis yunani mengatakan tata letak: gr, us.
Adam

Jawaban:

6

Coba tambahkan (require 'iso-transl)ke .emacsfile Anda .

Arthur Azevedo De Amorim
sumber
1
Itu adalah hal pertama yang saya coba dan tidak berhasil.
Adam
Oh, maaf soal itu ... Tapi saya punya masalah yang mirip dengan Anda dan menambahkan garis yang memperbaiki saya.
Arthur Azevedo De Amorim
Ya saya tahu ini adalah solusi umum!
Adam
5

Setelah pencarian dan eksperimen yang ekstensif, saya menemukan cara untuk berhasil menggunakan stres. Juga harus dicatat bahwa itu bukan cara terbaik (secara teknis itu tidak menyelesaikan masalah tetapi Anda mendapatkan apa yang Anda inginkan). Saya menggunakan perintah binding kunci berikut untuk setiap huruf yang menggunakan tekanan:

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

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

dll ...

Cukuplah untuk mengatakan bahwa jika ada orang yang menemukan cara yang lebih baik dipersilahkan untuk membagikannya kepada kami karena ini jelas hanya kompromi.

Adam
sumber
1

Ganti bahasa alih sistem operasi dan gunakan MULE.

Di Emacs, tekan C-\. Ia meminta metode input.

Ketik greeklalu ganti bahasa dengan C-\.

philnik
sumber
0

Jika sistem operasi Anda atau antarmuka Emacs untuknya entah bagaimana melewatkan kunci mati, alih-alih memprosesnya, Anda dapat menerjemahkan kombinasi kunci mati di Emacs itu sendiri. Gunakan input-decode-mapuntuk itu: dengan cara ini, urutan kunci sebenarnya diterjemahkan ke dalam satu penekanan tombol, dan loop perintah melihat a self-insert-command. Ini lebih disukai daripada mengikat kunci ke makro di peta global karena ini memecah mekanisme yang bergantung pada input teks yang dimasukkan sendiri, seperti membatalkan grup.

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

Anda dapat menulis loop seperti ini:

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))
Gilles 'SANGAT berhenti menjadi jahat'
sumber