Мне иногда удается испортить свой терминал, пока я не наберу "clear". Это происходит по-разному, иногда при написании отдельных команд, иногда при редактировании чего-либо в текстовом редакторе. Сейчас у меня Mac OS X Lion, но я помню эту проблему много лет назад, даже когда я все еще использовал Solaris.
Вот один случай, который мне удалось воспроизвести. Если я ошибусь с cURL:
Bemmu-Sepponens-MacBook-Pro:b2 bemmu$ curl --data abcde=foo efghijk=bar http://localhost:1234/do_something_cool
curl: (6) Couldn't resolve host 'efghijk=bar'
foo Bemmu-Sepponens-MacBook-Pro:b2 bemmu$
Скручиваемость выдает "foo" и сообщение об ошибке. Теперь, если я нажму стрелку вверх, чтобы вернуться, чтобы отредактировать эту команду, она сначала будет выглядеть так:
Bemmu-Sepponens-MacBook-Pro:b2 bemmu$ curl --data abcde=foo efghijk=bar http://localhost:1234/do_something_cool
curl: (6) Couldn't resolve host 'efghijk=bar'
foo Bemmu-Sepponens-MacBook-Pro:b2 bemmu$ curl --data abcde=foo efghijk=bar http://localhost:1234/do_something_cool
Все по-прежнему выглядит нормально, но обратите внимание, что предыдущая строка была помещена после "foo", полученного из cURL. Теперь, если я попытаюсь нажать левую стрелку достаточное количество раз, чтобы добраться до места, где произошла ошибка, и начну печатать, все станет не так:
foo Bemmu-Sepponens-MacBook-Pro:b2 bemmu$ curl --data abcde=foo&ijk=bar http://localhost:1234/do_something_cool
Все, что я сделал, это сразу же после «abcde = foo» отправился в то место и нажал клавишу "Backspace", а затем вставил амперсанд. Он должен был стать «abcde = foo & fghijk = bar», но вместо этого он стал «abcde = foo & ijk = bar».
Это нормально или у меня где-то не так?