Vim 编辑时是否有视觉闪光效果?
我们正在寻找的是在正常模式下对vim编辑的受影响区域进行短暂的视觉闪烁。例如,在编辑时Vim 编辑时是否有视觉闪光效果?,vim,vi,Vim,Vi,我们正在寻找的是在正常模式下对vim编辑的受影响区域进行短暂的视觉闪烁。例如,在编辑时 if (true) { //line to be deleted } 如果我们在//要删除的行上执行dd,则在删除之前,此受影响的区域应闪烁,我们可以使用Vd执行同样的操作。我们所看到的效果与使用dd的Vd的效果相同。这适用于所有编辑操作,如c、y等 我们试着用nnoremap dd Vd对它进行映射,以测试一行,但没有成功。甚至不确定我们是否应该像这样绘制地图 谷歌搜索没有发现任何令人满意的结果。
if (true) {
//line to be deleted
}
如果我们在//要删除的行上执行dd
,则在删除之前,此受影响的区域应闪烁,我们可以使用Vd
执行同样的操作。我们所看到的效果与使用dd
的Vd
的效果相同。这适用于所有编辑操作,如c
、y
等
我们试着用nnoremap dd Vd
对它进行映射,以测试一行,但没有成功。甚至不确定我们是否应该像这样绘制地图
谷歌搜索没有发现任何令人满意的结果。有没有已知的插件?任何可以插入vim的代码都将非常棒在我给出的示例中,有许多地方需要调整,但它们可能是解决问题的良好开端
您可以使用:redraw
和:sleep
在函数执行期间绘制一段时间的选择
下面是一个带有dd
的示例:
nmap <silent> dd :call Com_dd()<cr>
function! Com_dd() range
" Enter visual mode:
normal! V
" Select multiple lines, when there's a range:
let morelines = a:lastline - a:firstline
if morelines != 0
exe "normal! ".morelines."j"
endif
" Redraw the screen so we can see the selection:
redraw
" Sleeps 200ms:
sleep 200 m
" Delete the selected lines:
normal! d
endf
最后一个示例不处理范围,因此3cw
将不起作用(但c3w
将起作用)
有关映射运算符的帮助,请参见:hg@
但是它会导致一些新的问题:例如,
不再使用这些命令。
另一个例子是:标准的cw
命令不会删除单词后面的任何空格,但我的示例会删除
您可能会找到一些解决这些新问题的方法,但我现在没有。Vd有什么问题吗?
?除了一块额外的石头,没有别的。每次为每个编辑命令键入v/v
都会变得相当繁重。我的意思是你可以nnoremap y v
,nnoremap d v
,等等。。然而,这会破坏其他东西。如果你不使用其他应该对你有用的东西,也许你可以看看的代码。谢谢,这似乎是一个很好的起点谢谢@yolenoyer。我会评估并回复你
nmap <silent> c :set opfunc=Com_c<cr>g@
function! Com_c(type)
let curpos = getpos('.')
if a:0 " Invoked from Visual mode, use gv command.
silent exe "normal! gv"
elseif a:type == 'line'
silent exe "normal! '[V']"
else
silent exe "normal! `[v`]"
endif
redraw
sleep 200 m
normal! d
startinsert
call setpos('.', curpos)
endf