2017-09-04 7 views
1

ここで見つけにくいものがあります。 Spacemacs(またはEmacs)では、別のキーの組み合わせを実行するために、指定されたキーの組み合わせを設定することは可能ですか?Spacemacs(またはEmacs)では、キーを他のキーにバインドできますか?

つまり、例えばF5のキーにC-c C-cとなるようなキーを常に実行させることは可能ですか?次のようなものがあります。

(global-set-key [remap (kbd "F5")] (kbd "C-c C-c")) 

明確にするために具体的な例を挙げておきます。キーコンビネーションC-c C-cは、コードが.pyファイルにある場合に、バッファのコードをPythonインタプリタに送信するか、パッケージを使用してRコンソールに送信するために、現在のバッファの全コードをインタプリタ/コンソールに送信するためによく使用されますファイルは.Rです。

ここで、F5のキーでこれらの2つの言語に対応するキーが設定されているとします。 1つの明白な解決策は、各パッケージごとに異なるキーバインディングを単純に実装することです。しかし、単にF5が押されると、 `C-c C-cに関連するコマンドが呼び出されるはずです。

このようなことは可能でしょうか?私は特にSpacemacsのためにそれをすることに興味がありますが、Emacsの一般的な答えは受け入れられます。

答えて

1

は、それはあなたの問題を解決する必要があり

(define-key key-translation-map [f5] (kbd "C-c C-c")) 

を試してみてください。

+0

ほぼ完璧なソリューション!注意すべきことは、何らかの理由で、新しいキーの組み合わせが 'super'または' hyper'キーを使用するとうまくいかないことです。たとえば、次のようになります。 '(define-key key-translation-map [H-f5](kbd" C-c C-c "))' – Louis15

+0

キープレスのスペルが正しいですか?私はいつも 'C-h k 'を実行し、help/miniバッファが何を得ているかを見て、それを 'kbd'に入れます。例えば。 'super-F5'に'(kdb "") 'を使ってください(私はハイパーを持っていないので、ハイパーサンプルを与えることはできません)。 – jpkotta

関連する問題