T: bagaimana cara beralih antara metode input untuk bahasa yang berbeda saat menggunakan tata letak keyboard yang tidak standar?
Saya harus mengedit teks dalam dua bahasa yang berbeda. Saya ingin dapat menggunakan ikatan kunci saya di kedua bahasa, kecuali, tentu saja, ketika memasukkan teks ke buffer. Sepertinya saya harus dapat toggle-input-method
( C-\
) dan memilih bahasa alternatif.
Sejauh ini, hampir begitu bagus.
Inilah intinya: Saya menggunakan tata letak bahasa Inggris Dvorak, yang saya atur di tingkat OS (yaitu, dengan setxkbmap
). Ketika saya toggle-input-method
, teks yang saya masukkan akan benar jika saya memiliki tata letak QWERTY (standar di AS), tetapi keluar sebagai omong kosong karena saya menggunakan Dvorak. (FWIW, ketika saya mengubah tata letak saya ke standar AS, itu berfungsi dengan baik.)
Jadi: bagaimana saya memberi tahu Emacs bahwa saya menggunakan Dvorak sehingga toggle-input-method
dan teman-teman menerjemahkan penekanan tombol saya ke karakter yang benar dalam bahasa lain?
sumber
Jawaban:
Ada metode untuk mengubah definisi tata letak fisik untuk metode input dengan mengatur
quail-keyboard-layout-type
. Tapi sepertinya Dvorak bukan salah satu kandidat diquail-keyboard-layout-alist
Emacs 24.4 saya.Anda dapat menentukan tata letak keyboard fisik baru dengan melihat definisi
quail-keyboard-layout-alist
inquail.el
atau membuat metode input baru dengan mendefinisikan kunci bahasa Arab yang sesuai untuk tata letak Dvorak.Saya tidak berpengalaman dalam yang pertama, tetapi saya bisa bersaksi bahwa pendekatan kedua lebih mudah daripada yang Anda pikirkan. (Saya harus membuat metode input Turki Ottoman di atas Persia.) Salin
arabic.el
(yang berada di sistem Debian saya di/usr/share/emacs/24.4/lisp/leim/quail/arabic.el.gz
) ke rumah Andasite-lisp
dan ubah kunci sesuai keinginan Anda. Juga, jangan lupa untuk mengubah nama metode input dll. Anda baru saja membuat metode input Dvorak-Arab baru.Saya dapat memperbarui jawabannya dengan lebih detail jika ada yang tampak rumit.
sumber
...-alist
versi.quail-. *-alist
ke pengembangan Emacs. Saya yakin ada pengguna Dvorak lain yang akan mendapat manfaat dari itu.@EmreSahin menempatkan saya di jalan yang benar untuk menjawab pertanyaan ini, jadi saya memberikan sedikit detail kalau-kalau ada orang lain yang harus berurusan dengan masalah seperti ini sendiri.
Seperti yang ditunjukkan Emre, kita perlu menambahkan tata letak Dvorak
quail-keyboard-layout-alist
. Ternyataquail
perpustakaan tidak terdokumentasi dengan baik dalam manual , di mana dua fungsi terkait disebutkan lewat satu node.Namun, setelah berkonsultasi dengan utas bantuan ini dan, terutama, halaman EmacsWiki pada bahasa Rusia dengan Dvorak (dari mana boks jawaban ini), saya pikir saya sudah menemukannya.
Docstring untuk variabel
quail-keyboard-layout
menjelaskan apa yang perlu kita masukkanquail-keyboard-layout-alist
. Ini adalah string panjang yang sesuai dengan 6 baris masing-masing 15 kunci. Setiap baris sesuai dengan nilai yang tidak tergeser dan bergeser dari setiap tombol, dengan total 30 karakter per baris. Saya kurang yakin tentang poin berikut, tetapi tampaknya, untuk apa yang saya sebut keyboard "semi-standar" dengan 4 baris kunci, baris pertama dan keenam masing-masing harus 30 ruang kosong.The big mengungkapkan:
sumber