Cari string yang mengabaikan baris baru

11

Saya terbiasa menulis file di mana paragraf dibagi menjadi beberapa baris, misalnya dengan fill-column. Ketika saya mencari string ( C-s) seperti this is a long text, hasil pencarian tidak akan mengembalikan lokasi tempat string muncul dengan jeda baris antara dua kata (seperti this\nis a long text).

Apakah ada perintah yang juga akan mengembalikan hasil ini?

Tony
sumber

Jawaban:

11

Lihatlah variabel isearch-lax-whitespace, isearch-regexp-lax-whitespacedan search-whitespace-regexp.

Jika dua variabel pertama diatur ke sesuatu yang tidak nol (misalnya t), karakter spasi apa pun dalam string pencarian Anda akan cocok dengan urutan apa pun yang cocok dengan ekspresi reguler yang ditentukan oleh search-whitespace-regexpvariabel.

Untuk mencocokkan kata di seluruh jeda baris lakukan ini:

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

Karakter spasi dalam kueri Anda sekarang akan cocok dengan spasi, tab, atau linebreak berapa kali.

rekado
sumber
Terima kasih, tetapi itu tidak berhasil untuk saya. Versi Emacs saya adalah 23.4.1. Tampaknya ia tidak memiliki variabel "isearch-lax-whitespace".
Tony
1
Ya, fitur-fitur ini diperkenalkan di Emacs 24.3. Adakah peluang untuk meningkatkan ke versi yang lebih baru? Versi 23.4.1 sudah lebih dari tiga tahun.
rekado
2
Coba isearch-forward-word, yang terikat M-s wpada Emacs baru-baru ini.
politza
Emacs 23 tidak bekerja untuk saya, pastikan Anda menggunakan 24.
ragerdl