Tạo tỷ lệ phần trăm hiển thị dòng chế độ và không phải Top / Dưới / Tất cả


9

Chế độ dòng 's %phiển thị tỷ lệ phần trăm của giao diện hiện tại của bộ đệm:

% p Tỷ lệ phần trăm của văn bản đệm phía trên đầu cửa sổ hoặc 'Trên cùng', 'Dưới cùng' hoặc 'Tất cả'. Lưu ý rằng dòng chế độ mặc định xây dựng cắt ngắn này thành ba ký tự.

Tôi không thích Top / bottom / All và tôi muốn luôn hiển thị tỷ lệ phần trăm. Có cách nào để đạt được điều này?


2
Tôi tò mò tại sao. Topcó nghĩa là 0%. Bottomnghĩa là 100%. Allcó nghĩa là 100% và đầu cũng có thể nhìn thấy. Bạn có thể làm khá nhiều thứ bạn thích với dòng chế độ, nhưng trong trường hợp này sẽ là một nỗi đau với con khỉ với điều này. Lưu ý rằng bạn có thể dễ dàng đảo ngược hướng phần trăm - xem %P(thay vì %p).
vẽ

3
Bộ não của tôi sẽ tìm kiếm một số khi tôi muốn biết tôi đang ở đâu. Khi tôi phải thỉnh thoảng nhớ rằng nó cũng có thể là Top / bottom, thì tôi phải nhớ điều đó.
ClojureMostly 22/03/2015

Một ý tưởng sẽ được tính toán bộ đệm có kích thước - tức là, số lượng điểm - giữa point-minwindow-startwindow-endpoint-maxvà nếu muốn, kích thước của bộ đệm có thể nhìn thấy có thể là yếu tố trong - tức là, điểm giữa window-startđến window-end- những tính toán có thể được thực hiện trong chớp mắt và sẽ không ảnh hưởng đến hiệu suất vì điểm không di chuyển. Những tính toán kích thước bộ đệm có thể được chuyển thành tỷ lệ phần trăm. Tôi tin rằng đây một câu trả lời, nhưng tôi sẽ để người khác viết nó lên vì tôi có các dự án khác trên đĩa của tôi ngày hôm nay.
luật

Không bao giờ thực sự thấy hữu ích khi biết tỷ lệ phần trăm của bộ đệm ở trên: \ IMHO biết current_line / tot_lines và cuối cùng, biết rằng TẤT CẢ bộ đệm nội dung được hiển thị (khi tôi ở dòng đầu tiên) sẽ hữu ích hơn. Chỉ là ý kiến ​​của tôi, có lẽ đó là kinh nghiệm của tôi không đủ rộng.
Nsukami _

Câu trả lời:


5

Đây là một ví dụ về cách bạn có thể làm một cái gì đó như thế này. Tuy nhiên, lưu ý rằng nó hiển thị chính xác những gì bạn yêu cầu (phần trăm văn bản phía trên cửa sổ), đây có thể không phải là những gì bạn thực sự muốn. Chẳng hạn, nó không bao giờ hiển thị 100%, vì sẽ luôn có một số văn bản bên trong cửa sổ.

(setcar mode-line-position
        '(:eval (format "%3d%%" (/ (window-start) 0.01 (point-max)))))

Bạn cũng có thể sử dụng window-end, có nhược điểm ngược lại (nó hầu như không bao giờ hiển thị 0).

(setcar mode-line-position
        '(:eval (format "%3d%%" (/ (window-end) 0.01 (point-max)))))

Bạn có thể muốn nối các chuỗi này với khoảng trắng hoặc một số phần đệm khác.


0

Việc xây dựng trong mã cho %pchỉ vẻ tại window-startpoint-maxvà tính tỷ lệ phần trăm như vậy. Bạn có thể tìm thấy điều này bằng cách sử dụng C-h f format-mode-linevà sau đó theo liên kết đến các nguồn Emacs C (giả sử bạn có chúng ở đâu đó).

Vì vậy, bạn có thể làm điều tương tự bằng cách sử dụng một :evalhình thức trong mode-line-format.


7
Bạn có thể mở rộng câu trả lời của bạn để cung cấp giải pháp hoàn chỉnh?
Kaushal Modi
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.