zip -rj $folder $folder
Удалит каталоги при добавлении файлов к архиву. с info-zip
.
В основном это настройка, которую вы собираетесь использовать:
(для tmux [1172913] версий <2.5[1172914])
(для tmux [1172915] версий >=2.5[1172916])
Затем нажмите [1172586]Ctrl+b[1172587] [1172588][[1172589], чтобы войти в режим копирования. Затем нажмите [1172590] пробел[1172591], а затем любые клавиши перемещения vi для выбора. Затем, вместо нажатия [1172592]Enter[1172593], нажмите [1172594]y[1172595] и выбор будет скопирован в буфер обмена.
Примечание: это предполагает, что вы используете стандартную привязку tmux с клавишами vi.
Tmux имеет разные таблицы привязки клавиш для разных режимов. Так, [1172596]bind-key -t vi-copy y[1172597] устанавливает действие для [1172598]y[1172599] ключа в режиме копирования. Изначально я был сбит с толку, потому что после выбора я привык нажимать [1172600]Enter[1172601]. [1172602]Enter[1172603] на самом деле является просто привязкой клавиши по умолчанию для команды [1172604] копирования-выбора [1172605] (в режиме копирования). Копия [1172606] -команда pipe[1172607] позволяет привязать новый ключ для передачи выбора к команде, которой в данном случае является [1172608]xclip[1172609].
Все привязки клавиш для режима копирования можно посмотреть, запустив [1172610]список клавиш -t vi-copy[1172611].[1172237].
используется другой набор команд (т.е. [1134022]run-shell[1134023] a.k.a. [1134024] run[1134025] недоступен), и
не имеют возможности связывать несколько команд (которые обычно могут быть разделены [1134026];[1134027] - разделитель команд оболочки [1134028]&&[1134029] недоступен).
tmux[1133661] 1.8 имеет [1133662]копировальную трубку [1133663], что могло бы помочь, однако:
(Подобная привязка перечислена в [1133664]FAQ[1133665])[1133297].
Посмотрите на плагин tmux-yank для tmux. https://github.com/tmux-plugins/tmux-yank
Он предоставляет автоматизированный способ копирования/вставки из tmux в системный буфер обмена. Он работает в системах OSX/Linux/Cygwin.
Для macOS вы можете добавить эту строку в .tmux.conf
bind -t vi-copy y copy-pipe 'pbcopy'
Это то, что в итоге сработало для меня с использованием tmux 2.2 и установкой xclip. Для копирования в стиле Vim добавьте следующее в .tmux.conf
bind Escape copy-mode
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection
# Vim style copy to clipboard
bind-key -t vi-copy y copy-pipe "xclip -selection c > /dev/null"
bind-key p run "xclip -o -sel clip | tmux load-buffer - ; tmux paste-buffer"
Здесь, когда в режиме копирования, PREFIX v начинает выделение, а PREFIX y копирует в буфер обмена. PREFIX p можно использовать для вставки в терминал.
Обновленная версия ответа Бена Дэвиса
, совместимая с tmux 2.4
bind -T copy-mode-vi y send -X copy-pipe "xclip -selection c"
На Wayland вместо xclip
лучше использовать wl-copy
/ wl-paste
пакета буфера обмена wl -. Это работает для меня:
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel "wl-copy"
bind C-p run "wl-paste --no-newline | tmux load-buffer - ; tmux paste-buffer"
обновление :, так как я использую один и тот же tmux.conf на X11, Wayland и Cygwin, я остановился на этой конфигурации:
bind-key -T copy-mode-vi v send -X begin-selection
if-shell -b 'echo $XDG_SESSION_TYPE | grep -q x11' "\
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard > /dev/null'; \
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard > /dev/null'; \
bind-key C-p run 'xclip -out -selection clipboard | tmux load-buffer - ; tmux paste-buffer'"
if-shell -b 'echo $XDG_SESSION_TYPE | grep -q wayland' "\
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'wl-copy'; \
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'wl-copy'; \
bind-key C-p run 'wl-paste --no-newline | tmux load-buffer - ; tmux paste-buffer'" "\
\
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'cat - >/dev/clipboard'; \
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'cat - >/dev/clipboard'; \
bind-key C-p run 'cat /dev/clipboard | tmux load-buffer - ; tmux paste-buffer'"
macOS Big Sur (2021 )и Tmux v3.1c:
Я могу засвидетельствовать, что приведенное ниже успешно. То есть после неудачной попытки многих из вышеперечисленных.
# Use vim keybindings in copy mode
setw -g mode-keys vi
# Setup 'v' to begin selection as in Vim
unbind -T copy-mode-vi 'v'
unbind -T copy-mode-vi 'y'
unbind -T copy-mode-vi MouseDragEnd1Pane
unbind -T copy-mode-vi Enter #this is the default binding for copy (but not to system clipboard)
#(many tried, only this worked)
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'pbcopy'
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel 'pbcopy'
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'pbcopy'