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

Vim是否跨多个文件转到下一个搜索结果?

Vim是否跨多个文件转到下一个搜索结果?,vim,vi,Vim,Vi,当我以前使用source insight时,当我搜索某个单词时,我可以按“search forward”按钮跳转到所有项目文件中的下一个匹配项 例如: 搜索“苹果” Source Insight列出所有包含“apple”单词的项目(例如:15个结果) 按“向前搜索按钮” 光标跳转到下一个搜索结果,根据需要重复以查看所有15个结果 但是,将vim与cscope结合使用时,我需要如下内容: :cs查找“苹果” cscope列表15结果 输入“1”并跳转到第一个结果 :cs查找“苹果” cscope列

当我以前使用source insight时,当我搜索某个单词时,我可以按“search forward”按钮跳转到所有项目文件中的下一个匹配项

例如:

  • 搜索“苹果”
  • Source Insight列出所有包含“apple”单词的项目(例如:15个结果)
  • 按“向前搜索按钮”
  • 光标跳转到下一个搜索结果,根据需要重复以查看所有15个结果
  • 但是,将vim与cscope结合使用时,我需要如下内容:

  • :cs查找“苹果”
  • cscope列表15结果
  • 输入“1”并跳转到第一个结果
  • :cs查找“苹果”
  • cscope列表15结果
  • 输入“2”并跳转到第二个结果
  • 这很复杂

    在Vim中有更好的方法吗?

    在Vim(命令模式)中,您可以使用
    /apple
    搜索单词
    apple
    。然后使用
    n
    向前搜索,使用
    n
    向后搜索

    您也可以设置一些设置使其更好

    :set incsearch # will jump to the search work as you type
    :set hlsearch # will highlight all matches
    :set ignorecase # will use case insensitive searches
    :set smartcase # will use case sensitive search if the search word contains capitals
    
    编辑:

    @约翰西韦布的正确答案是在Vim中使用,您可以使用和:

  • 搜索“apple”的底层目录

    :vim apple**

  • 显示所有15个结果:

    :cope

  • 跳转到
    n
    -下一个结果:

    :cn

  • 为了更容易在结果之间跳跃,我有以下几点:

    noremap:cnext
    诺雷马克:以前的
    
    有关详细信息,请参阅:


    Vim允许您使用
    'cscopequickfix'
    选项将cscope的输出重定向到quickfix窗口。以下是
    :help'cscopequickfix'
    中的建议值:

    set cscopequickfix=s-,c-,d-,i-,t-,e-
    
    从那里,您可以使用以下工具搜索
    apple

    :cs f s apple
    
    使用以下选项查看匹配项列表:

    :cw[indow]
    
    跳转到下一场比赛:

    :cn[ext]
    
    :cp[revious]
    
    跳转到上一个匹配:

    :cn[ext]
    
    :cp[revious]
    
    当然,还可以使用鼠标或键盘在quickfix窗口中选择条目

    奖励:将此添加到您的
    vimrc
    中,以跳过
    :cwindow
    步骤:

    augroup qf
        autocmd!
        autocmd QuickFixCmdPost * cwindow
    augroup END
    

    如果只有一个文件,您可以使用/而不是使用cscopei希望搜索所有项目文件,而不仅仅是这个文件file@CKvir:那么我的回答应该会有帮助!换句话说:您真的需要cscope吗?如果没有,请尝试Vim的内部“在文件中查找”功能。