代码之家  ›  专栏  ›  技术社区  ›  Michael Paulukonis

Emacs的ido完成是否有Perl等价物?

  •  2
  • Michael Paulukonis  · 技术社区  · 16 年前

    我已经构建了许多特定于工作的助手函数,这些函数可能对我的团队的其他成员有用&姆达什。但我已经在Emacs的Elisp中编写了它们,要让它们从Notepad++转换是不可能的。

    因此,我正在考虑将函数转换为Perl。没问题。

    除非我一直使用ido完成来限制响应:

      (setq client (ido-completing-read "Select a Client: " '("IniTrade" "HedgeCorp" "GlobalTech" "OCP") nil t))
    

    编辑:完成读取的ido类似于 completing-read

      Select a Client: {IniTrade | HedgeCorp | GlobalTech | OCP}
    

    可以通过点击RET或部分键入(在本例中,第一个字母都是唯一的,因此这就是所需的全部内容,匹配的项目将成为最左侧)在最左侧的项目上进行选择。

    我的“助手函数”是为了满足内部需求——打开特定的错误日志、将批还原到服务器等。对于这些操作,用户需要指定测试或生产环境、客户端、阶段等。在几乎所有情况下,这些都是用于构建另一个shell命令的字符串选择。如果返回一个数字项,则可以将其重新转换为字符串——但由于选择通常是必需的字符串,因此最好跳过该步骤。[结束编辑]

    是否有一个Perl等价物?我看过 Term::Prompt 它提供了一个编号的菜单。。。我找到的最近的。这并不像ido完成那样漂亮,而且我仍然需要将数字结果向后转换为字符串(这不是一个大问题,只是很烦人)。

    Term::Menus. 我还没试过这个。

    1 回复  |  直到 10 年前
        1
  •  2
  •   Joe Casadonte    16 年前

    ReadLine可以做你想要做的事情,尽管它可能更像是“完成阅读”而不是“我完成阅读”。