在 Ubuntu 的 Zsh 中将颜色设置为 Less

发布于 2024-07-30 13:32:56 字数 1173 浏览 10 评论 0原文

如何在 Ubuntu 中获得与 Zsh 的 Less 和 Bash 的 Less 类似的突出显示?

我从 OS X 切换到 Ubuntu。 My Less 在 Zsh 中无法按预期工作。

我的 Less 中的手册是绿色和黑色的,有或没有以下代码。

 # comment these out in Ubuntu
 export LESS_TERMCAP_mb=$'\E[01;31m'         # begin blinking
 export LESS_TERMCAP_me=$'\E[0m'        # end mode

 export LESS_TERMCAP_se=$'\E[0m'        # end standout-mode
 export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
 export LESS_TERMCAP_ue=$'\E[0m'        # end underline

 export LESS_TERMCAP_us=$'\E[04;33;146m'    # begin underline is now yellow
 #                             |  |  |
 #                             |  |----------------- yellow
 #                             |-------------------- underline

 # to have the indication of cursor's location and line numbers, and R
 export LESS="-mNR"
 #               |--------- only ASCII color

该代码使手册在 OS X 中可读,但不适用于 Zsh 中的 Ubuntu。

Ubuntu 在 Bash 的 Less 中有出色的亮点。 我的手册在 Bash 中显示了黄色、绿色和黑色,没有我的代码。 Zsh 和 Bash 在 /usr/bin/less 中使用相同的 Less。 这表明 Ubuntu 的 Bash 有一些点文件可以在某处配置它。

Bash 中 Ubuntu 的 Less 突出显示在哪里?

How can you get similar highlightings to Zsh's Less than Bash's Less in Ubuntu?

I switched from OS X to Ubuntu. My Less do not work as expected in Zsh.

Manuals in my Less are green and black with or without the following code.

 # comment these out in Ubuntu
 export LESS_TERMCAP_mb=

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

\E[01;31m' # begin blinking export LESS_TERMCAP_me=

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

\E[0m' # end mode export LESS_TERMCAP_se=

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

\E[0m' # end standout-mode export LESS_TERMCAP_so=

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

\E[38;5;246m' # begin standout-mode - info box export LESS_TERMCAP_ue=

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

\E[0m' # end underline export LESS_TERMCAP_us=

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

\E[04;33;146m' # begin underline is now yellow # | | | # | |----------------- yellow # |-------------------- underline # to have the indication of cursor's location and line numbers, and R export LESS="-mNR" # |--------- only ASCII color

The code makes manuals readable in OS X, but it does not work for Ubuntu in Zsh.

Ubuntu has excellent highlightings in Bash's Less. My manuals have the colors yellow, green and black in Bash without my code. Both Zsh and Bash use the same Less at /usr/bin/less. This suggests me that Ubuntu's Bash has some dot-files which configure it somewhere.

Where are highlightings for Ubuntu's Less in Bash?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清音悠歌 2024-08-06 13:33:08

我的默认 shell 是 bash,所以对此持保留态度。 从 /etc/profile 开始,看看它如何获取特定于 bash 的文件。 您需要为 zsh 重新创建该逻辑。 也许 zsh-lovers 包可以提供帮助,至少它的标题是 zsh 的提示、技巧和示例
具有暗示性。

My default shell is bash so take this with a grain of salt. Start with /etc/profile and see how it sources bash-specific files. You need to re-create that logic for zsh. Maybe the zsh-lovers package can help, at least its title of tips, tricks and examples for the zsh
is suggestive.

池木 2024-08-06 13:33:05

对我在 archlinux 上的 zsh 有效:

$ mkdir ~/.terminfo/ && cd ~/.terminfo
Now get the terminfo description:
$ wget http://nion.modprobe.de/mostlike.txt
Now compile it using tic (the terminfo entry-description compiler)
$ tic mostlike.txt
(you may want to delete the mostlike.txt file after compiling)

mostlike.txt是这样

#   Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
mostlike|manpages with color looking like most, 
    am, hs, km, mir, msgr, xenl, 
    cols#80, it#8, lines#24, wsl#40, 
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
    bel=^G, bold=\E[1m\E[31m, clear=\E[H\E[2J, cr=^M, 
    csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
    cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
    cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
    dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
    dsl=\E]0;\007, ed=\E[J, el=\E[K, enacs=\E)0, fsl=^G, 
    home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, 
    is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H, 
    kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
    kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, 
    kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, 
    kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, 
    kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, 
    kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
    kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
    kslt=\E[4~, rc=\E8, rev=\E[7m\E[34m, ri=\EM, rmacs=^O, 
    rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, 
    rmso=\E[m, rmul=\E[m, 
    rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, 
    sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, 
    smkx=\E[?1h\E=, smso=\E[1;30m\E[47m, smul=\E[32m, 
    tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n, 
    u8=\E[?1;2c, u9=\E[c, 

然后只需在您最喜欢的 shell 的 rc 文件中定义一个别名:

alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"

This works for me in zsh on archlinux:

$ mkdir ~/.terminfo/ && cd ~/.terminfo
Now get the terminfo description:
$ wget http://nion.modprobe.de/mostlike.txt
Now compile it using tic (the terminfo entry-description compiler)
$ tic mostlike.txt
(you may want to delete the mostlike.txt file after compiling)

mostlike.txt is this

#   Reconstructed via infocmp from file: /usr/share/terminfo/x/xterm-pcolor
mostlike|manpages with color looking like most, 
    am, hs, km, mir, msgr, xenl, 
    cols#80, it#8, lines#24, wsl#40, 
    acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
    bel=^G, bold=\E[1m\E[31m, clear=\E[H\E[2J, cr=^M, 
    csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 
    cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, 
    cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 
    dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, 
    dsl=\E]0;\007, ed=\E[J, el=\E[K, enacs=\E)0, fsl=^G, 
    home=\E[H, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J, 
    is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>, kbs=^H, 
    kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 
    kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, 
    kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, 
    kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, 
    kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~, 
    kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
    kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 
    kslt=\E[4~, rc=\E8, rev=\E[7m\E[34m, ri=\EM, rmacs=^O, 
    rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>, 
    rmso=\E[m, rmul=\E[m, 
    rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7, 
    sgr0=\E[m, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, 
    smkx=\E[?1h\E=, smso=\E[1;30m\E[47m, smul=\E[32m, 
    tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n, 
    u8=\E[?1;2c, u9=\E[c, 

And then just define an alias in the rc file of your favorite shell:

alias man="TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文