Vim 将光标下的单词添加到搜索模式
当光标位于单词Vim 将光标下的单词添加到搜索模式,vim,Vim,当光标位于单词上时,vim使用*直接跳转到该单词的下一个外观,即执行/\ 问题: 当光标位于另一个单词上时,是否有方法向搜索中添加另一个单词otherWord,以便执行/\\\\\\\\\\\?试试看 :nnoremap <silent> + :let @/ .= '\\|\<'.expand('<cword>').'\>'<cr>n :nnoremap+:let@/='\\\\\\'n 这将在点击“+”时将光标下的单词附加到搜索寄存器,并跳转
上时,vim使用*直接跳转到该单词的下一个外观,即执行/\
问题:
当光标位于另一个单词上时,是否有方法向搜索中添加另一个单词otherWord
,以便执行/\\\\\\\\\\\
?试试看
:nnoremap <silent> + :let @/ .= '\\|\<'.expand('<cword>').'\>'<cr>n
:nnoremap+:let@/='\\\\\\'n
这将在点击“+”时将光标下的单词附加到搜索寄存器,并跳转到任何搜索模式的下一个匹配项
如果您希望将其扩展到可视模式(as),您必须
:vnoremap <silent> + <c-\><c-n>:let @/ .= '\\|'.escape(lh#visual#selection(), '/\^$*.[~')<cr>n
:vnoremap+:let@/='\\\\''.escape(lh#visual#selection(),'/\^$*.[~')n
使用来获取当前选择,并使用escape()
来中和正则表达式中的某些活动字符。v\u CTRL-\\u CTRL-N
是一个安全且无提示的转义序列。尝试以下操作:
*(搜索一个单词)
搬到别的地方去
:让@/=@/'\\\\\\\'
将光标下的当前单词添加到上一个搜索模式中,并使用一些分隔符(\\\\\\\
和单词边界…)
如果愿意,可以为它设置热键,如:nnoremap:let@/='\\\\\\\\'
离题,但谢谢你让我知道这个简单的捷径!我每天都用vim学习:-)@FlorianMargaine:你不是一个人;)看看这个:任何关于你在这里做什么的解释都会非常感激。不要只是想复制和粘贴一些东西。干杯!:help
命令允许询问vim关于什么的精确性您还不知道,->:h nnoremap
,:h:let
,:h.=
,:h expand()
,或:hn
,:h@/
NB:命令模式结束。这就是为什么它被称为“回答而不是提示”?)好吧,你已经知道了“\\\\”,那么从哪里开始呢?这行代码非常简单,不需要太多解释。没有任何技巧(除了使用
,以及\\\\
的奇怪行为)视觉选择的链接已断开,请改用这个:Greate!!正是我要找的,特别是4。)!请在\\\\\\\\\\\\\\\\\>之前再加一个escape,即\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\映射
如果可能。顺便说一句,:现在让
支持=
。@Luc Hermitte不是nnoremap==nmap?为什么更好?谢谢。nore
映射和缩写可以防止副作用。搜索“重新映射”。在这里,如果映射的某个用户决定将:
重新映射到;
,反之亦然,则映射将不再有效——是的,有时人们会有奇怪的配置。