4

При переключении между сеансами tmux с помощью интерактивного меню сеансов (<prefix>-s) вы можете перейти к определенному сеансу, набрав числовой или алфавитный индекс сеанса, например

(0) + first_session: 1 windows (1) + second_session: 2 windows (2) + third_session: 1 windows (3) + secret_session: 1 windows

Нажатие 1 откроет сессию second_session .

У меня часто> 20 открытых сеансов tmux, и я хотел бы иметь возможность искать, не просматривая весь список. Есть ли способ изменить поведение, чтобы иметь интерактивный поиск? То есть я хотел бы набрать sec и список должен быть узким

(1) + second_session: 2 windows (3) + secret_session: 1 windows

Я немного погуглил и ничего не нашел; возможно ли такое поведение?

2 ответа2

6

Да, это так, но, насколько я знаю, вам понадобится дополнительный инструмент для самого поиска. Я использую fzf для (нечеткого) поиска. После установки fzf вы можете использовать следующую конфигурацию, чтобы настроить переключение сеанса с поиском:

bind C-j split-window -v "tmux list-sessions | sed -E 's/:.*$//' | grep -v \"^$(tmux display-message -p '#S')\$\" | fzf --reverse | xargs tmux switch-client -t"

Я сам не понял этого, но взял это из публичной конференции Криса Туми.

-1

@ bartj3: Спасибо. Это супер круто!

Вот немного улучшенная версия (без sed и grep) для сеансов переключения и окон:

bind j split-window -v "tmux list-sessions -F '#S' | fzf --reverse | xargs tmux switch-client -t"
bind k split-window -v "tmux list-window -F '#W' | fzf --reverse | xargs tmux select-window -t"

ПРОБЛЕМА:

Если вы используете вышеупомянутое, когда синхронизированы панели, ваши клавиши поиска также будут печатать другие панели.

ВОПРОС:

У кого-нибудь есть идеи о том, как ограничить нажатия клавиш на панели поиска?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .