Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 将光标下的单词添加到搜索模式_Vim - Fatal编程技术网

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
    映射和缩写可以防止副作用。搜索“重新映射”。在这里,如果映射的某个用户决定将
    重新映射到
    ,反之亦然,则映射将不再有效——是的,有时人们会有奇怪的配置。