VIM:Vimscript在“视觉插入”模式(又名“选择模式”)中获得选择?

时间:2014-10-21 05:16:44

标签: vim

我希望重新绑定一个键,以便在我进入"视觉插入"时,重新搜索选择所选的文本。模式(又名"选择模式")。我使用此模式是因为当您包含mswin.vim文件时会发生什么。

我发现很多东西似乎几乎工作,例如

Search for selection in vim

但这些似乎都适用于计划视觉模式,而不是视觉插入模式。尽管我可以判断当一个人在视觉插入模式下操作时输入任何东西都会替换选择刚刚输入的内容,我认为正在干扰我在这里和那里找到的vimscript片段。

1 个答案:

答案 0 :(得分:3)

该问题以及 所拥有的许多其他问题都是由mswin.vim引起的。摆脱那些垃圾,享受Vim的无懈可击的力量。

总之...

当处于选择模式时,您可以按<C-o>暂时切换到可视模式,这样就可以创建一个选择模式映射:

  • 切换到可视模式,
  • 抽取所选文字,
  • 执行搜索。

这样的事情:

:snoremap * <C-o>"zy/<C-r>z<CR>
:snoremap # <C-o>"zy?<C-r>z<CR>

甚至可以扩展为在每场比赛中进入选择模式:

:snoremap * <C-o>"zy/<C-r>z<CR>gn<C-g>
:snoremap # <C-o>"zy?<C-r>z<CR>gn<C-g>

故障:

snoremap     " non-recursive select mode mapping
*            " the key you want to press
<C-o>        " switch temporarily to visual mode
"zy          " yank the selection in register z (could be any other a-z register or ")
/<C-r>z<CR>  " search forward for the content of register z
gn           " visually select the match
<C-g>        " go back to select mode

请注意,gn需要最近的Vim。