diff options
Diffstat (limited to 'runtime/autoload/netrw_gitignore.vim')
| -rw-r--r-- | runtime/autoload/netrw_gitignore.vim | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/runtime/autoload/netrw_gitignore.vim b/runtime/autoload/netrw_gitignore.vim index 0de902cbb4..da3f50bca0 100644 --- a/runtime/autoload/netrw_gitignore.vim +++ b/runtime/autoload/netrw_gitignore.vim @@ -61,9 +61,16 @@ function! netrw_gitignore#Hide(...) " convert gitignore patterns to Netrw/Vim regex patterns let escaped_lines = [] for line in gitignore_lines - let escaped = line - let escaped = substitute(escaped, '\.', '\\.', 'g') - let escaped = substitute(escaped, '*', '.*', 'g') + let escaped = line + let escaped = substitute(escaped, '\*\*', '*', 'g') + let escaped = substitute(escaped, '\.', '\\.', 'g') + let escaped = substitute(escaped, '\$', '\\$', 'g') + let escaped = substitute(escaped, '*', '.*', 'g') + " correction: dot, dollar and asterisks chars shouldn't be escaped when + " within regex matching groups. + let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\.', '\.', 'g') + let escaped = substitute(escaped, '\(\[[^]]*\)\zs\\\$', '\$', 'g') + let escaped = substitute(escaped, '\(\[[^]]*\)\zs\.\*', '*', 'g') let escaped_lines = add(escaped_lines, escaped) endfor |