Usando tmux sia con emacs che con vim


16

Qual è la migliore associazione di tasti predefinita per tmux e perché se a volte si usa emacs e a volte si usa vim (su Linux Mint 12)? Ctrl-b è OK, ma è leggermente in conflitto con la shell bash e emacs.


Uno che ha senso per te. Duh?
Ярослав Рахматуллин

Risposte:


9

Ho trovato una buona risposta in un post correlato: qual è il prefisso / sequenza di escape meno contrastanti per screen o tmux?

E sono andato con Ctrl- \. Di seguito è il mio ~ / .tmux-conf:

set-window-option -g mode-keys vi
set-window-option -g window-status-current-bg blue
set-window-option -g automatic-rename on
set-option -g status-keys vi
set-option -g history-limit 100000
set-option -g base-index 1
set-option -s escape-time 0
setw -g mode-mouse on
set-option -g mouse-select-pane on

# We won't worry about sending C-\ to any programs
# bind-key C-\ send-prefix

# hit C-\ twice to go to last window
bind-key C-\ last-window
bind-key b set-option status

bind-key / command-prompt "split-window 'exec man %%'"
# vim's definition of a horizontal/vertical split is reversed from tmux's
bind s split-window -v
bind v split-window -h

# move around panes with hjkl, as one would in vim after pressing ctrl-w
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# resize panes like vim
bind < resize-pane -L 10
bind > resize-pane -R 10
bind - resize-pane -D 10
bind + resize-pane -U 10

# C-b is not acceptable, due to emacs, bash, and vim
unbind-key C-b
set-option -g prefix C-\

Questo non funziona per Mac. Sono tornato a Ctrl-a, e sono passato ai legami vim e alla modalità malvagia per emacs, quindi non premo più ctrl-a per l'inizio della riga.
justingordon,

4

Preferisco fortemente C-], che non è in conflitto con i binding vi, e è in conflitto con il abort-recursive-editbinding predefinito in Emacs. Lo uso abbastanza raramente, e in circostanze abbastanza spiacevoli, che digitarlo due volte non è un grande dramma.


1

Ho usato Ctrl- / per un po 'e non ho trovato in conflitto con qualcosa almeno in vim / bash. Non uso emacs, quindi non so se sia in conflitto con qualcosa di importante in esso.

Anche una piccola nota credo che dovessi legarlo a C-_ per farlo funzionare poiché questa è la chiave effettiva che invia.


C- \ e C-_ sono sicuramente personaggi diversi; rispettivamente, sono 0x1C "Separatore file" e 0x1F "Separatore unità". Vedi la tabella nei caratteri di controllo ASCII di Wikipedia .
Chris Johnsen,

1

Ho scelto Ctrl + Alt + b, cioè

unbind C-b
set -g prefix M-C-b

1

Uso C- \. Nota che devi scappare con virgolette singole:

unbind-key C-b
set-option -g prefix C-'\'

Come nota, questo è in conflitto con il tasto di scelta rapida dell'espressione di valutazione di vim.
Mahdix,

0

La migliore soluzione che ho trovato per questo è usare solo `. L'unico posto in cui ciò mi causa problemi è incollare direttamente il codice (con i buffer di sistema), altrimenti è la soluzione perfetta.

set -g prefix `
bind-key ` send-prefix

0

Un'altra buona idea è andare per M-F3. Non è in conflitto con emacs e vi, il combinaison è piuttosto conveniente, è piuttosto chiuso a M-F2 e M-F1 usati per il comando di esecuzione e il menu virtualdesktops.

[Sto usando emacs e sto iniziando un po 'di vim (dentro emacs per ora) e usando linuxMint cannella per la distribuzione]

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.