防止箭头键打开自动完成菜单

时间:2014-02-27 16:12:23

标签: emacs autocomplete

我在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>

1 个答案:

答案 0 :(得分:5)

使用此:

(define-key ac-completing-map [down] nil)
(define-key ac-completing-map [up] nil)

实际上大多数人更喜欢 C-n down 。 你换了Ctrl和Caps吗?