привязка ключа 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 мигает командой из # () перед отображением результата
  • Tmux 2.0 "pane_current_path" не работает на CentOS
  • Как заставить tmux-окно быть заданным размером
  • tmux не соблюдает отключенный поток управления
  • tmux: включить мышь только при нажатии сдвига
  • Окно просмотра Tmux, вызванное несколькими параллельными сеансами
  • Преобразование команды экрана для tmux
  • tmux: сохранять позицию прокрутки при смене сеанса
  • tmux выбрать окно с помощью Alt <number>
  • Команда tmux для перемещения панели к краю окна?
  • Как я могу создать файл на основе команды оболочки в .tmux.conf?
  • Interesting Posts

    Как решить проблему, возникающую при открытии диспетчера пакетов Synpatic

    на FreeBSD, как мне открыть порт в WAN, но не в локальной сети?

    Как несколько команд заданы для ex из командной строки?

    Каково имя автоудара в Linux Mint

    Удаление определенных типов файлов, кроме папки

    Не удается переключить макет с помощью Win + Space после включения дополнительных типографских символов

    История Bash: «ignoredups» и «erasedups» устанавливают конфликт с общей историей на всех сеансах

    Как интерпретируется «среднее значение нагрузки» в «верхнем» выходе? Это то же самое для всех распределений?

    Сопоставьте текущую строку до строки, которая не соответствует шаблону

    Когда-либо выходящий из системы трафик, адресованный одному из интерфейсов системы Linux?

    Не теряйте текущую команду, когда вверх нажата кнопка в терминале

    Основная проблема Emacs

    Как вызвать URL-адрес службы из сценария оболочки bash параллельно?

    Если текст из файла совпадает с именем name, тогда запустите функцию

    Быстрый вопрос о NIMOL (nim on linux)

    Linux и Unix - лучшая ОС в мире.