Usando tmux con emacs y vim


16

¿Cuál es el mejor enlace de teclas predeterminado para tmux y por qué si uno a veces usa emacs y a veces usa vim (en Linux Mint 12)? Ctrl-b está bien, pero eso está un poco en conflicto con bash shell y emacs.


Uno que tenga sentido para ti. Duh?
Ярослав Рахматуллин

Respuestas:


9

Encontré una buena respuesta en una publicación relacionada: ¿Cuál es la secuencia de prefijo / escape menos conflictiva para screen o tmux?

Y me he ido con Ctrl- \. A continuación se muestra mi ~ / .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-\

Esto no funciona fuera de la caja para Mac. Regresé a Ctrl-a, y cambié a enlaces vim y al modo malvado para emacs, así que ya no presiono ctrl-a para el comienzo de la línea.
justingordon

4

Prefiero mucho C-], lo que no entra en conflicto con los enlaces vi, y entra en conflicto con el abort-recursive-editenlace predeterminado en Emacs. Lo uso raramente, y en circunstancias bastante desagradables, escribirlo dos veces no es un gran drama.


1

He estado usando Ctrl- / por un tiempo y no he encontrado conflictos con nada al menos en vim / bash. No uso emacs, así que no sé si entra en conflicto con algo importante.

También una pequeña nota que creo que tuve que vincular a C-_ para que funcione, ya que esa es la clave real que envía.


C- \ y C-_ son definitivamente caracteres diferentes; respectivamente, son 0x1C "Separador de archivos" y 0x1F "Separador de unidades". Vea la tabla en los caracteres de control ASCII de Wikipedia .
Chris Johnsen

1

Elegí Ctrl + Alt + b, es decir

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

1

Yo uso C- \. Tenga en cuenta que necesita escapar con comillas simples:

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

Como nota, esto entra en conflicto con la tecla de acceso directo de evaluación de vim.
mahdix

0

La mejor solución que he encontrado para esto es usar solo `. El único lugar donde esto me causa problemas es pegar el código directamente (con los buffers del sistema), de lo contrario, es la solución perfecta.

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

0

Otra buena idea es ir a por M-F3. No entra en conflicto con emacs y vi, la combinación es bastante conveniente, está bastante cerrada al M-F2 y M-F1 que se usa para ejecutar el comando y el menú de virtualdesktops.

[Estoy usando emacs, y comenzando un poco de vim (dentro de emacs por ahora) y usando linuxMint canela para la distribución]

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.