プレフィックスキーとしてのCxまたはCcの使用に関する規則


16

使用するための規則どのようなものがありC-xC-cまたはM-プレフィックスキーとしては?

例:is C-xなど、バッファを保存または訪問しますか?あるC-cテキスト編集のために、など、?

バックグラウンド

たぶん、これはばかげた質問です。スペイン語のキーボードを使用していますが、英語(QWERTY)キーボードに共通のキーバインドを再定義することもあります。例:shellコマンドはにバニラEmacsでバインドされていM-!ます。M-¡代わりにバインドします。なぜなら、を押すのは簡単ではないからM-!ですM-shift-1。これらの種類の変更を行うときにオーバーライドする規則があるかどうか疑問に思っています


M-x「拡張コマンドを実行する」のようなものです。これは、Emacsでインタラクティブに実行できる多くの高度な機能へのゲートウェイです。Elisp関数を名前で実行できます。そのような説明はC-cありC-xませんか?
ピノキオ

回答:


21

自分で使用するためのキーのバインドについて話している場合、これがルールです。好きなキーをバインドできます。

すでにバインドされている可能性のあるキーをバインドしないようにしたい場合は、その後にC-c文字を続けて使用します。このようなキーはすべてユーザー用に予約されています(次を参照)。


他の人が使用するために、コード(ライブラリなど)でキーをバインドすることについて話している場合、ルール(規則)はここで説明されています:ノードElispマニュアルのキーバインド規則

そこにあなたが尋ねるものに関連する主なルールは、以下に関するものですC-c

  • C-c LETTERLispプログラムのキーとして定義しないでください。C-cおよび文字(大文字または小文字)で構成されるシーケンスは、ユーザー用に予約されています。これらはユーザー向けに予約されている唯一のシーケンスなので、ブロックしないでください。

  • C-c制御文字または数字が続くシーケンスは、メジャーモード用に予約されています。

  • なる配列C-cが続くは{}<>: あるいは;また、主要なモードのために予約されています。

  • C-cその他のASCII句読点または記号文字が続くシーケンスは、マイナーモードに割り当てられます。それらをメジャーモードで使用することは絶対に禁止されているわけではありませんが、それを行うと、メジャーモードバインディングがマイナーモードによって時々シャドウされる可能性があります。

に関して規約がないことに注意してくださいC-x。ただし、ここに記載されていない慣習、またはちょうど良いアドバイス/実践があります:既存の標準Emacsバインディング(つまり、サードパーティライブラリをロードせずにEmacsから配布されたもの)を置き換えると、混乱したり、コードの一部のユーザーを困らせます。


次の方法で、Emacs内でそのドキュメントにアクセスできます。

  1. C-h i、ドキュメントブラウザであるInfoを開きます。
  2. m el TAB RETm enu el isp(TAB完了するため)、またはElispマウスでリンクをクリックするだけです。
  3. key bi TAB、次にn TAB RET完了しKey Binding Conventionsます。

またはi、Elispマニュアル内で使用して、インデックスエントリを完成させることができます。

  1. C-h i m el TAB RET
  2. i key bi TAB、これはに完了しkey binding、あなた二つの可能性やショー:key bindingkey binding, conventions for。入力, TABして秒まで完了し、それRETを受け入れます。

C-cユーザーコマンドへのバインドとレターの規則に従うことをお勧めします。そうすれば、すでにインストールされている、または将来インストールされるメジャーモードからの他のバインディングをオーバーライドしないことを(ほぼ)確信できます。
トバイアス

1
@トバイアス:あなたが何を言っているのか分かりません。何よりいい?サードパーティのライブラリで+ LETTERをバインドしないことを含め、すべてのキーバインド規則に従う必要がありC-cます。
ドリュー

回答の最初の文で、私的使用に関する厳格な規則はないことを正しく述べています。それでも、最初のコメントで述べた理由から、ユーザーキーバインドの規則に従うことをお勧めします。たぶん、あなたはあなたのすべてが最初のセクションのルールに行くことに注意してください。私が言いたかったのはそれだけです、ドリュー。よろしく、
トビアス

3
@トバイアス:あなたが言っていると思うことを追加しました。ありがとう。ただし、キーバインディングに関して従うべき規則はありません「ユーザーのキーバインドの規則」あなたは話すユーザーのための規則ではありません。これらは、他の人が使用するLispのコーディング規則です。(私はあなたがこれを知っていることを知っているだけでは、誰がこれを読み取るため、明らかになりたい。。)
ドリュー

制御キャラクターとは何ですか?
ディディエA.

2

@Drewの答えははるかに微妙で詳細です。

これは完全に有効な質問です!プレフィックスはユーザー定義のキーバインディングに使用されるのに対して、emacs自体によって予約されているという規則があります。C-xC-c

見てください、これを、特に「予約キー」セクション。この情報はemacsマニュアルにも記載されていると確信していますが、今は見つけられないようです。規則は、emacs lispマニュアルのこのセクションで説明されています。


1
C-c後続の修飾子なしの文字(小文字または大文字)はユーザー用に予約されています。で始まる他の多くのキーシーケンスC-cは、メジャーモード用に予約されています-特に、2番目のキーストロークもコントロールキーによって変更される場合。
トバイアス

もちろん、あなたは正しいです。@Drewはこの質問にはるかによく答えました。
パナギオティスコウツラキス

M-x「拡張コマンドを実行する」のようなものです。これは、Emacsでインタラクティブに実行できる多くの高度な機能へのゲートウェイです。Elisp関数を名前で実行できます。そのような説明はC-cありC-xませんか?
ピノキオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.