Is there a NERDTree or other project plugin for vim that integrates with git to show the status of files?

后端 未结 4 1725
悲&欢浪女
悲&欢浪女 2021-02-19 03:54

I played with Aptana Studio for a while before moving over to VIM, and the only thing I really miss about Aptana Studio is the way that in their project view window your file na

相关标签:
4条回答
  • 2021-02-19 03:57

    I guess you would like this https://github.com/Xuyuanp/git-nerdtree

    It's my forked NERDTree.

    Add git status support for NERDTree.You can indicate a file's git status, quickly see which files you have staged, unstaged and modified, or deleted in your project without any extra work.

    Indicator

    • ✭ : Untracked
    • ✹ : Modified in the working tree
    • ✚ : Staged in the index (Exclude Renamed status)
    • ➜ : Renamed
    • ═ : Unmerged
    • ✖ : Deleted (This indicator can't be shown, as NERDTree doesn't display deleted files. I have no prefect idea to solve this problem currently.)
    • ✗ : Dirty (Only for directory)
    • ✔︎ : Clean (Only for directory)

    Key mapping

    As the same as GitGutter plugin default.

    • ]c : Jump to next indicator
    • [c : Jump to prev indicator
    0 讨论(0)
  • 2021-02-19 04:05

    For future reference, I created a fork of NERDTree that does exactly that, it can be found at https://github.com/SeySayux/NerdTreeGit .

    Please note it's still in development, so it may break. It also contains a few oddities for which there aren't configurable options yet.

    UPDATE: The project linked above is discontinued. For a (much better) alternative, try this: https://github.com/Xuyuanp/nerdtree-git-plugin

    0 讨论(0)
  • 2021-02-19 04:13

    I use the git.vim plugin that provides several git functionalities like add/commit/diff/log, etc. So from within vim, I've mapped <Leader>gs to GitStatus, which opens a new viewport and displays the status neatly:

    enter image description here

    But my favorite feature of this plugin is the GitBranch() function with which you can add the current branch to your status line, as I have outlined in a previous answer of mine.

    Along the same lines, it should be possible to write a function that calls GitStatus and greps the output and reports whether there are staged changes or unstaged changes present in the repo, which can then be conveniently added to the statusline.

    0 讨论(0)
  • 2021-02-19 04:20

    Have you looked at fugitive.vim? It doesn't do exactly what you're looking for in terms of color-coding NERDTree based on git status -- I'm not aware of any Vim plugin that does, though it would be awesome. It does function as a pretty great little Git wrapper, and allows you to quickly view your project's status in a split window with :Gstatus. No need to go to the terminal. You can even add a branch indicator for the current file to Vim's status line.

    You can watch the first in a five-part screencast on fugitive.vim here.

    0 讨论(0)
提交回复
热议问题