【问题标题】:Prevent arrow keys from opening autocomplete menu防止箭头键打开自动完成菜单
【发布时间】:2014-03-31 05:02:24
【问题描述】:

我在 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 而不是 Down 不会打开菜单,但感觉不自然。并且重新绑定 Down to (next-line) 什么也没做。

另外,我可以通过将ac-delay 设置为 1 并将触发键设置为 Tab 来回避这个问题,但是这组选项还有其他缺点,导致我回到第一组选项。

【问题讨论】:

    标签: emacs autocomplete


    【解决方案1】:

    使用这个:

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

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

    【讨论】:

    • 谢谢!它只是碰巧是我没有尝试过的一张地图:(我没有交换 Ctrl 和 Caps,我想我会使用 Tab 来向下移动菜单。
    猜你喜欢
    • 1970-01-01
    • 2012-05-13
    • 2015-06-09
    • 2011-03-13
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2022-12-23
    • 2021-07-01
    相关资源
    最近更新 更多