Если поиск в каталоге длинного пути, например 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() {
Почему я искать с путем каталога, определенным вместо 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