Щось я помітив в Ubuntu вже давно, що мене засмучує, - це коли я набираю команду в командному рядку, який стає довшим (ширшим), ніж ширина терміналу, замість того, щоб переходити на новий рядок, він повертається до стовпець 1 в тому ж рядку і починає надписувати початок мого командного рядка. (Він фактично не перезаписує фактичну команду, але візуально це перезапис тексту, який відображався).
Важко пояснити, не бачачи цього, але скажімо, що мій термінал був шириною 20 символів (Шахта більше схожа на 120 символів - але заради прикладу), і я хочу повторити англійський алфавіт. Що я набираю, це:
echo abcdefghijklmnopqrstuvwxyz
Але як виглядає мій термінал, перш ніж натиснути ключ, це:
pqrstuvwxyzghijklmno
Коли я натиснув Enter, це лунає луною
abcdefghijklmnopqrstuvwxyz
тому я знаю, що команда отримана належним чином. Він просто завершив моє друкування після "o" і почав знову на тій же лінії.
Що я б очікував, що станеться, якби я набрав цю команду на терміналі, шириною всього 20 символів, це було б:
echo abcdefghijklmno
pqrstuvwxyz
Передумови: я використовую 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!
... Закінчити редагування ...
tput smam
/etc/skel/.bashrc
. Майте на увазі, що вам потрібно буде знову підключитися, щоб зміни набули чинності, і не забудьте зберегти резервну копію власного .bashrc.