2012-04-13 6 views
9

Sono su OSX LionOSX + Terminal.app + Emacs + rendono tasto di comando operano come meta

ho correre emacs all'interno di Terminal.app

voglio command-x di provocare Mx (e in generale, il comando -> M)

ho provato la seguente soluzione e non sono quello che voglio: comando

Quello che voglio, è solo all'interno di Terminal.app (o solo all'interno di Emacs), per legare il tasto di comando alla meta. Come ottengo questo?

+1

Se si esegue il mapping di Cmd a Meta in Terminal.app, non sarà possibile utilizzare Cmd-C, Cmd-V e altre scorciatoie per copiare e incollare il testo. E penso che anche Cmd-W per le schede di chiusura sia disabilitato. –

risposta

-2

Perché stai insistendo su Terminal.app? Basta installare iterm2 e andare avanti con la vita.

+0

Mi piace questo approccio al nodo gordiano. –

+1

Ho lo stesso problema e sto già usando iTerm2. – hoff2

+2

Questo non risponde alla domanda su come lavorare con Terminal.app. Sarebbe ok come commento. –

4

Innanzitutto, nelle preferenze di Terminale, nella scheda Impostazioni, nella sottoscheda Tastiera, è presente una casella di controllo "Usa l'opzione come meta chiave". Non è esattamente quello che hai chiesto, ma è integrato.

Stavo pensando che il sistema Cocoa Key Bindings potrebbe aiutarti, ma secondo le mie ricerche, non consente deliberatamente di rimappare il comando. This page ha un sacco di informazioni sulla personalizzabilità delle associazioni chiave di Cocoa e delle impostazioni predefinite del testo.

3

Io uso cmd-key-happy (https://github.com/aim-stuff/cmd-key-happy) che permette di scambiare alt e commmand chiavi per applicazioni specifiche.

Quindi in Terminal.app puoi utilizzare tutti i meta-modificatori come previsto, mentre i comandi specifici per Mac (copia, incolla, chiudi, nuovo) funzionano con alt.

+0

L'ho usato anche per un po 'e ne sono stato felice :). Fino a poco tempo fa, quando la mia azienda ha abilitato Secure Keyboard Entry per Terminal. Non penso di avere un modo per disabilitarlo. Almeno, l'opzione di menu non sembrava cambiare nulla. Altrimenti, mi piace molto questo soln. – allyourcode

8

fwiw - iterm2 richiede un po 'di attenzione supplementare per rendere cmd map in meta e giocare bene con altre applicazioni. (Comportamento cmd-tab, cmd-spazio (Quicksilver), ecc) ecco il mio config che sollecita verso il funzionamento cmd-tab mancino, ecc

entro iterm2

  • (scheda Preferenze >> chiavi) cmd sinistra ha bisogno di essere nuovamente assegnati-opzione a sinistra
  • tasti di scelta rapida globali impostate quanto segue per "non rimappare modificatori"
    • cmd-spazio (rende il lavoro Quicksilver normalmente)
    • CTL-cmd-space (marche il mio lavoro di rilegatura omnifocus)
    • cmd-`- finestre ciclo
    • cmd- -> (freccia destra) rende il lavoro scheda ciclismo correttamente
  • (preferenze >> scheda Profili >> chiavi sottotabella) I Mappa lasciato l'opzione-chiave per fuggire.questo fornisce il comportamento previsto per la maggior parte del meta in attesa delle applicazioni shell

questo si traduce in utilizzando il tasto destro del cmd per determinati compiti iTerm locali, ma la commutazione tra le applicazioni con differenti combinazioni di tasti, ecc, fa le solite cose operativi mancini e la riqualificazione mia la memoria muscolare è stata ridotta al minimo.

+0

Questo non ha funzionato per me, ma penso che sia solo perché la risposta non è aggiornata. Ecco cosa ha fatto: nella scheda Chiavi, impostare "Comando Sinistro" come "Opzione Sinistra" (e "Comando Destro" su "Opzione Destra" e se si usa quello); quindi nella scheda Chiavi sotto la scheda Profili, scegli le opzioni "+ Esc" per "Il tasto opzione sinistro agisce come" e "Il tasto opzione destro agisce come" (sospetto che queste opzioni siano state aggiunte solo per gli utenti di emacs). Tuttavia, perderai la possibilità di digitare caratteri speciali usando i tasti di opzione (ma solo in iTerm2, altre app tra cui Cocoa emacs funzionerà ancora bene) – hoff2

+0

anche il precedente è in concomitanza con il seguente nella mia configurazione di emacs: (setq mac-option-modifier 'none) (meta met di setq mac-command-modifier) ​​ (setq ns-function-modifier' hyper) – hoff2

3

FWIW: Ho trovato un altro modo per ottenere ciò che è meglio per me (questo è in iTerm2).

Desideravo che emacs si comportasse allo stesso modo nel terminale come in una finestra. Ho i miei emacs impostato per utilizzare il tasto di comando come il tasto Meta tramite il seguente frammento di codice:

;;osx keys 
(setq mac-option-key-is-meta nil) 
(setq mac-command-key-is-meta t) 
(setq mac-command-modifier 'meta) 
(setq mac-option-modifier 'alt) 

Quindi, per ottenere la mia chiave di comando si comporta come una chiave meta in iTerm2, sono andato a Preferenze-> Profili -> - > chiavi e aggiunte nuove chiavi. L'unico problema è che bisogna farlo per ogni tasto separatamente, ma si può dire per esempio,

keyboard shortcut: <type command-p> 
action: send escape sequence 
Esc+: p 

Così ho fatto per i miei tasti + meta di uso più frequente. Sarebbe bello se ci fosse un altro set di pulsanti di opzione, come per l'opzione/alt, in cui si potrebbe semplicemente dire "il tasto comando si comporta come Esc +".