インクリメンタル検索で2つのスペースを一致させる


20

次を使用して検索する場合:

C-s SPC SPC

単一のスペースにも一致します。2つのスペースを正確に一致させたい。

回答:


24

M-s SPCIsearch中に使用して、一致する空白を文字どおりに切り替えます。文字どおりに照合する場合、入力する各SPC文字は個別に照合されます。(これは、以前はデフォルトのEmacsの動作でしたが、BTW。)

これをデフォルトの動作として設定するには、オプションsearch-whitespace-regexpをにカスタマイズしますnil。(M-x customize-option search-whitespace-regexp。)

GNU Emacsのマニュアルnodeを参照してくださいSpecial Isearch


これをありがとう。実際に.emacs行(set-variable 'search-whitespace-regexp nil)を入れるとよいかもしれません。ありがとう。
グレー

1
@Gray:set-variable新しい値を永続的に保存しないので、デフォルトの動作は変わりません。私M-x customize-optionはここで呼ばれるものだと思います。
ドリュー

ああ、ドットemacsファイルでそれについて話していました。カスタマイズオプションについて知りませんでした。編集していただきありがとうございます。
グレー

3

正規表現のインクリメンタル検索を使用すると、スペース文字をエスケープすると問題が解決します。

C-M-s \SPC\SPC

バックスラッシュなしで検索と置換を使用することもできます(必要な場合)。

M-% SPC SPC

今日、キーボードマクロを作成するときに同じ問題に遭遇しました。この答えは私のために問題を解決しましたが、ESC C-s代わりにキーの組み合わせを使用しなければなりませんでした。github.com/leoliu/ggtags/issues/64
JonasDahlbæk17年

3

正規表現検索を使用すると役立ちますが、検索にスペースC-q SPCをクォートするために使用する検索用のリテラルスペースを確認することもできます。

次に、@ Rovanionの答えをリフティングするには、次を使用しisearch-forward-regexpます。

C-M-s C-q SPC C-q SPC

これにより、2つの連続したスペースが検索されます。興味深いことに、isearch-forward-regexp個別の一致が必要です。を検索aaaするaaと1回だけ一致し、2番目の文字では再び一致しません。


最後のメモについて、「ゼロ個以上の空白とそれに続く空白」を検索し、先頭の空白のN文字を指定すると、N + 1個のすべての一致をステップ実行する必要があることを想像してください。提供する合理的なオプションであることがわかりますが、それはひどいデフォルトになるでしょう。
フィルス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.