Використання tmux з emacs та vim


16

Що є найкращим прив'язкою ключів до tmux для замовчування і чому, якщо іноді використовується emacs, а іноді використовується vim (на Linux Mint 12)? Ctrl-b добре, але це трохи конфліктує з bash shell і emacs.


Той, який має для вас сенс. Да?
Ярослав Рахматуллін

Відповіді:


9

Я знайшов хорошу відповідь у пов’язаному дописі: Що є найменш конфліктною послідовністю префіксів та біг для екрана чи 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-\

Це не виходить з коробки для Mac. Я повернувся до Ctrl-a і перейшов на vim прив'язки та злий режим для emacs, тому для початку рядка більше не натискаю ctrl-a.
justingordon

4

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


1

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

Також невеличка примітка, я вважаю, що мені довелося прив’язати його до C-_, щоб змусити його працювати, оскільки це фактичний ключ, який він надсилає.


C- \ і C-_, безумовно, різні символи; відповідно, це 0x1C "Сепаратор файлів" та 0x1F "Сепаратор одиниць". Дивіться таблицю в символах керування ASCII Вікіпедії .
Кріс Джонсен


1

Я використовую C- \. Зауважте, що вам потрібно уникнути цього за допомогою одинарних лапок:

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

Як зауваження, це суперечить клавіші швидкого виклику вираз оцінки vim.
mahdix

0

Найкращим рішенням, яке я натрапив на це, є використання просто `. Єдине місце, яке викликає у мене проблеми, - це вставлення коду безпосередньо (із системними буферами), інакше це ідеальне рішення.

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

0

Ще одна гарна ідея - це рухатися M-F3. Він не конфліктує з emacs та vi, поєднання досить зручне, воно «досить закрите для M-F2 та M-F1, які використовуються для запуску команд та меню віртуальних робочих столів.

[Я використовую emacs і запускаю деякий vim (усередині emacs поки що) і використовую linuxMint корицю для дистрибуції]

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.