Linux
如何使我的 Linux tcsh 提示加粗?
問候大家,
我正在嘗試使我的 Linux tcsh 提示加粗。但是我失敗得很慘。
我知道轉義碼,我可以成功地將 echo’ed 輸出設為粗體,但我似乎無法為我的提示執行此操作。
例如,如果我使用以下命令:
echo "\033[1m Hello \033[0m"
我正確地得到了一個帶有 Hello 的輸出行,並且文本是粗體文本。
但是,如果我嘗試使用類似的邏輯更改我的提示,它會失敗。例如,如果我嘗試使用以下命令更改提示:
set prompt="\033[1m NEW-PROMPT \033[0m"
我得到:
^[[1m NEW-PROMPT ^[[0m
所以看來我的提示與迴聲線的處理方式不同?關於我的問題可能是什麼的任何提示?
以下是我的環境的精簡版本,它可能會提供線索,說明為什麼我可能需要為提示使用其他格式。
LANG=POSIX LC_CTYPE=en_US.UTF-8 SHELL=/bin/csh SSH_CLIENT=127.0.0.1 49757 22 SSH_CONNECTION=127.0.0.1 49757 127.0.0.1 22 SSH_TTY=/dev/pts/4 TERM=xterm HOSTTYPE=i586-linux VENDOR=suse OSTYPE=linux MACHTYPE=i586 SHLVL=7 HOST=psbu-jrr-lnx CSHEDIT=emacs CPU=i686 LESS=-M -I LESSOPEN=lessopen.sh %s LESSCLOSE=lessclose.sh %s %s LESS_ADVANCED_PREPROCESSOR=no LESSKEY=/etc/lesskey.bin PAGER=less MORE=-sl MINICOM=-c on COLORTERM=1 SSH_SENDS_LOCALE=yes CVS_RSH=ssh WINDOWMANAGER=/usr/bin/X11/kde ENV=/etc/bash.bashrc CSHRCREAD=true LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32: LS_OPTIONS=-N --color=tty -T 0 FULLENV=false VISUAL=vi SSH_AUTH_SOCK=/tmp/ssh-lkJkR5043/agent.5043 SSH_AGENT_PID=5044 WINDOWID=60817426 XTERM_VERSION=XTerm(208) XTERM_SHELL=/bin/csh
echo
內置在你的系統上執行反斜杠擴展(這是可配置的,預設是系統相關的)。該prompt
變數包含文字反斜杠,並且提示擴展有點奇怪。如果您想在提示符中包含終端轉義序列,它們需要介於
%{
…之間%}
,如set prompt="%{\e[1m%}NEW-PROMPT%{\e[0m%}"
但是使用粗體文本的內置轉義序列更簡單(原則上更便攜)。
set prompt="%BNEW-PROMPT%b"