【问题标题】:Vi Mode for redis-cliredis-cli 的 Vi 模式
【发布时间】:2013-07-02 08:58:22
【问题描述】:

我在 .inputrc 中有set editing-mode vi,它会影响 Ruby、MySQL 等的控制台。但它不适用于 Redis,我想知道是否有任何方法可以做到这一点(最好是在 OSX 和 Linux 上) .

(这里也提到了。)

【问题讨论】:

    标签: command-line redis vi


    【解决方案1】:

    正如@h2ero 所说,redis-cli 提供了自己的行编辑层,它不使用readline

    尝试使用rlwrap:

    $ rlwrap -a -- redis-cli 
    

    【讨论】:

    • 由于某种原因,它不能单独工作,但后来我安装了 repl (defunkt.io/repl) 并且组合 确实 工作,使用 repl redis-cli。 Redis 的 Vim 绑定已解锁!您能否更新您的答案以提及 repl,我会接受。
    • 另外,我不确定 -a 标志的用途,但它在 OSX (on this system, the getopt() library function doesn't grok optional arguments, so 'redis-cli' is taken as an argument to the -a option) 上导致错误。
    • 这很奇怪 - repl 应该只用于非迭代命令(它把自己包装在 rlwrap 中并创建简单的命令循环,每个输入行都执行 redis-cli),但 redis-cli 没有params 应该以交互模式运行...无论如何,我必须在我的 Arch Linux 机器上的 rlwrap 和 redis 版本(0.37 和 2.6.14)上使用 -a 选项。可以试试:rlwrap -a -- redis-cli
    • 我已经更新了$ rlwrap -a -- redis-cli 的答案,因为它适用于所有版本的getopt 库。
    • 为了不让完成变得乱七八糟,我还需要添加-t dumbrlwrap -a -t dumb redis-cli 效果很好:)
    【解决方案2】:

    我已经下载了redis源代码,发现redis cli它没有使用readline库(readline/readline.h)。所以它不能使用键绑定。

    http://cnswww.cns.cwru.edu/php/chet/readline/readline.html

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 2018-02-20
      • 2018-08-09
      • 2019-05-23
      • 2011-06-04
      相关资源
      最近更新 更多