Używanie tmuxa z emacsem i vimem

16

Jakie jest najlepsze domyślne wiązanie klawiszy dla tmux i dlaczego, jeśli czasami używa się emacsa, a czasem vima (na Linux Mint 12)? Ctrl-b jest OK, ale to trochę koliduje z powłoką bash i emacsem.

justingordon
źródło
Ten, który ma dla ciebie sens. Co?
Ярослав Рахматуллин

Odpowiedzi:

9

Znalazłem dobrą odpowiedź w pokrewnym poście: Jaki jest najmniej konfliktowy prefiks / sekwencja ucieczki dla screena lub tmuxa?

I poszedłem z Ctrl- \. Poniżej znajduje się moja ~ / .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
źródło
To nie działa od razu na komputerze Mac. Wróciłem do Ctrl-a i przełączyłem się na wiązania vim i tryb zła dla emacsa, więc nie naciskam już ctrl-a na początek linii.
justingordon
4

Zdecydowanie wolę C-], co nie powoduje konfliktu z wiązaniami vi i powoduje konflikt z domyślnym abort-recursive-editwiązaniem w Emacsie. Używam tego dość rzadko, aw dość paskudnych okolicznościach, że dwukrotne wpisanie nie jest wielkim dramatem.

Daniel Pittman
źródło
1

Używam Ctrl- / przez jakiś czas i nie znalazłem konfliktu z niczym, przynajmniej w vim / bash. Nie używam emacsa, więc nie wiem, czy jest w konflikcie z czymś ważnym.

Również niewielka uwaga, uważam, że musiałem powiązać ją z C-_, aby uruchomić, ponieważ jest to właściwy klucz, który wysyła.

Neg_EV
źródło
C- \ i C-_ są zdecydowanie różnymi znakami; odpowiednio są to 0x1C „File Separator” i 0x1F „Unit Separator”. Zobacz tabelę ze znakami kontrolnymi ASCII Wikipedii .
Chris Johnsen
1

Wybrałem Ctrl + Alt + b, tj

unbind C-b
set -g prefix M-C-b
Andrzej
źródło
1

Używam C- \. Pamiętaj, że musisz uciec od tego, używając pojedynczych cudzysłowów:

unbind-key C-b
set-option -g prefix C-'\'
Mahdix
źródło
Uwaga: jest to sprzeczne z klawiszem skrótu do oceny wyrażeń vima.
mahdix
0

Najlepszym rozwiązaniem, z jakim się z tym spotkałem, jest użycie właśnie `. Jedyne miejsce, w którym sprawia mi to problemy, to wklejanie bezpośrednio do kodu (z buforami systemowymi), w przeciwnym razie jest to idealne rozwiązanie.

set -g prefix `
bind-key ` send-prefix
huntar
źródło
0

Kolejnym dobrym pomysłem jest pójście M-F3 . Nie koliduje z emacsem i vi, połączenie jest raczej wygodne, jest raczej zamknięte dla M-F2 i M-F1 używanych do uruchamiania poleceń i menu wirtualnych pulpitów.

[Używam emacsa i uruchamiam vima (na razie wewnątrz emacsa) i używam cynamonu linuxMint do dystrybucji]

AdrieanKhisbe
źródło