Czytałem w podręczniku systemu Linux i zauważyłem, że powiedziałem, że mogę używać control + left i control + right, aby przesuwać słowa do przodu i do tyłu podczas edycji.
„Naciśnięcie klawisza Ctrl oraz klawisza strzałki w lewo lub w prawo powoduje przesuwanie słowa do tyłu lub do przodu, podobnie jak naciśnięcie Esc, a następnie B lub F.”
W systemie OS X control+left
i control+right
zwykle kontroluj spacje. Wyłączyłem je. Próbowałem także użyć panelu preferencji, aby ustawić skróty klawiaturowe:
Jednak to nie działa i powoduje ten błąd:
Ponadto, jeśli korzystam z iTerm i używam alt+escape
B lub F, postać porusza się tam iz powrotem. Działo się to przed każdą z moich zmian konfiguracji. Ale naprawdę chciałbym móc używać kontroli + klawiszy strzałek.
Odpowiedzi:
grzmotnąć
Dodaj następujące elementy do
~/.inputrc
:Zobacz ten zarchiwizowany post na Wiki, aby uzyskać dodatkowe wyjaśnienia. Jeśli altzamiast tego chcesz używać klawisza do przemieszczania słów do słów (np. Domyślne zachowanie OS X), użyj:
zsh
Zsh domyślnie nie korzysta z
readline
biblioteki i dlatego nie czyta~/.inputrc
. Aby uzyskać tę samą funkcjonalność, możesz dodać następujące elementy do~/.zshrc
- to ponownie użyje altklucza:Zobacz tę dokumentację, aby uzyskać więcej informacji na temat wbudowanego edytora linii zsh (zle).
Dlaczego to? Skonfigurowałeś swój profil do korzystania z domyślnych ustawień Xterm:
Dlatego musisz „złapać” tę sekwencję i powiedzieć,
readline
co robić.Jeśli powyższe nadal nie działa i korzystasz z systemu OS X 10.9 (Mavericks) lub podobnego, prawdopodobnie musisz wyłączyć globalne skróty Kontroli misji, które uniemożliwiają dostęp do klawiszy Control + Strzałki, nawet jeśli sama Kontrola misji jest wyłączona. Możesz to zrobić w Preferencjach systemowych → Klawiatura → Skróty → Kontrola misji :
źródło
bindkey -e
,bindkey '^[[1;9C' forward-word
abindkey '^[[1;9D' backward-word
na Twój~/.zshrc
zamiast. IIRC zsh nie czyta.inputrc
- a przynajmniej działa dla mnie w ten sposób.bindkey -e; bindkey '\e\e[C' forward-word; bindkey '\e\e[D' backward-word
Działające rozwiązanie dla Zsh. Prosty, bezpośredni, gotowy do użycia.
Iść do:
⌘, Preferences → Profiles → Keys → Keyboard Behavior
Załaduj ustawienie wstępne:
Natural Text Editing
źródło
Naprawiłem to w ten sposób:
W górnym menu; iść do
źródło
Użyłem innego podejścia. Używając BetterTouchTool zaprogramowałem niestandardowy skrót klawiaturowy dla iTerm2. Kiedy naciskam Alt-Left w iTerm2, wysyła skrót klawiaturowy Ctrl-Left z działaniem „Wyślij skrót klawiaturowy do określonej aplikacji”. Aplikacja to iTerm2. Zrobiłem to samo dla klawiszy Alt-Right zamapowanych na Ctrl-Right.
Skutkuje to tym, że naciśnięcie klawisza Alt-Left lub Alt-Right w iTerm powoduje wysłanie klawisza Ctrl-Left lub Ctrl-Right bezpośrednio do iTerm2, z pominięciem zwykłego ogólnosystemowego skrótu, aby przenieść pulpit w lewo lub w prawo. W ten sposób uzyskuję typowe zachowanie Maca w iTerm2, na lokalnych sesjach terminalowych, ale także na zdalnych sesjach SSH i mogę użyć standardowego ctrl-lewo / ctrl-prawo, aby przejść do różnych komputerów. Napisałem to tutaj:
http://www.callum-macdonald.com/2013/04/17/ctrl-left-and-ctrl-right-on-iterm2/
źródło
W rzeczywistości znalazłem najłatwiejsze rozwiązanie, aby przejść do ustawień mojego profilu (znajdującego się w Profile / Keys), usuwając obrażające skróty profilu (ponieważ profil zastępuje globalny w iTerm), w moim przypadku alt + lewy i alt + prawy, a następnie globalny skróty działały dla mnie idealnie!
Ponadto, jeśli używasz OS X, prawdopodobnie najlepiej trzymać się skrótów systemowych, tj. Zamiast tego używać Alt + Left i Alt + Right w tym celu, ponieważ różne zachowanie w terminalu może ostatecznie spowodować ból.
Oprócz tego rozwiązanie Chmac do korzystania z Better Touch Tool było eleganckim sposobem zmiany kontroli + zachowania strzałki tylko w iterm.
źródło
Keys
karty. Zamiast tego musimy przejść doProfiles
zakładki -> Profil (np. Domyślny) -> klucze.Ten post uczy tego i innych skrótów jako ⌥ ← Usuń, aby usunąć słowo:
http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/
źródło
Musisz przejść do
Profiles
zakładki i usunąć mapowanie dla alt+ lefti alt+, rightponieważ domyślnie wyświetla niektóre wartości szesnastkowe.źródło