Phân biệt giữa các dòng trống ở cuối bộ đệm và dưới cùng của cửa sổ?


7

Q: làm thế nào tôi có thể nhận được một chỉ báo trực quan phân biệt giữa phần cuối của bộ đệm và dưới cùng của cửa sổ?

Trường hợp sử dụng: Tôi đã có một bộ đệm với một số dòng trống ở phía dưới. Tuy nhiên, dưới cùng của cửa sổ ngoài các dòng trống cũng, tốt, trống. Tôi muốn có thể nói, một cách trực quan, nơi bộ đệm kết thúc / dòng trống dừng lại.

Vim thực hiện điều này với các ký tự không phải văn bản ở dưới cùng của cửa sổ (nghĩa là các dấu ngã) để chỉ ra rằng không có gì trong bộ đệm (chẳng hạn như các dòng trống) trong không gian đó, như trong ảnh chụp màn hình bên dưới:

Vim dấu

Làm thế nào một người có được sự tương tự của tính năng Vim này trong Emacs?

EDIT: Câu trả lời của @ glucas có vẻ đúng, nhưng tôi rất muốn thấy một câu trả lời không sử dụng rìa, vì tôi đặt câu trả lời là không để tiết kiệm không gian màn hình trên màn hình máy tính xách tay nhỏ.


Làm thế nào về việc sử dụng empty-linethành phần của fringe-indicator-listđể chỉ ra nơi kết thúc của bộ đệm bắt đầu? Ví dụ: (setq fringe-indicator-alist '((empty-line . empty-line))) Thêm các thành phần bổ sung cho alist như mong muốn. Phương pháp này, tuy nhiên, đòi hỏi một rìa phải được nhìn thấy. Xem thêm: reddit.com/r/emacs/comments/2kdztw/
Kẻ

Câu trả lời:


7

Bạn có thể tùy chỉnh indicate-empty-linesđể bật điểm đánh dấu rìa trên các dòng sau khi kết thúc tệp hoặc gọi toggle-indicate-empty-linesđể bật và tắt tương tác.

Có một gói trên MELPA thay thế chỉ báo rìa mặc định bằng ~ cho một cái nhìn gần với những gì bạn nhận được với vi. Xem vi-tilde-fringe.

Đã cập nhật

Một cách tiếp cận khác là sử dụng chế độ khoảng trắng để hiển thị các ngắt dòng. Hãy thử whitespace-newline-mode, có thể chỉnh sửa whitespace-newlinekhuôn mặt. Trực quan cách tiếp cận này bận rộn hơn những gì vi làm vì bạn đang đánh dấu tất cả các dòng trong bộ đệm ngoại trừ các dòng trống sau nội dung, nhưng nó đạt được kết quả tương tự. (Cũng có thể định cấu hình chế độ khoảng trắng hoặc chế độ dẫn xuất tùy chỉnh để chỉ làm nổi bật các dòng trống ở cuối nội dung bộ đệm.)


+1 vì đây có lẽ sẽ là câu trả lời. Tuy nhiên, tôi không sử dụng rìa, vì vậy tôi sẽ để câu hỏi mở thêm một chút nữa để xem có ai có giải pháp không rìa không.
Dân

4

Tôi đã viết một gói, char-font-lock , (trong số những thứ khác) làm nổi bật các dòng trống ở cuối bộ đệm.

Nó cũng làm nổi bật dòng cuối cùng (trong trường hợp nó không kết thúc bằng một dòng mới), khoảng trắng ở cuối dòng, ký tự tab và ký tự không phải mã ascii. Bạn có thể chọn cherry trong số những thứ bạn muốn làm nổi bật.

Ví dụ: nhập mô tả hình ảnh ở đây


1
Hmm, điều đó không thực sự liên quan vì câu hỏi là về việc đặt mọi thứ vào cửa sổ nơi không có dòng nào ...
wasamasa

1
Không, câu hỏi là "làm thế nào tôi có thể có được một chỉ số trực quan phân biệt giữa phần cuối của bộ đệm và dưới cùng của cửa sổ?" Gói của tôi thực hiện điều này bằng cách làm nổi bật các dòng trống ở cuối bộ đệm. Nếu bạn không nhận được bất kỳ đánh dấu nào thì bạn biết rằng tệp được định dạng chính xác với một dòng mới ở cuối danh sách không trống cuối cùng. Phải thừa nhận rằng, nó không làm nổi bật những thứ như vi, nhưng đó không phải là một phần của câu hỏi.
Lindydancer 7/07/2015

Tôi nghĩ rằng OP đã yêu cầu các dòng màn hình trống được chỉ định. Theo ảnh chụp màn hình của bạn, tuy nhiên, gói của bạn dường như làm nổi bật các dòng vật lý trống .

@lunaryorn, tôi đọc nó như thể OP không thích thực tế là các dòng trống ở cuối bộ đệm không hiển thị. ("Tôi muốn có thể nói, một cách trực quan, nơi bộ đệm kết thúc / dòng trống dừng lại.")
Lindydancer 7/07/2015

1
Đồng ý, điểm của câu hỏi này dường như là làm thế nào để biết nơi kết thúc nội dung bộ đệm. Làm nổi bật (các) dòng cuối cùng của nội dung đó có vẻ như là một cách tiếp cận hợp lệ như làm nổi bật không gian sau nội dung.
glucas

3

Ai đó đã viết một gói quản lý lớp phủ trải dài trên khu vực sau khi kết thúc tệp:

https://github.com/jmickelin/vim-empty-lines-mode

Hãy nhớ rằng mặc dù giải pháp này hoạt động chính xác hơn và cũng hoạt động trong các thiết bị đầu cuối, nhưng nó nhất thiết sẽ ít hiệu suất hơn và nhiều lỗi hơn so với chỉ báo rìa.


Chỉ cần lưu ý: chế độ nhỏ này thực hiện những gì tôi đang tìm kiếm, nhưng người dùng nên lưu ý rằng nó cập nhật lớp phủ ở cuối bộ đệm sau mỗi lệnh, vì vậy nó có thể nặng hơn một chút so với mong muốn.
Dân

Đó là ... và hóa ra đó là lỗi và dường như không chơi tốt với thu hẹp.
Dân

Ôi không, câu trả lời đã không được chấp nhận ._.
wasamasa 7/07/2015

Vâng, xin lỗi, đây là một phát hiện tốt, nhưng tôi sẽ không chấp nhận bây giờ vì những lý do được trích dẫn trong các nhận xét của tôi cho đến khi tôi có cơ hội kiểm tra nó chặt chẽ hơn.
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.