To, co zauważyłem w Ubuntu od dłuższego czasu, było dla mnie frustrujące, gdy piszę polecenie w wierszu polecenia, które staje się dłuższe (szersze) niż szerokość terminalu, zamiast owijania do nowej linii, wraca do kolumna 1 w tym samym wierszu i zaczyna nadpisywanie początku mojej linii poleceń. (W rzeczywistości nie zastępuje rzeczywistego polecenia, ale wizualnie zastępuje wyświetlany tekst).
Trudno to wyjaśnić, nie widząc go, ale powiedzmy, że mój terminal miał 20 znaków szerokości (mój ma więcej niż 120 znaków - ale dla przykładu) i chcę powtórzyć alfabet angielski. To, co wpisuję, to:
echo abcdefghijklmnopqrstuvwxyz
Ale zanim wcisnę klawisz, wygląda mój terminal:
pqrstuvwxyzghijklmno
Kiedy nacisnę klawisz Enter, odbija się echem
abcdefghijklmnopqrstuvwxyz
więc wiem, że polecenie zostało poprawnie odebrane. Po prostu owinął moje pisanie po „o” i zaczął od nowa w tej samej linii.
Oczekiwałbym, że tak się stanie, gdybym wpisał to polecenie na terminalu o szerokości zaledwie 20 znaków, to:
echo abcdefghijklmno
pqrstuvwxyz
Tło: używam bash jako mojej powłoki i mam ten wiersz w moim ~ / .bashrc:
set -o vi
aby móc poruszać się po linii poleceń za pomocą komend VI. Obecnie używam serwera Ubuntu 10.10 i łączę się z serwerem za pomocą Putty.
W każdym innym środowisku, w którym pracowałem, wpisanie długiego wiersza polecenia spowoduje dodanie nowego wiersza pod wierszem, nad którym pracuję, gdy moje polecenie wydłuży się poza szerokość terminala i gdy będę wpisywać, mogę zobaczyć moje polecenie na 2 różne linie. Ale tak długo, jak pamiętam używanie Ubuntu, moje długie polecenia zajmują tylko 1 linię.
Dzieje się tak również wtedy, gdy wracam do poprzednich poleceń w historii (wciskam Esc, a następnie „K”, aby wrócić do poprzednich poleceń) - kiedy przechodzę do poprzedniego polecenia, które było dłuższe niż szerokość terminala, wiersz poleceń otrzymuje zniekształcony i nie mogę powiedzieć, gdzie jestem w poleceniu.
Jedynym obejściem, które obejrzałem, aby zobaczyć całe długie polecenie, jest naciśnięcie „Esc-V”, co otwiera bieżące polecenie w edytorze VI.
Nie sądzę, że mam coś dziwnego w moim pliku .bashrc. Skomentowałem linię „set -o vi” i nadal miałem problem.
Pobrałem świeżą kopię Putty i nie wprowadziłem żadnych zmian w konfiguracji - po prostu wpisałem nazwę hosta, aby się połączyć, i nadal mam problem, więc nie sądzę, że to nic z Putty (chyba że muszę wprowadzić zmiany w konfiguracji)
Czy ktoś jeszcze miał ten problem i czy ktoś może wymyślić, jak go naprawić?
Edytować
To był mój plik .bashrc. Skopiowałem ten sam profil z maszyny na maszynę i użyłem znaków specjalnych w moim $ PS1, które w jakiś sposób go wyrzucają. Teraz trzymam się standardowych zmiennych bash dla mojego $ PS1.
Dzięki @ ændrük za wskazówkę dotyczącą .bashrc!
... Zakończ edycję ...
tput smam
/etc/skel/.bashrc
. Pamiętaj, że musisz ponownie połączyć, aby zmiany odniosły skutek, i pamiętaj o utworzeniu kopii zapasowej własnego pliku .bashrc.