異なる言語のキーボードレイアウトを切り替える方法は?


10

Q:非標準のキーボードレイアウトを使用しているときに、異なる言語の入力方法を切り替えるにはどうすればよいですか?

2つの異なる言語でテキストを編集する必要があります。もちろん、テキストをバッファに挿入する場合を除いて、2つの言語間でキーバインドを使用できるようにしたいと思います。toggle-input-methodC-\)で代替言語を選択できるはずです。

これまでのところ、ほとんど問題ありません。

ここに問題があります。私は、OSレベルで(つまり、setxkbmap)設定した英語のDvorakレイアウトを使用します。とき私はtoggle-input-method、私はQWERTYレイアウト(米国での標準)を有していたが、私はドヴォルザークの上だからちんぷんかんぷんのように出てくる場合は、テキストIインサートは正しいだろう。(FWIW、レイアウトを標準のUSに切り替えると、正常に動作します。)

それで、私がDvorakを使用していることをEmacsに通知しtoggle-input-method、友人が私のキープレスを他の言語の正しい文字に変換する方法を教えてください


swedish-postfixやその他の合成入力メソッドがうまくいきますが、どの方法で問題がありますか?
shapr 2014年

@shapr:英語とアラビア語を切り替えています。問題は、OSレベルでDvorakレイアウトを使用しているようです。OSレベルで標準のUSレイアウトを使用すると切り替えが正常に機能するためです。
ダン

回答:


7

を設定してインプットメソッドの物理レイアウト定義を変更する方法がありますquail-keyboard-layout-type。しかしquail-keyboard-layout-alist、私のEmacs 24.4では、Dvorakが候補の1つではないようです。

quail-keyboard-layout-alistinの定義を確認して新しい物理キーボードレイアウトを定義するquail.elか、Dvorakレイアウトに対応するアラビア語キーを定義して新しいインプットメソッドを作成できます。

私は最初の方法では経験がありませんが、2つ目の方法が思ったより簡単であることを証明できます。(私はペルシア語の上にオスマントルコ語の入力メソッドを作成する必要がありました。)arabic.el(私のDebianシステムのにある/usr/share/emacs/24.4/lisp/leim/quail/arabic.el.gz)自宅にコピーしsite-lisp、好みに応じてキーを変更します。また、インプットメソッド名などを変更することを忘れないでください。新しいDvorak-Arabicインプットメソッドを作成しました。

何かが複雑に思える場合は、詳細を追加して回答を更新できます。


ありがとうございました!それは私を正しい道に導きました。私が...-alistバージョンにたどり着いた方法を説明する追加の回答を投稿します。
ダン

どういたしまして。quail-. *-alistEmacs開発へのアップデートを提出することを考えるかもしれません。私はそれから利益を得る他のDvorakユーザーがいると確信しています。
Emre Sahin、2014年

7

@EmreSahinは私にこの質問に答える正しい道を示したので、他の誰かがこのような問題に自分自身で対処しなければならない場合に備えて、私は少し詳細を説明します。

Emreが指摘するように、Dvorakレイアウトをに追加する必要がありますquail-keyboard-layout-alist。これは、ことが判明したquailライブラリがで十分に文書化されていないマニュアル二つの関連の機能を1つのノードに渡すことで言及されています、。

しかし、このヘルプスレッド、特にDvorakを使用したロシア語EmacsWikiページ(この回答はそこから引用しています)を調べ結果理解できたと思います。

変数のdocstringは、quail-keyboard-layout何を入れる必要があるかを説明しquail-keyboard-layout-alistます。これは、それぞれ15キーの6行に対応する長い文字列です。各行は、各キーのシフトされていない値とシフトされた値に対応し、1行あたり合計30文字です。次の点についてはよくわかりませんが、4行のキーを持つ「準標準」キーボードと呼ぶ場合、1行目と6行目はそれぞれ30個の空白スペースである必要があります。

大きな明らかに:

(require 'quail)

(add-to-list 'quail-keyboard-layout-alist
             `("dvorak" . ,(concat "                              "
                                   "  1!2@3#4$5%6^7&8*9(0)[{]}`~  "
                                   "  '\",<.>pPyYfFgGcCrRlL/?=+    "
                                   "  aAoOeEuUiIdDhHtTnNsS-_\\|    "
                                   "  ;:qQjJkKxXbBmMwWvVzZ        "
                                   "                              ")))

(quail-set-keyboard-layout "dvorak")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.