【问题标题】:How to make Vim quickfix list launch files in a new tab?如何使 Vim 快速修复列表在新选项卡中启动文件?
【发布时间】:2011-07-28 00:14:34
【问题描述】:

说,我有以下映射:

map <F4> :execute "vimgrep /" .expand("<cword>") . "/j **" <Bar> cw<CR>

它(递归地)在当前目录中查找光标下单词的实例,并在快速修复列表窗口中打开这些文件。

如何从 quickfix 窗口启动我在新选项卡中打开的文件? Enter 只是将我在窗口中的当前缓冲区更改为那个新文件。

【问题讨论】:

    标签: vim tabs


    【解决方案1】:

    Quickfix-window 命令在创建时尊重switchbuf 选项 缓冲区。 switchbuf 选项具有 newtab 说明符 指示 Vim 在加载缓冲区之前打开一个新的标签页 切换到。如果有人通过

    将此键添加到选项中
    :set switchbuf+=newtab
    

    快速修复窗口中的条目将在单独的选项卡中打开 页面。

    usetab 说明符也可能在此有用 案子。它规定 Vim 切换到现有的标签页,如果它 包含一个显示目标缓冲区的窗口,而不是复制 它在一个新标签中。

    :set switchbuf+=usetab,newtab
    

    switchbuf 的值也(部分)影响其他 缓冲区切换命令,如:bfirst:blast:sbuffer:sbnext:sbprevious

    【讨论】:

    • 哇。有史以来最好的答案。这正是我希望实现的! usetab 选项也非常方便!谢谢*∞
    【解决方案2】:

    试试QFEnter插件怎么样?
    您可以在新选项卡或新的垂直/水平拆分窗口中打开每个项目,而无需更改 switchbuf 选项。
    它还允许您使用可视选择块一次打开多个快速修复项目。

    【讨论】:

    • 我喜欢你的插件。如果您拥有 Ack 插件具有的所有映射(可能相同),那就更好了:github.com/mileszs/ack.vim#keyboard-shortcuts。我还想打开一个没有快速修复窗口的新标签。
    • 谢谢。您可以将 g:qfenter_enable_autoquickfix 设置为 0 以不在新选项卡中打开 quickfix。
    【解决方案3】:
    autocmd FileType qf nnoremap <buffer> <Enter> <C-W><Enter><C-W>T
    

    如果你使用也可以:

    tab copen
    

    否则会首先拆分窗口,即使使用set switchbuf+=newtab

    另请参阅:https://vi.stackexchange.com/questions/6996/how-to-make-enter-open-new-tabs-for-the-quickfix-window-when-it-is-opened-with

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      相关资源
      最近更新 更多