W systemach Windows i Linux zawsze mogłem nacisnąć ctrl+ ←lub ctrl+, →aby pominąć słowo w lewo lub w prawo w terminalu. W edytorach tekstowych wydaje się, że ⌥+ ←/ →działa, ale nie ma kości w terminalu. Przeszukałem Google i nie znalazłem nic poza stroną Wikipedii, która twierdzi, że ⌥+ B/ Fwykonuje to zadanie, ale drukuje tylko ∫ i ƒ znaków na moim terminalu (lub ı i Ï, jeśli trzymam ⇧). Jakieś pomysły?
19
To również doprowadzało mnie do szaleństwa, jednak nie chciałem poprawki specyficznej dla Terminala, ponieważ nie używam Terminala, a możliwość SSH do mojego systemu OSX musiała również używać odpowiednich skrótów klawiszowych.
Ponadto osobiście nie dbałem o ⌥klucz, jak omówiono wcześniej; Chciałem zachować kombinację ctrl+ ←/ →, do której jestem przyzwyczajony w systemie Linux.
Aby rozwiązać ten problem, dodałem do mojego
~/.profile
:Zauważ, że pierwsze dwa dotyczą bash w Terminalu ; dwa ostatnie dotyczą bash w iTerm2 i przychodzących połączeń ssh . Nie pytaj mnie, dlaczego emulacja klawiatury jest inna;)
Dla przypomnienia, byłem w stanie znaleźć, jakie były naprawdę kody klawiszy dzięki podpowiedzi z tej odpowiedzi
cat > /dev/null
na przepełnienie stosu : Możesz uruchomić, aby monitorować dokładne kody kluczy wysłane podczas kombinacji klawiszy.(Zauważ, że dla mnie, kiedy uruchamiam
cat > /dev/null
i naciskam ctrl+ ←, tworzy^[[1;5D
. Twój dokładny kod może się różnić , ale pierwszy^[
jest przedstawiony jako\e
, jak pokazano w moim przykładowym kodzie.)BTW, jeśli chcesz zobaczyć wszystkie aktywne skróty klawiszowe bash, uruchom
bind -p
.źródło
xxd
do badania klawiatury. Możesz zobaczyć znak wyświetlany podczas wpisywania, a następniexxd
emituje wartość szesnastkową podczas wpisywania return.Począwszy od Mac OS X Lion 10.7, Mapy terminali domyślnie ⌥- ←/ →do esc+ B/ F, więc teraz jest to wbudowane w bash i inne programy, które używają tych skrótów klawiszowych kompatybilnych z Emacsem.
źródło
jeśli wiesz, jak korzystać z vi, możesz także włączyć tryb edycji linii vi, używając
set -o vi
w swoim.bash_profile
lub w dowolnym momencie wiersza poleceń. Następnie możesz przełączać się między trybem polecenia vi i trybami wstawiania. Możesz więc nacisnąć klawisz Escape, a następnie użyć poleceń vi do nawigacji po linii:Po osiągnięciu prawidłowej pozycji możesz użyć innych poleceń vi, aby przejść do trybu wstawiania lub dołączania lub usuwać znaki jeden po drugim itp.
źródło
ESC ^
jest świetna, gdy jej potrzebujesz, denerwuje ją tylko wtedy, gdy chcesz zrobić coś zupełnie innego :)Otwórz terminal, przejdź do preferencji, klawiatury. Na liście znajdziesz „ctrl kursor w prawo” i „ctrl kursor w lewo”.
Zmień przypisane akcje na odpowiednio „\ 033f” i „\ 033b”, a będziesz mógł używać ctrl+ →i ctrl+ ←do poruszania się, bez utraty klawisza Alt.
źródło
Wygląda na to, że esc+ Bi esc+ Fsą domyślnie mapowane, aby przejść do początku i końca słów. Chociaż w moim systemie nie możesz przytrzymać, escale musisz nacisnąć go ponownie dla każdego słowa.
źródło
Najnowsza wersja systemu operacyjnego mapuje to na Spaces. Nawet jeśli spacje są wyłączone, skróty klawiszowe mogą nadal ulegać zwarciu w tej ukrytej lokalizacji:
Klawisze kursora Terminal.app: wyłącz Preferencje systemowe -> Skróty -> Kontrola misji -> Przesuń w lewo spację
źródło