Domanda

Di solito trovo impostazioni interessante zsh keybinding (attraverso comando bindkey) in tutto il web. La mia domanda è come faccio a interpretare quello che queste sequenze di escape mappati? Per esempio, ecco un frammento dal oh-my-zsh 's key-bindings.zsh

bindkey "^[[H" beginning-of-line
bindkey "^[[1~" beginning-of-line
bindkey "^[[F"  end-of-line
bindkey "^[[4~" end-of-line

C'è un riferimento su come fare queste keymaps rappresentati? Inoltre, è zsh-specifica o specifica piattaforma a tutti?

Sono consapevole che posso utilizzare cat o Ctrl-V per trovare la sequenza sfuggito corrispondente per alcuni tasti. Dato che ho potuto forza bruta per trovare la corrispondenza inversa, ma questo non avrebbe funzionato per le chiavi che non esistono sulla mia tastiera (ad esempio Home / End sui portatili Mac). Così, preferisco metodi che potrebbero determinare le chiavi a prescindere dalla tastiera fisica.

È stato utile?

Soluzione

Se si parla di un tipico Unix / Linux flusso degli eventi il ??quadro è più o meno il seguente.

Il programma di emulazione terminale riceve gli eventi di X come così e così tasto premuto, un altro pulsante viene rilasciato. Questi eventi possono essere monitorati con xev di utilità, per esempio. L'emulatore di terminale traduce quindi quegli eventi in sequenze di escape .

Questa traduzione non è scolpito nella pietra. Può essere configurato. Emulatori di terminale sono configurati in modo diverso. Per esempio xterm di traduzione può essere impostato in .Xdefaults del genere:

XTerm*VT100*Translations:#override \
Ctrl<Key>Left:          string(0x1B) string(OD) \n\
Ctrl<Key>Right:          string(0x1B) string(OC) \n\

Nota 0x1B che è ESC. ESC viene stampato anche come ^ [.

Ora, usi zsh ZLE (e bash utilizza la libreria readline per lo stesso scopo) che interpreta alcune delle sequenze per muoversi alla linea di ingresso ed eseguire azioni di modifica.

I seguenti testi dovrebbe fornire maggiori dettagli aggiuntivi.

Zsh Linea Descrizione dell'editor

voci di Wikipedia fuga sequenze

e

Xterm sequenze di controllo

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top