vimに.gitignoreファイルを読み取らせ、それらを使用して、ファイル名を自動入力するときに表示しないオプションを決定する方法があるかどうか疑問に思いました。
たとえば、Pythonで作業している場合、編集用に提供される.pycファイルを表示したくありません。vimには独自のメカニズムがあると思いますが、.gitignoreから情報をロードする方法を考えていました。
@dwc で提案されているように、vim スクリプトは次のとおりです。
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
そのソースを取得して、プラグイン ディレクトリのファイルに配置します~/.vim/plugin/gitignore.vim
。ファイルを読み取って.gitignore
解析し、その形式を に適した形式に変換してから、wildignore
そのオプションを設定します。
制限事項:
.gitignore
これにより、vim を起動したディレクトリからファイルが読み込まれます。.gitignore
他のファイルを探して解析する努力は行われません。または、最初の行でファイルへの絶対パスを指定することもできます。wildignore
するという概念をサポートしていません。つまり、 .html 以外のすべての html ファイルを無視するとは言えません。したがって、! で始まる行は 単に無視されます。.gitignore
:set wildignore=*.html,!foo.html
foo.html
.gitignore
Vimはオプションで指定されたファイルパターンを無視するので、次のように設定できます。 wildignore
:set wildignore=*.o,*~,*.pyc
または、同じ行( ":"なし)を〜/.vimrcファイルに配置します。現在のディレクトリの.gitignoreに調整するなど、より動的なものが必要な場合は、スクリプトを実行する必要がありますが、それは他の人の演習として残しておきます。