首页 > 解决方案 > 如何根据需要附加完成字符。红宝石阅读线

问题描述

使用 Ruby Readline 模块,我们可以使用选项卡进行一些 auto_completion。设置非常简单,获取目录。

Readline.completion_proc = proc do |input|
  Readline.completion_append_character = '/' 
  Dir[input+'*'].grep(/^#{Regexp.escape(input)}/)
end

这对于目录非常有用,因为在每个选项卡完成的末尾,我们需要一个新的 / 来启动下一个目录。如果我们试图打开一个文件怎么办。在 /mydir/file.txt/ 末尾有 / 是行不通的,你会收到投诉。

我不确定如何使用正则表达式来获取任何文件扩展名然后附加一个空格。我尝试过处理一些文件,但如果文件有很多“。” 它最终给出了误报。如果文件夹包含“.” 以名义,这也将其扔掉。

标签: rubyreadline

解决方案


推荐阅读