diff --git a/autoload/fzf/vim.vim b/autoload/fzf/vim.vim index a7a128d..fb37c8e 100644 --- a/autoload/fzf/vim.vim +++ b/autoload/fzf/vim.vim @@ -669,11 +669,10 @@ endfunction " Ag / Rg " ------------------------------------------------------------------ function! s:ag_to_qf(line, has_column) - let parts = split(a:line, '[^:]\zs:\ze[^:]') - let text = join(parts[(a:has_column ? 3 : 2):], ':') - let dict = {'filename': &acd ? fnamemodify(parts[0], ':p') : parts[0], 'lnum': parts[1], 'text': text} + let parts = matchlist(a:line, '\(.\{-}\):\(\d\+\)\%(:\(\d\+\)\)\?\%(:\(.*\)\)\?') + let dict = {'filename': &acd ? fnamemodify(parts[1], ':p') : parts[1], 'lnum': parts[2], 'text': parts[4]} if a:has_column - let dict.col = parts[2] + let dict.col = parts[3] endif return dict endfunction