ギリシャ語のストレス( ')を入力すると「<dead-acute> is undefined」という問題が表示される


11

私はEmacsを使い始め、ギリシャ語でテキストを書きました。問題は、一部の文字(ό、ύ、ί、ύ)に使用されているストレスが機能しないことです。

通常は;(Lの横のキーを押すことを意味します)を押して挿入され、次に挿入される文字が挿入されます。これはギリシャ語キーボードの標準です。私が押すと;それは言う:

<dead-acute> is undefined. 

C-h c ; 同じことを言います。

このキーを使用できるようにするにはどうすればよいですか?

ブラウザなどの他のアプリケーションで動作します。私はUbuntu 14.04を使用していemacsますが、そのパッケージ(Emacs 24.3.1)をインストールしました。


私自身もこの問題に遭遇しましたが、何が原因なのか思い出せません。オペレーティングシステムがEmacs用の別のキーボードレイアウトを使用していないことを確認してください。一部のOSではアプリケーション固有のキーボードレイアウトを使用できるため、そのキーが他の場所でも機能する場合でも、システムに問題がある可能性があります。それがそうでなければ、誰かがあなたの答えをここに持っていると確信しています。:-)
マラバルバ2014年

(これが役立つかどうかはわかりません。)私のOSキーボード入力モードによっては、この問題が発生します。私のデフォルトのキーボード入力は「デッドキー」を使用するので、â©çéñtßを追加できます。しかし、を使用してEmacsで(古代の)ギリシャ語を入力したい場合がgreek-ibycus4あり、2つのシステムが衝突します。この問題を回避するには、一般的な入力を非デッドキーレイアウトに変更します(例:を使用setxkbmap -layout us)。次に、Emacsでモードを切り替えます。次にucs、Emacs のインプットメソッドにsetxkbmap -layout us -variant intl戻り、実行してデッドキーを取得します。...理想的ではない!! しかし、ギリシャ語はあまり必要ありません。
2014年

コメントをありがとうございますが、問題はギリシャ語でストレスが基本的であるということです。ほとんどすべての単語はストレスを必要とし、それは明らかに他のどこでも機能しているので、私は何をすべきかわかりません。
アダム

@アダム-私も尋ねるべきだった:Ubuntuのデフォルトのキーボードレイアウトは?明らかに今はギリシャ語を書いていないので、OSで定義されたキーボードレイアウトとEmacsの入力メソッドとの間に不一致がある可能性があります。Emacsでギリシャ語のアクセントと呼吸を書くには、まず「Ubuntuキーボード」をより一般的なQWERTYレイアウトに切り替える必要があります。おそらく、同様の衝突があります。端末からsetxkbmap -query、OSキーボードを印刷します。またはあなたはunity-control-panel私が考えると見ることができます。
2014年

@jonルール:evdev、モデルpc105、レイアウト、そしてギリシャ語を書くとき、レイアウト:gr、私たちと言います。
アダム

回答:


6

ファイルに追加(require 'iso-transl)してみてください.emacs


1
それは私が最初に試みたものであり、それは機能しません。
Adam

ああ、ごめんなさい...私はあなたと同じような問題を抱えていましたが、その行を追加すると修正されました。
Arthur Azevedo De Amorim 14

はい、これが一般的な解決策であることを知っています!
Adam

5

徹底的な調査と実験の結果、ストレスをうまく利用する方法を見つけました。また、それが最善の方法ではないことにも注意する必要があります(技術的には問題を解決しませんが、必要なものは得られます)。ストレスを使用するすべての文字に次のキーバインドコマンドを使用しました。

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

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

等...

これは明らかに妥協に過ぎないので、誰かがより良い方法を見つけた場合、それを私たちと共有することを歓迎しますと言うだけで十分です。


1

オペレーティングシステムの言語切り替えをオーバーライドし、MULEを使用します。

Emacsでは、を押しC-\ます。インプットメソッドを要求します。

greek言語を入力して切り替えますC-\


0

オペレーティングシステムまたはそれへのEmacsのインターフェイスがデッドキーを処理するのではなく、何らかの形で渡す場合、Emacs自体でデッドキーの組み合わせを変換できます。input-decode-mapそのために使用します。このように、キーシーケンスは実際には1回のキープレスに変換され、コマンドループはを認識しself-insert-commandます。これは、キーをグローバルマップのマクロにバインドするよりも好ましいです。これにより、元に戻すグループなど、テキスト入力が自己挿入されることに依存するメカニズムが機能しなくなります。

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

次のようなループを書くことができます:

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.