vim:如何选择粘贴块

时间:2011-01-23 17:08:24

标签: vim

是否有vim命令直接选择刚刚粘贴的文本块?

PS。我知道gv在退出视觉模式后重新选择一个块。它不适用于这种情况。

3 个答案:

答案 0 :(得分:13)

如果您想在粘贴后选择它(在更改其他任何内容之前),请使用

nnoremap <expr> gV    "`[".getregtype(v:register)[0]."`]"

[]标记指向最后一次更改的开始和结束,v:寄存器设置为最后使用的寄存器(这是用于粘贴命令的寄存器,除非您,例如,拉动某些东西) ,[0]仅选择寄存器类型的第一个字节(这是必需的,因为对于块状寄存器,它返回<C-v>{width})并且寄存器类型是一个字节,这与您应该在正常模式下使用的击键相同调用视觉模式。

我在SO的某个地方看到了这个解决方案,你可能想要搜索它以获得一些替代方案。

答案 1 :(得分:1)

就我而言,我有这张地图:

:nnoremap gp `[v`]

答案 2 :(得分:0)

我的vimrc中永远有以下地图:

nnoremap <leader>p `[V`]
nnoremap <leader>[ `[V`]<
nnoremap <leader>] `[V`]>

他们执行以下操作:

  • 直观地选择最近粘贴的块
  • 取消最近粘贴的块
  • 缩进最近粘贴的块

我可能比使用选择的那些更多地使用缩进的那些。