38

alt/キーをメタ キーとして使用する方法はありoptionますが、それを必要とする一部の文字を作成するために使用できますか?

たとえば、私のローカル キーボード レイアウトでは次のようになります。

  • @alt+2
  • \alt+ shift+7
  • |alt+7

なので、altメタキーに設定してしまうと、それらの文字が作れなくなります。一方、「escを押してescを離し、キーを押す」を使用してメタキーシーケンスを作成すると、手が痛くなります。

これを解決した国際キーボードを使用する Emacs ユーザーは、何かヒントを教えてください! :)

編集:

altメタ キーとして設定し、inputrc に次のような設定を追加できるようです。これ"\e2": "@"は bash シェルでは機能しますが、Emacs ではまだ機能しないので、ダメです。

4

16 に答える 16

25

私はMacOSXでスウェーデン語のキーボードを使用し、Emacs.appには次のセットアップを使用しています。

まず、KeyRemap4MacBookをインストールし、左側のOptionキーをCommandに変更するように設定しました。

次に、.emacsに次のものがあります。

(setq mac-option-modifier 'none)
(setq mac-command-modifier 'meta)

これにより、Emacsはコマンドをメタとして扱い、オプションを無視します。左側のAlt/Optionキーはコマンドに再マップされるため、これによりライトメタで機能し、右側のAlt/Optionキーは@[]や{}などの特殊文字を入力するために機能します。

Cmd+CやCmd+Vなどのアプリ固有のMacショートカットは機能しなくなりましたが、Spotlight用のCmd+spaceやアプリ切り替え用のCmd+Tabなどのグローバルショートカットは機能します。

Update: If you use iTerm2 as a Terminal, that has support for mapping only the left Alt/Option key to meta, which means you can still use the right AltGr/Option key for entering special characters. This also means you can use meta as normal inside Emacs running in the iTerm2 terminal.

于 2010-08-03T17:55:46.127 に答える
15

私の Mac にはスウェーデン語のキーボードがあり、Aquamacs を使用しています。2 行追加 (出典は Joakim Hårsman に帰属)

(setq mac-option-modifier 'none)
(setq mac-command-modifier 'meta)

.emacs(およびAquamacsを再起動すると)うまくいきました。

于 2011-02-20T12:00:04.660 に答える
12

iTerm2 では、左のオプション キーを ESC/meta にマッピングし、右のオプション キーのマッピングを「通常」のままにすることができます。このようにして、正しいオプション キーを使用してアクセントなどを入力できます。

iTerm2 設定

于 2011-09-09T19:51:22.850 に答える
10

Mac OS X 用のフル機能の Emacs を使用することを考えてみてください。私は Carbon Emacs を使用していますが、他のもの (Aqua Emacs や X11 Emacs など) でうまくいくと思います。

どうしても端末で Emacs を使用する場合は、C-x 8プレフィックスを構成キーとして使用できます。C-x 8 C-h可能性のリストを取得してみてください。

http://www.emacswiki.org/emacs/EmacsForMacOSを参照してください。

于 2009-02-13T09:35:30.490 に答える
5

私が使用する2つの回避策:

  • X11.appで実行されているxtermを使用しています。X11.appは、コマンドキーをメタとして使用します。
  • Terminal.appでemacsを実行するときは、rfc1345 input-methodを使用するだけです。これにより、オプションキーを必要とせずに、あらゆる種類のクレイジーな非ASCII文字を入力できます。
于 2009-02-01T13:34:56.113 に答える
5

これは古い投稿ですが、ロボットが見つけるための代替手段を追加しています。私はAquamacs(emulate -mac-keyboard-mode.el、aquamacs-tools.el )から問題を修正するいくつかのファイルを借りました(私はItalian-Proキーボードを持っています):

(defun aq-binding (any)
 nil)
(load  "~/.emacs.d/emulate-mac-keyboard-mode.el") ;;  'noerror

これは以下を提供します:

  • いくつかのマイナーモード(emulate-mac-italian-keyboard-mode、emulate-mac-french-keyboard-mode、mulate-mac-swiss-german-keyboard-modeなど)
  • Aquamacsが提供するすべてのオプションで遊ぶためのメニュー

Emacs-23.3-universal-10.6.6でテストされており、私にとっては問題なく動作しているようです。

Aquamacsに感謝します。まだ行っていない場合は、これをアップストリームにプッシュするのはどうでしょうか。

于 2011-09-02T13:30:59.500 に答える
5

cmd-key-happyをチェックしてください。この小さなアプリは私にとって不思議に働いています。設定可能な例外を除いて、コマンドをメタとして使用できます。

著者の情報は次のとおりです。

このプログラムを使用すると、任意のアプリケーション、特にTerminal.appでコマンドキーとalt(またはオプション)キーを交換できます。

http://github.com/aim-stuff/cmd-key-happy

于 2010-04-08T11:28:34.427 に答える
4

オプションのデッドキーを使用した特別なキーボード レイアウト

この問題に対する私の解決策は、私が書いたUS customという特別なキーボード レイアウトです。物理修飾キーを使用せずにオプション コンボを生成するオプションデッドキーを提供します。⌥ Optionたとえば、文字 ⟨ç⟩ は、通常の US キーボード レイアウトでは次のように生成されます。

  • +を⌥ Option押しcます。

US カスタムキーボード レイアウトは、⟨ç⟩ を生成する 2 つ目の方法を追加します。

  • ⇧ Shift+ (オプションのデッドキー§) を押して離し、次に を押しますc

Use option as meta keyがチェックされている場合、これは Terminal.app でも機能します。

US カスタム キーボード レイアウトでは、次の 2 つの追加処理が行われることに注意してください。

  1. プレーン§をキーに変換します(したがって、 、次に、次にを押すことで⎄ Compose⟨ç⟩ を生成することもできます)。§,c
  2. CapsLock マッピングを (大幅に拡張された) US Extendedキーボード レイアウトに置き換えます。

オプションのデッドキーを右のオプション修飾キーにリマップ

物理的な ANSI キーボードを使用している場合は、§キーがありません。その場合、§キーを他のキー、たとえば右の⌥ Option修飾キーに割り当てることをお勧めします。KeyRemap4MacBookをインストール~/Library/Application\ Support/KeyRemap4MacBook/private.xmlし、次のコードを開いて貼り付けます。

<?xml version="1.0"?>
<root>
<item>
  <name>Send ISO Section for right Option</name>
  <identifier>private.send_iso_section_for_right_option</identifier>
  <autogen>--KeyToKey-- KeyCode::OPTION_R, KeyCode::UK_SECTION</autogen>
</item>
<item>
  <name>Send Shift+ISO Section for Shift+right Option (keep normal right Option without Shift)</name>
  <identifier>private.send_shift_iso_section_for_shift_right_option</identifier>
  <autogen>--KeyToKey-- KeyCode::OPTION_R, ModifierFlag::SHIFT_R, KeyCode::UK_SECTION, ModifierFlag::SHIFT_L</autogen>
  <autogen>--KeyToKey-- KeyCode::OPTION_R, ModifierFlag::SHIFT_L, KeyCode::UK_SECTION, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

次に、KeyRemap4MacBook 設定ペインを開き、ReloadXMLをクリックして、「適切なオプションの ISO セクションを送信」を選択します。現在、⌥ Right Optionキーは に再マッピングされて§いるため、US カスタムキーボード レイアウトがアクティブな間、 ⇧ Shift+⌥ Right Optionを押すとオプション デッドキー状態になります (⌥ Right Option追加の修飾子なしで押すと、オプション修飾子と同等のデッドキー状態になります。

(キーの代わりに)押されていない⌥ Right Optionときに保持したい場合は、KeyRemap4MacBook設定ペインで「Shift +右オプションのShift + ISOセクションを送信(Shiftなしで通常の右オプションを保持)」を選択します(「ISOセクションを送信」の代わりに)右オプション」)。そのように、 +のみがオプションのデッドキーを生成し、plainは引き続きオプション修飾子として機能します。最初にヒットしない限り、+モディファイヤ コンボ (たとえば+ + →⟨Ç⟩)を使用し続けることもできます。⇧ Shift⎄ Compose⇧ Shift⌥ Right Option⌥ Right Option⌥ Right Option⇧ Shift⌥ Right Option⇧ Shiftc⇧ Shift

于 2011-02-14T16:28:20.217 に答える
4

質問の背後にある仮定について考える価値があります。本当の問題は、現在オプション キーが必要と思われる文字を作成することです。この問題は、「メタ キー + alt 機能」を同時に実現しなくても解決できます。

説明させてください:私は同様の問題を抱えています。私の英国キーボードでは、shift-3 はポンド記号 £ にマッピングされています。つまり、非常に便利な # を取得するには、通常、オプション 3 を押す必要があります。これは、オプションをメタとして使用するターミナルでの実際の問題です。ただし、上記のソリューションのほとんどは少しやり過ぎであることがわかりました。別のバージョンの Emacs (Aquamacs など) に変更したり、別のターミナル アプリケーション (iTerm や xterm など) に切り替えたり、キー再マッピング アプリケーション (KeyRemap4MacBook など) をインストールしたりしたくありません。 1つのシンボルの!人によってはそれでいいのかもしれませんが、問題が 1 文字だけであれば、9 文字のテキスト ファイルで解決できることを指摘しておく価値があると思いました。

この問題の私の個人的なバージョンに関して、最も簡単な解決策は.inputrc、次の 1 行で構成される、ホーム ディレクトリに呼び出されるファイルを作成することです。

"§": "#"

これは、現在の Mac キーボードの 1 の左側にある (私にとってはまったく役に立たない) § を (ほとんど不可欠な) # に再マップします。これは、キーを 1 回押すだけで # を取得できるため、デフォルトの設定よりもさらに適しています。再マップする必要がある他の文字があれば、それぞれに余分な行を追加するだけです.

とにかく、それはシェルで欠落している文字を取得する方法を扱いますが、Emacsでもそれが必要な場合(あなたは言いませんでしたが、おそらくそうです)、次のようなものを.emacsファイルに追加できます(35はたまたま必要な文字の ASCII、つまり #):

(global-set-key (kbd "§") 'insert-hash)
(defun insert-hash ()
  (interactive)
  (insert 35))

オプションキーを介して日常的にアクセスしたい数十の文字がある場合、それはそれほどきちんとした解決策ではないかもしれませんが、そうではありません.

これが誰かに役立つことを願っています。単なる週末のハッカーとして、私は通常、スタック オーバーフローに質問への回答を投稿する勇気はありません...

于 2012-06-01T21:25:29.807 に答える
3

次の解決策は機能し、 OBTRUSIVE ではなく、 iTerm2Aquamacsなどは必要ありません

ステップ1

Terminal.app 設定で「オプションをメタキーとして使用」をオンのままにします。

ステップ2

編集~/.inputrc(まだ存在しない場合は作成)、次の行を追加します。

"\e3": '#'

⌥ altこれは+をリマップするので、ターミナルで期待通りの文字3を生成することができ、煩わしくプロンプトが表示されることはありません。#(arg: 3)

ステップ 3

編集~/.emacsして、次の行を追加します。

(global-set-key (kbd "M-3") "#")

⌥ altこれにより+がリマップされるため、 emacs 内で期待どおりに文字3が生成されます。#


警告 1、これは1 回の再マップです。したがって、⌥ alt+ ?(他のキー) は再マップされません。たとえば、チルダ キーを生成するために⌥ alt+を再マップしたい場合があります。上記で概説したのと同じ手順に従ってください。明らかに、今後必要なキーに切り替えてください。n~3

警告 2、別のボックスに移動sshすると、同じ問題に直面しますが、そこでしなければならないことは、そのボックスの~/.inputrcおよび~/.emacsファイルを編集することだけです。

警告 3、私は英国人で、英国の MacBook を使用しています。そのため、外国製の MacBook については保証できません。

于 2014-08-07T13:02:43.580 に答える
3

上記の回答は、非ASCII入力を入力する方法について言及していますが、それは実際には問題ではありません。Cx 8 の方法では、ASCII 以外の文字列を入力できますが、問題は、(ASCII) 文字 `|' を入力するためだけに Mac でオプション キーが必要なことです。(縦棒)!

では、M-| のようなものをどのように入力しますか? (リージョンからシェルへのコマンド) Terminal.app の下で ssh で emacs を実行するとき? エスケープキーを使用する以外に方法はありません。オプション7であり、Terminal.appは何らかの愚かな理由でCmcをメタとして使用できません:-(

(実際に Terminal.app に Cmd をメタとして使用させるハック (おそらく SIMBL ?) を知っている人がいれば、とても感謝しています...)

于 2009-05-28T10:48:28.543 に答える
2

Aquamacsは、少なくとも私の (フランス語の) キーボードではそれをサポートしています。Aquamacs を (ドラッグ アンド ドロップで) インストールしたら、[オプション] -> [オプション]、[コマンド]、[メタ キー] の順に移動し、キーボードの適切な設定を選択できます (私の場合は ...メタ & フランス語)。私は Emacs に習熟していませんが、私が試した便利な組み合わせ ([、{、| など) はすべてうまくいくようです。

バージョン 2.1 のメニュー項目によると、サポートされているキーボードは次のとおりです。

  • 英国の
  • 私たち
  • スイスフランス語
  • スイスドイツ語
  • フィンランド語
  • イタリアンプロ
  • イタリアの
  • スペイン語
  • フランス語
  • ドイツ人

ただし、キーボードがリストに表示されない場合でも、Aquamacs チームは貢献に感謝すると思います。

于 2010-08-28T18:10:52.133 に答える
1

スウェーデン語のキーボードも使用しているので、この質問を修正したいと思います。スウェーデン語のキーボードでは、Alt+7またはAlt+Shift+7を押して|を作成する必要があります。それぞれと\。

Terminal.appでもIrssiを使用していますが、これらはうまく混ざりません。

私は長い間vimユーザーですが、emacsは私にとって問題ではありません。

Terminal.appでCMDをメタに再マップする方法はありませんか?

これまでのところ、Irssiで/ wg Nと入力するだけで生き残っています。これは、これらの文字をターミナルに配置することがIRCよりもはるかに重要だからです。

しかし、解決策は私にとって金の価値があるでしょう!:)

于 2010-01-14T18:37:27.100 に答える
1

私は草をかみ、代わりにエスケープキーを打ち始めました。慣れて...

于 2009-12-05T21:09:16.093 に答える