Khi tìm kiếm, làm thế nào để luôn đảm bảo rằng một vài dòng sau từ được tô sáng có thể nhìn thấy?


7

Khi thực hiện search/isearchtrong một văn bản, đôi khi bạn nên xem một vài dòng sau chuỗi tìm kiếm được tô sáng, đó là những từ khác để tránh từ được tô sáng ở dưới cùng của cửa sổ.

Ví dụ: nếu chúng ta có văn bản sau trong bộ đệm, hãy thử tìm từ cuối cùng mà bạn có thể thấy. Đối với tôi đó là các nguyên tắc từ (như tôi đã tối đa hóa khung hình). Từ được tô sáng (trong tình huống của tôi, các nguyên tắc từ ) nằm ở cuối màn hình. Tôi muốn luôn luôn thấy một vài dòng (nếu có thể) sau các nguyên tắc từ sau khi tìm kiếm.

Surrounded
occasional 
pianoforte 
alteration 
unaffected 
impossible 
Perceived 
knowledge 
certainly 
Although 
moreover 
mistaken 
kindness 
horrible 
distance 
marriage 
country 
demesne 
Bachelor 
domestic 
extended 
doubtful 
Greatly 
Improved 
provided 
Dwelling 
speedily 
ignorant 
steepest 
Admiration 
instrument 
affronting 
invitation 
reasonably 
ecstatic 
wondered 
disposal 
curiosity  
shameless 
explained.
sincerity 
extremity 
additions 
principles
Carriage 
Remainder 
household 
direction 
zealously 
Sufficient 
motionless
compliment 
stimulated 
assistance

Bạn có thể viết một hàm cuộn một số dòng sau mỗi lần nhấn và thêm vào đó khi phím nhấn tìm kiếm được gọi.
ReneFroger

@ReneFrogertjuh Thông thường, nếu tại bất kỳ thời điểm nào, người ta hủy bỏ truy vấn tìm kiếm, người ta sẽ quay lại trạng thái bộ đệm trước khi thực hiện tìm kiếm.
Tên

Câu trả lời:


5
(setq scroll-margin 3)

Hoạt động ở khắp mọi nơi, không chỉ trong thời gian isearch.

scroll-margin. Mặc định: 0. Số dòng lề ở trên cùng và dưới cùng của cửa sổ. Nhớ lại cửa sổ bất cứ khi nào điểm nằm trong nhiều dòng trên cùng hoặc dưới cùng của cửa sổ.


Cảm ơn cho giải pháp đơn giản này mà trả lời câu hỏi. Nhân tiện, cho tôi hỏi một câu. Vai trò của 3 trong câu trả lời này là gì? Nếu tôi thay 3 bằng 1, tôi sẽ nhận được điều tương tự.
Tên

2

M-x apropos-variable RET isearch.*\(hook\|function\) RETdẫn bạn đến isearch-update-post-hook, dường như đó là những gì bạn đang tìm kiếm. Vì thế ...

(add-hook 'isearch-update-post-hook
          (lambda ()
            (when (> (length isearch-string) 0)
              ;;or whatever
              (recenter)))
          nil t)

1
Tôi đã kiểm tra mã của bạn, có vẻ ổn, mong đợi nếu từ tìm kiếm đã hiển thị trước khi tìm kiếm. Nếu tôi thay thế (when (> (length isearch-string) 0)...trong mã của bạn bởi (when (> 1 0)...nó dường như hoạt động. Nhưng tôi không hiểu vấn đề phát sinh từ đâu.
Tên
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.