Próbuję zmienić mapowanie niektórych domyślnych kombinacji klawiszy w iTerm2 i chciałbym zrozumieć, co się dzieje, gdy powiązam klucze z „Wyślij kody szesnastkowe”.
Poprzedni post pomógł mi zacząć od zmiany mapowania kombinacji klawiszy ctrl-a i ctrl-e odpowiednio na cmd-left i cmd-right, ale chciałbym również mapować inne kombinacje klawiszy. ( Link do poprzedniego postu Stackoverflow ).
Mam niejasne zrozumienie, że w grę wchodzą kody szesnastkowe, ale jestem w punkcie, w którym nie mogę dowiedzieć się, gdzie iść dalej, aby zrozumieć, co się dzieje i co robić.
Odpowiedzi:
Te kody szesnastkowe to tylko sekwencje bajtów. Na przykład mapowanie kombinacji klawiszy
0x66 0x6f 0x6f
, aby wstawićfoo
.0xc3 0xa4
wstawiłby ä, jeśli używasz UTF-8.0x1b 0x1b 0x5b 0x43
środkiescape escape [ C
.Niektóre sekwencje bajtów, takie jak sekwencje specjalne ANSI, a nawet pojedyncze bajty, takie jak znaki sterujące ASCII, mają specjalne znaczenie w terminalach.
Aby ⌘ ← i ⌘ → przejść do początku i końca linii, możesz przypisać je do 0x01 (^ A w notacji doczepionej) i 0x05 (^ E w notacji doczepionej):
Możesz ⌥⌦ usunąć słowo do przodu, przypisując je do
\ed
:Zmiana ⌥ ← i ⌥ → do
\eb
i\ef
preferencji iTerm byłby też zmienić je w programach, które nie obsługują readline lub skróty klawiszowe emacs stylu. Inną opcją jest dodanie tego do ~ / .inputrc :Możesz uruchamiać
read
i naciskać kombinacje klawiszy, aby zobaczyć, które znaki wstawiają. Na przykład ⌥ ←^[^[[D
domyślnie wstawia , gdzie^[
w notacji karetki jest znak ucieczki .Zobacz także http://code.google.com/p/iterm2/wiki/Keybindings .
źródło
Ctrl+Alt+<char>
z<char>
byciai
,j
,k
,l
iu
)Sugeruję zainstalowanie Kodów Kluczowych (0 USD) od Many Tricks i samemu znaleźć skróty.
Na przykład, jeśli chcesz ponownie przypisać domyślny skrót do (do przodu) usuwania znaku - którym jest Ctrl-D (
⌃D
) - tak prosty, jak naciśnięcie klawisza usuwania do przodu (⌦
),…Otwórz aplikację i naciśnij
Ctrl-D
Z powrotem w iTerm 2, dodaj skrót Unicode w iTerm> Preferencje> Klucze
Uwaga: Nie kopiuj i nie wklejaj, po prostu wpisz Unicode bez spacji.
źródło
Najlepszym sposobem, jaki znalazłem, było wysłanie kodów (jak opisano w @pattulus lub użycie powiązań klawiszy vim).
Uwaga na temat kodów kluczy: W rzeczywistości nie można go uruchomić, wysyłając ciąg znaków Unicode, jak opisano powyżej, musisz wysłać zarówno modyfikator, jak i klucz do gethera w przypadku Control+ D, musisz wysłać to jako kod:
0x840101 0x4
gdzie0x840101
jest modyfikator klawisza sterującego i można je uzyskać za pomocą kodu klucza .Uwaga dotycząca wysyłania w sekwencji vim : Jak opisano w dokumentacji iTerm2 , możesz wysłać kod klucza w formacie powiązań vim, na przykład w
\<C-d>
przypadku wysyłania Control+ D(uwaga\
jest ważna).Osobiście wolę wiązanie kluczy vim, ponieważ jest bardziej czytelne, a później zrozumiesz, co zrobiłeś.
źródło
Sprawdź karabinek .
W tym narzędziu możesz tworzyć kluczowe niestandardowe odwzorowania specyficzne dla aplikacji. Zawiera kilka narzędzi, które mogą w tym pomóc.
źródło