TMUX с использованием HJKL для навигации по панелям

26

Стандартное TMUX настроено на использование ctrl-b + [вверх, вниз, влево, вправо] при навигации между панелями.

Я хотел бы сделать так, чтобы я мог использовать ctrl-b (или префикс моего выбора) + [h, j, k, l].

Я думал, что сделал это со следующим ключом vi в моих настройках ~/.tmux.conf :

set -g status-keys vi
setw -g mode-keys vi

Но это ничего не изменило (по крайней мере, не то, что я искал). Как я могу заставить это работать. И да, мой .tmux.conf работает правильно. При необходимости я могу предоставить дополнительную информацию.

Обновление:

Вот мой полный .tmux.conf после попытки заставить его работать:

set -g status-keys vi
setw -g mode-keys vi

set -g prefix C-a
unbind C-b
bind C-a send-prefix


# smart pane switching with awareness of vim splits
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

В качестве альтернативы я попытался использовать этот w / vim-tmux-navigator плагин Vim:

# smart pane switching with awareness of vim splits
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L"
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D"
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U"
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R"
bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys 'C-\') || tmux select-pane -l"

источник

Что тоже не работает. Я немного в тупике.     

задан ApathyBear 08.06.2015 в 23:03
источник
  • Если вы хотите внести свой вклад в работу, попробуйте то, что написано в этих статьях: robots.thoughtbot.com/seamlessly-navigate-vim-and-tmux-splits, github.com/christoomey/vim-tmux -navigator, codography.com/2013/06/19/navigating-vim-and-tmux-splits –  John Schmitt 09.06.2015 в 06:29
  • Спасибо, я дам ему шанс –  ApathyBear 09.06.2015 в 08:55
  • вы имели в виду навигацию окон или панелей в tmux? Кстати, это не вопрос vim, я удаляю тег vim. –  Kent 09.06.2015 в 10:29
  • Я обновил свой вопрос. Я имел в виду стекла, жаль насчет путаницы. –  ApathyBear 09.06.2015 в 21:07

2 ответа

31

Вы можете сделать это следующим образом:

bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

Обратите внимание: mode-keys ссылается на использование vi-подобной навигации в буфере, а status-keys ссылается на использование vi-подобного редактирования в строке состояния, но не относится к переключению между панелями.

    
ответ дан Micah Smith 08.06.2015 в 23:20
  • А я вижу. Это не работает. Может быть, мне нужно что-то развязать? prefix-l по-прежнему пытается перейти в последнее окно, остальные тоже не работают. –  ApathyBear 08.06.2015 в 23:27
  • @ApathyBear Использование вышеуказанных четырех строк только в том случае, если мой .tmux.conf действительно дает мне желаемое поведение. Префикс + {h, j, k, l} для перемещения между панелями. Какую версию tmux вы используете? –  Micah Smith 09.06.2015 в 15:42
  • Я использую tmux 2.0. Я также обновил свой вопрос с дополнительной информацией. –  ApathyBear 09.06.2015 в 22:23
  • Также работает в моей системе (OSX Yosemite, tmux 2.0). Я реализовал эту конфигурацию от пользователя github: gist.github.com/rssvihla/789284. –  atripes 10.06.2015 в 13:23
  • Что такое префикс в этом контексте? –  PureW 02.09.2015 в 16:15
6

Не запомнили ли вы источник файла ~ / .tmux.conf? После внесения любых изменений в этот файл вам нужно ввести следующую команду, чтобы увидеть какие-либо изменения.

tmux source-file ~/.tmux.conf
    
ответ дан Eric S 21.12.2016 в 18:03