Vim 根据ag结果中的相对目录缩减目录
如果使用ag搜索长路径目录,如Vim 根据ag结果中的相对目录缩减目录,vim,ag,Vim,Ag,如果使用ag搜索长路径目录,如a/long/long/long/path/to/project/,结果列表将包含长路径。是否有办法在结果列表中获得项目路径 ag测试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() { 预期: tes
a/long/long/long/path/to/project/
,结果列表将包含长路径。是否有办法在结果列表中获得项目路径
ag测试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() {
为什么我用指定的目录路径而不是cd
进行搜索?我使用ag在vim中执行项目范围的搜索:找到项目路径并将其传递给vim命令,vim命令将使用ag
搜索给定路径
解决方案
注:我使用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()
函数!VimGrepperConfig()
功能!s:ag_at_project_root(关键字)
设root=s:find_root()
如果!空(根)
执行'cd'根目录
执行'GrepperAg'a:关键字
执行'cd-'
其他的
执行'GrepperAg'a:关键字
恩迪夫
端功能
命令-nargs=1 AgAtProjectRoot调用s:ag\u在项目根(“”)
“ag搜索
否/:AgAtProjectRoot
端功能
调用VimGrepperConfig()
如果ag
在quickfix窗口中生成其结果,您可以在quickfix窗口中执行:cd{path}
以更新显示的路径。您可能需要:cclose
和:copen
qf窗口来查看简化操作
当我的
&makeprg
包含(cd-build/path&&make-target)
等内容时,我经常在:make
之后制作如果ag
在快速修复窗口中生成结果,则可以制作:cd{path}
在快速修复窗口中更新显示的路径。您可能需要:cclose
和:copen
qf窗口才能查看简化操作
当我的&makeprg
包含(cd build/path&&make target)之类的内容时,我经常在之后制作cd.
:make
但是我的解决方案会邀请一个新问题。我在搜索后切换回上一个pwd
,现在如果我从quickfix列表打开文件,它将在当前pwd
创建一个新文件,而不是在project中打开文件。啊……但是我的解决方案会邀请一个新问题。我在搜索后切换回上一个pwd
,现在如果我从q打开文件uickfix列表,它将在当前pwd
创建一个新文件,而不是在project中打开文件。啊。。。