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.