突出显示vim上的复制区域

时间:2014-09-26 22:38:05

标签: vim yank

我想模仿游戏Vim Adventure中发现的一个很好的效果: 当一个猛拉命令完成后,我希望猛拉的区域高亮(让我们说红色)一秒钟,以告诉我我的选择是正确的。

例如, yy 会以红色突出显示当前行一秒,然后我会知道选择了什么。

3 个答案:

答案 0 :(得分:2)

一个vimmer(不是我)看到了这个问题,并为此编写了一个插件。请注意,这不是一个简单的解决方案,可能不适合那些喜欢保持vim最小的人,但它的作用就像一个魅力。还要注意,这并不是一项严肃的工作,因此你不一定能寻求稳定的支持。


要安装的插件

使用您首选的方式安装这些插件。

设置

假设您想使用Meta + y来“猛拉并突出显示”。在.vimrc

中写下以下设置
noremap <expr> <Plug>(yank-highlight) operator#sequence#map("y", "\<Plug>(operator-highlight)")
nmap <A-y> <Plug>(yank-highlight)
vmap <A-y> <Plug>(yank-highlight)

<A-y>更改为您想要使用的任何键映射(只有y可能不起作用):<Leader>y可能很好,例如。

可以自动清除突出显示。写下以下内容:

let g:operator#highlight#clear_time=2.0

这将在大约2秒内清除突出显示。该时间间隔还取决于:set updatetime?,默认为4000(ms),因此,如果这似乎无法清除突出显示,请尝试将updatetime设置为较小的值。

答案 1 :(得分:1)

对于Neovim和vim

有一个插件vim-highlightedyank,可用于vim和Neovim。安装它就可以了。您还可以通过添加以下配置来设置突出显示持续时间:

" set highlight to 1000 ms
let g:highlightedyank_highlight_duration = 1000

仅限Neovim

如果您正在使用Neovim的latest version。他们已经在this pull request中内置了这个小功能。

安装最新版本的Neovim并将以下配置添加到您的init.vim

augroup highlight_yank
    autocmd!
    au TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=700}
augroup END

答案 2 :(得分:0)

只是做一个谷歌搜索,我用的插件 markonm称为hlyank.vim 我确实打开了插件并更改了时间,因为它仅使屏幕上的颜色闪烁,因此将其从200更改为800 因此,在autoload文件夹中打开hlyank.vim并更改

 call timer_start(800, {-> matchdelete(id, winid)})

其他     致电timer_start(800,{-> matchdelete(id)})