Có thể xảy ra trung tâm văn bản tìm thấy trong bộ đệm?


7

Khi chọn một mục từ bộ đệm xảy ra, dòng được tô sáng nằm ở dưới cùng của màn hình hiển thị. Điều này ít hữu ích hơn so với việc giảm 25-50% màn hình (vì vậy thật dễ dàng để đọc văn bản xung quanh dòng tìm thấy). Điều này có thể không?

Câu trả lời:


9

Tôi không thấy hành vi mà bạn mô tả, tất cả. Đối với tôi, khi tôi chọn một lần xuất hiện trong bộ đệm, *Occur*nó sẽ truy cập sự xuất hiện trong bộ đệm nguồn, đặt cú đánh đó vào giữa cửa sổ bộ đệm nguồn (theo chiều dọc).

Nhưng nếu bạn thấy những gì bạn mô tả, thì chỉ cần đặt một số mã truy cập cửa sổ vào occur-mode-find-occurrence-hook.

Một cái gì đó như thế này. Bạn có thể sử dụng bất kỳ điều kiện so sánh bạn muốn. Ở đây, tôi đã sử dụng "trong vòng 10 dòng trên cùng hoặc dưới cùng", nhưng bạn có thể sử dụng tỷ lệ phần trăm, v.v.

(defun foo ()
  (let ((line   (line-number-at-pos)))
    (cond ((<= line (+ (line-number-at-pos (window-start)) 10))
           (recenter 10))
          ((>= line (- (line-number-at-pos (window-end)) 10))
           (recenter -10)))))

(add-hook 'occur-mode-find-occurrence-hook 'foo)

1
Yup, điều đó sẽ làm điều đó. Tôi nhận được hành vi của OP, FWIW.
Dân

Lạ là tôi không có. emacs -Qtrên MS Windows 7. Bất kỳ lần truy cập nào tôi nhấp (hoặc sử dụng RET) trong bộ đệm xảy ra đều được hiển thị ở giữa theo chiều dọc trong bộ đệm nguồn.
vẽ

Bạn nói đúng, emacs -Q(trên Linux) đưa ra hành vi mà bạn mô tả. Một cái gì đó phải được chôn ở đâu đó là thiết lập.
Dâ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.