Buat isearch lewati konten yang dilipat dalam mode-org

9

T: Bagaimana saya bisa mengatakan isearchuntuk mengabaikan isi blok yang dilipat secara default di org-modebuffer?

Lebih khusus lagi, saya ingin isearchmengabaikan isi blok komentar dan laci : Ketika menulis dokumen di org-modesaya sering menggunakan blok komentar dan laci kustom untuk menyimpan berbagai jenis catatan tentang teks yang saya tulis. Saya membuat mereka dilipat secara default untuk memastikan isinya tidak mengganggu saya:

(add-hook 'org-mode-hook #'org-hide-block-all)

Ini berfungsi dengan sangat baik, tetapi tidak akan berhenti org-modemengembangkan blok ini jika mengandung kecocokan untuk string yang saya lakukan isearch.

itu hanya
sumber

Jawaban:

11

Anda dapat mengatur search-invisibleke nildalam .emacsatau menggunakan Kustomisasi. Kemudian, jika Anda tidak ingin menampilkan pertandingan dalam teks tak terlihat, tekan M-s isaat menggunakan isearch.

(Saya menemukan ini dengan membaca dokumen dari isearch-forwarddan isearch-toggle-invisible, tetapi juga didokumentasikan dalam manual: lihat Pencarian Khusus .)

Ini memengaruhi semua buffer, bukan hanya Organisasi; jika Anda ingin menggunakan nildalam org-modebuffer dan default tempat lain Anda dapat membuat buffer lokal mengikat di Org buffer:

(add-hook 'org-mode-hook
          (lambda ()
            (make-local-variable 'search-invisible)
            (setq search-invisible nil)))
Constantine
sumber
1
Nilai penyangga-lokal akan jauh lebih praktis daripada saran yang mengikat. :-)
Malabarba
@Malabarba: Sangat benar! (Saya tidak tahu bahwa seseorang dapat menggunakan make-local-variableuntuk membuat buffer-local binding untuk variabel yang sudah didefinisikan sebagai global - sampai sekarang, yaitu. Saya masih belajar hal-hal. :-)) Saya akan memperbarui menjawab.
Constantine
7

Saat menggunakan isearchAnda dapat beralih pencarian pada teks yang tidak terlihat dengan M-s i.

Anda juga dapat menyesuaikan perilaku ini dengan M-x customize-group isearchdan mencari Search Invisible.

Perhatikan bahwa ini akan mengabaikan semua yang ada di blok terlipat, saya tidak bisa mengabaikan hanya teks di blok komentar.

Monsieur Banana
sumber
Kami berdua harus mengetik pada saat yang sama! :-)
Constantine