2010-12-18 8 views
8

Niedawno uaktualniłem do nowego zestawu SDK do Androida i zauważyłem, że coś bardzo bardzo przeszkadza. Wydaje się, że nie można już używać historii poleceń w powłoce. Czy zauważyłeś to samo? Powłoka Androida wydaje mi się okropna, ale przynajmniej w ostatnim SDK miałem historię poleceń. Wydaje się, że naciśnięcie strzałki w górę/w dół powoduje, że niektóre kody są wpisywane w wierszu polecenia (coś w stylu^[[A,^[[B itd. ...]). Próbowałem trochę przeczytać, ale znalazłem bardzo niewielu, którzy zadają to zero odpowiedzi. Każdy pomysł, dlaczego tak się dzieje i jak rozwiązać ten problem?Jak włączyć historię powłoki adb Androida z klawiszami góra/dół w systemie Linux?

+0

Na szczęście już nie w przypadku Androida 7 (i prawdopodobnie wcześniej). –

Odpowiedz

0

Jeśli Ctrl - p nadal daje wcześniejsze wpisy historii, to jest możliwe, że klawisze strzałek stała niezwiązana z jakiegoś powodu. Spróbuj tego:

bind '"\e[A": previous-history' 
bind '"\e[B": next-history' 

Jeśli to sprawia strzałkę klawisze działają, można zrobić to trwałe dodając te dwie linie do /etc/inputrc lub ~/.inputrc:

"\e[A": previous-history 
"\e[B": next-history 
+1

Ostatni raz użyłem go w powłoce Androida, nie korzystałem z readline, ale potem nie pamiętam, żeby zawierała jakąkolwiek wersję edycji wiersza poleceń, w tym strzałki do historii. – Gilles

+0

@Gilles: Nie używałem go od jakiegoś czasu, ale właśnie opierałem swoją odpowiedź na tym, co powiedział OP. –

+1

Ctrl-P daje mi historię, ale nie w powłoce Androida. Ale gdzie muszę wypróbować polecenie bind? W powłoce systemu Linux? Próbowałem tam i uniemożliwia to użycie strzałek do poruszania się w historii. Jeśli spróbuję w powłoce Androida, polecenie bind nie istnieje. Dowolny pomysł? –

3

Można uruchomić powłokę wewnątrz rlwrap:

rlwrap adb shell 

Ja wolę uruchomić go w buforze powłoki Emacs, polecam, jeśli nie jesteś uczulony na Emacsa. Emacs jest również przyjemny w prowadzeniu adb logcat: otrzymujesz historię do przeszukiwania, a wiadomości są aktualizowane w miarę ich pojawiania się i możesz łatwo umieszczać ciekawe wzory w kolorze (M-x highlight-regexp i przyjaciele).

+0

Próbowałem polecenia, które mi dałeś, ale nie widzę żadnych zmian. Powłoka jest dokładnie taka sama. Może zrobiłem coś złego? Dzięki! –

+0

@ Luca: Dostaję podstawową edycję wiersza poleceń z adb i emulatorem z Gingerbread SDK pod Linuksem, a 'rlwrap' daje wersję readline. Wydaje mi się, że przypominają 'rlwrap' nie działa z poprzedniej wersji SDK, ale nie pamiętam, która wersja. – Gilles

+0

Nie mogę zrozumieć ... Po prostu spróbowałem ponownie, ale naprawdę nie widzę żadnych zmian. –

0

Jeśli mówisz o prawdziwym urządzeniu (nie emulatorze), powinieneś wypróbować niektóre nieoficjalne oprogramowanie sprzętowe, takie jak Cyanogenmod - zawiera ono znacznie lepsze narzędzia binarne, takie jak znacznie bardziej funkcjonalna powłoka, rozsądny zestaw zwykłych narzędzi UNIXa , serwer ssh, itp.

Jeśli mówisz o emulatorze, możesz wyodrębnić te pliki binarne z oprogramowania układowego i wepchnąć je do emulatora w niezmienionym stanie (za pomocą obrazu karty pamięci).

+0

Mówię o prawdziwym urządzeniu i ten problem nie jest związany z oprogramowaniem układowym. Zaczęło się, gdy uaktualniłem do ostatniego SDK 2.3 na tym samym urządzeniu. –

+0

W każdym razie właśnie sprawdziłem i dzieje się to również na emulatorze. –

+0

Ok, rozumiem. Cóż, przynajmniej możesz spróbować połączyć się za pomocą ssh (to jest serwer dropshear ssh na twoim urządzeniu i klientem ssh z twojego okna programowania) jako obejście tego problemu. – GreyCat

Powiązane problemy