在VI中,如何跳转到整个当前行的下一个(如果有的话)?
喜欢*用于单词,但是对于整个当前行而不仅仅是当前单词。
答案 0 :(得分:1)
我不确定这是否可以接受。 您可以将光标留在要搜索的那一行上,然后按:
/<c-r>=getline('.')<cr>
或
Y/<c-r>"<BS><cr>
或
:let @/=getline('.')<cr>
这个想法是一样的,将该行复制到/
搜索。但是,这将不适用于所有情况,例如你的行包含“正则表达式”:
aaa.*foo (cursor here)
aaabbfoo
aaa.*foo
vim将匹配所有三行。
注意您可能希望使用^
和$
包装行文字以获得更好的结果。
答案 1 :(得分:1)
没有预定义的命令,但你可以这样做:
:map <F7> 0v$hy/\V<C-R>"<CR>
命令的第一部分将整行复制到默认寄存器中,第二部分执行搜索。 然后,只需在正常模式下按F7,这就是所有人。
我喜欢的另一个人:
:map µ yiw:vim /<bslash><lt><C-R>"<bslash>>/ *<CR>
它扩展了使用'*'对当前目录中的所有文件进行的搜索。
答案 2 :(得分:0)
肯特答案的略微修改版本应始终有效,不会被特殊符号混淆。 (即刺痛与字面匹配,没有任何解释为正则表达式)
/\V\^<c-r>=escape(getline('.'), '\')<cr>\$
\V
打开非常无意义意味着唯一的特殊字符是反斜杠。我们使用escape函数来逃避所有反斜杠(感谢Ingo Karkat)
或在地图中
:nnoremap <silent> ,* /\V\^<c-r>=escape(getline('.'), '\')<cr>\$<cr>
答案 3 :(得分:0)
有几个插件可以扩展*
命令以在可视模式下进行选择;其中一个是我的SearchHighlighting plugin。 (插件页面包含指向其他插件的链接。)
这样,搜索当前行是一个快速V*
(转到线性可视模式,搜索选择)。