Cocokkan dua spasi dengan pencarian tambahan

20

Saat mencari menggunakan:

C-s SPC SPC

Juga cocok dengan spasi tunggal. Saya ingin mencocokkan tepat dua ruang.

Rovanion
sumber

Jawaban:

24

Gunakan M-s SPCselama Isearch untuk beralih spasi yang cocok secara harfiah. Saat mencocokkan secara harfiah, setiap SPCkarakter yang Anda ketik dicocokkan secara individual. (Ini digunakan untuk menjadi perilaku Emacs default, BTW.)

Untuk mengkonfigurasi ini sebagai perilaku default menyesuaikan pilihan search-whitespace-regexpuntuk nil. ( M-x customize-option search-whitespace-regexp.)

Lihat manual GNU Emacs, simpul Special Isearch.

Drew
sumber
Terima kasih untuk ini. Mungkin bagus untuk benar-benar meletakkan baris .emacs (set-variable 'search-whitespace-regexp nil)di sana. Terima kasih.
Gray
1
@ Abu-abu: set-variabletidak menyimpan nilai baru secara terus-menerus, sehingga tidak akan mengubah perilaku default. Saya pikir M-x customize-optioninilah yang disebut di sini.
Drew
Oh saya sedang membicarakannya di file dot emacs. Tidak tahu tentang opsi penyesuaian. Terima kasih sudah mengedit.
Gray
3

Menggunakan pencarian tambahan regexp menyelesaikan masalah, jika Anda lolos dari karakter spasi:

C-M-s \SPC\SPC

Anda juga dapat menggunakan pencarian dan ganti tanpa garis miring terbalik, jika itu yang Anda cari:

M-% SPC SPC
Rovanion
sumber
Saya mengalami masalah yang sama hari ini ketika membangun makro keyboard. Jawaban ini memecahkan masalah bagi saya, meskipun saya harus menggunakan kombinasi tombol ESC C-s. Lihat juga github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk
3

Menggunakan pencarian regexp membantu, tetapi Anda juga dapat memastikan spasi literal untuk pencarian menggunakan C-q SPCuntuk mengutip spasi dalam pencarian.

Untuk menghilangkan jawaban @ Rovanion, gunakan isearch-forward-regexp:

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

Itu akan mencari dua spasi berturut-turut. Menariknya, isearch-forward-regexpmembutuhkan kecocokan diskrit. Mencari aaauntuk aahanya akan cocok sekali dan tidak lagi di karakter kedua.

dgtized
sumber
Mengenai catatan terakhir Anda, bayangkan mencari "nol atau lebih spasi putih diikuti oleh sesuatu" dan, diberikan N karakter spasi putih terkemuka, harus melewati semua pertandingan individu N + 1. Saya bisa melihat bahwa menjadi opsi yang masuk akal untuk diberikan, tetapi itu akan menjadi default yang mengerikan.
phils