14

vimに.gitignoreファイルを読み取らせ、それらを使用して、ファイル名を自動入力するときに表示しないオプションを決定する方法があるかどうか疑問に思いました。

たとえば、Pythonで作業している場合、編集用に提供される.pycファイルを表示したくありません。vimには独自のメカニズムがあると思いますが、.gitignoreから情報をロードする方法を考えていました。

4

3 に答える 3

22

@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他のファイルを探して解析する努力は行われません。または、最初の行でファイルへの絶対パスを指定することもできます。
  • vimのオプションは、ファイルでできるように無視を否定wildignoreするという概念をサポートしていません。つまり、 .html 以外のすべての html ファイルを無視するとは言えません。したがって、! で始まる行は 単に無視されます。.gitignore:set wildignore=*.html,!foo.htmlfoo.html.gitignore
于 2009-02-24T14:05:26.747 に答える
20

Vimはオプションで指定されたファイルパターンを無視するので、次のように設定できます。 wildignore

:set wildignore=*.o,*~,*.pyc

または、同じ行( ":"なし)を〜/.vimrcファイルに配置します。現在のディレクトリの.gitignoreに調整するなど、より動的なものが必要な場合は、スクリプトを実行する必要がありますが、それは他の人の演習として残しておきます。

于 2009-02-23T23:45:39.793 に答える