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_Editor - Fatal编程技术网

vim中的多重搜索(我挑剔)

vim中的多重搜索(我挑剔),vim,editor,Vim,Editor,我希望能够在vim中搜索多个字符串。我遇到过很多解决方案,但都很糟糕: 首先,键入“/”以外的任何内容开始搜索都是失败的。“:match SearchName search\u string”非常糟糕。“:Search foo”也不好 因此,以下是我对vim中良好的多搜索解决方案的要求: 必须能打字/ 清算搜索必须很容易 每个搜索应该使用不同的颜色 理想情况下,应满足其他一些标准: 应能够轻松清除上次搜索或所有搜索 应该能够轻松找到上一次搜索或任何当前搜索的下一个结果 快捷方式*和#应

我希望能够在vim中搜索多个字符串。我遇到过很多解决方案,但都很糟糕:

首先,键入“/”以外的任何内容开始搜索都是失败的。“:match SearchName search\u string”非常糟糕。“:Search foo”也不好

因此,以下是我对vim中良好的多搜索解决方案的要求:

  • 必须能打字/
  • 清算搜索必须很容易
  • 每个搜索应该使用不同的颜色
  • 理想情况下,应满足其他一些标准:

  • 应能够轻松清除上次搜索或所有搜索
  • 应该能够轻松找到上一次搜索或任何当前搜索的下一个结果
  • 快捷方式*和#应该同样有效
  • 如果有人知道满足这些条件的任何解决方案(或者至少比上面提到的解决方案更接近),我很乐意看到它


    Edit:MultipleSearch2,来自上面的一个链接,对我的许多语法高亮显示做了非常糟糕的事情。它对我来说根本没有什么用处。

    我使用了MultipleSearch,并成功地使用了
    .vimrc
    中的以下配置:

    :nmap <C-_> :Search
    :nmap <C-Bslash> :SearchReset<cr>
    :let g:MultipleSearchColorSequence="232,232,232,232"
    :let g:MultipleSearchTextColorSequence="51,105,199,228"
    
    :nmap:搜索
    :nmap:SearchReset
    :设g:MultipleSearchColorSequence=“232232”
    :let g:MultipleSearchTextColorSequence=“51105199228”
    
    您应该能够使用
    :nnoremap/:Search
    :Search的映射更改为
    /


    编辑:我注意到我提到的
    :nnoremap
    .vimrc
    中不起作用,但它在vim中只起一次作用。奇数…

    您可以使用
    :match
    :2match
    :3match
    内置命令

    这些允许任意突出显示颜色。要使工作流自动化(通过使用最新使用的搜索模式),您必须计算出一些映射,这些映射可以执行以下操作(可能直接使用
    @/
    注册,并执行智能“旋转”方案以获得所需的效果)


    请注意,
    match
    类似于语法高亮显示,但实际上并不干扰它。然而,一个值得注意的效果是,
    match
    高亮显示也是缓冲区本地的。

    nnoremap/:Search
    或其他任何内容。这可能会让我更接近语法高亮显示。请参阅我的编辑…您可能想看看Mark.vim插件-操作是什么对Mark的看法?我觉得很有希望。
    :match
    是窗口的局部,而不是缓冲区,因此在分割缓冲区后,高光将不会出现。这可以通过使用
    WinEnter
    事件来纠正。另外:match由matchparen插件使用,因此可能会出现不希望的副作用。@PeterRincker:感谢附加信息。“已纠正”是否是正确的词语选择取决于OP的要求:)