Git 在Emacs目录中识别VC下的文件

Git 在Emacs目录中识别VC下的文件,git,svn,emacs,version-control,Git,Svn,Emacs,Version Control,使用包含以下内容的.emacs: (global-font-lock-mode t) (setq font-lock-maximum-decoration t) 我可以轻松地从目录中识别文件(无需查看“d”标志) 我想识别在版本控制下的文件和不在版本控制下的文件 在花了相当长的时间研究SVN和git Emacs模式之后,我得出结论(可能是匆忙的),它们还没有准备好进入黄金时段,或者至少基本的事情仍然需要从命令行完成(因此从命令行做任何事情都比较容易),但这一点特别令人讨厌 你能推荐一种轻量级的

使用包含以下内容的
.emacs

(global-font-lock-mode t)
(setq font-lock-maximum-decoration t)
我可以轻松地从目录中识别文件(无需查看“d”标志)

我想识别在版本控制下的文件和不在版本控制下的文件

在花了相当长的时间研究SVN和git Emacs模式之后,我得出结论(可能是匆忙的),它们还没有准备好进入黄金时段,或者至少基本的事情仍然需要从命令行完成(因此从命令行做任何事情都比较容易),但这一点特别令人讨厌

你能推荐一种轻量级的方法来区分VC下的文件吗?
(或者,如果不是轻量级的,提供一个合适的
.emacs
config?

我认为
diff-hl
包可能就是您想要的。它不仅标记已更改的文件,还标记不受VC控制的文件(在VC控制的目录中)

照常安装(
M-x软件包安装RET diff hl
),然后在初始化文件中:

(global-diff-hl-mode)     ; enables diff-hl for all buffers
(diff-hl-flydiff-mode)    ; diff-hl marks changes on the fly
(add-hook 'dired-mode-hook 'diff-hl-dired-mode)  ; adds diff-hl for dired mode
您还需要启用“边缘模式”,以使其正常工作,但我认为Emacs是预装的。您可以使用菜单
选项
显示/隐藏
条纹
检查条纹是否设置为非无


哦,说到VC(至少是Git)支持,我觉得
magit
令人满意。它对于我的需要来说太复杂了(我仍然没有弄清楚如何克隆或初始化repo,所以我使用dired并在
-current dir上执行git init或clone),但它是可以实现的,并且可以完成它的工作。

我想这个问题不是关于dired+,对于vanilla dired,也就是
emacs-Q
,你有同样的问题。如果Dired+与此无关,您可以简化描述以不引入库Dired+。@Drew您是对的。Dired足以区分文件和目录,因此对于VC标志也可能足够了。我无法跟上dired、dired+和dired-x之间的差异。我的印象是,dired已经逐渐成长为可以与dired-x和dired+竞争并取代它们。是这样吗?我想这应该是另一个问题。评论不是一个好地方。香草Emacs很久(总是?)就有dired.el、dired-x.el和dired-aux.el。库dired+.el不随Emacs发布。太棒了
diff-hl
完全符合我的要求,还有更多。它以静默和动态的方式显示已添加的代码段和删除行的位置。一旦我看到手册(它没有添加到
C-hi
,因此我可能必须仔细查看源代码),我将确定是否有方法,比如,将鼠标悬停在已删除的行上,以查看删除或修改了哪些内容。