是否有一种 vim 命令可以直接选择刚刚粘贴的文本块?
注:我知道使用 gv
可以在退出可视模式后重新选择一个块,但这并不适用于此情况。
是否有一种 vim 命令可以直接选择刚刚粘贴的文本块?
注:我知道使用 gv
可以在退出可视模式后重新选择一个块,但这并不适用于此情况。
如果您想在粘贴后立即选择它(在更改任何其他内容之前),请使用
nnoremap <expr> gV "`[".getregtype(v:register)[0]."`]"
[
和 ]
标记指向最后一次更改的起点和终点,v:register
被设置为上次使用的寄存器(这是粘贴命令使用的寄存器,除非你例如复制了一些东西),[0]
只选择寄存器类型的第一个字节(因为对于块状寄存器,它返回 <C-v>{width}
),寄存器类型只有一个字节,与在正常模式下调用视觉模式所使用的按键完全相同。
我在 SO 上看到过这个解决方案,你可能想搜索一下以获取一些替代方法。
getregtype([{regname}])
如果未指定 {regname},则使用 v:register
。 因此,getregtype()[0]
也可以工作。 - kev在我的情况下,我有这张地图:
:nnoremap gp `[v`]
nnoremap <expr> gp '`[' . strpart(getregtype(), 0, 1) . '`]'
我一直在我的vimrc中拥有以下地图:
nnoremap <leader>p `[V`]
nnoremap <leader>[ `[V`]<
nnoremap <leader>] `[V`]>
它们执行以下操作:
我可能使用缩进更多次数,而不是选择。
autocmd
以便在您粘贴之后运行? - Yzmir Ramirez