我生活在Ruby和Python世界中,我非常欣赏iPython的一个功能是从输入查询的任何列向上/向下自动完成到控制台。也就是说,它可以找到所有与我放置光标所在位置匹配的历史匹配。
例如,以此为输入,我想点击向上键并使用我运行的最后一个类似命令自动填充:
irb(main):001:0> Order.where(<cursor> # up/down here to view similar history
更好的是,如果我继续按下向上键,我将能够继续循环通过类似的命令,仍然基于我开始的原始光标列。也就是说,我不想得到一个,然后将光标放在最后并找到类似的命令。
如果有帮助,这就是我在bash中为我的个人资料实现的目标,我也想在ruby / rails控制台中实现这一点:
$ cat ~/.inputrc
# this makes the "delete" key work rather than
# just entering a ~
"\e[3~": delete-char
# these allow you to use ctrl+left/right arrow keys
# to jump the cursor over words
"\e[5C": forward-word
"\e[5D": backward-word
# these allow you to start typing a command and
# use the up/down arrow to auto complete from
# commands in your history
"\e[B": history-search-forward
"\e[A": history-search-backward
# this lets you hit tab to auto-complete a file or
# directory name ignoring case
set completion-ignore-case On
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[2~": quoted-insert
我目前在我的~/.irbrc
中有这个,但是这并不能完全实现大于零的列位置的子命令。
require 'irb/ext/save-history'
IRB.conf[:SAVE_HISTORY] = 200
IRB.conf[:HISTORY_FILE] = "/home/me/.irb-history"
是否已经有一种方法可以在Rails / Ruby中执行此操作,或者有没有办法在rails / ruby控制台中实现这一点?我已经阅读了Can I get the Ruby on Rails console to remember my command history, umm, better?和How to view the entire Rails console history?,但它们并没有达到我在这里寻找的精确度。
谢谢!