如何不使用鼠标的
Copy
-> Paste
完成此操作? #1 楼
您必须使用tmux快捷方式。假定您的tmux命令快捷键是默认快捷键:Ctrl + b,然后:移动到文本的开始/结束突出显示。
Ctrlspace
开始突出显示文本(在Arch Linux上)。当我从OSX和其他Linux上的源代码编译tmux时,仅Space可以正常工作。选定的文本会更改颜色,因此您将知道命令是否起作用。
移动到文本的另一端进行复制。
Alt + w将选定的文本复制到tmux剪贴板中。 (在Mac上,请使用Esc + w。)
将光标移动到相对的tmux窗格或完全不同的tmux窗口。将光标放在要粘贴刚复制的文本的位置。
tmux非常擅长将命令映射到自定义键盘快捷键。
看到Ctrl + b了吗?有关设置的键盘快捷键的完整列表。
评论
谢谢。只是一个附加节点:Alt + w在Mac上不起作用。默认情况下,Alt已映射到Esc。因此,它是Esc + w。
–卡兰
16-3-22在7:58
如果您使用屏幕快捷键:Ctrl + A [(输入复制模式),空格键(开始突出显示),Enter(结束突出显示),Ctrl + A](粘贴)。
– jfs
16年8月2日在9:58
值得一提的是,“输入”对我有用,而alt + w则不行。
–伊利亚·林恩(Elijah Lynn)
17年11月29日在1:02
如awhan.wordpress.com/2010/06/20/copy-paste-in-tmux中所述,如果您具有vi键绑定,则应将第5步替换为Enter键。
–熊雄
17/12/4在13:04
如果需要复制并粘贴到文本编辑器怎么办?由于某些原因,即使在选择文本后按“ Enter”键,似乎也没有选择该文本。
–?uday
17年5月5日在20:38
#2 楼
不幸的是,我还无法对Alex Leach的回答发表评论,因此,我将在此处为Mac OS X用户提供一个附录:Enter复制所选内容文字
评论
谢谢!我在Ubuntu Xenial上,使用byobu / tmux并具有所有默认设置,此方法有效,Alt + w却不起作用。
– Andrea Zonca
16-3-21在18:16
这在tmux 2.0的OS X Yosemite上不起作用,alt + w也不行,esc + w也没有:(
–weberc2
16年4月6日在15:59
使用Zoc终端在Windows上也对我有效。
– jdhao
18-10-22在9:24
#3 楼
如果在macOS上使用vim和tmux(在macOS 10.12.2,tmux 2.3上测试):(假设tmux的前缀键组合为prefix。默认情况下,前缀为ctrl + b。)
复制:
按前缀+ [进入复制模式。
使用箭头键转到文件的开始/结束。文本选择。
按ctrl +空格(如果已将ctrl +空格设置为前缀,请按ctrl +空格+空格)
使用箭头键移至选择的另一侧。
按ctrl + w。
粘贴:
在插入模式下按前缀+]。
评论
我在Mac OS上,在步骤3中,仅按空格键有效,在步骤5中,按回车键即可。
– zyy
20-5-6在17:05
#4 楼
我正在使用ZOC终端ssh客户端连接到Windows计算机上的CentOS服务器。这是适合我的方法:进入复制模式:
<prefix>
+ [
开始复制:
<Space>
复制文本:
<Enter>
粘贴文本:
<prefix>
+ ]
#5 楼
您可以将系统剪贴板使用“ * y”和“ * p”代替普通的y和p。评论
要使用系统剪贴板,您必须使用“ + 2yy –将两行复制到X11剪贴板” + dd –将行剪切到X11剪贴板” + p –粘贴X11剪贴板
–Patryk
2013年1月9日12:59
使用这些命令之前是否需要输入任何内容?
–托马斯·阿勒
18 Mar 9 '18 at 12:46
@ThomasAhle,不。其字面上是双引号(“),其后是加号(+),然后是2ys(y)。请确保您处于普通模式。如果您处于普通模式,则应该可以使用h ,j,k,l移动。我也有时在我的ubuntu VM上看到“ +”寄存器消失,原因不明。要验证是否有+寄存器,可以键入:reg并检查是否有字符串第一栏中的“ +”。
–alpha_989
18年4月12日在15:05
是的,就是这样,这就是答案。比其他建议的简单得多(使用tmux复制/粘贴),并且不会弄乱行号。如果将标准y和p重新映射为“ + y和” + p,这会引起任何问题吗?
– ryan
19年8月23日在16:08
#6 楼
如果您打开了vim
,最好使用vim复制粘贴来复制文本。 Tmux复制粘贴将起作用,但是有几个缺点。
首先,在复制多行文本时,您将不得不选择多行。 Tmux复制粘贴通常不了解
vim
具有行号或vim装订线中有标记(例如相对编号/绝对编号)。结果,它也会复制那些。 其次,我发现如果文本具有特定于语言的格式,而您直接尝试使用tmux复制粘贴到vim,则会破坏格式。通过使用
set paste!
可以避免这种情况。但是,这需要更多的工作。 使用
"+y
复制并粘贴"+p
Vim
本机提供了一种使用"+y
或"*y
在vim缓冲区和系统剪贴板之间复制粘贴的方法。然后使用"+p
或"*p
粘贴。这将避免在相对于vim不相关的装订线或其他随机标记中复制相对数字评论
我不明白我尝试使用“ + y”在vim中进行复制,但是当切换到具有普通外壳的窗格时,尝试使用“ + p”进行粘贴将无法工作,因为它将开始输入“ ... etc”。我在做什么错?
–SFbay007
20-4-12的3:12
#7 楼
我选择使用Ctrl+Alt+C
和Ctrl+Alt+V
在tmux中复制和粘贴。 Tmux的copy-mode-vi
可以使用vim键hjkl^$...
在tmux窗格中导航,矩形模式对于复制表列很有用,或者当窗格中还有其他拆分时,请使用r
激活它。 这是我在
~/.tmux.conf
中设置的方式:bind P paste-buffer
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
# Also copy to system clipboard
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -sel clip -i'
# map copy mode to ctrl+alt+c
bind-key -n 'C-M-c' copy-mode
# map paste buffer to ctrl+alt+v
bind-key -n 'C-M-v' paste-buffer
我是通过修改此博客文章来创建此设置的。
如果2个tmux窗格(vim实例或其他任何东西)位于不同的机器(一台远程,一个本地)上,则此复制粘贴解决方案也将起作用。
评论
正是我所需要的!谢谢!
– shintocv
20-05-22在7:12
#8 楼
由于tmux快捷键序列有点长,我很难记住上面的回答说可以分别使用
"+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 /如何将文本从vim复制到系统剪贴板
#9 楼
我自己遇到了问题,并在此处上传了.vimrc和.tmux.conf文件:tvp-repl
您可以将tmux配置为
将vim窗格选择复制到剪贴板,
阅读剪贴板并将其粘贴到另一个窗格,然后
跳回到原始窗格。
所有需要设置vim复制到剪贴板[可视模式Ctrl + c]:
set clipboard=unnamedplus
vnoremap <C-c> "+y
然后使用tmux命令运行从vim复制并将缓冲区粘贴到另一个窗格[Ctrl + b Enter]:
bind-key Enter run "tmux send-keys -t 0 C-c" \;
run "tmux select-pane -t 1" \;
run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer" \;
run "tmux send-keys -t 1 Enter" \;
run "tmux select-pane -t 0"
注意:
a)该脚本需要xclip才能与剪贴板交互。
b)假设vim是在窗格0中;目标窗格是窗格1。
评论
您可以使用tmux,但是通常有更简单的方法。两个Vim实例都在同一台(本地)计算机上吗?通常,我会为此使用一个临时文件(即在视觉上选择行:w / tmp / lines,然后选择:r / tmp / lines)。或者,如果您的Vim知道如何与系统剪贴板对话,则可以使用+或*寄存器来避免使用临时文件。