运行:Gstatus命令后得到的屏幕



然后将光标移至init.vim文件并按p键,即为当前文件运行git add –patch。 />
现在我有了这个屏幕



如您所见,这是终端中git add patch的常见交互方式。在终端中,我可以按y将当前代码块添加到舞台区域,按n跳过当前代码,依此类推。应该按。我应该按fugitive.vim将当前块添加到舞台吗?还是应该按:w-跳过?

P.S.我正在使用neovim

评论

看看这个视频广播是否有帮助

另外,如果您尝试一下会怎样?

当我在vim(不是nvim)中尝试此操作时,我会启动到完整的终端,然后在完成后将其带回到vim。
@DavidBenKnoble,忘了提及,我在neovim之下,它没有启动到终端

#1 楼

简短答案
只需使用常规的交互式按钮即可。在(常规)vim中,按p可使您进入交互式终端补丁,因此这是您惯用的界面。
对于neovim用户:只需进入插入模式(i),它就可以作为终端,光标移到“暂存此块……”行。 p
如果您已经在使用插件逃犯,我强烈建议您学习如何有效地正确使用它。
:Gstatus窗口中,您可以触发许多命令。

提示:Ctrl + N移至窗口中的下一个文件(前P个)。 g?会弹出其他快捷方式列表。

现在,您可以在任何文件上按D来打开:Gdiff窗口。该窗口将显示磁盘上的文件与git索引中的文件之间的差异。您将片段添加到git索引中(模拟git add --patch),但采用的方式更像“ vim式”。在差异之间

工作副本始终在右侧,索引中的版本始终在左侧。请注意,更新索引(文件的“修补”部分)就像将更改从工作副本拉到索引一样简单。为此,我们有命令:Gdiff]c。哪个运行取决于您所在的位置。


[c(或“差异获取”-do)将另一侧的差异从另一侧拉过来dp(或'diff-put'-do)将附近的差异放在另一侧

结果?在工作副本中,使用:diffget添加要暂存的更改,或使用dp重置更改。 (实际上,您也可以从索引中运行它们,但是对我而言,它不那么直观。)
:diffputdp可与范围配合使用(读取:可视模式),如果您不想一次上演整个差异块。

提示:如果颜色看起来很奇怪,请尝试do

我添加了对索引的更改,现在怎么办?
编写索引文件(例如:diffget)并查看状态窗口更新! Vimcast关于逃犯和git index


逃犯帮助


Vim帮助



评论


我希望neovim可以去终端,对我来说更轻松

–兆
18年1月20日在17:56



@megas是的,我不确定如何处理neovim(在文档中没有提到)。我的其他评论仍然存在-如果您尝试按“常规”按钮(y,n,q),会发生什么? (或适应其他“修补”方式)

– D. Ben Knoble♦
18年1月20日在17:59

终于我找到了答案!只需进入插入模式(i),然后将其用作终端,光标将转到“暂存此块...”行

–兆
18年1月20日在18:06



:diffput和:diffget部分@ D.BenKnoble很有帮助

–klaus
18年5月14日在13:48

我刚学了很多。谢谢@ D.BenKnoble。

–杰西·阿特金森(Jesse Atkinson)
18/12/10在21:49

#2 楼

这是另一种方法,全都在逃犯之内。我相信其中一些是在2019年8月20日发布的3.0中新增的。有人创建了“新功能”。视频,我现在很难找到它。 :Gstatus命令引起了很多注意。

:Gstatus窗口中,可以使用这些子命令。还有很多其他方法,但是它们对我很有帮助。



<C-N><C-P>跳转到下一个/上一个文件(如上所述)

在文件上的-,暂存(或取消暂存)整个文件。

=显示光标所在的文件的git diff

-在视觉上的选择中,对选定的行行进行分段(或取消分段)。我喜欢最后一次机会,它可以让我验证是否已进行了正确的更改,并且有助于通知提交消息。对我来说,这比处理单独的窗口以及-cvc命令要容易。 Vim。