2012-03-29 23 views
10

Ho qualche problema quando si imposta la mia preferita hotkey tmux su Mac OS X.Come posso impostare tmux hotkey Ctrl come, cioè, Ctrl + virgola

I tasti di scelta rapida più comuni che richiama magie di tmux sono CTRL + A e CTRL + B. Ma preferirei selezionare altre sequenze di tasti per i seguenti motivi: C-a è il tasto di scelta rapida globale per "saltare all'inizio di una riga"; C - b è per "spostamento indietro su una linea" e "Pagina su su Vim". Non voglio rompere queste belle regole in tmux.

Quindi, provo a impostare alcune sequenze di tasti non utilizzate frequentemente per tmux hotkey. Quello che scelgo è CTRL - ,, CTRL - . o CTRL - ;

scrivo questa dichiarazione nel mio file .tmux.conf:

set-option -g prefix C-, 

comincio tmux. Oh, dice "cattiva chiave". Sostituisco C-, con C-. o C- ;. Neanche funziona.

Così, come posso impostare tmux hotkey per CTRL - ,?

+0

Super connessa interrogazione User: [Come posso impegnare la chiave prefix tmux a C- '?] (Http://superuser.com/q/395233/14827) –

+0

precisamente per i motivi che hai menzionato sto usando CTRL-T nella mia schermata di configurazione. Non sto usando gli elenchi di tag in vim. (CTRL-T - salta indietro nella taglist) – jm666

risposta

12

ha dovuto scavare nel codice sorgente per questo. Il tasto di controllo può essere applicato solo a lettere, @, spazio e? (e C- @ sembra equivalente allo spazio C). Spiacente, non sembra C-, è possibile, almeno in tmux-1.6.

+0

chepner, grazie per la risposta. Sembra una brutta notizia. Significa che nessuna soluzione REAL è disponibile di recente. Farò un compromesso per usare C-q, C-h o C-z. Immagino che dovrebbero esserci dei tasti che non sono occupati da emacs, vim o altre cose. –

+0

Non sai cosa intendi con 'lettere'. Ma il backslash è una combinazione valida (anche se difficile da impostare, vedi http://superuser.com/q/417236/63972) con C-. – mgodinho

8

Nessuno di virgola, punto o punto e virgola è un carattere di controllo standard. Il tuo emulatore di terminale probabilmente invia semplicemente il carattere semplice o nulla quando li digiti; è possibile digitare in cat -v per vedere cosa sta inviando.

Vedere "ASCII control characters" di Wikipedia e "How control characters map to keyboards".

Se è possibile riconfigurare l'emulatore di terminale per inviare un altro carattere/sequenza, si dovrebbe essere in grado di utilizzarlo in tmux (ad esempio, avere il vostro emulatore di terminale inviare lo stesso carattere C-\ (1C hex), e impostare il prefisso a quello).

3

Utilizzando terminale xterm

1) Mettere questi nel vostro ~/.Xresources per generare sequenza di escape di F13 quando CTRL - ,, CTRL - . o CTRL - ; viene premuto

XTerm.VT100.translations: #override \                         
    Ctrl<Key>period: string(0x1b) string("[1;2P") \n\                     
    Ctrl<Key>comma: string(0x1b) string("[1;2P") \n\                     
    Ctrl<Key>semicolon: string(0x1b) string("[1;2P") 

corsa xrdb ~/.Xresources caricare questi conf.

2) prefisso cambiamento nella vostra ~/.tmux.conf

set -g prefix F13 

3) xterm fuoco e tmux

$ tmux 
+0

Interrompe l'uso di 'Ctrl +,' in applicazioni come Google Chrome dove puoi usare 'Ctrl +,' e 'Ctrl + .' per passare da una conversazione all'altra su hangouts.google.com? – dragon788

+0

No, Queste configurazioni solo per Xterm –

+0

Impressionante. Funzionerebbe e avrebbe senso mappare ogni combinazione in un unico tasto funzione passato 12 in modo che possano essere utilizzati per altri trigger e non solo per tutti i prefissi di invio? – dragon788