Làm thế nào để tôi có được một dòng chế độ fancier sử dụng màu sắc và hình tam giác rắn?


93

Mọi người thỉnh thoảng đăng ảnh chụp màn hình với các mô hình có màu sắc và hình tam giác đặc: nhập mô tả hình ảnh ở đây

Làm thế nào để tôi nhân rộng hiệu ứng này?


2
Tôi thực sự đã được hỏi câu hỏi này một vài lần trên các trang web khác, vì vậy tôi nghĩ rằng tôi cũng nên hỏi nó ở đây :).
Tikhon Jelvis

1
Xem thêm whattheemacsd.com/appparent.el-01.html để biết các mẹo về thay đổi văn bản, không chỉ giao diện của dòng chế độ.
mankoff

Câu trả lời:


78

Điều này có thể đạt được với hai gói:

  1. chế độ thông minh .
  2. đường dây điện .

Nhìn chung, dòng chế độ thông minh mạnh hơn dòng điện (xin lỗi vì chơi chữ), theo nghĩa là nó cung cấp nhiều tính năng hơn để kiểm soát hành vi của dòng chế độ và dễ tùy chỉnh hơn khi xuất hiện. Readme có một danh sách các tính năng tuyệt vời , nhưng tóm lại, nó cung cấp kiểm soát độ rộng, thay thế chuỗi trong đường dẫn tệp, ẩn các chế độ nhỏ, trong số những thứ khác.

  • Nếu tất cả những gì bạn muốn là đạt được ảnh chụp màn hình, powerline là lựa chọn tốt nhất.
  • Nếu bạn muốn có một bộ các tính năng khác kết hợp với điều đó, hãy thử chế độ dòng thông minh .

Vì powerline đã được giải thích rất rõ về một câu trả lời khác, tôi sẽ tập trung vào cách bạn có thể đạt được sự xuất hiện đó với dòng chế độ thông minh.

Cài đặt đầu tiên

Bạn có thể cài đặt dòng chế độ thông minh từ Melpa, Melpa-Stable hoặc tải xuống thủ công. Giả sử bạn quyết định sử dụng trình quản lý gói, chỉ cần làm

M-x package-install RET smart-mode-line

Khi bạn bật nó lên M-x sml/setup, dòng chế độ của bạn sẽ trông giống như một trong hai.
Ảnh chụp màn hình chủ đề tối Ảnh chụp màn hình chủ đề ánh sáng

Chủ đề Powerline

smart-mode-line có một số chủ đề tích hợp, một chủ đề đạt được giao diện được yêu cầu được cung cấp riêng trong themes/ thư mục. Lưu ý rằng chủ đề này vẫn đang trong giai đoạn thử nghiệm, vì vậy việc tùy chỉnh nó có thể chưa hoạt động hoàn hảo.

Cài đặt chủ đề từ Melpa

M-x package-install RET smart-mode-line-powerline-theme

Nếu bạn muốn cài đặt thủ công, nó ở đây , nhưng bạn cũng cần cài đặt đường dây điện.

Cuối cùng bạn có thể bật chủ đề với M-x sml/apply-theme RET powerline. Và dòng chế độ của bạn sẽ trông như thế này.
Ảnh chụp màn hình chủ đề Powerline
Như bạn có thể thấy, thứ tự của các yếu tố không hoàn toàn giống nhau, nhưng diện mạo tổng thể là ở đó.

Để sử dụng chủ đề này mọi lúc, hãy thêm phần sau vào tệp init của bạn. Bạn cũng có thể tùy chỉnh bất kỳ biến cấu hình powerline nào và chúng sẽ có tác dụng tương tự ở đây.

;; These two lines are just examples
(setq powerline-arrow-shape 'curve)
(setq powerline-default-separator-dir '(right . left))
;; These two lines you really need.
(setq sml/theme 'powerline)
(sml/setup)

1
Tôi cũng đã viết về chế độ thông minh, nhưng bạn chắc chắn đã giải thích rõ hơn. Cảm ơn bạn.
Boccaperta-IT

3
Bạn cũng có thể giải thích các tính năng regrec trong đó một đường dẫn có thể được biểu thị bằng một bộ ký tự ngắn hơn ... :ED:thay vì ~/.emacs.d/rich-minorityđể ẩn các nút bật chế độ nhỏ.
Kaushal Modi

1
@kaushalmodi xây dựng một chút.
Malabarba

46

Điều này có thể đạt được với một gói gọi là "powerline". Có một số biến thể có sẵn, bao gồm ít nhất một biến thể bạn có thể cài đặt thông qua package.el.

Cá nhân, tôi sử dụng cái này . Đây là một ảnh chụp màn hình từ README của gói:

Một ví dụ về đường dây điện.

Bạn có thể định cấu hình màu bằng cách đặt mặt của dòng chế độ:

(set-face-attribute 'mode-line nil
                    :foreground "Black"
                    :background "DarkOrange"
                    :box nil)

Bạn cũng có thể định cấu hình các hình dạng khác nhau, thay vì chỉ hình tam giác:

(setq powerline-arrow-shape 'curve)

Emacs powerline với các đường cong thay vì mũi tên.


2
FWIW - Nếu bạn gặp vấn đề với việc làm cho màu sắc của dải phân cách hoàn toàn giống như tôi đã làm, tôi đã tìm thấy ngã ba đường dây điện này nơi bạn có thể (setq powerline-default-separator 'utf-8)cho phép bạn sử dụng bất kỳ phông chữ được vá đường dây điện nào ở đây .
waymondo

@thepalmcivet: tốt để biết, nhưng tôi không hoàn toàn rõ ràng ý của bạn bằng cách làm cho màu sắc liền mạch. Bạn có một ảnh chụp màn hình của vấn đề hoặc cái gì đó? Cảm ơn!
Tikhon Jelvis

2
Không có vấn đề, đây là những gì tôi nhận được với (setq powerline-default-separator 'arrow). Tôi đang cài đặt Carbon Emacs với Homebrew với --srgbcờ và (setq ns-use-srgb-colorspace t)trong .emacs.d của tôi.
waymondo

Tikhon, đó là một dòng chế độ đáng yêu mà bạn có ở đó. Bạn có thể đăng phần định dạng dòng chế độ đầy đủ mà bạn đã sàng lọc một phần không? Cảm ơn :-)
Ivan Vučica

2
@ IvanVučica: Cảm ơn! Đó là trên GitHub, gồm hai phần: powerline.el đã sửa đổi , chứa một loạt các hình dạng để lựa chọn ( curverất hay, nhưng tôi sử dụng diagonalngay bây giờ) và chính .emacs của tôi , có một số cài đặt linh tinh tôi có ở đâu đó. Nếu bạn rất có khuynh hướng, bạn có thể tạo bản sao của riêng mình powerline.elvà thêm hình dạng dấu tách của riêng bạn thông qua nghệ thuật ASCII để có được hiệu ứng chính xác mà bạn cần :).
Tikhon Jelvis

12

Như những người khác đã đề cập, powerline là gói định dạng modeline theo cách đó. Tuy nhiên, hầu hết các chủ đề của emacs, không xác định màu cho đường dây điện (không tuyệt vời). Một chủ đề đó là chủ đề moe đầy màu sắc (và toàn diện) . Nó thậm chí còn có chế độ thay đổi màu sắc vào buổi tối để dễ nhìn hơn. Nó trông như thế này:

chủ đề moe trong chế độ màu đỏ tươi rực rỡ, theo chủ đề mô hình powerline

Mũi tên của tôi trong đường dây điện trông lạ vì tôi đang sử dụng một phiên bản chưa được chỉnh sửa của phông chữ Luxi Mono.


1

Mũi tên của tôi trong đường dây điện trông lạ vì tôi đang sử dụng một phiên bản chưa được chỉnh sửa của phông chữ Luxi Mono.

William Roe , đánh giá từ ảnh chụp màn hình của bạn, bạn đang ở trên macOS. Như đã nêu trong bình luận vấn đề này , bạn sẽ cần thêm

(setq powerline-image-apple-rgb t)

vào tập tin init của bạn. Điều này sẽ sửa vấn đề tô màu bằng dấu phân cách ("mũi tên"). Làm việc cho tôi ít nhất.

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.