如何从系统剪贴板粘贴到 tmux

如何从系统剪贴板粘贴到 tmux

我在 WSL(Ubuntu 18.04)中使用 tmux,但不知道怎样粘贴到 tmux 中。在普通终端上,只需右键单击即可粘贴,但在 tmux 中却不行。

所有在线教程似乎都解释了如何将文本从 tmux 复制到系统剪贴板,我已经通过 tmux-yank 进行了操作,但没有成功将系统剪贴板复制到 tmux。

编辑:默认情况下,这似乎对大多数人都有效。我能提供哪些信息对调试最有帮助?

更新:我意识到右键单击当前允许我移动分隔两个垂直选项卡的栏。我没有在任何地方设置此行为,这可能是从哪里来的?这是我在线获得的 tmux conf:

# Set a new prefix / leader key.
set -g prefix M-j
bind M-j send-prefix

# Allow opening multiple terminals to view the same session at different sizes.
setw -g aggressive-resize on

# Remove delay when switching between Vim modes.
set -sg escape-time 10

# Allow Vim's FocusGained to work when your terminal gains focus.
#   Requires Vim plugin: https://github.com/tmux-plugins/vim-tmux-focus-events
set -g focus-events on

# Add a bit more scroll history in the buffer.
set -g history-limit 50000

# Enable color support inside of tmux.
set -g default-terminal "screen-256color"

# Ensure window titles get renamed automatically.
setw -g automatic-rename

# Ensure window index numbers get reordered on delete.
set-option -g renumber-windows on

# Start windows and panes index at 1, not 0.
set -g base-index 1
setw -g pane-base-index 1

# Enable full mouse support.
set -g mouse on

# Status bar optimized for Gruvbox.
set -g status-fg colour244
set -g status-bg default
set -g status-left ''
set -g status-right-length 0
#set -g status-right-length 20
#set -g status-right '%a %Y-%m-%d %H:%M'

set -g pane-border-fg default
set -g pane-border-bg default
set -g pane-active-border-fg colour250
set -g pane-active-border-bg default

set-window-option -g window-status-current-attr bold
set-window-option -g window-status-current-fg colour223

# -----------------------------------------------------------------------------
# Key bindings
# -----------------------------------------------------------------------------

# Unbind default keys
unbind C-b
unbind '"'
unbind %

# Reload the tmux config.
bind-key r source-file ~/.tmux.conf

# Split panes.
bind-key h split-window -v
bind-key v split-window -h

# Move around panes with ALT + arrow keys.
bind-key -n M-Up select-pane -U
bind-key -n M-Left select-pane -L
bind-key -n M-Down select-pane -D
bind-key -n M-Right select-pane -R

# -----------------------------------------------------------------------------
# Plugin Manager - https://github.com/tmux-plugins/tpm
# In order to use the plugins below you need to install TPM and the plugins.
#   Step 1) git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
#   Step 2) Reload tmux if it's already started with `r
#   Step 3) Launch tmux and hit `I (capital i) to fetch any plugins
# -----------------------------------------------------------------------------

#bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
#`bind -t vi-copy y copy-pipe "xclip -sel clip -i"

# List of plugins.
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-yank'

# Initialize TPM (keep this line at the very bottom of your tmux.conf).
run -b '~/.tmux/plugins/tpm/tpm'

答案1

邮政解决了。

按住“Shift”将恢复操作系统默认行为,然后我可以通过选择 + 右键单击​​进行复制并通过右键单击进行粘贴。

答案2

有几种组合键通常可以在各种系统、程序、终端等上运行。它们可以通过键绑定进行修改,键绑定的语法和功能在不同的 shell、程序等中差异很大。

我没有 WSL 可以尝试,但你可以检查这些

Ctrl + Shift + Ins
Shift + Ins
Ctrl + Shift + V
Shift + V

答案3

通常情况下,如果您在 tmux 中mouse设置为on,则 tmux 将处理所有鼠标事件,而不是终端。在大多数终端中,您可以按 Shift 或其他修饰键来绕过此操作并让终端执行其正常的鼠标操作,您可能会看到您的终端是否有办法做到这一点。

或者,你可以绑定右键单击以粘贴 tmux 的顶部粘贴缓冲区,例如:

bind -n MouseDown3Pane paste-buffer

但这会粘贴 tmux 的顶部粘贴缓冲区而不是系统剪贴板。

答案4

文章中描述了一种方法 使用 tmux 和 Terminal Vim 在 WSL 中实现复制/粘贴功能

这使用开源项目 VcXsrv Windows X 服务器, 被形容为:

Windows X-server 基于 xorg git 源(如 xming 或 cygwin 的 xwin),但使用 Visual C++ 2012 Express Edition 进行编译。

本文包含一个视频教程,值得一听,其中最相关的部分可能位于:

  • 12:35 – 设置 VcXsrv 以链接 WSL 和 Windows 剪贴板
  • 15:06 – 让 VcXsrv 在 Windows 启动时启动

相关内容