首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用$(tput .)设置LESS_TERMCAP_*变量在~/.剖面中不工作

用$(tput .)设置LESS_TERMCAP_*变量在~/.剖面中不工作
EN

Unix & Linux用户
提问于 2021-10-09 10:03:12
回答 1查看 300关注 0票数 2

这是我的~/.bashrc

代码语言:javascript
复制
# ...unnecessary lines skipped...
# man colors
LESS_TERMCAP_mb=$(tput blink) # start bold
LESS_TERMCAP_md=$(tput setaf 2 ; tput bold) # start bold
LESS_TERMCAP_me=$(tput sgr0)  # turn off bold, blink and underline
LESS_TERMCAP_so=$(tput smso)  # start standout (reverse video)
LESS_TERMCAP_se=$(tput rmso)  # stop standout
LESS_TERMCAP_us=$(tput smul)  # start underline
LESS_TERMCAP_ue=$(tput rmul)  # stop underline
export LESS_TERMCAP_mb
export LESS_TERMCAP_md
export LESS_TERMCAP_me
export LESS_TERMCAP_so
export LESS_TERMCAP_se
export LESS_TERMCAP_us
export LESS_TERMCAP_ue

这是可行的,我可以在手册中看到颜色。但是当我将这一行从~/.bashrc移到~/.profile (和重新登录)时,手册页面中的颜色就会消失。

我非常想使用tput,因为它比一堆控制符号更清晰。

为什么tput不从.profile那里工作?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-10-09 12:23:12

tput无法工作,因为它需要从$TERM环境变量了解当前的终端模拟器。当~\.profile读取时,没有使用终端仿真器,因此tput无法产生任何输出。

可以通过tput密钥指定要在-T中使用的终端功能。因此,这段代码将起作用:

代码语言:javascript
复制
LESS_TERMCAP_mb=$(tput -T ansi blink) # start bold
LESS_TERMCAP_md=$(tput -T ansi setaf 2 ; tput -T ansi bold) # start bold
LESS_TERMCAP_me=$(tput -T ansi sgr0)  # turn off bold, blink and underline
LESS_TERMCAP_so=$(tput -T ansi smso)  # start standout (reverse video)
LESS_TERMCAP_se=$(tput -T ansi rmso)  # stop standout
LESS_TERMCAP_us=$(tput -T ansi smul)  # start underline
LESS_TERMCAP_ue=$(tput -T ansi rmul)  # stop underline
export LESS_TERMCAP_mb
export LESS_TERMCAP_md
export LESS_TERMCAP_me
export LESS_TERMCAP_se
export LESS_TERMCAP_so
export LESS_TERMCAP_ue
export LESS_TERMCAP_us
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/672508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档