Emacsのキーストロークを考慮します。 C-x C-s。 C-h c キーストロークと入力することでどの機能が呼び出されるのか把握できますが、このキーバインドの定義場所を確認するにはどうすればよいですか? どのファイルにキーバインドが定義されていましたか?
は(たぶん正しい答えは、キーマップは、この種の情報を格納しないので、それは、決定することができないということです。)答えて
キーバインドが関数に関連付けられている場所に関する情報は、Emacsでは保持されません。実際、その答えは通常未定義です。
多くの場合、キーバインディングは、マイナーモードの副作用として、またはモードフックによって設定されます。マイナーモードのキーバインドは、多くの場合、comint-mode-map
のような変数に格納されます。このキーマップは、モード変数comint-mode
を設定すると有効になります。しかし、そのモードマップはグローバル変数であり、誰でもどこにでもキーバインディングを追加できます。だから、あなたが望むことは、本質的に、誰が特定の値を持つ変数を設定するのかを追跡することです。同様に、モードフック(local-set-key
を使用)によってローカルに設定されているキーバインディングについても同様です。さらに、キーバインディングをfile variablesまで設定することもできます。これは、Emacsのキーバインディングが一過性であると言うだけです。
最高のことは、キーに関連付けられた機能を見つけて、そのファイル(またはモードが複数のファイルに分割されている場合は関連するファイル)を調べることです。
キーストローク(グローバル、メジャーモード、マイナーモード、マイナーモードのオーバーライド、バッファのローカル、テキストプロパティなど)を設定/関連付ける方法が非常に多いため、emacsのキーバインドルックアップがかなり関わっています。概要については、this documentationをご覧ください。
このような関数を書いて、マイナーモードを調べてキーバインディングがどこに設定されているかを確認できますが、私の最初のテストではキーバインドが定義されていないことがわかりました。しかし、おそらくコードは参考になるでしょう。
(defun guess-where-keybinding-is-defined (key)
"try to guess where a key binding might be defined"
(interactive (list (read-key-sequence "Describe key: ")))
(let ((bindings (minor-mode-key-binding key))
found)
(while (and bindings (not found))
(if (setq found (caar bindings))
(find-function (cdar bindings)))
(setq bindings (cdr bindings)))))
(この質問以外の)解決しようとしている問題はありますか?
だけで行うのMx見つける機能
Emacsのドキュメントから:
(ファンクションファンクション)
ファンクション に近い点を見つけます。
点 周辺機能の 定義を含むソースファイルを検索し(によって選択 `関数でポイントと呼ばれる ') バッファおよび場所が 定義の前にポイント。 バッファがすでに存在する場合は、移動前にマークを設定します。
これは私が探しているものではありません。 *関数*がキーバインド*ではなく定義された場所を教えてくれます。 –
私はあなたがそれを見つけることができるとは思わない。 –
- 1. ファイルの定義にpythonの入力が定義されています
- 2. どこにtf.nn.l2_lossが定義されていますか?
- 3. にReferenceError:変数が定義され(ただし、定義された)されていません
- 4. どのようなJavascriptファイル "abp.services.app"が定義されていますか?
- 5. エラー未定義のオブジェクト(それが定義されていたのに対し)
- 6. 私の構造体はどのファイルに定義されていますか?
- 7. いつ、どこで_DEBUGが定義されていますか?
- 8. 定義されていないシンボルは、.cppファイルで定義されていますが、
- 9. java.awt.Graphicsのメソッドはどこに定義されていますか?
- 10. time_tはどのように定義されていますか?
- 11. マクロはどのように定義されていますか?
- 12. GCCのトークンタイプはどこに定義されていますか?
- 13. NameErrorは:グローバル名が別の.pyファイルで定義されたグローバル変数で定義されていない
- 14. 未知のReferenceError:変数は定義されていませんが、インクルードされたjsファイルに定義されています
- 15. config.phpファイルの定義されたパスワードの一部が使用時に暗号化されていますか?
- 16. メソッドが定義されているかどうかのテスト
- 17. .tsファイルに定義されている関数定義に別の.tsファイルからアクセスできません
- 18. .hファイルの値が.rcファイルに定義されていません
- 19. 定義されているにもかかわらず、関数が定義されていません
- 20. インポートされたモジュールが定義されていませんAngular4
- 21. インポートされた変数が定義されていません
- 22. インポートされた変数が定義されていません
- 23. どのファイルがマクロを定義しているか調べる
- 24. MSBuildプロパティが定義されているかどうかテストしますか?
- 25. Xtext:ファイル内にEObjectが定義されているかどうかを確認します。
- 26. I18n.localizeはどこでレールに定義されていますか?
- 27. UNS_32はどこに定義されていますか?
- 28. フォントファミリはどこに定義されていますか?
- 29. Rubyでキーワードはどこに定義されていますか?
- 30. BCRYPT_HASH_FUNCTION_TABLEはどこに定義されていますか?
詳細なお返事ありがとうございます。私は昨日、コアモードで定義された特定のキーバインドか、外部パッケージであるかを調べようとしていたときに、昨日心配していました。 –