2013-05-27 21 views
6

Có cách nào để định vị một giá trị ở đầu bên phải của mô hình không?Cách định giá trị ở phía bên phải của mô hình?

Từ sự hiểu biết của tôi, mô hình "đẩy" giá trị của nó ở xa hơn nếu các giá trị tăng kích thước. Tôi muốn nó nếu một số giá trị sẽ bắt đầu ở phía bên phải và mở rộng vào giữa.

Tôi đã thử các giải pháp như powerline, nhưng chúng dường như khá mất tập trung và phức tạp hơn trong thiết lập để hiển thị cùng một lượng thông tin như mô hình chuẩn.

Trả lời

1

Theo như tôi biết, điều đó không thể thực hiện được thông qua tùy chỉnh đơn giản của đường chế độ thông thường. Bạn có thể sửa đổi biến số mode-line-format để thay đổi diện mạo và nội dung của nó ở một mức độ nào đó, nhưng theo như các cấu trúc dựng sẵn để căn chỉnh văn bản, tôi chắc chắn rằng bạn bị giới hạn kiểm soát chiều rộng của các thành phần dòng chế độ đệm hoặc cắt ngắn. Có thể sử dụng một số tin tặc thông minh trong biến số mode-line-format (sử dụng các mẫu (:eval ...) và/hoặc (list ...)) để đạt được kết quả mong muốn. Bạn có thể tham khảo Emacs Lisp Reference Manual page on the mode-line-format variable để biết chi tiết. Ngoài ra, bạn phải sử dụng một số gói của bên thứ ba.

4

Đây là một cách để thực hiện. Bí quyết là thêm dấu cách cho đến cuối dòng trừ vị trí cần thiết để hiển thị văn bản của bạn (được trích xuất từ ​​mã powerline trên wiki emacs):

(defun mode-line-fill (face reserve) 
    "Return empty space using FACE and leaving RESERVE space on the right." 
    (unless reserve 
    (setq reserve 20)) 
    (when (and window-system (eq 'right (get-scroll-bar-mode))) 
    (setq reserve (- reserve 3))) 
    (propertize " " 
       'display `((space :align-to (- (+ right right-fringe right-margin) ,reserve))) 
       'face face)) 


;; Set the modeline to tell me the filename, hostname, etc.. 
(setq-default mode-line-format (list 
    " " 
    mode-line-mule-info 
    'mode-line-modified 
    "- " 
    'mode-line-buffer-identification 
    " (%l, %c) " 
    'mode-line-modes 
    " -- " 
    `(vc-mode vc-mode) 

    ;; Fill until the end of line but 10 characters 
    (mode-line-fill 'mode-line 10) 
    "Some text" 
    ) 
) 
+0

Không rõ vì sao bạn muốn chọn khuôn mặt cho các phụ. Nếu bạn chỉ định khuôn mặt 'chế độ dòng ', nó sẽ được sử dụng trên cả hai dòng chế độ hoạt động và không hoạt động, trông có vẻ lạ vì các dòng chế độ không hoạt động sử dụng mặt' chế độ dòng không hoạt động'. Thay vào đó, không chỉ định khuôn mặt và khuôn mặt mặc định phù hợp sẽ được sử dụng. –

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