2013-02-15 14 views
12

私はEmacsをMac OS X端末で使用しています。EmacsでCMDキーバインディングを設定するには?

私のCTRLキーはCキーで、ALTキーはMetaです。

CMDキーの組み合わせに対してキーバインディングを定義するにはどうすればよいですか?

たとえば、CMD-(右矢印)を設定して行末に移動したいとします。


EDITは

私が試してみた@

(setq mac-command-modifier 'super) 
(global-set-key (kbd "s-<right>") 'move-end-of-line) 

以下nickcarloの提案私はs-fooが表示されていないので、私は、CMDキーが適切にスーパーに設定されているとは思いません私がC-xまたはM-xまたはそれ以外のものを入力した場合、私はミニバッファを使用します。私は、2つのターミナルウィンドウを開いているときにCMD-rightが2つのターミナルウィンドウ間を切り替えることに気づいたので、カスタム設定をブロックしている可能性があると考えました。 ..

(global-set-key (kbd "s-9") 'move-end-of-line) 

をしてCMD-9は、まだ私は何かを間違って押した私に教えてビープ音以外、何もしません。しかし、私が試してみました。非CMDキーコンボを設定

は次のように、正常に動作するようです:

(global-set-key (kbd "C-w") 'move-end-of-line) 
+4

私の知る限りでは、限り、あなたは、端末内部のEmacsを実行すると、これを行うことはできません。 Macのcmd修飾子は渡されません(標準の端末プロトコル/文字セットではエンコードできないことさえあります)。これを動作させたい場合は、Emacs.appをアプリケーションとして実行することを考えてください。 –

答えて

11

次のようなものでそれを設定することができます。

(global-set-key (kbd "s-<right>") 'move-end-of-line) 

「s」は、コマンドキーを参照すること。

PS:私はので、私は正確にあなたが行の末尾に移動するために言及した特定のキーに設定して書くために必要なものはよく分からないが、コマンドが表され、今私のMacではありませんよエマックスで。

編集 ちょうどこれを私のMacでテストしました。これは、行の末尾にカーソルを移動するには、コマンドキー+右矢印キーをバインドするために(あなたがグローバルに設定したい場合は)あなたが書いたと思います正確なコードです。上記動作しない場合は

、あなたも

(global-set-key (kbd "\s <right>") 'move-end-of-line) 

上記1との違いを試みることができるし、これは上記のCMD +に右相当ということであり、この1は、CMDに相当し、その後リリース右のキーを押してください。両方とも私のシステム上でOS X上で動作します。

また、あなたのEmacsがすでにそのように登録していない場合は、スーパーキーとしてあなたのCMDを設定するには、次の記事をチェックアウト:

http://ergoemacs.org/emacs/emacs_hyper_super_keys.html

具体的には、あなたが設定するには、次のコードを使用することができますあなたのCMDキーをSuperとして上げてください:

(setq mac-command-modifier 'super) 
+0

それを動作させることはできません。私は、Emacs Live - https://github.com/overtone/emacs-liveを使っていると言わなければなりません。しかし、私はプレーンなバニラのemacsを試しましたが、まだ結果はありませんでした。このコード(https://github.com/lest/emacs-config/blob/master/rc-hotkeys.el)は、フォーマットがであることを示唆しているようですが、それでも動作しません。あたかも綴物が登録されていないかのようです。 – cannyboy

+0

@cannyboy私はmacportsからemacsのコピーを入手しました(ポートはemacs-appをインストールします)。それが上のコードで動作するようになったのかもしれません。私はEmacs Liveを一度も使用していないので、私が持っているものとどのように違うのか分かりません。 –

+0

@cannyboyこのような行やこのような行を書き終わったら、行末まで移動してC-x C-eを実行し、下のミニバッファに機能の名前が表示されているかどうかを確認します。 C-h bを実行して、キーバインディングを確認し、そこにリストされているかどうかを確認することもできます。 –

1

ステップ1:cx cf .emacs //が開きます。Emacsはファイル

ステップ2:

;; changing the command to control 
    (setq mac-command-modifier 'control) 

ステップ3ファイルの.emacsの末尾に次の行を追加します。保存.emacsを

ステップ4:のMx evalのバッファ//はMx =アルト-x //これは.emacsバッファを評価し、Emacsをリロードする

ステップ5:CMD-eを行の最後に移動します。 // CMDはコントロールのように動作します

ステップ6:CMD-eはまだ動作しません。

お楽しみくださいEmacs! Aquamacsで

+0

これは自分のコマンドキーをコントロールキーとして設定しないでしょうか?私はそれが彼がやろうとしているとは思わない。 –

+1

私はそれが多くの時間を節約し、小さな指の痛みを軽減するcntとしてcmdを使用する方がより快適だと感じています。 – USK

+1

私はこれを理解しています。それは、OS X Emacsコミュニティの一般的な慣行であるように思われます(他の操作にCMDキーがバインドされているので、私には従わない)。私はちょうど私が彼のメタ操作を彼のCMDキーに変更しようとしているとは思わないと言っていました。 –

6

は、どのような私のために働いたことは、以下の

(global-set-key (kbd "A-r") 'my-command) 
+2

ありがとうございました。これは私が私のAquamacsを探していたものです:) – shivams

関連する問題