我有以下LESS_TERMCAP设置:
# less config
export LESS=-R
export LESS_TERMCAP_mb=当我投入到~/.profile中时,观看者就会变得非常混乱。另一方面,当我投入到~/.zshrc (我正在使用zsh)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如~/.profile )中,所以我想这样做。更多信息: tapyu@tapyu-ThinkPad-P73
OS: Ubuntu 20.04 focal
Kernel: x86_64 Linux 5.13.0-28-generic
Uptime: 2h 25m
Packages: 2559
Shell: zsh 5.8
Resolution: 2048x1152
DE: GNOME 3.36.5
WM: Mutter
WM Theme: Adwaita
GTK Theme: Yaru-dark [GTK2/3]
Icon Theme: Yaru
Font: Ubuntu 11
Disk: 123G / 217G (60%)
CPU: Intel Core i7-9750H @ 12x 4.5GHz [43.0°C]
GPU: Intel Corporation UHD Graphics 630 (Mobile)
NVIDIA Corporation GP107GLM [Quadro P620] (rev a1)
RAM: 4740MiB / 23681MiB诚挚的问候。\E[01;31m' # begin blinking
export LESS_TERMCAP_md=当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。更多信息:A5诚挚的问候。\E[01;31m' # begin bold
export LESS_TERMCAP_me=当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。更多信息:A5诚挚的问候。\E[0m' # end mode
export LESS_TERMCAP_se=当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。更多信息:A5诚挚的问候。\E[0m' # end standout-mode
export LESS_TERMCAP_so=当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。更多信息:A5诚挚的问候。\E[01;44;37m' # begin standout-mode
export LESS_TERMCAP_ue=当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。更多信息:A5诚挚的问候。\E[0m' # end underline
export LESS_TERMCAP_us=当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。更多信息:A5诚挚的问候。\E[01;33m' # begin underline
export LESSOPEN='| /usr/bin/highlight -O ansi %s 2>/dev/null'当我投入到D1中时,观看者就会变得非常混乱。另一方面,当我投入到D2 (我正在使用D3)时,它是有效的,为什么?
由于我被教会将环境变量保存在非登录shell配置文件(如D4 )中,所以我想这样做。
更多信息:
A5
诚挚的问候。
发布于 2021-12-31 21:15:41
检查LESS_TERMCAP_xxx变量的值:
print -lr ${(q)LESS_TERMCAP_mb}(或者,如果不使用zsh:echo "$LESS_TERMCAP_mb" | od -tx1c)
正如Thomas猜测的那样,很有可能你会看到\$\\E\[01\;31m而不是 ($ \ E […)而不是033 […)。如果.profile是由一个shell调用的,比如dash,它不理解语法,就会发生这种情况。/bin/sh是包括Ubuntu在内的许多流行发行版的破折号。
一种解决方案是使用另一种表示转义字符的方法。您可以使用printf可移植地生成它:
esc=$(printf \\033)
export LESS_TERMCAP_mb="${esc}[01;31m" # begin blinking
…或者,在.zshrc中定义这些变量。这样做的好处是允许您根据终端的功能定制它们的内容。然后,您可能需要调用tput,而不是硬编码转义序列。(关于减少的文件_特姆卡普_*变量?可能会有所帮助。)
或者,使用减键定义这些变量,后者将它们写入less的配置文件(~/.less)中。如果您总是将它们设置为相同的值,这比将它们放在环境中更有意义,因为它们是一种less具体来说。然而,这在较早版本的旧式中行不通.
\033'\[01\;31m (D5…)而不是D6…)。如果D7是由一个shell调用的,比如dash,它不理解D8语法,就会发生这种情况。D9是包括Ubuntu在内的许多流行发行版的破折号。
一种解决方案是使用另一种表示转义字符的方法。您可以使用D10可移植地生成它:
A11
或者,在D12中定义这些变量。这样做的好处是允许您根据终端的功能定制它们的内容。然后,您可能需要调用D13,而不是硬编码转义序列。(C14可能会有所帮助。)
或者,使用C15定义这些变量,后者将它们写入less的配置文件(D16)中。如果您总是将它们设置为相同的值,这比将它们放在环境中更有意义,因为C17。然而,C18.
…'语法,就会发生这种情况。D9是包括Ubuntu在内的许多流行发行版的破折号。
一种解决方案是使用另一种表示转义字符的方法。您可以使用D10可移植地生成它:
A11
或者,在D12中定义这些变量。这样做的好处是允许您根据终端的功能定制它们的内容。然后,您可能需要调用D13,而不是硬编码转义序列。(C14可能会有所帮助。)
或者,使用C15定义这些变量,后者将它们写入less的配置文件(D16)中。如果您总是将它们设置为相同的值,这比将它们放在环境中更有意义,因为C17。然而,C18.
\033'\[01\;31m (D5…)而不是D6…)。如果D7是由一个shell调用的,比如dash,它不理解D8语法,就会发生这种情况。D9是包括Ubuntu在内的许多流行发行版的破折号。
一种解决方案是使用另一种表示转义字符的方法。您可以使用D10可移植地生成它:
A11
或者,在D12中定义这些变量。这样做的好处是允许您根据终端的功能定制它们的内容。然后,您可能需要调用D13,而不是硬编码转义序列。(C14可能会有所帮助。)
或者,使用C15定义这些变量,后者将它们写入less的配置文件(D16)中。如果您总是将它们设置为相同的值,这比将它们放在环境中更有意义,因为C17。然而,C18.
https://unix.stackexchange.com/questions/684455
复制相似问题