问题描述
当在Mac终端首行输入命令行过长时,会把第一行前面的信息覆盖,直到将第一行填满才会自动换行,如下图:
问题分析
找了好久才发现是之前配置终端格式的时候造成的,Mac原生的终端界面是这种:
可以看到是支持换行的,只是后来为了美观,在配置文件.bash_profile
里设置了一下就无法换行了。
解决方法
解决方法有两种:
- 通过换行符,可以不用还原配置文件,但是以后使用比较麻烦,每次需要输入长命令时都需要先输入
\
- 重新配置 .bash_profile ,从根源解决问题,这样既能保证美观,又能换行。这个也是正确的配置方式(推荐)
解决方法详情
1.通过换行符 \
解决
在 [superfarr@14:22:39]~$
所在行输入过长信息时,首先 打上换行符 \
,这样命令就会跳到下一行输入,如下图,先输入 \
,然后光标跳到下一行,在 >
后面输入命令
2.重新配置 .bash_profile
.bash_profile是个隐藏文件,可使用快捷键 ⌘⇧.(Command + Shift + .) 来快速(在 Finder 中)显示和隐藏隐藏文件。
Mac下的.bash_profile 文件的路径是 /Users/YourMacUserName/.bash_profile (如果该文件已经创建过的话)。如果找不到就全局搜索。
找到该文件后,用Mac自带的编辑器打开,然后修改。修改之前最好先弄懂语句的含义,不了解含义的话,很容易改错,导致无休止的麻烦。
在bash中,所有在PS1中的非打印字符都必须用\[\]
将其包起来,否则在计算提示符长度时也会将其计算在内,导致其无法正确地换行,也就出现了回到行首的情况。
相关的命令及其示意参考下文,其实只要弄懂基本的命令,就知道问题出在哪了。
参考: https://www.cnblogs.com/menlsh/archive/2012/08/27/2659101.html