привязка ключа tmux к содержимому панели панели программы

Я пытаюсь заставить эту привязку ключа работать, чтобы передать содержимое текущей панели программе по своему выбору:

bind P command-prompt -I "vim -" \ "capture-pane -eJ -S - -E -; \ set-buffer -n PIPE; \ new-window -n '|%1' 'tmux save-buffer -b PIPE - | %1'; \ delete-buffer -b PIPE" 

– но это всегда приводит к тому, что tmux не сообщает no buffer PIPE . Этот текст обычно отображается и перезаписывается слишком быстро, чтобы я даже заметил его; Мне удалось вызвать его, используя sleep 10 качестве имени команды для вывода вывода.

Я решил переименовать автоматически названный буфер, созданный панелью capture-pane потому что в противном случае вызов new-window казалось, сбросил текущий / стандартный буфер tmux в то, что я последний раз скопировал в режиме копирования. Насколько я могу судить, новый буфер должен быть переименован в PIPE .

У меня есть аналогичная, но более простая привязка, которая выводит содержимое в файл, а не в трубу, отлично работает:

 bind H command-prompt -I "tmux_#W.txt" \ "capture-pane -eJ -S - -E -; \ save-buffer '%%'; \ delete-buffer" 

Если я запускаю команды в нем один за другим, программа получает текст панели, как это было бы из любого другого канала. Что я делаю не так?

One Solution collect form web for “привязка ключа tmux к содержимому панели панели программы”

Кажется, что между new-window и командами delete-buffer есть гонка, то есть буфер «PIPE» удаляется, прежде чем он может быть отправлен в vim или любую другую программу, которую вы хотите выполнить.

Следующий уродливый взлом, который засыпает секунду до вызова delete-buffer исправляет проблему для меня:

 bind P command-prompt -I "vim -" \ "capture-pane -eJ -S - -E -; \ set-buffer -n PIPE; \ new-window -n '|%1' 'tmux save-buffer -b PIPE - | %1'; \ run-sh 'sleep 1 && tmux delete-buffer -b PIPE'" 
  • Отсоедините все остальные терминалы, кроме текущего, от сеанса tmux
  • Linux VT Emacs в tmux, разбивает цвет и курсор
  • Скрыть события активности при запуске
  • Как установить пользовательские переменные в tmux?
  • Vim потеряет способность копировать клиенту клип через SSH
  • Каков наилучший способ подключения к программе cron без TTY
  • Как показать простой режим работы в строке состояния tmux?
  • Как изменить цвет фона панели в tmux?
  • Ctrl + клавиши со стрелками, работающие в tmux
  • Не удалось подключиться к шине: Не удалось подключиться: соединение отклонено
  • tmux сеанс, потерянный в неизвестных очках, причина и возможное решение?
  • Linux и Unix - лучшая ОС в мире.