我需要this question完全相反的行为。我的观察是,在位置列表窗口中的某一行上按enter
后,窗口将关闭,主窗口将显示所选文件的内容。相反,quickfix窗口没有这种行为,即它在选择后仍保持打开状态。
我已经检查了我的autocmd,并且没有针对位置列表或quickfix列表的特殊处理。
示例 - :lgrep hi *
填充位置列表。 lopen
打开位置列表窗口。在任意一行按enter
。
答案 0 :(得分:5)
Syntastic会在没有错误时关闭位置列表窗口。因此,如果您使用:lgrep
之类的内容并未将任何结果标记为错误,那么一旦您离开位置列表窗口,位置列表窗口将关闭,例如,比如使用<cr>
跳转到某个位置。
Syntastic提供了一种通过g:syntastic_auto_loc_list
变量调整此方法的方法。将其设置为0
将禁用自动关闭功能。
在vimrc
文件中设置以下内容:
let g:syntastic_auto_loc_list = 0
要详细了解此变量,请参阅::h 'syntastic_auto_loc_list'
。
测试你的vimrc
或插件是否导致问题的最简单方法通常是将功能与vanilla vim配置(或至少更多的vanilla)进行比较。通过在没有vimrc的情况下启动Vim来完成此操作。我使用以下调用:
vim -N -u NONE
一旦你以这种方式启动Vim,你可以测试你的bug并查看它是否存在。
:h :help
,:h :helpgrep
和:h bug-reports
vimrc
或插件中的某些内容而发生错误。这通常意味着您需要禁用部分vimrc /插件来尝试查找罪魁祸首。一种快速的方法是使用二进制搜索。:verbose
通过使用:verbose
查看上次设置的位置,通常可以更容易地直接追踪错误。 (见:h :verbose
)
:verbose nmap <leader>foo
。请参阅:h :map-verbose
和:h map-listing
。:verbose set shiftwidth
。请参阅:h :set-verbose
。:verbose autocmd BufEnter
。请参阅:h :autocmd-verbose
和:h autocmd-list
。'verbosefile'
另一种调试方法是使用'verbose'
/ :verbose
和'verbosefile'
来有效记录Vim正在做的事情。
使用:verbose
和'verbosefile'
调试错误的示例。
:lgrep
命令:lopen
'verbosefile'
:set verbosefile=~/verbose.txt
:15verbose normal <c-v><cr>
:sp ~/verbose.txt
close
或lclose
autocmd
或功能。autocmd
希望修改它。:scriptnames
以找出与脚本本地函数关联的文件。请参阅:scriptnames
和:h <SID>
。我发现使用Tim Pope scriptease.vim通过提供:Verbose
命令为您设置'verbosefile'
以及之后在预览中打开它,可以简化此过程窗口。 Scriptease还通过:scriptnames
在:Scriptnames
周围提供了一个很好的包装器。通常,scriptease.vim提供了许多有用的方法来调试和重新加载插件。
:h 'syntastic_auto_loc_list'
:h syntastic
:h -u
:h -N
:h :help
:h :helpgrep
:h bug-reports
:h :map
:h map-listing
:h :set
:h set-option
:h :set-verbose
:h :autocmd-verbose
:h autocmd-list
:h 'verbose'
:h :verbose
:h 'verbosefile'
:h :scriptnames
:h <SID>
:h :normal
:h c_CTRL-V
答案 1 :(得分:0)
使用:cw获取quickfix窗口。它将显示为水平拆分到当前窗口。 和:ccl返回选择的结果