如何在NERDTree中区分git忽略的文件和目录

问题描述 投票:1回答:1

我希望NERDTree以浅色显示Git忽略的文件和目录(即变暗),以区别于跟踪的文件和目录。如何才能做到这一点?

谢谢。

git vim nerdtree
1个回答
1
投票

修改自nerdtree-git-plugin,此片段将自动突出显示被忽略的文件使用Commment为新版本NERDTree没有|-相似的前缀(导致同步匹配失败?)。

function! GitDimIgnoredFiles()
    let gitcmd = 'git -c color.status=false status -s --ignored'
    if exists('b:NERDTree')
        let root = b:NERDTree.root.path.str()
    else
        let root = './'
    endif
    let files = split(system(gitcmd.' '.root), '\n')

    call GitFindIgnoredFiles(files)
endfunction

function! GitFindIgnoredFiles(files)
    for file in a:files
        let pre = file[0:1]
        if pre == '!!'
            let ignored = split(file[3:], '/')[-1]
            exec 'syn match Comment #\<'.escape(ignored, '~').'\(\.\)\@!\># containedin=NERDTreeFile'
        endif
    endfor
endfunction

autocmd FileType nerdtree       :call GitDimIgnoredFiles()
© www.soinside.com 2019 - 2024. All rights reserved.