定义 set_prompt 后,文本编辑器中的文本变得混乱

定义 set_prompt 后,文本编辑器中的文本变得混乱

我已设置set_prompt为始终在新行上打印提示。

set_prompt() {
   local curpos
   stty -echo
   while read -t 0; do :; done
   echo -en "\033[6n"
   IFS=';' read -s -d R -a curpos
   stty echo
   (( curpos[1] > 1 )) && printf "\n"
}

emacs但现在,如果我在文本编辑器(如或 )中编辑文件nano,文本会被打乱,就像在错误的位置打印字符或光标在导航时向前或向后跳跃一样,导致文本重叠。


在此刻

PS1=\[\]$(git rev-parse --git-dir > /dev/null 2>&1 && git rev-parse --abbrev-ref HEAD 2>/dev/null || echo ${HOSTNAME})\[\]:\[\]\W\[\] Necktwi\[\]$\[\]
PROMPT_COMMAND=set_prompt

除了设置set_prompt,还可以这样做

PS1='$(printf "%$((COLUMNS-1))s\r")'$PS1

但即使这样也会出现故障emacs,未经测试nano,但没有上面那么糟糕。我能够通过删除生成的虚假字符来纠正这个乱码少得多的文本。

相关内容