As suggested by @dwc, here's a vim script:
let filename = '.gitignore'
if filereadable(filename)
let igstring = ''
for oline in readfile(filename)
let line = substitute(oline, '\s|\n|\r', '', "g")
if line =~ '^#' | con | endif
if line == '' | con | endif
if line =~ '^!' | con | endif
if line =~ '/$' | let igstring .= "," . line . "*" | con | endif
let igstring .= "," . line
endfor
let execstring = "set wildignore=".substitute(igstring, '^,', '', "g")
execute execstring
endif
Take that source and put it in a file in your plugin directory, such as ~/.vim/plugin/gitignore.vim
. It will read your .gitignore
file and parse it, transforming its format into one suitable for wildignore
, and then set that option.
Limitations:
- This will read the
.gitignore
file from the directory where you launch vim. No effort is made to look for other .gitignore
files and parse them. Alternatively, you could specify an absolute path to a file on the first line.
- The
wildignore
option in vim doesn't support the notion of negating ignores like you can in a .gitignore
file. That is, you can't say :set wildignore=*.html,!foo.html
to have it ignore all html files except foo.html
. Therefore, .gitignore
lines that start with ! are simply ignored.