Can vim use the system clipboard(s) by default?
我遇到了几个问题,因为vim的标签是因为缺乏一个更好的术语,上帝可怕。我想开始使用多个Gnome选项卡,每个选项卡都有一个不同的vim实例。一切都应该正常工作,但是,只有系统缓冲区+可用于共享文本。这使得所有命令的两个击键时间更长:
y y成为" + y y
y w成为" + y w
d ' k成为" + d ' k
当人们认为像这样简单的抽动/粘贴操作时尤其如此
y y p
变
" + y y " + p
反正有没有指示vim总是使用系统剪贴板?
有关在Gnome终端选项卡中使用多个vim实例的更多信息,请参阅此处
-
无论谁投票结束这个,你能否澄清为什么你认为这不是一个好问题。
-
你能解释为什么你不喜欢vim的标签吗?此外,有些人不建议有多个vim实例:一个Vim ......只有一个
-
@mMontu我不想要1个缓冲区/选项卡,但我仍然希望能够将缓冲区分组到不同的选项卡中。 Vim不允许这样做。所有缓冲都是全局的。我在这里讨论一下stackoverflow.com/questions/8756459/…
-
@puk:为什么需要将Vim的标签称为"godawful"或"无用"只是因为它们不适合您的特殊工作流程?它们显然很有用;很多人使用和(享受使用)Vim??的标签使编辑更容易。话虽如此,编写一个插件可以添加您在其他SO问题中描述的功能,这将是一个有趣的项目。例如,每个选项卡可以有一个t:buffers变量来保存每个选项卡的缓冲区列表,并且可以创建tabbuffers导航和其他操作,但仅限于选项卡的t:buffers列表中的缓冲区。
-
不是真的,Vim不仅适合现在的标准工作流程而且还有一些轻推,而且问题实际上对于那些在事情已经真的非常可怕之后学习编程的人来说太糟糕了。
-
如何从(并复制到)系统的剪贴板进行vim粘贴可能重复?
我在这里找到了解决问题的方法。 如果将以下内容添加到.vimrc文件中
1
| set clipboard=unnamedplus |
你在vim中猛拉的所有内容都将转到未命名的寄存器,反之亦然。
-
我已经在你之前的一个问题中给了你这个答案。
-
实际上是一个错字。
-
我并没有有意识地偷走你。我从这里看到的类似解决方案中寻找这个解决方案的灵感来自stackoverflow.com/a/1372546/654789
-
@romainl对此感到抱歉。我实际上读过它,但它起初看起来很神秘,我忽略了它。
-
或者在Windows机器上"设置clipboard = unnamed"。
-
请注意,这不是一个完美的解决方案,如果你在vim之外复制一行,它与yanking yy不一样,所以如果你粘贴它p它会被粘贴到位,而不是下一个p或之前的p行
-
@puk你回应我的情绪。我已经习惯了指定寄存器。有时我甚至只是:let @+=@"或类似的
-
@sehe :let @+=@做什么?
-
@puk什么都没有!但是,:let @a=@b将寄存器b的内容分配给寄存器a。接下来,寄存器+是X剪贴板,寄存器"是未命名的寄存器(默认使用)
-
我相信你可以同时使用两者,例如:set clipboard=unnamed,unnamedplus。请注意,VIM必须使用+ X11,+剪贴板和+ xterm_clipboard构建。在Windows上,我想这是默认的。
-
谢谢,这真的有帮助..
-
在Arch-derivatives上,安装gvim或其他GUI版本vim时,您将获得剪贴板启用的CLI vim(请参阅注释)。
顺便说一句,如果您只想使用终端的本机复制/粘贴处理,建议设置
并且只需双击/右键点击您在终端中的习惯。
也就是说,我喜欢vim分割窗口以及你可以用鼠标拖动窗口分隔器/定位光标的事实(异端!)。 这需要鼠标+ = a ...(并且还可以在ssh / screen会话上工作!)。
我习惯这样做:
在召回时有这样的命令。 请注意,"+寄存器在命令行中编码。要将最后一个视觉选择复制到剪贴板,
要么
-
你能不能更详细地解释一下:se mouse-=a的作用。就个人而言,我不是窗户的忠实粉丝,我更喜欢缓冲区。缓冲区> windows >>>标签
-
@puk:我开始欣赏用于diffmode + quickfix的windows。我开始欣赏多个差异集的标签(例如:tabedit a|vert diffsplit b)。我确实使用:set guioptions=agim switchbuf=usetab。删除UI的顽固和缓慢
-
做了你建议的很长一段时间后,我强烈推荐puk从上面回答:set clipboard=unnamed[plus]
-
@Millimetric我按照自己的方式设置(我开始依赖单独的剪贴板,讨厌我的vim中的非标准设置 - 太多不同的系统)。但是:根据你的建议,我会在几周内给它一个旋转。干杯
可能的解决方法:
1 2 3 4 5 6 7 8
| "Ctrl-c to copy in + buffer from visual mode
vmap <C-c>"+y
"Ctrl-p to paste from the + register in cmd mode
map <C-v>"+p
"Ctrl-p to paste from the + register while editing
imap <C-v> <esc><C-v> |
-
我想到了,但是你需要一个新的yw,y{,y},y%,D的快捷方式...
-
@puk,肯定是对的:)
-
我找到了一个带有足够按钮的键盘rlv.zcache.com/…
-
如果您要使用此解决方案,请分别考虑使用vnoremap,noremap和inoremap。