当CSCOPE查询包含多个查询结果时,VIM默认使用一个一次性列表将结果显示。当选中某个结果查看代码后,这个列表将会被自动关闭。如果要从中选取几个位置仔细查看,需要多次查询。这样工作效率不高。
VIM 7.0以上的版本提供使用quickfix窗口保存cscope查询结果的功能。如果要使用此功能,需要在$HOME/.vimrc或其他VIM配置文件中增加:
set cscopequickfix=c-,d-,e-,g-,i-,s-,t-
为方便使用,可以定义一些快捷键:
nmap <C-n> :cnext<CR>
nmap <C-p> :cprev<CR>
重新启动VIM后,当使用Ctrl-]或者Ctrl-/ s等查询某个tag时,所有的结果将保存在quickfix窗口中。
使用Ctrl-n、Ctrl-p可以在同一个窗口中的不同结果之间跳跃。
需要注意的是,当使用quickfix窗口后,原先的tag stack和Ctrl-t键会失效。为弥补这不足,可以将Ctrl-t重新地定义:
nmap <C-t> :colder<CR>:cc<CR>
这样,使用Ctrl-t,依然可以达到pop tag stack的效果。