Verwendung von tmux mit Emacs und Vim

16

Was ist die beste Standardschlüsselbindung für tmux und warum, wenn man manchmal Emacs und manchmal Vim verwendet (unter Linux Mint 12)? Strg-b ist in Ordnung, aber das widerspricht ein bisschen der Bash-Shell und dem Emacs.

justingordon
quelle
Eine, die für Sie Sinn macht. Duh?
Ярослав Рахматуллин

Antworten:

9

Ich habe in einem ähnlichen Beitrag eine gute Antwort gefunden: Was ist die am wenigsten widersprüchliche Präfix- / Escape-Sequenz für screen oder tmux?

Und ich bin mit Strg- \ gegangen. Unten ist meine ~ / .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
quelle
Dies funktioniert bei Mac nicht ohne weiteres. Ich kehrte zu Strg-a zurück und wechselte für Emacs zu Vim-Bindings und zum Böse-Modus, sodass ich für den Zeilenanfang nicht mehr Strg-a drücke.
Justingordon
4

Ich bevorzuge dringend C-], was nicht mit vi-Bindungen in Konflikt steht und mit der Standardbindung abort-recursive-editin Emacs in Konflikt steht . Ich benutze das selten genug und unter bösen Umständen ist es kein großes Drama, es zweimal zu tippen.

Daniel Pittman
quelle
1

Ich benutze Ctrl- / seit einer Weile und habe zumindest in vim / bash keine Konflikte festgestellt. Ich benutze keine Emacs, deshalb weiß ich nicht, ob es mit irgendetwas Wichtigem in Konflikt steht.

Ich glaube auch, dass ich eine kleine Notiz an C-_ binden musste, damit es funktioniert, da dies der eigentliche Schlüssel ist, den es sendet.

Neg_EV
quelle
C- \ und C-_ sind definitiv verschiedene Zeichen; Sie sind jeweils 0x1C "File Separator" und 0x1F "Unit Separator". Siehe die Tabelle in den ASCII-Steuerzeichen von Wikipedia .
Chris Johnsen
1

Ich habe Strg + Alt + b gewählt, dh

unbind C-b
set -g prefix M-C-b
Andrew
quelle
1

Ich benutze C- \. Beachten Sie, dass Sie es mit einfachen Anführungszeichen umgehen müssen:

unbind-key C-b
set-option -g prefix C-'\'
Mahdix
quelle
Dies steht im Widerspruch zu der Tastenkombination für den Auswertungsausdruck von vim.
Mahdix
0

Die beste Lösung, die mir dabei begegnet ist, ist die Verwendung von nur `. Der einzige Ort, an dem ich Probleme habe, ist das direkte Einfügen von Code (mit Systempuffern), ansonsten ist dies die perfekte Lösung.

set -g prefix `
bind-key ` send-prefix
Huntar
quelle
0

Eine weitere gute Idee ist es, zu gehen M-F3. Es widerspricht nicht Emacs und Vi, die Kombination ist ziemlich praktisch, es ist eher für die M-F2 und M-F1, die für das Ausführen von Befehlen und das Ausführen von virtuellen Desktops-Menüs verwendet werden, geschlossen.

[Ich benutze Emacs und starte ein paar vim (im Moment in Emacs) und benutze linuxMint Cinnamon für die Distribution]

AdrieanKhisbe
quelle