在终端中输入长行的问题

在终端中输入长行的问题

我在装有 Ubuntu 11.04 的服务器上定义了 PS1 提示多行。
当我编写一个长命令时,问题就出现了,该行在终端结束前就被切断了,并且会从同一行的开头继续:
屏幕截图 1

但是如果我继续写,该行将在窗口末尾结束,并且它会在下一行继续,正如预期的那样:
屏幕截图 2

如果我按下Home键,光标就会移动到第一行上面的那一行。

我通过 gnome-terminal 中的 SSH 连接到服务器。

/etc/bash.bashrc 中的 PS1 行是:

[ $UID -eq "0" ] && PS1="\e[31m┏━\e[42m┅◉ \e[37m\d ⌚ \t \e[31m┅\e[0m\e[31m━━\e[42m┅◈ \e[37m\H \e[0m\n\e[31m┣\e[0m \w (\e[36m\$(ls -1 | wc -l) fichero/s\e[0m) \n\e[31m┗\e[45m┅◉\e[1;37m \u \e[0m\e[31m━► " || PS1="┏━\e[44m┅◉ \e[37m\d ⌚ \t ┅\e[0m━━\e[44m┅◈ \e[37m \e[0m\n┣━━\e[42m┅◉ kernel: \e[37m$(uname -r) ┅\e[0m━━\e[42m┅◈ uptime: \e[37m$(date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%a %d %b %R") \e[0m\n┣ \w (\e[36m\$(ls -1 | wc -l) fichero/s\e[0m) \n┗\e[46m┅◉\e[1;37m \u \e[0m━► "

一些环境变量:

$ env
TERM=xterm
SHELL=/bin/bash
SSH_TTY=/dev/pts/0
LC_ALL=
LC_MESSAGES=POSIX
LC_COLLATE=C
LANG=es_ES.UTF-8
HISTCONTROL=ignoreboth
SHLVL=1
LESS=-Rsw
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env

任何想法?

答案1

我在这里帮你修复了它:

这是第一个:

PS1='\[\e[0;31m\]┏━\[\e[42m\]┅◉ \[\e[0;37m\]\[\e[42m\]\d ⌚ \t \[\e[0;31m\]┅\[\e[0m\]\[\e[0;31m\]━━\[\e[42m\]┅◈ \[\e[0;37m\]\[\e[42m\]\H \[\e[0m\]\n\[\e[0;31m\]┣\[\e[0m\] \w (\[\e[36m\]$(ls -1 | wc -l) fichero/s\[\e[0m\]) \n\[\e[0;31m\]┗\[\e[45m\]┅◉\[\e[1;37m\]\[\e[45m\] \u \[\e[0m\]\[\e[0;31m\]━► '

第二个:

PS1='┏━\[\e[44m\]┅◉ \[\e[0;37m\]\[\e[44m\]\d ⌚ \t ┅\[\e[0m\]━━\[\e[44m\]┅◈ \[\e[0;37m\]\[\e[44m\] \[\e[0m\]\n┣━━\[\e[42m\]┅◉ kernel: \[\e[0;37m\]\[\e[42m\]$(uname -r) ┅\[\e[0m\]━━\[\e[42m\]┅◈ uptime: \[\e[0;37m\]\[\e[42m\]$(date -d "`cut -f1 -d. /proc/uptime` seconds ago" +"%a %d %b %R") \[\e[0m\]\n┣ \w (\[\e[0;36m\]$(ls -1 | wc -l) fichero/s\[\e[0m\]) \n┗\[\e[46m\]┅◉\[\e[1;37m\] \u \[\e[0m\]━► '

相关内容