Использование tmux с emacs и vim

16

Какова наилучшая привязка ключей по умолчанию для tmux и почему, если кто-то иногда использует emacs, а иногда использует vim (в Linux Mint 12)? Ctrl-b - это нормально, но это немного противоречит оболочке bash и emacs.

justingordon
источник
Тот, который имеет смысл для вас. Duh?
Ярослав Рахматуллин

Ответы:

9

Я нашел хороший ответ в соответствующем сообщении: какой наименее противоречивый префикс / escape-последовательность для экрана или tmux?

И я пошел с Ctrl- \. Ниже мой ~ / .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
источник
Это не работает из коробки для Mac. Я вернулся к Ctrl-a и переключился на привязки vim и злой режим для emacs, поэтому я больше не нажимаю ctrl-a для начала строки.
Джастингордон
4

Я настоятельно предпочитаю C-], что не конфликтует с привязками vi и конфликтует с abort-recursive-editпривязкой по умолчанию в Emacs. Я использую это достаточно редко, и при достаточно неприятных обстоятельствах, если напечатать его дважды, это не большая драма.

Даниэль Питтман
источник
1

Я использовал Ctrl- / некоторое время и не нашел ничего конфликтующего, по крайней мере, в vim / bash. Я не использую emacs, поэтому не знаю, конфликтует ли это с чем-то важным.

Также небольшая заметка, я считаю, что мне пришлось привязать ее к C-_, чтобы заставить ее работать, поскольку это фактический ключ, который она посылает.

Neg_EV
источник
C- \ и C-_ определенно разные символы; соответственно это 0x1C «Разделитель файлов» и 0x1F «Разделитель блоков». Смотрите таблицу в управляющих символах ASCII Википедии .
Крис Джонсен
1

Я выбрал Ctrl + Alt + b, т.е.

unbind C-b
set -g prefix M-C-b
Андрей
источник
1

Я использую C- \. Обратите внимание, что вам нужно избегать его с одинарными кавычками:

unbind-key C-b
set-option -g prefix C-'\'
mahdix
источник
Как примечание, это конфликтует с сочетанием клавиш vim для оценки выражения.
Mahdix
0

Лучшее решение, с которым я столкнулся, это просто `. Единственное место, которое вызывает у меня проблемы, - это вставка кода напрямую (с системными буферами), в противном случае это идеальное решение.

set -g prefix `
bind-key ` send-prefix
Хантар
источник
0

Еще одна хорошая идея, чтобы пойти на M-F3 . Он не конфликтует с emacs и vi, комбинация довольно удобна, если она «довольно закрыта для M-F2 и M-F1, используемых для запуска команды и меню virtualdesktops.

[Я использую emacs, и запускаю vim (сейчас внутри emacs) и использую linuxMint cinnamon для дистрибутива]

AdrieanKhisbe
источник