0
如果使用ag搜索类似a/long/long/long/path/to/project/
的长路径目录,结果列表将包含长路径。有没有办法在结果列表中获取项目路径?从ag结果中删除相对目录下的目录
例结果ag test a/long/long/long/path/to/project/
列表:
a/long/long/long/path/to/project/test.txt: test.....
a/long/long/long/path/to/project/js/test2.js: test: function() {
什么期望:
test.txt: test.....
js/test2.js: test: function() {
为什么我specfied目录路径,而不是cd
和搜索搜索?我使用这种方法在vim中进行项目范围搜索:找到项目路径并将其传递给vim命令,该命令将使用ag
以给定路径进行搜索。
解决方案
PS:我用Plug 'mhinz/vim-grepper
function! VimGrepperConfig()
function! s:ag_at_project_root(keyword)
let root = s:find_root()
if !empty(root)
execute 'cd' root
execute 'GrepperAg' a:keyword
execute 'cd -'
else
execute 'GrepperAg' a:keyword
endif
endfunction
command! -nargs=1 AgAtProjectRoot call s:ag_at_project_root('<args>')
" ag search
no <Leader>/ :AgAtProjectRoot
endfunction
call VimGrepperConfig()
但我的解决办法邀请一个新的问题。我搜索后切换回最后一个'pwd',现在如果我从quickfix列表中打开文件,它将在当前'pwd'创建一个新文件,而不是打开项目中的文件。啊... – tjfdfs