有没有一种方法可以在vim中使yanks可视化?

3
在vim中拷贝时,没有视觉上的提示来表明您所做的拷贝动作。除了检查寄存器之外,还有什么设置或插件可以使vim突出显示刚刚拷贝的区域吗?我已经尝试谷歌搜索,但如果有这样的功能,我可能使用错误的短语进行搜索。
3个回答

3
您可以使用标记'[']来标记上次复制的文本的开始和结束位置,但您的目的是什么?您想要验证您实际复制的是否与您想要复制的相对应吗?请澄清您的问题。
相反,您可以倒转整个过程:
1. 使用可视模式或可视行模式来直观地选择您想要复制的内容。 2. 复制它。
这样,您就知道自己要复制的内容,并且可以使用gv重新选择它。

2

怎么做到的?

除了删除一个单词或一行之外,当你通常知道你要删除什么时,大多数删除操作是通过视觉或块模式完成的,在这些操作中,因为在进行删除操作之前已经选择了相应的内容,所以你知道要删除的内容。

但是,像你说的那样,你可以查看寄存器,或者安装像YankRing这样的插件(或其更简单的替代品)。它提供了一个非常棒的功能,可以快速(除非你使用了一些多个剪贴板管理器,否则这有点难以解释)切换被删除的文本。你按下p键进行粘贴,然后你可以通过例如Ctrl-p来选择想要放置的内容。这是一个非常实用且易于掌握的功能。


1
YankRing+1。如果yank是从可视模式下进行的,我会提到gv - sehe
当使用搜索运算符时拔出文本时,我感到困惑,并且我想更频繁地使用环绕修饰符(“a”和“i”)。在这种情况下,你刚刚抓取了什么可能有点混淆。YankRing听起来非常不错。我会试一试。 - DannoHung

0

我不确定它总是有效的,但我尝试过这个方法

vnoremap <silent> y y:execute '2match InterestingWord2 /<c-r>"/'<cr>
hi InterestingWord2 guibg=DarkOrange guifg=black ctermbg=202 ctermfg=black

这适用于单行的可视选择 - 但不适用于多行。

也许以下方法也可以 - 我还没有尝试过。

nnoremap <silent> yy yy:execute '2match InterestingWord2 /<c-r>"/'<cr>
nnoremap <silent> y$ y$:execute '2match InterestingWord2 /<c-r>"/'<cr>
nnoremap <silent> Y Y:execute '2match InterestingWord2 /<c-r>"/'<cr>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接