linux 输入长命令行时回到行首解决

http://flytreeleft.iteye.com/blog/1541616

既然,我的问题是和PS1变量的设置有关,那试试"linux "long command" PS1"呢.哈哈,结果第一个就完全符合我的情况,点进去看看.这是Ubuntu提问区,仔细阅读了这篇名为的问题帖,其中有人回答如下:

 

引用代码   收藏代码
  1. Make sure all non-printable bytes in your PS1 are contained within \[ \]. Otherwise, bash will count them in the length of the prompt. It uses the length of the prompt to determine when to wrap the line.  
  2. See http://mywiki.wooledge.org/BashFAQ/053  
 

         也就是说,在bash中,所有在PS1中的非打印字符都必须用"\[\]"(不包括引号)将其包围起来,否则在计算提示符长度时也会将其计算在内,导致其无法正确地换行,也就出现了回到行首的情况.


        不过,我对什么是非打印字符还是不太清楚,于是用看了看http://mywiki.wooledge.org/BashFAQ/053,原来颜色的转义序列符就是非打印字符.在我的PS1中就包含了不少的颜色,于是,我就耐心地将每个颜色转义序列符都用"\[\]"括起来,然后,再重新打开一个终端,仍然连续输入a.嘿,问题还真就解决了,就是这个问题!

你可能感兴趣的:(Linux)