终端使用 emacs 支持 company-search-map 定义的 <up> 和 <down> 按键

在终端下使用 emacs company 插件进行补全时,调用 company-filter-candidates 函数可以进行搜索,即开启了 company-search-mode,但此时却无法使用 按键进行选择。 image

查看了 company 源码,原因在于定义 company-search-map 变量时,将 ASCII 码 27 (十进制,即 ESC)定义为 company-search-other-char。而终端下 up 按键通常被转义为 \E[A\EOA 等序列,所以导致 up/down 等按键无法使用。

解决方案为: (define-key company-search-map (make-string 1 27) nil)