Làm thế nào để có được trang người đàn ông màu dưới vỏ cá?


12

Dường như có một cách để làm cho các trang man hiển thị màu (xem ở đây . Nó liên quan đến việc thiết lập các biến môi trường liên quan đến ít hơn và thêm các định nghĩa này vào .bashrc. Tôi đã thử làm tương tự config.fishcho vỏ cá, nhưng không có đầu ra màu.

Làm thế nào để có được trang man màu trong vỏ cá?




@ bodhi.zazen Cá sử dụng lệnh set thay vì xuất. Điều đó đã không làm cho các trang người đàn ông xuất hiện trong màu sắc. Do đó, câu hỏi của tôi ở trên :-)
Ashwin Nanjappa

bạn phải "đặt" các biến đó (từ wiki vòm) ít nhất hoặc (một lần nữa từ wiki vòm).
Panther

@ bồ đề.zazen Vâng. Tôi đã làm điều đó. Không có màu trong các trang nam :-(
Ashwin Nanjappa

Câu trả lời:


6

Bạn có thể đặt cấu hình theo các lệnh sau,

set -x LESS_TERMCAP_mb (printf "\033[01;31m")  
set -x LESS_TERMCAP_md (printf "\033[01;31m")  
set -x LESS_TERMCAP_me (printf "\033[0m")  
set -x LESS_TERMCAP_se (printf "\033[0m")  
set -x LESS_TERMCAP_so (printf "\033[01;44;33m")  
set -x LESS_TERMCAP_ue (printf "\033[0m")  
set -x LESS_TERMCAP_us (printf "\033[01;32m")  

7

Nếu bạn chỉ muốn thêm các màu này khi xem các trang man, không phải cho tất cả mọi thứ bạn xem less, bạn nên đặt các biến này trong hàm bao bọc manthay vì đặt chúng vào config.fish.

Toàn bộ quá trình là tạo một tệp mới tại ~/.config/fish/functions/man.fishvà bên trong nó xác định một hàm manđặt các biến môi trường cần thiết, sau đó gọi bản gốc manbằng cách sử dụng command, truyền vào các đối số bằng cách sử dụng $argv.

Đây là phiên bản của tôi về chức năng bao bọc:

~/.config/fish/functions/man.fish
function man --description "wrap the 'man' manual page opener to use color in formatting"
  # based on this group of settings and explanation for them:
  # http://boredzo.org/blog/archives/2016-08-15/colorized-man-pages-understood-and-customized
  # converted to Fish shell syntax thanks to this page:
  # http://askubuntu.com/questions/522599/how-to-get-color-man-pages-under-fish-shell/650192

  # start of bold:
  set -x LESS_TERMCAP_md (set_color --bold red)
  # end of all formatting:
  set -x LESS_TERMCAP_me (set_color normal)

  # start of standout (inverted colors):
  #set -x LESS_TERMCAP_so (set_color --reverse)
  # end of standout (inverted colors):
  #set -x LESS_TERMCAP_se (set_color normal)
  # (no change – I like the default)

  # start of underline:
  #set -x LESS_TERMCAP_us (set_color --underline)
  # end of underline:
  #set -x LESS_TERMCAP_ue (set_color normal)
  # (no change – I like the default)

  command man $argv
end

2
Thật sự cảm ơn! Và để có được nhiều cá hơn, bạn có thể sử dụng set_colorlệnh. ví dụ : set -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
Chris Clark

3

Giả sử bạn sử dụng ít hơn như máy nhắn tin của mình, hãy đặt cái này vào ~/.config/fish/config.fish:

set -x LESS_TERMCAP_mb (printf "\e[01;31m")
set -x LESS_TERMCAP_md (printf "\e[01;31m")
set -x LESS_TERMCAP_me (printf "\e[0m")
set -x LESS_TERMCAP_se (printf "\e[0m")
set -x LESS_TERMCAP_so (printf "\e[01;44;33m")
set -x LESS_TERMCAP_ue (printf "\e[0m")
set -x LESS_TERMCAP_us (printf "\e[01;32m")

Nếu bạn thấy \e[0mvv xuất hiện khi bạn xem trang man, hãy thử thêm dòng này:

set -x LESS "-R"

Không làm việc. Tôi thấy \ e [01 chuỗi khi tôi làm "man ls".
Ashwin Nanjappa

Lạ thật, tôi tin rằng đây là trực tiếp từ tập tin cấu hình của tôi. Mặc dù vậy, tôi thực sự đã thử nó trên Ubuntu, khi tôi tự chạy một bản phân phối khác. Có lẽ bạn có thể thử thêm set -x LESS="-R"vào cuối cấu hình của bạn?
bobbaluba

Thêm vào đó không giúp được gì. Vẫn thấy \ e [01 chuỗi trong manpage.
Ashwin Nanjappa

1

Có thể sử dụng set_colorthay vì các chuỗi ANSI trực tiếp. Trong thực tế, điều này cho phép bạn sử dụng bất kỳ màu nào bạn muốn, bằng cách sử dụng các thoát thập lục phân màu 24 bit, như thế nào (set_color FF55AA).

set -x LESS_TERMCAP_mb (set_color brred)
set -x LESS_TERMCAP_md (set_color brred)
set -x LESS_TERMCAP_me (set_color normal)
set -x LESS_TERMCAP_se (set_color normal)
set -x LESS_TERMCAP_so (set_color -b blue bryellow)
set -x LESS_TERMCAP_ue (set_color normal)
set -x LESS_TERMCAP_us (set_color brgreen)
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.