Что-то, что я заметил в Ubuntu в течение долгого времени, которое меня разочаровывало, когда я набираю команду в командной строке, которая становится длиннее (шире), чем ширина терминала, вместо того, чтобы переносить на новую строку, это возвращается к столбцу 1 в той же строке и начинает перезаписывать начало моей командной строки. (На самом деле она не перезаписывает фактическую команду, но визуально она переписывает текст, который был отображен).
Трудно объяснить, не видя этого, но предположим, что мой терминал шириной 20 символов (Mine больше похож на 120 символов, но для примера), и я хочу повторить английский алфавит. То, что я печатаю, это:
echo abcdefghijklmnopqrstuvwxyz
Но мой терминал выглядит так, как только я нажимаю клавишу:
pqrstuvwxyzghijklmno
Когда я нажимаю enter, это echos
abcdefghijklmnopqrstuvwxyz
, поэтому я знаю, что команда была получена должным образом. Это просто завернуло мою запись после «o» и началось с той же строки. Р>
Что бы я ожидал, если бы я набрал эту команду на терминале шириной всего 20 символов, это будет следующим:
echo abcdefghijklmno
pqrstuvwxyz
Фон: я использую bash как свою оболочку, и у меня есть эта строка в моей ~ / .bashrc:
set -o vi
, чтобы иметь возможность перемещаться по командной строке с помощью команд VI. В настоящее время я использую сервер Ubuntu 10.10 и подключаюсь к серверу с помощью Putty.
В любой другой среде, в которой я работал, если я нахожу длинную командную строку, она добавит новую строку под строку, над которой я работаю, когда моя команда становится длиннее ширины терминала, и когда я продолжаю печатать, я вижу моя команда на 2 разных строках. Но до тех пор, пока я помню, используя Ubuntu, мои длинные команды занимают только одну строку.
Это также происходит, когда я возвращаюсь к предыдущим командам в истории (я нажимаю Esc, затем «K», чтобы вернуться к предыдущим командам) - когда я добираюсь до предыдущей команды, которая была длиннее ширины терминала, командной строки получает искалечен, и я не могу сказать, где я нахожусь в команде.
Единственная работа, которую я нашел, чтобы увидеть всю длинную команду, - нажать «Esc-V», которая открывает текущую команду в редакторе VI.
Я не думаю, что у меня есть что-то странное в моем файле .bashrc. Я прокомментировал строку «set -o vi», и у меня все еще была проблема.
Я загрузил новую копию Putty и не вносил никаких изменений в конфигурацию - я просто набрал имя моего хоста для подключения, и у меня все еще есть проблема, поэтому я не думаю, что это что-то с Putty (если только Мне нужно внести некоторые изменения в конфигурацию)
У кого-нибудь еще была эта проблема, и может ли кто-нибудь подумать, как ее исправить?
Edit
Это был мой .bashrc-файл. Я скопировал один и тот же профиль с машины на машину, и я использовал специальные символы в моем PS1, которые каким-то образом отбрасывают его. Я теперь придерживаюсь стандартных переменных bash для моего PS1.
Благодаря @ ændrük для подсказки на .bashrc!
... End Edit ...