Ruby / Rails控制台自动完成并从历史记录中向前/向后搜索

时间:2016-08-12 12:09:11

标签: ruby-on-rails ruby

我生活在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?,但它们并没有达到我在这里寻找的精确度。

谢谢!

0 个答案:

没有答案