如何解释Emacs Magit帮助屏幕?

3

我开始学习使用Emacs的magit包,整合得很好。但是我非常困惑如何获得有关它的帮助。

我创建了一个临时存储库,并向其中添加了一个名为test.org的文件,然后运行了命令magit-status。然后我按下?键以获取帮助。我认为这意味着它会在magit状态屏幕内显示对我可用的命令。该屏幕如下所示:

screenshot

底部是可用的magit操作。请注意它如何说s: Show Status。但是s并不是那样做的。它会暂存一个文件。而且没有u键,但它会取消暂存一个文件。

我是否误读了这一点,还是我正在调用错误的帮助屏幕,或者其他原因?


你的大写锁定键是否被意外按下了——大写字母 SStage All 吗?请参见第 1622 行:https://github.com/magit/magit/blob/master/magit.el - lawlist
不是大写锁定。我已经检查过了。 - user1002430
也许在帮助屏幕期间,magit-status-mode-map 是活动的 -- 按小写字母s会触发上面链接源代码中第1644行的magit-stage-item。如果是这种情况,那么这听起来像是一个错误...该库非常受欢迎,另一个论坛参与者很快就会有答案。将第1644行从小写s更改为大写S可能会解决问题,然后重新编译并重新启动Emacs。 - lawlist
我稍微搞错了。我按了 ? 键而不是 h 键。? 键绑定到 magit-key-mode-popup-dispatch,而 h 键绑定到 magit-key-mode-popup-diff-options。我不确定这是否有区别,但即使在 h 键帮助屏幕中也没有描述“stage”和“unstage”。 - user1002430
1
我不确定为什么会发生这种情况,但是当打开帮助界面时,按下s键似乎确实会执行“查看状态”命令(即magit-status),而不是“暂存”命令。 - legoscia
1个回答

2
magit提供了一种与基于键盘的输入相适应的上下文菜单形式。因此,按键绑定取决于您所在的菜单。有些反直觉的是,?不会打开特定于模式的帮助(像往常一样使用C-h m)。?通过调用magit-key-mode-popup-dispatch打开顶层上下文菜单。当在此菜单中时,可用的按键绑定与调用magit-status时不同。在状态模式下,su被绑定到magit-stage-itemmagit-unstage-item。由于它们作用于指定位置的项目,因此在其中一个上下文菜单中绑定键到它们是没有意义的。考虑到这一点,在通过?启动的上下文菜单中将s绑定到"Show Status"非常自然。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接