我在OSX上有一个带有Emacs 24.3的JEDI的工作版本。自动填充功能非常好,除了我想评论的事情时!我经常评论/取消注释部分代码,并希望有一种方法可以防止JEDI在输入#时自动完成。任何意见或想法将不胜感激!emacs Jedi禁用#
编辑:当我去注释多行时,我通常会在#后面输入DownArrow和LeftArrow,但通常在JEDI启用时发生的是弹出此对话框,以防止我移动到下一行,直到我做出选择:
我在OSX上有一个带有Emacs 24.3的JEDI的工作版本。自动填充功能非常好,除了我想评论的事情时!我经常评论/取消注释部分代码,并希望有一种方法可以防止JEDI在输入#时自动完成。任何意见或想法将不胜感激!emacs Jedi禁用#
编辑:当我去注释多行时,我通常会在#后面输入DownArrow和LeftArrow,但通常在JEDI启用时发生的是弹出此对话框,以防止我移动到下一行,直到我做出选择:
解决此问题的一种方法是选择要注释的行(区域)并点击M-;。这个命令运行命令comment-dwim
,它将注释掉所选区域(或者取消注释,如果它现在被注释掉)。
当与例如mark-lines
它允许你用一个关键笔划选择当前行,这使得你的代码部分非常快速地(非)注释,即使它们只跨越一行或两行。
你可以尝试使用company-jedi来完成你的python。这个软件包没有这个问题。
emacs-jedi dev here。如果emacs-jedi按照你的描述工作,那么这就是一个bug。
但我不能说有限的信息我有什么不对。所以,只要总体方向:
首先,总是尝试重现在干净的Emacs设置的不当行为,这里所描述http://tkf.github.io/emacs-jedi/latest/#quick-try
这可以帮助您了解您的设置是错误的,或者如果它实际上是emacs-jedi中的一个错误。
给出M-x jedi:show-version-info
的输出。 http://tkf.github.io/emacs-jedi/latest/#jedi:show-version-info
这有助于人们诊断问题。
这是从你的截图猜测,但似乎你有老版本的popup.el。因此,如果您同时安装它们,auto-complete.el可能会是旧的。如果您在安装最新库的干净Emacs(步骤1,我上面提到)中看不到问题,则更新它们可以解决问题。
更新
于是,我找到了一种方法来重现这是接近你所提到的行为:https://github.com/tkf/emacs-jedi/issues/147
但正如我在这个问题写的,我认为这是一个罕见的情况。如果您发现可能频繁发生的案件,请告诉我。
我在注释中没有得到自动完成,变量'ac-disable-faces'的值是什么?只要执行'C-h v'ac-disable-faces'RET' emacs就会弹出一个带有变量值的帮助缓冲区。 – 2014-03-19 13:27:41
我对之前的评论表示歉意,我禁用了JEDI,因此我无法获取返回的值。结果如下: ac-disable-faces是一个在'auto-complete.el'中定义的变量。 其值为(font-lock-comment-face font-lock-string-face font-lock-doc-face) 文档: 非零表示禁用指定面上的自动完成。 您可以自定义此变量。 [返回] – Robert
我刚刚更新了jedi,并观察了您所报告的行为。这似乎是由于最近的一些变化而引入的错误。这应该报告给emacs-jedi开发人员 – 2014-03-19 16:03:35