我在 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 启动时启动