Dar*_*ryn 44 macos terminal osx-lion
我在Mac OS X Lion的终端应用程序中遇到了一个奇怪的问题.当我输入一长串文本时,当它到达终端窗口的边缘时应该换行到下一行,它会继续在文本上方的行上键入.
以下是一些帮助说明问题的屏幕截图:
在我的文字到达窗口边缘之前:
文本到达窗口边缘后:
我还提供了我的文本和窗口设置的屏幕截图,以防有些帮助.
文字设定:
窗口设置:
提前感谢您提供的任何帮助.我有一段时间没有这个问题,只是从未接触过它.当我遇到需要大grep命令和长路径名的东西时,它现在真的变得很痛苦.
ham*_*ene 67
PS1
环境变量确定shell的提示符.man bash
提供完整的文档.(对于不同的模式,实际上有几个).
有迹象表明,可设置它,通常是一个文件的数量~/.profile
,~/.bashrc
,/etc/profile
或/etc/bashrc
.
如果您要在其中包含颜色代码或其他控制序列,则必须使用\[
并\]
正确包装它们(并且不包装正常文本),否则行编辑可能会像您的情况一样混乱.我建议重置PS1
为默认值,然后小心地逐项添加着色.
例如:
PS1='\[\033[1m\033[32m\]\u@\h \w\[\033[0m\]\$ '
^^^^^^^^^^^^^^^ ^^^^^^^
Run Code Online (Sandbox Code Playgroud)
着色命令带有下划线.注意他们是如何被包围的\[ \]
.
我有同样的问题,我发现你改变了
高级> 仿真 >将终端声明为:ANSI.
这解决了彩色PS1问题.使用Mac终端
但是创造了一个奇怪的行为:我找到了@koiyu回答我的问题的解决方案.
由于错误使用颜色代码,我曾经遇到过同样的问题.这是我的PS1解决了这个问题.此外,如果您使用GIT,那么这将有助于显示您正在处理的git分支以及您的工作树是否脏.把它放在.profile或.bash_profile中
# Git branch in prompt.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
parse_git_dirty() {
st=$(git status 2>/dev/null | tail -n 1)
if [[ $st == "" ]]; then
echo ''
elif [[ $st == "nothing to commit (working directory clean)" ]]; then
echo ''
elif [[ $st == 'nothing added to commit but untracked files present (use "git add" to track)' ]]; then
echo '?'
else
echo '*'
fi
}
# coloring the terminal comman line
SB_GREEN="\[\033[1;32m\]"
SB_BLUE="\[\033[1;34m\]"
SB_RED="\[\033[1;31m\]"
SB_NOCOLOR="\[\033[0m\]"
export PS1="$SB_GREEN\u@\h$SB_NOCOLOR: $SB_BLUE\w$SB_GREEN\$(parse_git_branch)$SB_RED\$(parse_git_dirty)$SB_NOCOLOR $ "
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
归档时间: |
|
查看次数: |
16648 次 |
最近记录: |