我正在尝试搜索某些在视觉模式下被猛拉的线的一部分。
在VIM中最快捷的方法是什么?例如,
Hello, #{1} world.
我按 v 进入视觉模式并在第1行选择llo, #{1} wor
。然后按 y 拉动所选文本,然后,我尝试按 / 搜索所选文本。这导致了以下问题:
答:当我处于搜索模式时,如何通过一个被拉动的文本?
B:如何避免为搜索模式转义字符的工作?
答案 0 :(得分:13)
A:
Ctrl-r 0 。
B:
除了 Ctrl-r 0 技巧外,还有 Ctrl-r = ,键入要计算的表达式并扩展为结果。
/ (现在提示符如
/
)
Ctrl-R = (现在提示符如=
)
escape(@0, '\^$*.~[')
输入(现在提示符如/llo, #{1} wor
)
输入
请注意,@reg
表示“注册reg
的内容”,注册0
是最后一次抽奖或删除。我认为逃脱了vi regexp中特殊的所有字符......无论如何,你可能更愿意进行映射而不是全部输入。
答案 1 :(得分:6)
当您抽出一些文本(并指定没有寄存器将其拉入)时,它会进入寄存器0.因此,如果您要搜索该被抽出的文本,请按 ESC 进入正常状态模式,然后
/CTRL-r0
(即按 / ,然后按 CTRL + r ,然后 0 )拉出寄存器的内容0进入搜索模式。
一些注意事项:
:reg
并观察寄存器内容。"2y
(:he v_y)。X
)搜索该文本。答案 2 :(得分:3)
我已经覆盖the star command for the visual mode(注意:它需要lh-vim-lib中的一个文件)。它满足了您的需求: