Utilisation de tmux avec emacs et vim

16

Quelle est la meilleure liaison de clé par défaut pour tmux et pourquoi si on utilise parfois emacs et parfois vim (sous Linux Mint 12)? Ctrl-b est OK, mais cela entre un peu en conflit avec le shell bash et emacs.

justingordon
la source
Celui qui a du sens pour vous. Duh?
Ярослав Рахматуллин

Réponses:

9

J'ai trouvé une bonne réponse dans un article connexe: quelle est la séquence préfixe / d'échappement la moins conflictuelle pour screen ou tmux?

Et je suis allé avec Ctrl- \. Voici mon ~ / .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-\
justingordon
la source
Cela ne fonctionne pas prêt à l'emploi pour Mac. Je suis retourné à Ctrl-a et je suis passé aux liaisons vim et au mode diabolique pour emacs, donc je n'appuie plus sur ctrl-a pour le début de la ligne.
justingordon
4

Je préfère fortement C-], ce qui n'entre pas en conflit avec les liaisons vi, et entre en conflit avec la abort-recursive-editliaison par défaut dans Emacs. J'utilise cela assez rarement, et dans des circonstances assez désagréables, que le taper deux fois n'est pas un grand drame.

Daniel Pittman
la source
1

J'utilise Ctrl- / depuis un certain temps et je n'ai pas trouvé de conflit avec quoi que ce soit au moins dans vim / bash. Je n'utilise pas emacs donc je ne sais pas si cela entre en conflit avec quelque chose d'important.

Aussi une petite note, je crois que j'ai dû le lier à C-_ pour le faire fonctionner car c'est la clé réelle qu'il envoie.

Neg_EV
la source
C- \ et C-_ sont définitivement des caractères différents; ils sont respectivement 0x1C "File Separator" et 0x1F "Unit Separator". Voir le tableau dans les caractères de contrôle ASCII de Wikipedia .
Chris Johnsen
1

J'ai choisi Ctrl + Alt + b, c'est-à-dire

unbind C-b
set -g prefix M-C-b
Andrew
la source
1

J'utilise C- \. Notez que vous devez y échapper avec des guillemets simples:

unbind-key C-b
set-option -g prefix C-'\'
mahdix
la source
Remarque: cela entre en conflit avec la touche de raccourci d'évaluation d'expression de vim.
mahdix
0

La meilleure solution que j'ai rencontrée pour cela utilise simplement `. Le seul endroit où cela me pose des problèmes est le collage direct de code (avec les tampons système), sinon c'est la solution parfaite.

set -g prefix `
bind-key ` send-prefix
Huntar
la source
0

Une autre bonne idée est d’aller M-F3 . Il n'est pas en conflit avec emacs et vi, la combinaison est plutôt pratique, est-elle plutôt fermée aux M-F2 et M-F1 utilisés pour la commande run et le menu virtualdesktops.

[J'utilise emacs, et je démarre quelques vim (dans emacs pour l'instant) et j'utilise linuxMint cinnamon pour distro]

AdrieanKhisbe
la source