Rimappatura delle chiavi in iterm2

12

Sto provando a rimappare alcune combinazioni di tasti predefinite in iTerm2 e vorrei capire cosa sta succedendo quando collego le chiavi a "Invia codici esadecimali".

Un post precedente mi ha aiutato a iniziare a rimappare le combinazioni di tasti ctrl-a e ctrl-e rispettivamente a cmd-left e cmd-right, ma vorrei rimappare anche altre combinazioni di tasti. ( Link al precedente post Stackoverflow ).

Ho una vaga comprensione del fatto che ci siano codici esadecimali coinvolti, ma sono al punto in cui non riesco a capire dove andare per capire cosa sta succedendo o cosa fare.

    
posta Community 28.04.2013 - 03:45
fonte

4 risposte

13

Quei codici esadecimali sono solo sequenze di byte. Ad esempio, associare una combinazione di tasti a 0x66 0x6f 0x6f lo renderebbe inserito foo . 0xc3 0xa4 inserirà ä se usi UTF-8. 0x1b 0x1b 0x5b 0x43 significa escape escape [ C .

Alcune sequenze di byte come sequenze di escape ANSI e anche singoli byte come i caratteri di controllo ASCII hanno significati speciali nei terminali.

Per rendere ⌘ ← e ⌘ → andare all'inizio e alla fine della riga, puoi assegnarli a 0x01 (^ A in notazione caret) e 0x05 (^ E in notazione caret):

  • ⌘ ←: invia codici esadecimali: 0x01
  • ⌘ →: invia codici esadecimali: 0x05

Puoi fare ⌥⌦ eliminare una parola in avanti assegnandola a \ed :

  • ⌥⌦: invia ^ [d

Cambiare ⌥ ← e ⌥ → in \eb e \ef nelle preferenze di iTerm li cambierebbe anche in programmi che non supportano le combinazioni di tasti readline o emacs-style. Un'altra opzione è quella di aggiungere questo a ~ / .inputrc :

"\e\e[D": backward-word
"\e\e[C": forward-word

Puoi eseguire read e premere combinazioni di tasti per vedere quali caratteri inseriscono. Ad esempio ⌥ ← inserisce ^[^[[D per impostazione predefinita, dove ^[ è escape in notazione caret .

Vedi anche link .

    
risposta data 28.04.2013 - 15:59
fonte
6

Suggerisco di installare codici chiave ($ 0) da molti trucchi e trovare le scorciatoie per te.

Ad esempio se vuoi rimappare il collegamento predefinito per (in avanti) eliminando un charcter - che è Ctrl-D ( ⌃D ) - per essere semplice come premere il tasto di cancellazione in avanti ( ), dovresti ...

  1. Apri l'app e premi Ctrl-D

  2. DinuovoiniTerm2,aggiungilascorciatoiaUnicodeiniTerm>Preferenze>Tasti

Nota: non copiarlo e incollarlo, basta digitare l'Unicode senza spazi.

    
risposta data 25.09.2015 - 16:29
fonte
2

Controlla Moschettone .

All'interno di questo strumento è possibile creare mappature personalizzate chiave specifiche per le applicazioni. Viene fornito con alcuni strumenti per aiutarti.

    
risposta data 16.07.2014 - 11:19
fonte
1

Il modo migliore che ho trovato è stato l'invio di codici chiave (come descritto da @pattulus o l'uso di associazioni di tasti vim.

Nota sui codici chiave: in realtà non è possibile farlo funzionare inviando la stringa unicode come descritto sopra, è necessario inviare sia il modificatore che la chiave per ottenere in caso di Controllo + D devi inviarlo come codice: 0x840101 0x4 dove 0x840101 è il modificatore della chiave di controllo e può essere ottenuto tramite Codice chiave .

Nota sull'invio come sequenza vim : Come descritto in iTerm2 documentazione , puoi inviare un codice chiave nel formato vim-bindings come \<C-d> per inviare Controllo + D (nota che \ è importante).

Personalmente preferisco il binding di tasti vim perché è più leggibile e più tardi capirai cosa hai fatto.

    
risposta data 27.07.2017 - 13:05
fonte

Leggi altre domande sui tag