Answers:
您必须使用tmux快捷方式。假设您的tmux命令快捷方式是默认的:Ctrl+ b,然后:
Ctrl+ b,[进入复制(?)模式。
移至文本的开头/结尾以突出显示。
Ctrlspace
开始突出显示文本(在Arch Linux上)。当我从OSX和其他Linux上的源代码编译tmux时,Space通常可以单独使用。选定的文本会更改颜色,因此您将知道该命令是否有效。
移动到文本的另一端进行复制。
Alt+将w选定的文本复制到tmux剪贴板中。(在Mac上,请使用Esc+ w。)
将光标移动到相反的tmux窗格或完全不同的tmux窗口。将光标放在要粘贴刚复制的文本的位置。
Ctrl+ b,]从tmux剪贴板粘贴复制的文本。
tmux非常擅长将命令映射到自定义键盘快捷键。
见Ctrl+ b,?为一套键盘快捷键的完整列表。
screen
快捷方式:(Ctrl + A [
输入复制模式),Space
(开始突出显示),Enter
(结束突出显示),Ctrl + A ]
(粘贴)。
Enter
键。
不幸的是,我还无法对Alex Leach的回答发表评论,因此,我将在此处为Mac OS X用户提供一个附录:
byobu
/ tmux
并使用所有默认设置,此方法有效,Alt + w无效。
如果您在macOS上使用vim和tmux(在macOS 10.12.2,tmux 2.3上测试):
(假设tmux的前缀键组合为prefix。默认情况下,前缀为ctrl+ b。)
您可以将系统剪贴板使用“ * y”和“ * p”代替普通的y和p。
"+2yy
–将两行复制到X11剪贴板"+dd
–将行剪切到X11剪贴板"+p
–粘贴X11剪贴板
h,j,k,l
到。移动我也有时会看到我的Ubuntu VM中,“+”寄存器消失,不知什么原因,要验证是否有+
注册,您可以键入:reg
并检查是否有串"+
在第一列。
y
和映射p
到"+y
和,这会引起任何问题"+p
吗?
如果您已vim
打开,最好使用vim复制粘贴来复制文本。
Tmux复制粘贴将起作用,但是存在一些缺点。
首先,在复制多行文本时,您将不得不选择多行。Tmux复制粘贴通常不了解vim
行号或vim装订线中有标记(例如相对编号/绝对编号)。结果,它也会复制那些。
其次,我发现如果文本具有特定于语言的格式,而您直接尝试使用tmux将粘贴复制到vim,则会破坏格式。使用可以避免这种情况set paste!
。但是,这需要更多的工作。
"+y
复制和"+p
粘贴Vim
本机提供了一种使用"+y
或来在vim缓冲区和系统剪贴板之间复制粘贴的方法"*y
。然后使用"+p
或粘贴"*p
。这样可以避免在相对于vim不相关的装订线或其他随机标记中复制相对数字
由于tmux快捷键序列有点长,我很难记住它,因此有几个供vim使用的选项
像上面的答案说,你可以使用"+y
和"*y
复制,然后"+p
并"*p
分别进行粘贴。如果您想让vim默认使用剪贴板,那么您就可以直接使用它了y/p
。
set clipboard=unamed "sets the default copy register to be *
set clipboard=unamedplus "sets the default copy register to be +
剪贴板命令的来源:https : //vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
:w /tmp/lines
,然后:r /tmp/lines
在其他情况下选择)。或者,如果Vim知道如何与系统剪贴板对话,则可以使用+
或*
注册来避免使用临时文件。