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