12

Windows 7 で Emacs v24.3 を使用しています。キー バインドを再マップする方法を学習しようとしています。

ホーム ディレクトリに .emacs ファイルを作成しました。このファイルには次の 1 行が含まれています。

 (global-set-key (kbd "C-f") 'isearch-forward)

runemacs.exe で Emacs を起動します。存在しないファイルを見つけ、いくつかの単語を入力し (テキストの先頭をクリック)、入力C-Fして検索します。プロンプトが表示され、I-search:テキストを段階的に検索できます。ここまでです。

isearch-forward問題は、動作がデフォルトのキーストロークと同じであると仮定するとC-s、そうではないことです。C-f次に出現する文字列を検索するためにもう一度入力すると、ミニバッファーにプロンプ​​トが表示されるだけですI-search

文字列の次の出現を検索できません。さらに、Delキーは逆方向に検索を繰り返すと想定されています。を使用して検索すると、それは起こりませんC-f(.を使用して検索すると発生しますがC-s)。

したがって、この単一のキー マッピングは 2 つのことを壊しているようです。マッピングが間違っていますか? それともこれらのバグですか?マッピングが間違っている場合C-fisearch-forwardコマンドにどのようにマッピングすればよいですか?

4

2 に答える 2

16

1行に加えて、次を追加します。

(define-key isearch-mode-map "\C-f" 'isearch-repeat-forward)

問題は、インクリメンタル検索を開始するとアクティブになる独自のバインディングが isearch にあることです。上記の式を追加すると、 のバインディングが再マップされisearch-repeat-forwardます。

これらのバインディングに興味がある場合はC-h b、インクリメンタル検索を実行しながら入力して、完全なキーマップを調べることができます。

于 2013-08-10T01:08:30.970 に答える
0

いいえ、チュートリアルにはそうは書かれていないと思います。あなたはセクションSEARCHINGとこのテキストを参照していると思います:

>> Type C-s again, to search for the next occurrence of "cursor".
>> Now type `<DEL>` four times and see how the cursor moves.

If you are in the middle of an incremental search and type <DEL>, the
search "retreats" to an earlier location.  If you type <DEL> just
after you had typed C-s to advance to the next occurrence of a search
string, the <DEL> moves the cursor back to an earlier occurrence.  If
there are no earlier occurrences, the `<DEL>` erases the last character
in the search string.  For instance, suppose you have typed "c", to
search for the first occurrence of "c".  Now if you type "u", the
cursor will move to the first occurrence of "cu".  Now type <DEL>.
This erases the "u" from the search string, and the cursor moves back
to the first occurrence of "c".

A<DEL>は後方検索しません。検索文字列から文字を削除し、検索は結果の文字列の前のヒット (のみ) に移動します。ただし、検索文字列は変更さ<DEL>C-sません。前のヒット (のみ) に移動するだけです。

少し読みにくいかもしれませんが、チュートリアルのテキストは間違っていません。それを改善するための提案がある場合、または Emacs Dev に不明確であることを知らせたい場合は、 を使用してくださいM-x report-emacs-bug

于 2013-08-10T17:45:44.013 に答える