2012-10-28 10 views
5

私は2つのキーボードレイアウトを使用しています.1つは母国語用、もう1つは英語です。 母国語のキーボードレイアウトに切り替えて、キーバインドコマンドを実行しようとすると問題が発生します。emacsで異なるキーボードレイアウトのキーバインディング

デフォルトの英語レイアウトのバインディングを使って、すべてのコマンド(Cキー、Mキーなど)を扱うようにemacsに指示する簡単な方法はありますか?

私はこの質問を見てきました

Emacs determining keyboard layout 1つの答えは自分応じて英語レイアウトキーにすべてのキーをシミュレートしますが、それは時間をロード食べる言及し、およびコードは、長い読めないので、おそらく誤りであるされているが私に腹を立てる。

助けていただければ幸いです。

+2

トリッキー、 "私はemacs上で英語キーボードを使用し、自分の言語を書いてみたい場合は、emacs inbuilt input systemを使用しています。 'C- \'または 'M-xトグル入力メソッド' – kindahero

+0

まあ、私はそれのためのメタシフトを持っています(私はすべての多言語レイアウトがそのキーを使用します)が、私は通常、それが利用できないことを知るためにコマンド(例えば保存)のために自動的に達する。いくつかのケースでは、キーがスワップされます。たとえば、qが/に変わると、予測できなくなります。 – CrimsonKing

答えて

3

2つのレイアウトが完全に異なる文字を使用している場合、単に他の文字を試すことができます。例えば。一つのキーは、米国のレイアウトでbが、他のレイアウトでиであれば、あなたが使用することができます。

(define-key function-key-map [?и]  [?b]) 
(define-key function-key-map [?\C-и] [?\C-b]) 
(define-key function-key-map [?\M-и] [?\M-b]) 
(define-key function-key-map [?\M-\C-и] [?\M-\C-b]) 

大藤を2つのレイアウトは、いくつかの文字をスワップ終わる場合、Emacsは実際に順番にアクティブなレイアウトを知っておく必要がありますキーを再マッピングするかどうかを知る。 Emacsがどのレイアウトが現在使われているかを教えてもらう方法を知るために、キーボードの操作については十分に分かっていません。

+0

"すべてのコマンドキーを定義し、常に英語のレイアウトを使う"のように、グローバルなものを作るのはすばらしいでしょう。 – CrimsonKing

+0

@EladR:すべてのキーはコマンドキーです。つまり、基本的にはEmacsに常にUSのレイアウトを使うように要求しています。そして、 'self-insert-command'では、アメリカ以外のレイアウトをどうにか回復します。場合によっては、米国以外のバージョンのキーを各イベントにアタッチすることで、これを行うことができます。 – Stefan

3

多くのレイアウトマネージャは、アプリケーション(またはウィンドウ)でも独自のレイアウトを維持できます。 Emacsの英語のレイアウトを使って母国語を書いて、入力方法を切り替えてください(C- \)。

+0

初めて言語を選択する必要がありますが、その後は自動的にデフォルト(英語)と選択した言語が切り替わります。私が切り替えるたびに私の入力方法を選択する必要はありません:)しかし、Emacsを閉じて開くと入力を選択する必要があります。そうすれば、入力方法はおそらくemacsのinitファイルで設定することができます。 – h3dkandi

関連する問題