能否将Vim cscope新搜索结果追加至现有quickfix窗口?
如何让Vim的cscope搜索结果追加到已有quickfix窗口
当然可以!我之前也怀念Source Insight的这个特性,后来研究了Vim的cscope配置,发现两种很实用的方法:
方法一:临时追加(按需使用)
默认的:cscope find命令会替换当前的quickfix列表,但只要在命令里加上-a参数,就能把新结果追加进去。比如:
:cs find -a s <你要搜索的符号>
这里的-a是append的缩写,执行后新的搜索结果会直接加到已有的quickfix列表末尾,不会新开窗口或者覆盖原有内容。
方法二:永久默认追加(一劳永逸)
如果想让所有cscope搜索都默认追加到quickfix,直接在你的.vimrc里加一行配置:
let g:cscope_quickfix_mode = 1
设置之后,不管是用命令行还是快捷键触发的cscope搜索,结果都会自动追加。要是偶尔需要替换原有列表,也可以临时用-r参数(replace)覆盖默认行为:
:cs find -r s <你要搜索的符号>
优化快捷键(可选)
很多人习惯用快捷键触发cscope搜索,比如默认的<C-\>s搜索当前光标下的符号。你可以修改快捷键映射,把追加逻辑内置进去:
nnoremap <C-\>s :cs find -a s <C-R>=expand("<cword>")<CR><CR>
这样按<C-\>s的时候,就会自动把当前单词的搜索结果追加到quickfix里,和Source Insight的操作逻辑完全一致。
内容的提问来源于stack exchange,提问作者kgflying
相关产品推荐
相关产品推荐

