改行を無視して文字列を検索します


11

私は、段落が数行に分割されているファイルの作成に慣れていますfill-columnC-sなどの文字列()を検索するthis is a long textと、検索結果は、2つの単語の間に改行(のようにthis\nis a long text)がある文字列が表示される場所を返しません。

これらの結果も返すコマンドはありますか?

回答:


11

変数を見てみましょうisearch-lax-whitespaceisearch-regexp-lax-whitespacesearch-whitespace-regexp

最初の2つの変数がnil以外(たとえばt)に設定されている場合、検索文字列のスペース文字は、search-whitespace-regexp変数で定義された正規表現と一致するシーケンスと一致します。

改行で単語を一致させるには、次のようにします。

(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace t)
(setq search-whitespace-regexp "[ \t\r\n]+")

クエリのスペース文字は、任意のスペース、タブ、または改行と何度でも一致します。


ありがとう、でも私にはうまくいきません。私のEmacsバージョンは23.4.1です。どうやら「isearch-lax-whitespace」変数はありません。
トニー

1
ええ、これらの機能はEmacs 24.3で導入されました。より新しいバージョンにアップグレードする可能性はありますか?バージョン23.4.1はすでに3年以上前のものです。
rekado

2
最近のEmacsにisearch-forward-wordバインドさM-s wれているを試してください。
politza

Emacsの23は必ず24を使用している作り、私のために仕事をしませんでした
ragerdl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.