在Windows上的emacs中使用“git add -p”的最佳方法是什么?

问题:

  1. git add -pemacs shelleshell似乎不可用
  2. magit (一个经常被提议的在emacs中使用git的替代方法)在Windows上吸球(速度非常慢)。
  3. 保持一个cygwin窗口打开并使用git add -p ,然后在emacs和emacs之间来回切换是可行的,但不止一点恼人。

有没有什么办法,在Microsoft Windows下,我可以让git add -p在shell或eshell中运行良好,或者可以让magit有点magit

如果magit很慢,那可能表明你的windows git客户端有问题?

我会首先考虑这个问题(因为git add -p真的不会对magit的接口IMO有任何帮助)。

你正在使用的确切工具(及其版本)是什么?

你一定要检查magit问题追踪器,看看是否有已知的原因为什么magit可能会很慢。

你有没有尝试过:

 % EDITOR=emacsclient git add -e <files> 

然后在运行的emacs中使用diff-mode命令交互编辑补丁的区块?

然后你将能够在任何特定的行中使用diff-split-hunk将块diff-split-hunk并且完全用diff-hunk-kill去除块(当然这些命令绑定到较短的键序列以便快速交互使用)。 编辑修补程序后,使用Cx #将其保存并退出emacsclient会话(以便您可以返回到shell)。

(emacsclient,如果你不熟悉的话,是一个程序,它可以让你在已经运行的emacs中打开文件,只要后者启动了emacsclient服务器来连接;参见Mx describe-function server-start

请注意,您可能想要定制emacsclient与git的交互方式; 例如,请参阅以下答案: 使用ediff作为git mergetool以及如何设置emacsclient的退出状态 。