it-swarm-ja.com

Emacs:適切なカスタムキーバインディングを選択する方法は?

私はEmacsの初心者で、デフォルトではないreplace-stringreplace-regexなどの一般的なタスク用にいくつかのグローバルカスタムキーバインディングを追加し始めたいと思います。良い選択をしたいのですが、いくつか問題があります。

  • すべてのオプションを表示-定期的に使用するすべてのモードでバインドされていないキーの全範囲を確認するにはどうすればよいですか?

  • 互換性/規則-個人的なカスタムバインディングを開始するための一般的な非公式バインディングまたは共通の「ユーザースペース」キーはありますか?

  • その他の問題-他に考慮すべきことはありますか?

10
Ian Mackinnon

SOでこの質問を見てみてください: カスタムコマンド用に予約されているemacsキーの組み合わせはありますか?

何が利用できるかを確認することに関しては、unboundライブラリがあります(上記の質問に対する 最初の回答 を参照)。

1つの規則( その質問に対する私の答え から取得)は次のとおりです。

何でも再定義できますが、 慣例では使用します C-c l (どこ l 任意の文字です)。

ユーザーは、任意のキーを再定義できます。ただし、通常は、次のもので構成されるキーシーケンスに固執するのが最善です。 C-c その後に文字(大文字または小文字)が続きます。これらのキーは「ユーザー用に予約されている」ため、適切に設計されたEmacs拡張機能と競合することはありません。ファンクションキー F5 使って F9 また、ユーザー用に予約されています。他のキーを再定義すると、同じキーを再定義する特定の拡張機能またはメジャーモードによって定義が上書きされる場合があります。

キーバインディングはさまざまな(メジャーモードとマイナー)モードのそれぞれで異なるため、あるバッファーで使用できるものが別のバッファーで使用できるとは限らないことに注意してください。そして、可能な限り最もローカライズされたレベルでキーバインディングを作成します。たとえば、機能がコード行に対して何かを行う場合は、グローバルキーバインディングを作成せず、適切なキーマップ(c++-mode-mapRuby-mode-mapなど)で定義します。

あなたの特定のタスクに関して、あなたは気づきましたか:

  • M-% 別名query-replace
  • C-M-% 別名query-replace-regexp

また、あなたが検索しているとき(C-s または C-M-s (およびその逆のバリアント))、入力できます M-% (または C-M-%)代わりに検索文字列を使用してquery-replacequery-replace-regexp)を直接入力します...非常に便利です。

9
Trey Jackson