2013-05-13 28 views
5

Có thể "cuộn qua cuối bộ đệm" trong cửa sổ. Điều này rất hữu ích vì Emacs phải bằng cách nào đó sử dụng không gian thừa khi bộ đệm không lấp đầy toàn bộ khu vực có sẵn cho cửa sổ được sử dụng để hiển thị nó.Làm nhiều bộ đệm có thể nhìn thấy được trong cửa sổ thay vì hiển thị vùng trống sau bộ đệm

Tuy nhiên đôi khi khi toàn bộ bộ đệm vừa khít vào cửa sổ, phần trên vẫn không được hiển thị và nhiều không gian hơn mức cần thiết bị lãng phí bên dưới nội dung đệm để lấp đầy khoảng trống. Sẽ tốt hơn nếu cửa sổ được cuộn tự động để hiển thị bộ đệm hoàn chỉnh hoặc nếu cửa sổ lớn hơn cửa sổ càng nhiều càng tốt.

Nói cách khác, thời gian duy nhất khi cửa sổ hiển thị nội dung nào đó "bên dưới đầu bộ đệm" là khi cửa sổ lớn.

Có chế độ hoặc tùy chọn để làm điều đó không?

enter image description here

+0

Làm thế nào để sửa chữa một lỗi đánh máy trong một ảnh chụp màn hình? :-) – tarsius

+1

Có lưu ý rằng bạn có thể làm gì với nó. –

+0

Làm thế nào để bạn có được số dòng bên trái? –

Trả lời

1

Edit: Vì vậy, một cái gì đó như thế này?

(add-hook 'post-command-hook 'my-eob-recenter) 
(defun my-eob-recenter() 
    (when (pos-visible-in-window-p (point-max)) 
    (save-excursion 
     (goto-char (point-max)) 
     (recenter -1)))) 

Original câu trả lời:

Nếu bạn có một cửa sổ mà là lớn hơn so với nội dung của nó và bạn muốn thu nhỏ nó để phù hợp với, có một ràng buộc cho điều đó.

C-x- chạy shrink-window-if-larger-than-buffer

Cá nhân tôi nghi ngờ điều này sẽ gây phiền nhiễu nếu nó xảy ra tự động, nhưng bạn có thể thử này:

(defadvice split-window (after my-split-window-shrink) 
    "Shrink the selected window after a window split 
if it is larger than its contents." 
    (shrink-window-if-larger-than-buffer)) 
(ad-activate 'split-window) 
+0

Đó không phải là điều tôi muốn. Tôi không muốn thay đổi kích thước cửa sổ Tôi chỉ muốn cửa sổ hiển thị càng nhiều bộ đệm càng tốt. Cửa sổ nên "hoạt động giống như ở phía dưới như ở trên cùng", trừ khi cửa sổ là "lớn hơn" so với bộ đệm, trong trường hợp đó đầu của bộ đệm luôn luôn được hiển thị. – tarsius

+0

Ah, tôi nghĩ bây giờ tôi đã hiểu. Vì vậy, trong ví dụ của bạn ảnh chụp màn hình cửa sổ trên cùng là thực sự tốt, và nó chỉ là vị trí của văn bản trong cửa sổ dưới cùng mà bạn có một vấn đề với? Về cơ bản, bạn muốn có một tùy chọn để không bao giờ hiển thị bất kỳ không gian dọc nào sau dòng cuối cùng của bộ đệm? – phils

+0

Có, ngoại trừ tất nhiên khi bộ đệm là "ngắn". – tarsius

0

Không gian bộ đệm thứ hai có vẻ hơi lớn, đồng ý. Tuy nhiên, về cơ bản hành vi là hợp lý vì nó làm cho bạn nắm bắt được tại-the-end cùng một lúc.

Bộ đệm đầy không cho biết kết thúc. Trong hầu hết các trường hợp, bạn sẽ tiếp tục ở cuối hoặc tận dụng lợi nhuận từ thông tin đó được báo hiệu.

Cũng giống như tôi tưởng tượng nó ...

+0

Những gì bạn thấy là một lợi ích rất có thể chỉ là một tác dụng phụ của cách thức hoạt động này. Nếu đây là lý do cho "tính năng" này, nó sẽ có ý nghĩa cho cùng xảy ra ở phía trên cùng của cửa sổ/bộ đệm. Có nhiều cách tốt hơn để báo hiệu "bạn đã đến cuối bộ đệm", ví dụ: những gì nó làm ở đầu cuối đã: tiếng bíp (hoặc flash) và in "Bắt đầu của bộ đệm" trong khu vực echo. – tarsius

+0

@tarsius Hmm, đừng nghĩ rằng nó có ý nghĩa ở đầu. Đối với cảm giác của tôi nó bắt chước một chút tờ trống để viết. Mà đi đầu xuống. –

+0

Có, tất nhiên.Tôi không nói rằng không gian thêm do một bộ đệm nhỏ trong một cửa sổ lớn nên được đặt ở đầu thay vì (hoặc chia đều hoặc bất cứ điều gì). Tôi nghĩ rằng tôi hiểu lầm bạn. Tôi nghĩ rằng bạn đang nói rằng hiển thị nhiều không gian đệm sau khi cần thiết sau khi di chuyển về phía dưới là một điều tốt bởi vì nó báo hiệu rằng kết thúc đã đạt được. Trong trường hợp đó tôi nghĩ rằng nhấp nháy/bíp là thích hợp hơn. Nhưng tất nhiên khi cửa sổ là lớn, chỉ có các tùy chọn hiển thị một số không gian trống hoặc thu nhỏ cửa sổ. Tôi thích cái cũ hơn, giống như nó đã được mặc định. – tarsius

Các vấn đề liên quan