Fare in modo che iTerm traduca 'meta-chiave' allo stesso modo di altri sistemi operativi


179

Nella shell bash con l'associazione dei tasti emacs, puoi usare una combinazione di tasti come Mf, Mb per spostare rispettivamente una parola avanti o indietro sul prompt della shell. Di solito, la meta chiave è mappata sul tasto Alt su Windows e Linux. Tuttavia, in iTerm, non sono riuscito a trovare un modo per mappare questo meta-chiave sul tasto Opzione o Comando sul mio MacBook Pro.

Sembra che in OS X, la meta-chiave sia mappata di default sulla chiave ESC. Quindi puoi usare ESC-f, ESC-b su iTerm. Tuttavia, apparentemente la chiave ESC non è pratica da usare. Inoltre, iTerm ha un'opzione che ti consente di modificare la mappatura per la meta chiave (Segnalibri> Profili> Profili tastiera> Globale> Chiave opzione come ...), questa impostazione sembra non funzionare affatto.

Pertanto, se qualcuno sa qual è la soluzione a questo problema, per favore fatemi sapere.

Ho aggiornato alla versione più recente, 0.9.6.1012, e questo comportamento è ancora persistente.

Modifica: alcuni chiarimenti alla mia domanda. Il key binding di cui sto parlando è per bash shell, non in emacs. Accade solo che, per impostazione predefinita, bash shell usi anche lo stesso key binding di emacs.


Dopo aver pasticciato con questo problema per un po 'e non riesco a trovare una soluzione. Ho rinunciato e sono passato al Terminale ora.
Ejel,

2
non dimenticare che iterm2 esiste già e tutto è a posto =)
holms

Risposte:


207

Cmd+., Profiles, KeysE selezionare Left option Key acts as: +Esc.

Funziona per me in emacs, anche se non sono sicuro che avrà altri effetti indesiderati.


Ho provato Option Key come ... con tutte le scelte ma nessuna di esse funziona per me nella shell bash. Mostra solo "?" ogni volta che premo la combinazione di meta-tasti.
ejel

2
Sembra che la tua lingua di input debba essere negli Stati Uniti affinché l'opzione + ESC funzioni. + ESC non ha funzionato per me quando ho selezionato il metodo di input Giapponese / Romaji, ma ha iniziato a funzionare una volta che ho cambiato la lingua di input negli Stati Uniti
Dominic Cooney,

2
Preferenze, Profilo, Tasti e scegli Opzione Sinistra. Il tasto funziona come: + Esc. Quindi avrai sia il tasto opzione sinistro sia il tasto Esc come meta-chiave. Questo è quello che è successo nel mio caso.
cgl,

Con iTerm 2 questa sembra essere l'opzione consigliata.
ejel,

4
Per la mia tastiera esterna ho dovuto impostare sia i tasti di opzione sinistro che quello di destra da usare Esc+, anche se stavo usando il tasto di opzione sinistro avrebbe comunque stampato caratteri strani. Ciò potrebbe accadere perché utilizzo l' opzione Modificatori tastiera nelle impostazioni Tastiera Mac per modificare i tasti.
Grego,

130

Vai a Segnalibri> Gestisci profili . Quindi seleziona Profili tastiera> Globale e scegli Tasto Opzione come Meta . Questo funziona per me nella versione 0.9.6.1201.


2
Ho dovuto cambiare la voce xterm (OS X) piuttosto che globale, ma ora funziona.
Jason Axelson,

Non so perché sulla mia macchina l'impostazione sia rotta su 0.9.6.1201 e ho provato diverse altre build. Funziona, tuttavia, con l'ultima build 0.9.6 e 0.10 però. Quindi non dovrebbe essere un problema ora.
ejel,

11
in iTerm2 ha funzionato solo dopo aver ridefinito i tasti di scelta rapida del profilo rispettivamente per alt+ ->e alt+ <-per inviare la sequenza di escape + f/ b.
amirnissim,

Ho dovuto aprire una nuova sessione di iterm per farlo
entrare

@SridharRatnakumar Funziona anche per iTerm
Krzysztof Wende,

31

Nella barra dei menu Iterm2 => Preferenze => Profili scegliere la scheda tasti e selezionare

tasto Opzione sinistro agire come + Esc

inserisci qui la descrizione dell'immagine

ha funzionato anche per me in irssi.


Eccellente, questo funziona anche nella combinazione di iTerm2 + tmux
TheJavaGuy-Ivan Milosavljević


5

Uso iTerm2 e, per me, questa risposta ha risolto solo parzialmente il mio problema:

Cmd+ ,=> Profili => Tasti e selezionare l'opzione Sinistra Il tasto funge da: + Esc .

inserisci qui la descrizione dell'immagine

Oltre a ciò, ho dovuto andare a Cmd+ ,=> Profili => Chiavi e nell'elenco delle mappature dei tasti trovare entrambe le combinazioni di tasti : inserisci qui la descrizione dell'immaginee inserisci qui la descrizione dell'immagine, fare doppio clic su di essi e modificare i collegamenti in quanto segue:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

* Assicurati di selezionare l' azione Invia sequenza di escape .


Questo è davvero utile. Grazie mille fratello!
LeOn - Han Li

4

Andando tutta la resurrezione di zombi qui, ma per amore dei posteri -

Questo post ha funzionato come desideri per me, per Mb e Mf, mantenendo impostato 'Opzione chiave come meta' in modo da non sacrificare un modificatore (ho mappature vim usando meta, personalmente).

In breve, nel profilo della tastiera globale, aggiungi due nuove mappature con le impostazioni:

  1. Chiave come codice esadecimale, valore di 62 per b, 66 per f ( man ascii)
  2. Modificatore come opzione
  3. Azione come sequenza di invio invio, valore b o f

L'unica cosa che mi manca ancora da Terminal.app è Opt-Backspaceeliminare a parole. Ci sono altre soluzioni alternative per quello, ma sto solo cercando di allenarmi per l'uso Ctrl-w.


Potrebbe essere una nuova funzionalità da questa risposta, ma è possibile mappare una scorciatoia da tastiera globale da inviare Ctrl-wquando Opt-Backspaceviene premuto.
Steve Buzonas,

4

È più facile in iTerm2. Vai su preferenze-> segnalibro-> tastiera e seleziona Opzione invia + ESC. In iTerm2 puoi configurare separatamente i tasti di opzione sinistro e destro, quindi ricorda di cambiare entrambi se è quello che vuoi. Link per iTerm2: http://sites.google.com/site/iterm2home/


2

Vai a Segnalibri> Gestisci profili. Quindi seleziona Profili tastiera> Globale e scegli Tasto Opzione come + ESC.

Funziona con iTerm Build 0.9.5.0611 e Build 0.9.6.20090415


Hmm. L'impostazione sembra essere rotta sulla mia macchina anche con queste due versioni. Tuttavia, gli ultimi 0.9.6.20090928 e 0.10 funzionano come previsto.
ejel,

2

Ho trovato anche una soluzione su StackOverflow, basta andare al profilo della tastiera e in "Opzione globale" cambiare "Opzione" come "+ ESC

che funziona perfettamente per me =) tra cui esiste una patch iterm, guarda anche qui: http://www.emacswiki.org/emacs/EmacsForMacOS


0

Prova "export LANG = C". Non sono un esperto di emacs, ma ho scoperto che questo consente a emacs su OS X di riconoscere il tasto Opzione come tasto Meta in iTerm,


0

Non conosco iTerm, ma puoi farlo in Terminal. Le istruzioni sono disponibili qui:

Emacs su associazioni di tasti Leopard per Mac OS X.


Grazie. Sono consapevole che posso farlo nel Terminal. Voglio solo ottenere lo stesso risultato in iTerm. A proposito, quello che sto cercando è l'associazione dei tasti in bash shell, non in emacs. Capita solo che la shell bash usi anche l'associazione dei tasti emacs.
ejel

0

Ecco cosa ha funzionato per me: Segnalibri> Gestisci profili> Profili tastiera> Globale / xterm> Tasto opzione come + Esc. Con questo, posso usare Option + Enter in Midnight Commander e il nome del file / directory attualmente selezionato appare nella stringa di comando, come dovrebbe. Opzione Key come Meta non ha funzionato per me. La mia build di iTerm è 0,10.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.