我在GNU Emacs 24.3.1中使用cx4a.org的自动完成模式,以及以下选项:
(setq ac-ignore-case nil)
(define-key ac-completing-map "\r" nil)
(setq ac-auto-start 2)
当我在一行的末尾键入前缀,并希望向下移动一行(按向下箭头键),而不是移动光标时,会弹出自动完成菜单。例如(在Python中)
def passing():
print("passing")
def passed():
print("passed")
# insert new function here
def willpass():
print("will pass")
当我在评论位置插入一个虚拟函数(刚刚通过)时,在输入pass
之后,我按下向下箭头键(想要向下移动一行),而是弹出菜单选项“通过,通过,传递”。
如何在此用法示例中阻止此菜单弹出?我尝试将ac-mode-map和ac-menu-map中的<up>
和<down>
重新映射为nil,但没有效果。
注意:按C-n而不是按下不会打开菜单,但感觉不自然。重新绑定到(下一行)什么也没做。
此外,我可以通过将ac-delay
设置为1并将触发器键设置为Tab来回避此问题,但这组选项还有其他缺点导致我恢复到第一组选项。 / p>
答案 0 :(得分:5)
使用此:
(define-key ac-completing-map [down] nil)
(define-key ac-completing-map [up] nil)
实际上大多数人更喜欢 C-n 到 down 。 你换了Ctrl和Caps吗?