タグ付けされた質問 「key-bindings」

キーボードショートカット、キーコード、キーシーケンス、ホットキー、またはEmacsのキーの組み合わせと対応するアクションの間の関連付け。

1
kbdなしのControl + Shiftキーを定義する
他の誰かのパッケージにいくつかの機能を追加しようとしているので、それらのパターンを尊重したいと思います。残念ながら、これらのパターンの1つはを使用しないことkbdです。 関数をにバインドする必要がありますがC-S-b、方法がわかりません。単一の修飾子(例:)でこれを行う方法を知っていますが、"\S-b"複数の修飾子で動作させることができません。(kbd "C-S-b")出力([33554434])を評価して使用できることはわかっていますが、もっと読みやすいものにしたいのですが。 これが私が試したいくつかのことです: (define-key emacs-lisp-mode-map "\C-\S-b" 'test-command) ;;; Invalid modifier (define-key emacs-lisp-mode-map [C-S-b] 'test-command) ;;; Does nothing (define-key emacs-lisp-mode-map "\C-B" 'test-command) ;;; Binds C-b

2
通常のキーを修飾キーに変換します
なんらかの理由で、デンマークのドル記号をOS Xに送​​信するキーを備えたキーボードがあります§。シフトでプラス/マイナス記号-を送信します±。 Emacs内で§キーを見てそれをハイパーまたはスーパーに変換することは可能ですか?したがって、その§キーを押しながらを押すと、EmacsでfアクティブH-fになります。 私は次のことを試しましたが、うまくいきません: (define-key key-translation-map (kbd "§") (kbd "<Hyper>")) <Hyper> is undefinedキーを押したときに表示されるだけで、修飾子としては機能しません。 これも機能しません: (define-key key-translation-map (kbd "§") "<Hyper>") §キーをキーに変えるだけ<です。

4
ギリシャ語のストレス( ')を入力すると「<dead-acute> is undefined」という問題が表示される
私はEmacsを使い始め、ギリシャ語でテキストを書きました。問題は、一部の文字(ό、ύ、ί、ύ)に使用されているストレスが機能しないことです。 通常は;(Lの横のキーを押すことを意味します)を押して挿入され、次に挿入される文字が挿入されます。これはギリシャ語キーボードの標準です。私が押すと;それは言う: &lt;dead-acute&gt; is undefined. C-h c ; 同じことを言います。 このキーを使用できるようにするにはどうすればよいですか? ブラウザなどの他のアプリケーションで動作します。私はUbuntu 14.04を使用していemacsますが、そのパッケージ(Emacs 24.3.1)をインストールしました。

4
Org-Mode:「組織モードのマークアップ」キーバインドを作成するには?
私は、私が使用することができます知っている*bold*、/italic/、_underline_、=verbatim=、~code~、と+strike-through+するテキストにマークアップ適用でorg-mode。しかし、これらの変更をテキストの領域に適用するためのキーバインディングをどのように作成しますか?たとえば、テキストを太字にしたい場合は、より簡単な方法がありますか テキストの前に移動する 接頭辞として * テキストの最後に移動する *?を追加する など、一連のテキストを「太字」にするコマンドを見つけることができないようですorg-make-region-bold。そのようなコマンドはありますか?

1
C- [を実際にバインドする方法(今回は本当に深刻に)
C-[何かにバインドし、すべてのM-(メタ)バインディングをめちゃくちゃにしない方法はありますか? この質問が出てくるのは初めてではありません。残念ながら、前のスレッドで提供された唯一のソリューションは、a) Linux固有、b) Emacsとは何の関係もない外部ツール(これもLinux固有)を必要とします。同様に、Emacs がシーケンスを取得する前にOS XでKarabinerのようなものを使用してC-[シーケンスを盗むこともできましたが、これは不格好で高価です。 それが翻訳を主張しているEmacsのであることを考えるC-[にESC、C-iにTAB私は非常にこれらの関係を壊し、バック貴重なキーシーケンスを取得したいと思い他の人と、おそらく。最近、私はこの問題に全速力で取り組み、静かで無邪気なsmartparensモードを非難しました。 関与することを可能な解決策function-key-mapとkey-translation-mapして、ここで議論したが、悲しいかな、それのいずれかもはや作品かは、最初の場所(または私が何かを間違ってやっている)で動作しませんでした。それは正しい方向に進んでいたと思います。

2
キーボードショートカットで誤って実行したコマンドを見つける方法は?
特にキーボードショートカットを介して、ユーザーが最近実行したコマンドをemacsが保存する場所はありますか?そうでない場合、それらをどこかに保存するように指示することは可能ですか?誤って間違ったキーボードショートカットを入力してしまうことがあり、何をしたのかわかりません。元に戻しますが、これらの偶発的なショートカットを時々繰り返す傾向があり、正確に何を押したか、またはどのコマンドを実行したかを知る方法がわかりません。 キーにバインドされているコマンドを判別する方法を知っています。私の問題は、私が押したコマンドとキーのどちらも知らないことです。それらがどのような影響を与えたか、そして最近それを行ったという事実だけです。

1
キーを押した後、「Cx-」がエコー領域に表示されるまでの時間を短縮します
を介してコマンドを入力しようとするとC-x、エコーエリアにこのプレフィックスキーがと表示されるまで、1〜2秒かかりますC-x-。私はEmacsを初めて使用するので、混乱することが多く、迷子になっています。 ESCキーは次のように動作するので、私はいくつかの半分に入力したコマンドを脱出しようとしたとき、私は頻繁に押すとループしてしまうESCと、再び私が見1-2秒後にESC-エコー領域に。 エコー領域で反応を示すのにかかる時間を短縮する方法はありますか、何か間違っているのですか、またはこれはどういうわけか意図されていますか?

2
一般にキーボードマクロのバインドに使用できるEmacsの未使用のキーは何でしょうか?
キーをキーボードマクロにバインドする通常の方法はC-x C-k 0to 9とAtoであると読みましたZ。 したがって、たとえば、キーボードマクロを定義した後、タイプする C-x C-k bと、Emacsがバインドするキーを要求します。そして、この目的のために予約されているキーはC-x C-k 0to 9とAto Zです。 しかし、これにはかなりの数のキーストロークが含まれます。これをバインドするための良い鍵は何ですか?Emacs GUIバージョンを使用して、Ubuntu仮想マシンを実行しているMacに+ C-&lt;return&gt;またはOption+ Enterでバインドできることがわかりました。したがって、それは機能するはずですが、EmacsターミナルバージョンとMac上のネイティブEmacsはどちらも+ C-&lt;return&gt;またはOption+ Enterを同じ&lt;return&gt;ように扱うため、機能しません。 一般にキーボードマクロのバインドに使用できるEmacsの未使用のキーは何でしょうか? それとも、代わりにバインドされていないすべての簡単なキー表示する方法があるCtrlとはMeta?

2
キーボードバインディングを定義するための標準/推奨構文はありますか?
キーボードバインディングを定義するために、以下のすべてを見てきました。これらはすべて機能します(少なくともMS Windowsでは)。同じことをする別の方法があるかどうかわかりません。 キーボードバインディングを定義するための標準的な方法または推奨される方法があるかどうか、およびこれらのいくつかを回避することが推奨されるかどうかを考えています。 (global-set-key "\M-r" 'some-command) (global-set-key [(meta r)] 'some-command) (global-set-key [?\M-r] 'some-command) (global-set-key (kbd "M-r") 'some-command)

2
C- [を実際にバインドする方法は?
C-[これは、米国英語キーボードのエスケープキーに相当します。したがって、バインドしようとすると、M-動作が台無しになります。 EmacsはGUIフレーム&lt;escape&gt;をC-[区別するのに問題がないようです。以下は正常に動作し、バインディングはM-引き続き機能します。 (global-set-key (kbd "&lt;escape&gt;") (lambda () (interactive) (message "&lt;escape&gt;"))) しかし、私がバインドした場合 (global-set-key (kbd "C-[") (lambda () (interactive) (message "C-["))) 突然、emacsがクレイジーになり、M-xブレークのように拘束されます。さらに、押すとC-[バインドされたラムダのトリガーが拒否されます。興味深いことに、C-x @ c [(修飾子コントロールを開き角かっこに適用して)まだ言いC-[ is undefinedます。 C-[emacsを壊さずに何かをバインドする方法はありますか?


1
「スティッキー」修飾キーとしてのファンクションキーの使用
ファンクションキー(など&lt;f8&gt;)を一種のスーパーキーダウンイベントとして使用し、次のキーストローク(f.ex. s)を次のように処理する方法はありs-sますか?つまり、これはスティッキーモディファイアキーに似ていますが、OS自体ではなく、emacsの場合のみです。 キーコードモードと、このようなキーの組み合わせを使用(global-set-key (kbd "&lt;f8&gt; b t") 'undo)してキーボードショートカットを保存できることを知っています。しかし、私はスーパーキーへの既存のバインディングで機能し、将来すべてを2回バインドする必要がないもの(つまり、スーパーキー用の1つのバインディングとファンクションキー用の1つのバインディング)が欲しいのですが。

2
use-packageを使用してキーをバインド解除する
私はバインド解除しようとしている org-cycle-agenda-filesにデフォルトで設定されている C-'とC-,。 私がそうするために選択する武器は、使用パッケージパッケージです。 上github.com/use-package/bind-key.el ページ私は、次の行を見つけました: ;; To unbind a key within a keymap (for example, to stop your favorite major ;; mode from changing a binding that you don't want to override everywhere), ;; use `unbind-key': ;; ;; (unbind-key "c-c x" some-other-mode-map) これにより、次のバリエーションを試すことに失敗しました。 (unbind-key "C-'" ) (unbind-key "C-," ) …

4
まだロードされていないキーマップにキーをバインドする方法は?
use-packageインストールしたパッケージを管理しbind-keyたり、好きなカスタムキーにアクションを割り当てたりするために使用しています。 デフォルトのEmacsキーバインドのほとんどをオーバーライドします(たとえば、にC-nなるM-k、にC-pなるM-i)が、キーバインドスキームをオーバーライドする他のモードでも問題ありません。ただし、キーバインドを永続化したい場合もあります。私がしたいM-kデフォルトのGnusやヘルムよりも他の平均何かを、。 ただし、キーマップが存在しない場合はバインドを追加できないため(use-packageパッケージの読み込みが遅れることがあるため)、Emacsの起動時にすべてが競合します。たとえば、(void-variable helm-map)HelmとGnusがまだ完全にロードされていないため、次のコマンドはエラーをスローします(例:)。 (bind-key "M-Y" 'helm-end-of-buffer helm-map) (bind-key "M-k" 'helm-next-line helm-find-files-map) (bind-key "M-s" 'other-window gnus-summary-mode-map) すべてのuse-package呼び出しが1つのファイルにありbind-key、カスタムキーバインドの別のファイルにあります。use-packageカスタムキーバインドスキームをスタンドアロンパッケージとして公開する可能性があるため、バインディングを呼び出しに含めたくありません。私のスキームをインストールする誰かにHelmとGnusのローカルキーバインドもオーバーライドさせたい場合はどうなりますか? bind-keyパッケージを最近ロードした場合でもすべてのキーが設定され、すべてのキー設定が1つのファイル内にあるように、を使用してモードローカルキーバインドを管理するにはどうすればよいですか?

1
特定の悪の状態のモードにキーバインディングを設定するにはどうすればよいですか?
(Evilの)挿入モードweb-modeとphp-mode挿入モードの両方で使用するキーバインディングのセットがあります。set-local-mapなんか使えないので。通常モードでは、同じキーが他のコマンドを呼び出すためです。したがって、バインディングはアクティブである必要があるevil-insert-state-mapだけです。 私は以下を持っています: (eval-after-load 'php-mode '(progn (define-key evil-insert-state-map (kbd "C-&lt;next&gt;") (lambda () (interactive) (insert " = "))) (define-key evil-insert-state-map (kbd "C-&lt;prior&gt;") (lambda () (interactive) (insert "-&gt;"))))) (eval-after-load 'web-mode '(progn (define-key evil-insert-state-map (kbd "C-&lt;next&gt;") 'zencoding-expand-yas) (define-key evil-insert-state-map (kbd "C-&lt;prior&gt;") 'zencoding-expand-line))) したがって、web-modeまたはphp-modeロードされるたびに、これらのキーバインディングがアクティブになります。 問題は次のとおりです。私が2つのオープンバッファーを持っているphp-modeとしweb-modeます。ときにweb-modeバッファがカレントバッファであると私はだ別のバッファに切り替えphp-mode、web-modeバインディングはまだ内部のアクティブなphp-modeバッファ。 私が使用してこの問題を解決しようとした(add-hook 'web-mode-hook [...])と(add-hook 'php-mode-hook [...])の代わりにバインディングを設定しますeval-after-load。しかし、その解決策はこの状況では機能しません。 助言がありますか?とても感謝しております。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.