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

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

1
emacsが主要なアップ/ダウンイベントをサポートしない理由
AFAIK emacsはkeyup/keydownイベントをサポートしていませんkeypressed。結果の例としては、リージョンをマークしたい場合、最初にマークset-mark-commandを設定する必要があり、ポイントを移動することでリージョンをマークできます。テキストをマークするときにShiftキーを押す必要がないため、これは本当に興味深い機能ですが、他のエディターと同じように動作することが望ましい場合があります。この質問は、emacsがこの機能をサポートしていない理由と、これがより優れていると考えられる理由を理解するためのものです。また、これをemacsで解決するための理想的なアプローチはありますか?

3
行末に移動し続ける
キーバインディングのデフォルトはC-a/C-e、行の最初/最後に移動するためのものです。Emacsを次のように動作させるパッケージがあります。 行末でない場合は、行末にC-e移動します。それ以外の場合は、次の行の最後に移動します 行の先頭にいない場合C-aは、行の先頭に移動します。そうでない場合は、次の行の先頭に移動します。 重要なのはC-a/e、指を動かさずにすべての行の先頭/末尾に移動するために、たたき続けるだけC-n/pです。 そして、prefix(C-u)を使用すると、行の最初/最後に反対方向に移動します。

1
キー「コード」からキーボードの同等性に戻るにはどうすればよいですか?
次のドキュメントがあります。 mc/keymap is a variable defined in `multiple-cursors-core.el'. Its value is (keymap (67108903 . mc-hide-unmatched-lines-mode) (27 keymap (118 . mc/cycle-backward)) (22 . mc/cycle-forward) (return . multiple-cursors-mode) (7 . mc/keyboard-quit)) Documentation: Keymap while multiple cursors are active. Main goal of the keymap is to rebind C-g and <return> to conclude multiple …

2
diredされたディレクトリで上に移動するために「^」の後に「スペース」を入力しないようにするにはどうすればよいですか?
^dired(「アップディレクトリ」)の親ディレクトリに移動するためのキーバインディングです。 しかし、中Gnu EmacsにWindows 7 Professional 64-bit私のドイツ語のキーボードレイアウトを持つ、「^」を入力するのに十分ではありませんが、私は、キーバインディングの仕事をするために、その後にスペースを入力する必要があります。 スペースを押して "^"だけで上に移動する必要がないように、キーバインドを再定義するにはどうすればよいですか? C-h k ^<space> 戻り値 ^コマンドはdired-up-directoryを実行します。dired-up-directoryは、 `dired + .el 'にあるインタラクティブにコンパイルされたLisp関数です。 ^にバインドされています。 (dired-up-directory&optional OTHER-WINDOW) 現在のディレクトリの親ディレクトリでDiredを実行します。このバッファまたは別のバッファで親ディレクトリを見つけます。必要に応じてバッファを作成します。

1
エコー領域にキーストロークをすぐに表示するにはどうすればよいですか?
エコー領域にキーストロークをすぐに表示するにはどうすればよいですか? たとえば、キーシーケンスを入力すると、C-u jすぐにエコー領域に表示されませんが、次にキーを押すkと、私が事前にタイプミスをしていたことがわかりました。それで、私がいくつかのキーを押してエコー領域のコマンドを呼び出してそれらをすぐに表示するとき、私のような初心者には役立つと思います。

1
組織の見出しの本文の最初または最後に最も効率的に移動する方法は?
スピードキーを使用すると、組織モードの見出しの最初から別の見出しにすばやく簡単に移動できます。 今、私は見出しの始めにいて、本文の最初のTODOキーワードの直後に追加したいとします。その後M-f Space、私が行きたいところに行きます。TODOキーワードがない場合はM-f M-bです。 見出しテキストの最後に到達したい場合、それはよりトリッキーです。末尾にキーワードがなく、見出しの下に折りたたまれたテキストがない場合は、と同じくらい簡単C-eです。しかし、それはまれなケースです。折りたたまれたテキストがあり、キーワードがない場合、私はすることができますC-e M-b。しかし、折りたたまれた見出しの最後にキーワードが 1つまたは2つある場合は、自分がタイプしていることに気づくでしょう(恐怖)C-e M-b M-b M-b M-f。そして、2つ以上のキーワードがある場合、それは悪化します。 たくさんの見出しを次々とジャンプして編集しているとき、これは多くのことを考える必要があり、フロー全体を台無しにしています。理想的には、これらのすべてのケースで、私が再定義sしe、スピードキーとして正確に私が行きたいと思うようにしたいと思います。 この問題の既存の解決策を見た人はいますか?私のelispスキルは最小限であり、これを自分で解決するのは困難です。




1
各CnまたはCpの後、行のn番目の文字に自動的に移動します
この機能は、emmetモードでうまく機能します。emmet-modeでは、拡張できますli * 3 に <li> </ li> <li> </ li> <li> </ li> 楽々。 しかし、最初のタグの間に何かを入力した後。私は次の行に移動するときに正しい位置にスクロールする必要がありますが、これは不便です。 私が探しているこのロックは素晴らしい仕事をするでしょう。

3
Shift- <backspace>をバインドできないのはなぜですか?
私のシステムはdebian wheezyです。私は次のことを試みました (global-set-key (kbd "S-&lt;backspace&gt;") 'evil-shift-left-line) (global-set-key (kbd "&lt;S-backspace&gt;") 'evil-shift-left-line) (define-key global-map [S-backspace] 'evil-shift-left-line) 私が欲しいのは邪悪な挿入モードです。Backspaceキーを4回押す代わりに、1つのタブ幅を前方に削除できます。キーバインドは私のラップトップでは機能しますが、私のデスクトップでは機能しません。evil-shift-left-lineのバインディングを確認しました。変更されましたが機能しません。「shift-backspace」のヘルプでは「backspace」しか表示されません。ただし、shiftは「backspace」に影響を与え、「shift-backspace」は文字の代わりに前の単語を削除します。 「Cq」の後に「shift-backspace」を挿入すると、「^?」と同じ表記になります デスクトップでは「バックスペース」として、ラップトップでは前者は「^ @」です。 デスクトップで機能しない理由についてのアイデアはありますか?ご協力ありがとうございました! この質問はこれに関連している可能性があります: Shift + UpはターミナルのEmacsで認識されません

1
キーをリバウンドした私たちのための「caps-lock-mode」はありますか?
Caps-Lockキーを制御に再バインドすることは、よく行われることです(少し知識がなくても、それに反対する議論があります)。しかし、私が多くの時間を費やしている言語は、資本の実行をかなり広範囲に使用しています。 caps-lock-mode動作をシミュレートできるはありますか?(もちろん、既存のキーバインドに影響を与えるC-x C-sことなく、たとえば、ストライキは送信されませんC-X C-S。)

3
最も使用したキーまたは機能を知る方法はありますか?
私が最もよく使用したキーを見つけることができれば、そのためのマクロを作成できます。使用していないがバインドされていない関数を見つけることができれば、キーにバインドできます。これにより効率が向上する場合があります。これらの統計知識を取得する方法はありますか?

2
すべてのグローバルキーバインドを本当にバインド解除するにはどうすればよいですか?
試したところです (set 'global-map (make-sparse-keymap)) しかし、発行するとC-hb、特にグローバルバインディングセクションで、依然として大量のがらくたが表示されます。 Global Bindings: key binding --- ------- C-@ set-mark-command C-a move-beginning-of-line C-b backward-char C-d delete-char C-e move-end-of-line C-f forward-char C-g keyboard-quit C-h help-command TAB indent-for-tab-command C-k kill-line C-l recenter-top-bottom RET newline C-n next-line C-o open-line ... ... そして、これからもっとたくさんあります。 これらを完全に取り除きたいと思います。どうすれば1つの単純な関数呼び出しでそれを実行できますか?これらのすべてのマップをに設定するループではなく、完全にワイプアウトする解決策を求めていますnil。前もって感謝します。 注:「これらのキーは生産性のために不可欠です。それを行わないでください!」のような回答やスパムコメントを教えないでください。。ここにはモーダルテキスト編集用に高度にカスタマイズされたエミュレーションレイヤーがあるので、これらのデフォルトバインディングはまったく必要ありません。

2
バッファを編集しないキーストロークを検出するにはどうすればよいですか?
バッファを編集しないキーストローク(フックなど)を検出する最良の方法は何ですか?つまり、ポイントモーションの矢印キー、への呼び出しbeginning-of-bufferなどです。 その理由はycmd、emacsのバインディングに取り組んでおり、ユーザーが編集を停止してバッファー内を移動していることを(少なくともヒューリスティックに)検出できるようにしたいためです。これは、解析のためにバッファの内容を出荷する良い機会です。vimクライアントは、ユーザーが挿入モードを終了したときにこれを実行し、私はその動作をエミュレートしようとしています。

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