如何从在putty中运行的tmux复制到windows clipbard

Viv*_*Jha 27 vim tmux

ENV ::我在putty上运行tmux,在Windows 7笔记本电脑上运行.我在工作时使用ssh到linux系统.

在使用它满足我的所有需求之前,我必须用tmux解决两个故障.

  1. 我必须从vim或tmux终端将一些文本复制到windows notepad.我已经为vim和putty启用了鼠标支持.

    我曾尝试"*y"+y,但他们都不起作用.如果我使用putty的复制能力,那么它也会复制相邻网格的内容.

  2. 我必须将一个窗格中的某些内容从一个窗格中的vim文件复制到另一个窗格中打开的vim文件.这有什么vim技巧吗?我不想用<C-b>[这种方式.

问题1更多地困扰着我,因为问题2有aw/a.

小智 98

我使用putty v0.62和tmux v1.8.

tmux config:setw -g mode-mouse on

我想将一些文本从tmux复制到系统剪贴板,我按住SHIFT并用鼠标选择文本,然后单击鼠标左键.

我想将一些文本粘贴到tmux中,按SHIFT并单击鼠标右键.

  • 您还需要在"窗口>选择"下的PuTTY配置中选中"Shift替换应用程序使用鼠标" (7认同)
  • 根据 [这篇文章](https://apple.stackexchange.com/a/217167),看起来 tmux 2.1+ 中的选项从 `setw -g mode-mouse on` 更改为 `set -g mouse on` (2认同)
  • 顺便说一句,“SHIFT+ALT+鼠标”进行垂直/块选择。 (2认同)

Phi*_*per 15

这绝对是可能的.下面的所有配置行都是从不同tmux窗格中的计算机复制回我的Windows计算机.是的,我把putty放到一台机器上,tmux和ssh从那里到其他人,可以将我的vim移动到任何机器,包括我的Windows浏览器.

我在Windows上运行X服务器(不需要在Windows上,但你需要在某个地方).

基本成分:

  • putty 0.62(在Windows上)
  • tmux 1.8(在一台Linux机器上)
  • xclip(在Linux机器上)
  • MobaXterm(在Windows上为他们的x服务器)

您的网络设置可能略有不同,尤其是在X服务器显示配置上,但在此处:

TMUX

# allow mouse to select panes
setw -g mode-mouse on
set-option -g mouse-select-pane on

# allow yank into system clipboard
#bind C-y run "tmux save-buffer - | xclip -i"
bind C-y run-shell -b "tmux show-buffer | xclip -selection clipboard -i"
# move x clipboard into tmux paste buffer
bind C-p run-shell -b "xclip -o -selection clipboard | tmux load-buffer - ; tmux paste-buffer"
Run Code Online (Sandbox Code Playgroud)

VIM

" get some  autoselect interaction with the system clipboard
set guioptions=aA
Run Code Online (Sandbox Code Playgroud)

MobaXterm

我保持运行,但不必在xterm shell中运行tmux.确保在X11设置中选择了共享剪贴板.我想xming应该可以工作,但我的其他需求的设置似乎永远不会成功.MobaXterm还有其他我喜欢的好东西(文件浏览器等).

我想我可以在MobaXterm中使用tmux运行ssh会话,但我更喜欢putty窗口,我有我的曝光调色板.

油灰

使用tmux ssh到机器.此时,我设置DISPLAY环境变量并将其放在由bash提供的env文件中.这样,创建的每个后续窗口都将设置它.在我从tmux机器上跳到的其他机器上设置它完全是一个单独的练习.

在任何将共享剪贴板的计算机中,请确保您具有正确的$DISPLAY设置.您应该能够xeyes在本地计算机上运行并查看它.

每个人都将共享剪贴板.当你猛拉时,vim会复制到剪贴板.要粘贴到另一个tmux窗格,请使用bind-key ctrl -p(ctrl-a ctrl -p for me).

如果它不起作用,您可以随时尝试xclip -o -selection clipboard查看应粘贴的内容.您还可以bind-key [使用bind-key ctrl-y(即tmux yank)将任何"tmux selected"文本(鼠标或)移动到剪贴板(从而移动到常规窗口窗口).


Ing*_*kat 6

PuTTY只是一个终端模拟器; Vim注册*+关注X选择和剪贴板; 没有重叠.

PuTTY只允许您将选定的终端内容复制到Windows剪贴板; 当你运行tmux时,这将不可避免地包括窗口布局.

你需要从Pu​​TTY切换到允许真正集成的东西,比如Cygwin XWin服务器,它是一个真正的X服务器,它将X剪贴板与Windows剪贴板集成在一起.您不必进入PuTTY会话,而是ssh -X进入您的服务器,直接在Linux终端或GVIM中启动Vim.然后,yanking via "+y将按照您的预期工作.

或者,如果您想继续使用PuTTY,则必须使用一些解决方法,例如:write选择本地文件,并通过scp例如将其传输到Windows .

  • 这个答案是对的.Islab最好在下面描述它.这既可能又无忧无虑.简单的答案是启用鼠标并按住Shift键,您可以使用鼠标将文本复制到Windows剪贴板中.我每天都用Win7和tmux在Putty中运行.我没有尝试过鼠标粘贴.对我来说,我使用Shift + Insert将Windows剪贴板中的任何文本粘贴到putty终端(通常是我在Vim中编辑的内容). (9认同)
  • @FooBar:您的作品适用于当前可见的文本,我的回答与复制任意数量(即也不可见)文本的一般情况有关。 (2认同)
  • @IngoKarkat:在仔细重读 OP 后,我纠正并道歉。我看到这篇文章是因为我需要简单地将文本从 Tmux 中的单个窗格复制到 Windows 中的某些内容。换档键和模式鼠标解决了这个问题。OP 正在抱怨,因为这不适用于多窗格窗口(垂直拆分)中 Vim 中的文本,因为鼠标突出显示跨越窗格。一种可能的解决方案是使用窗格缩放,然后使用 shift 突出显示文本。Vim 中的行号必须关闭,否则你也可以删除它们。但是,您认为什么是“不可见”文本的示例? (2认同)
  • 在Putty中选择时按住Alt键.这将启用块模式选择 - 即您只能在所需的窗格/ vim窗口中选择文本. (2认同)