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

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


4
キーがバインドされているキーマップを確認するにはどうすればよいですか?
で「d」キーをリバウンドgnus-article-modeしましたが、ポイントが添付ファイル上にある場合、その古い動作は引き続きアクティブです。を実行することで再バインドが有効にならなかったことがわかりますが、C-h k dその時点でどのキーマップが有効であるかを教えていないので、再バインドできます。 それを見つける方法はありますか? 正確な例は次のとおりです。私は悪を使用しており、記事をモーションモードにする必要があります。キーボードレイアウトでは、上に移動するキーとして「d」を設定しました。 (evil-mode 1) (add-to-list 'evil-motion-state-modes 'gnus-article-mode) (setq evil-emacs-state-modes (remove 'gnus-article-mode evil-emacs-state-modes)) (define-key evil-motion-state-map "d" 'evil-previous-line) 邪悪なキーが確実に考慮されるように、ローカルマップでgnusキーの設定を解除します。 (defun as/alter-article-evil-map () (local-unset-key "d")) (add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map) 残念ながら、ポイントが添付ファイル上にある場合、「d」キーは表示されなくなりますが、添付ファイルを削除するように求められます。その時点で別のバインディングがアクティブになっていると思うので、質問です。 解決策keymaps-at-point以下を使用して、使用されたキーマップがテキストプロパティからのものであることを見つけました。次に、バインドされた関数のコードを見て、キーマップの名前を見つけましたgnus-mime-button-map。次のコードは私が望むことをします: (defun as/alter-article-evil-map () (define-key gnus-mime-button-map "d" nil)) (add-hook 'gnus-article-mode-hook 'as/alter-article-evil-map)

4
メジャーモードバインディングをオーバーライドする方法
時々、私のグローバルキーバインドはメジャーモードによって上書きされます。簡単な例は、私のinitファイルの次の設定です (global-set-key (kbd "C-j") 'newline-and-indent) しかし、面倒なことに、このキーバインディングは、スクラッチバッファのデフォルトモードである「Lisp Interaction」メジャーモードによって隠されています。 メジャーモード(またはマイナーモード)がグローバルキーバインドを隠している状況にいるとき、どのように戻すことができますか? 注:私の質問ではありません「私はバインドすることができますどのようC-jにnewline-and-indentLispの対話で『』モード?」 クラッシュするキーマップや、メジャー/マイナーモードによって非表示になるユーザーキーバインドを処理する方法に関する、より一般的な回答に興味があります。


4
非バインドキーを表示する
私が見つけたヘルムの新しい使用法、驚くべきモードのキーバインディングをいくつか定義し、他のキーの使用法を上書きせずにそれをしたいです。さまざまなキーの組み合わせの数は無限ですが、たとえば1レベルの深さの未定義のキーバインディングをすべて表示する方法はありますか? たとえば、を押した後に使用可能なキーバインディングを知りC-c、のリストを持つバッファを取得したいですC-c some_keys。 この機能が現在存在しないと仮定しますか?

3
ターミナル使用時のキーバインドの問題
私は次の行を持っていますinit.el: (global-set-key [(control \;)] 'comment-region) GUIウィンドウでは非常にうまく機能しemacsますが、-nwオプションで呼び出された場合、C-;領域をコメント化せず、;文字を挿入するだけです。M-x comment-region RETただし、正常に動作します。 私は同様の問題でこの答えに従うことを試みましたC-q C-;が、ちょうど戻り;、私は明らかにむき出しにしたくありません;。 望ましい効果を達成する方法

4
Elispからの任意のキーイベントをシミュレートするにはどうすればよいですか?
elispから任意のキーイベントをシミュレートすることは可能ですか?特定のキーのバインドを見つけて、そのコマンドを対話的に呼び出す方法を知っていますが、そのキーイベントがコマンドにバインドされていない場合はどうなりますか? 1例、私はバインドしたい場合C-`と同じ動作をするESCキーすべてのコンテキストでは?

3
helm-find-filesで<RET>を押してディレクトリを開くにはどうすればよいですか?
を実行し#'helm-find-files、ポイントをディレクトリに移動すると、を押す&lt;ret&gt;とそのディレクトリがdiredモードで開かれます。C-jHelmでそのディレクトリに入るために押す必要があります。 私はここでのように&lt;RET&gt;行動したいC-jが、必ずしも他のどこでもそうではない。私がチェックしC-jにバインドされている#'helm-maybe-exit-minibufferのに対し、&lt;RET&gt;にバインドされています#'helm-execute-persistent-action。バインディング&lt;RET&gt;に#'helm-maybe-exit-minibufferこのような場合のために動作しますが、他の例を壊す:例えば、中ヘルムオートコンプリートをdescribe-function。 では、Helmを使用してファイルを検索するときに、Helmで&lt;RET&gt;そのディレクトリを押して開くにはどうすればよいですか?

1
CiとTABを区別する方法は?
通常、歴史的な理由から、emacsはTABキーコードとC-iキーを同じものとして扱います。cf。ファンクションキーに関するemacs lispのドキュメント、または「TABとの違いは何ですか?」という質問に対するabo-aboの回答 。 注:この記事では、キーコードがありTAB、&lt;tab&gt;とC-i。一方tab、Ctrl+ はキーボードの物理キーです。 i しかし、現時点では、Emacsの扱いTABとC-i同じもののように、すなわち(equal (kbd "TAB") (kbd "C-i"))- &gt; t。 しかし、私たちはもはやコンピューティングの石積みに住んでいないので、これは非常に迷惑です。これを回避するためにできることはいくつかあります。例えば 「TABを変更せずにコマンドをCiにバインドするにはどうすればよいですか?」 Treyのソリューションは私の場合local-function-key-mapsは機能しませんでした。変数は変更されません。変数を使用するdeleteよりも使用するように変更するとdelq、変数が変更されますが、resolve ... tabとCtrl+ iは同じままです。 ハイパーマップへの翻訳は、 1980年代の回避策のように思えます... Hyper+ を使用することiもできます。 を使用して、いくつかのポストASCII制御コードに+ input-decode-mapをマッピングすることCtrliは、ほとんど私が探しているものです。+ kbdをバインドするソースコードのすべてのビットを変更する必要があることを意味するマクロで適切に動作しないことを除きます。すべてのソースコードが適切に変更されていることを考えると、おそらくこれが最良のソリューションです。Ctrli 使用(kbd "&lt;tab&gt;")のためにtabと(kbd "C-i")(に変換され(kbd "TAB")、つまり\tためにリテラルを)Ctrl+は、i 仕事をしていますが、変更する必要があると思い、すべての間違った種類使用するソースファイルtab[読む:キーコードTAB]迷惑です。 これは、たとえばgithubの問題やemacs.sxでも提案されています。 これらの解決策はどれも本当の解決策ではないようで、回避策やハッキング(既存のバグの)を検討したいと思います。 するそこに方法があり、強制的にマップするのemacsをtabする(kbd "&lt;tab&gt;")と(kbd "TAB")しながら、Ctrl+ iにマッピングされている(kbd "C-i")Emacsのソースコードをmodyfingの短いは? このアプローチはつまり、ユーザーには完全に見えなくする必要がありますtabキーコードのような&lt;tab&gt;とはTABしながら結合1にマップする必要がありますCtrl+ iキーコードのようなC-i別の結合にマップする必要があります。 それほど深刻ではありませんが、ここにあるemacs開発者は、これがいつかemacsソースコードで変更/修正されるかどうかをコメントできますか?


7
ポイントでファイルをプレビューするための「クイックビュー」キーを押した
diredでポイントされているファイルの「クイックビュー」を実行する関数を作成したいと思います。 これを機能させる方法は、ファンクションキーを押したままにすることです。これにより、ファイルがバッファ内で表示されるようになりますが、キーを放すとバッファが閉じて、バッファが戻ります。 で一時バッファを閉じる必要はありません C-x k。 Emacsでこの機能を作成する方法はありますか?キー押下/押下に関数をバインドできれば可能だと思われます。

2
プレフィックスキーとしてのCxまたはCcの使用に関する規則
使用するための規則どのようなものがありC-x、C-cまたはM-プレフィックスキーとしては? 例:is C-xなど、バッファを保存または訪問しますか?あるC-cテキスト編集のために、など、? バックグラウンド たぶん、これはばかげた質問です。スペイン語のキーボードを使用していますが、英語(QWERTY)キーボードに共通のキーバインドを再定義することもあります。例:shellコマンドはにバニラEmacsでバインドされていM-!ます。M-¡代わりにバインドします。なぜなら、を押すのは簡単ではないからM-!ですM-shift-1。これらの種類の変更を行うときにオーバーライドする規則があるかどうか疑問に思っています

1
機能の先頭にジャンプしてから現在のポイントに戻る最良の(最小限のキーストローク)方法は?
時々、関数の開始が見えない長い関数の中にいます。最近(which-function-mode)、どの機能がモードラインで機能の名前を示しているかを学びましたが、機能の開始点にすばやくジャンプして、できるだけ簡単に戻ることができるようにしたいと思います。 これまでのところ、2つの解決策を見つけました。 マークを使用する C-SPC 現在のポイントをマーク C-M-a 機能の先頭に戻る C-x C-x 現在のポイントとマークを交換します(ジャンプして戻ります) C-g マークされた地域をキャンセル レジスタを使用する C-x r SPC p レジスタ「p」に現在のポイントを保存 C-M-a 機能の先頭に戻る C-x r j p レジスタ「p」に保存されたポイントにジャンプ もっと良い方法はありますか?.emacsファイルにelispを追加することに反対しません。

1
TABと<tab>の違いは何ですか?
トリガーキーが定義されているセクションに来たとき、私はYasnippetモードのドキュメントを読んでいました。 Yasnippetマイナーモードは、次を使用TABして実行するキーを定義しているようですyas-expand。 (define-key yas-minor-mode-map (kbd "&lt;tab&gt;") 'yas-expand) (define-key yas-minor-mode-map (kbd "TAB") 'yas-expand) 違いは何である&lt;tab&gt;とはTAB?(私はこれをグーグルしようとしましたが、明確な説明を見つけることができませんでした)

4
Linuxでemacs -nwでSuperを使用する
私は答えに対する簡単で直接的な質問を見つけるのに苦労してきたので、ここで質問することにしました。 Q: Linuxのターミナルで起動されたEmacsでSuperを使用する方法はありますか? PS:私は多くの情報を読みましたがxmodmap、重要なことは、ターミナルエミュレータがスーパーキーを表すことができないことです。しかし、(kbd "s-SPC")何かを返すので、の翻訳機能を使用することを考えていました.Xdefaults/X。私は正しい道にいますか?の結果を考えると、kbdXTerm.VT100.translationsとして何を入れる必要がありますか?

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