Git 已加载egg.el,但未启用egg次要模式(无“C-x v”键绑定)

Git 已加载egg.el,但未启用egg次要模式(无“C-x v”键绑定),git,emacs,Git,Emacs,所有“M-x egg-”命令都正常工作 M-x egg-start-new-branch start new branch with name: xxx 但是所有的“C-xv”键绑定仍然绑定到“vc-”命令 (我希望C-x v b与蛋结合,开始新的分支) 除了做鸡蛋,我还需要做别的事情吗 附加信息 “描述变量:egg次要模式” “M-x描述次要模式”->蛋形次要模式 "no such minor mode" 您可以为egg执行M-x自定义组,并检查egg模式键前缀的值吗?必须将其设

所有“M-x egg-”命令都正常工作

M-x egg-start-new-branch
   start new branch with name: xxx
但是所有的“C-xv”键绑定仍然绑定到“vc-”命令 (我希望C-x v b与蛋结合,开始新的分支)

除了做鸡蛋,我还需要做别的事情吗


附加信息

“描述变量:egg次要模式”

“M-x描述次要模式”->蛋形次要模式

 "no such minor mode"

您可以为egg执行
M-x自定义组
,并检查
egg模式键前缀的值吗?必须将其设置为
“C-x v”
,才能正常工作;如果您在任何地方(可能在.emacs?)更改了它,则密钥绑定将无法正常工作。

我不熟悉
egg
。也许您必须处于某种模式(例如,
egg-minor模式
),才能激活预期的键绑定

如果您觉得/知道您处于正确的模式,并且该模式的键绑定似乎没有包含您期望的内容,那么您可以通过这样做来仔细查看:加载库,并使用C-h M-k查看您感兴趣的每个键映射的绑定。另见

另一个想法当然是看一下egg源代码,看看发生了什么。Emacs调试器是您的朋友:
M-x调试on entry-SOME-FUNCTION

听着,除非这里的其他人对你有一些特定的鸡蛋知识的帮助(对不起,我没有),否则你最好的办法就是四处翻找,看看到底发生了什么

(稍后)事实上,我现在看到你在主题行中提到了模式,你自己。因此,请尝试以下操作,加载文件,然后打开次要模式:

(require 'egg)
(egg-minor-mode 1)

我以前没有使用过egg模式,但为了调试,我尝试了这个。我通过检查git存储库安装了egg.el

git clone git://github.com/byplayer/egg.git
之后,我启动了emacs,发布了
M-x加载文件
,并给出了路径
t/egg/egg.el
,加载成功。在那之后,我打开了文件夹
C-xc-f
中的一个文件,然后是
t/egg/egg.el
。加载文件后,Emacs立即自动进入主模式Emacs Lisp和次模式egg。而
C-xv
直接在状态栏中显示:
Egg:file:
。因此,一切似乎都是开箱即用

打开文件以自动测试次要模式时,是否确实打开了使用git签入的文件,其中文件夹/路径中有一个.git文件夹


除非对.emacs和安装有更多了解,否则我无法进一步调试,但我无法再现您的错误。

有点晚了,但我遇到了同样的问题。 您在评论中提到您正在使用Git1.7。问题是,egg需要1.6版本才能工作,它实际上会检查您是否正在使用该版本。您可以看到,当字符串不匹配时,
表单的主体不会被执行;但这正是关键地图设置的地方


因此,如果你想冒险,你可以用
1.
1.7.
替换
1.6.
(但是当你将git升级到1.8时,你必须记住要更改它),然后egg模式将加载fine、keymap和所有内容。但是,使用风险自负;我不知道1.7版引入了什么变化,egg可能会做一些意想不到的事情。

C-h w egg start new branch
是否告诉您一个不同的绑定?@philis:我得到“egg start new branch不在任何键上”@tikhon:C-h v(描述变量)egg模式键前缀返回“其值为”C-x v”“@jd:variable
egg mode key prefix
具有该值或任何值,这一事实并不能说明您是否处于使用该变量的模式。当您尝试使用
C-xv
时,您是否处于
egg-minor模式
。确保(require'egg)和(egg minor mode 1)在my.emacs中。同时加载帮助fns+。重新启动emacs并打开git控制下的python文件。做了一个“描述变量:egg次要模式”并返回“egg次要模式是在`egg.el'中定义的变量。它的值是t”。到目前为止,一切看起来都不错。但是请注意,如果我使用“C-HM”来列出文件的模式,它将显示python模式和几个次要模式;德鲁:(第二部分):同样,如果我做一个“M-x描述次要模式”,然后我输入,例如,自动完成模式,它会描述它;但如果我尝试鸡蛋小调模式,我会得到“没有这样的小调模式”。因此,变量egg次要模式似乎为“真”,但该模式未真正启用?使用help fns+,如果我使用“M-x描述键映射-次要模式映射”,则会列出所有预期的键映射,但这些键映射是未启用的,我猜是因为次要模式尚未启动。在这种情况下,听起来像
(次要模式1)
不是打开模式的方法,这意味着它不符合正常惯例。您需要查看定义模式的源文件。但首先尝试手动打开
M-x egg次要模式
。如果完成后一切正常,则执行
C-h f egg次要模式
,然后单击链接lea检查其文档字符串并查看代码,以确定如何使用Lisp打开它。(是的,您不能总是通过变量的值来判断模式是否打开/关闭。)另外,如果
egg-minor-mode
不是全局minor-mode,那么您需要在相同的缓冲区中使用它作为打开它的位置。如果您在init文件中打开它,您需要确保在您想要的缓冲区中打开它。
(使用当前缓冲区(获取缓冲区创建“foo”)(egg-minor-mode 1))
。快速查看代码给我的印象是,您只需在希望启用该模式的缓冲区(例如文件)中执行
M-x egg次要模式
。尝试一下。此外,显然您需要GIT版本1.6(否则它什么也不做),然后刚好
C-x C-f
应使用
egg-minor模式
(require 'egg)
(egg-minor-mode 1)
git clone git://github.com/byplayer/egg.git