iTerm2 tangentbordsbindningar
iTerm2 är en mycket kompetent terminal för Mac OS X. Man kan t.ex. öppna nya terminaler i form av flikar eller splittade fönster. Navigering mellan tabbar sker med Cmd-<n>
där n
är ordningsnumret på fliken, eller Cmd-Shift-Höger/Vänster
. För att hoppa mellan splittade fönster använder man Cmd-Alt-Höger/Vänster
.
Om du vill lägga till egna bindningar är detta också möjligt. Under Preferences/Keyboard
kan du binda tangenter till ett 20-tal olika iTerm-funktioner.
Det är också möjligt att binda till bash-funktioner. Om du vill binda en sekvens som inte innehåller Cmd
, gör du allt i .inputrc
och blandar inte in iTerm överhuvudtaget.
$ cat .inputrc "\e\e[C": forward-word "\e\e[D": backward-word
Ovanstående binder Alt-Höger
till forward-word
och Alt-Vänster
till backward-word
. Skriv man bash
och sök på dessa funktionsnamn för att få fler uppslag på vad man kan göra. Passa också på att läsa avsnittet om readline
för att förstå notationen i .inputrc
. Med hjälp av read
(eller cat
) följt av return kan du se vilka styrkoder olika tangenter ger.
$ read ^[^[[D $ read ^[^[[C
Ovan har jag tryckt på Alt-Vänster
respektive Alt-Höger
. Tecknet ^[
står för Escape
eller ASCII 27
. Se nedan för en förteckning över olika tecken/koder.
Om du vill binda en bash-funktion till en sekvens med Cmd
, måste du använda dig av iTerms ”Send Escape Sequence” eller ”Send Hex Codes” under Preferences/Keyboard
. T.ex. för att binda Cmd-vänster
till Fn-Vänster
som är Home
på min laptop väljer man ”Send Escape Sequence” ^[[H
, det inledande Escape-tecknet ^[
ges av iTerm.
När du nu trycker på Cmd-Vänster
skickar iTerm ^[[H
vidare till Bash vilket råkar ha detta mappat till beginning-of-line
. Kör bind -p
för att lista alla funktioner och dess nuvarande bindningar. På min maskin kan man se att Ctrl-A
även är mappad till nyss nämnda funktion. Vi skulle därför ha kunnat skicka ett denna sekvens från iTerm, men då måste vi använda oss av ”Send Hex Code” istället. Hex-koden för Ctrl-A
är 01
.
Vissa sekvenser som innehåller Ctrl
eller osynliga tecken som TAB
och RET
kan man behöva gå in i verbatim-läge (Ctrl-V
) för att skriva ut. Nedan har jag trycket Ctrl-V
följt av TAB
och ser då att det är ^I
eller ASCII 09
. Vidare ser vi att Ctrl-V
följt av Ctrl–
ger ^_
eller ASCII 1F
.
$ read ^I $ read ^_
Default-bindningen i bash är att undo är bundet till Ctrl–
(minus). Alltså kan du binda t.ex. Cmd-Z
i iTerm till Bash-undo genom att skicka Hex-koden 1F
.