【问题标题】:Emacs ido-style shellEmacs ido 风格的 shell
【发布时间】:2009-07-11 02:51:56
【问题描述】:

是否有支持 emacs 风格的 ido 查找文件的命令行 shell 或 shell 自定义?在 emacs 中,我可以使用 C-x C-f(ido-mode t) 非常快速地导航到一个目录。

理想情况下,我正在寻找可以在 emacs 之外使用的解决方案。虽然我愿意寻找一种方法来快速更改 eshell 缓冲区中的目录。

【问题讨论】:

  • 我经常希望更多的应用程序表现得像 ido-mode。
  • 为什么要离开 emacs? :) 贝壳?
  • 他说他用的是eshell。我阅读了 ido 源代码,它并没有很好地从 eshell 轻松使用。因此,如果他选择了那条路线,他将需要重构 ido,然后将其绑定到 eshell。
  • 没有直接关系,但是有smex(github.com/nonsequitur/smex/tree/master)用于执行扩展命令(M-x)
  • “在 emacs 之外”?你说的这种疯狂是什么? :)

标签: bash shell emacs eshell ido


【解决方案1】:

因为我也想要这样的东西,所以我尝试将它实现为 bash 补全 功能。显然是这个意思。你必须使用 bash。

它只是轻微测试,所以请随时尝试报告错误/cmets。

http://pgas.freeshell.org/shell/bash-ido

【讨论】:

  • 很棒的工作!有没有想过把它放在 github 之类的东西上?
【解决方案2】:

试试 Z-shell。它比 bash 有更好的完成度。我必须承认我已经有一段时间没有使用它了,并且坚持使用 bash,因为它始终可用。

【讨论】:

    【解决方案3】:

    Bash 有一个名为 CDPATH 的环境变量,它可以包含使用 cd 命令时要搜索的目录列表。另外,请查看 Bash 手册的“可编程完成”和“READLINE”部分。你应该能够拼凑一些对你有用的东西。

    【讨论】:

      【解决方案4】:

      到目前为止,我能想到的最好的方法是 autojump。仍在寻找更接近 ido 的解决方案,但 autojump 是一个很棒的小应用。

      【讨论】:

        【解决方案5】:

        我知道一些终端模拟器支持扩展,例如 rxvt-unicode 可以使用 Perl 脚本进行扩展。我不确定,因为我自己从来没有写过扩展,但也许你想要的可以通过这种方式实现。

        如果您想查看一些 urxvt 的 Perl 脚本,/usr/lib/urxvt/perl 中有一些示例,在 Debian 上默认安装了 urxvt。

        【讨论】:

        • 问题是终端模拟器和shell不知道对方。可以对解析提示进行一些破解,但这是一种破解,很可能会失败。 (考虑 ssh 进入。终端仿真器看到您的本地文件系统,但 shell 看到远程文件系统。让混乱和不正确的结果开始......)
        【解决方案6】:

        如果您想在 eshell 或类似工具中完成 ido,最好编写一个使用 ido 读取目录的函数,然后将 cd 到该目录的命令插入到 shell 缓冲区中。我自己不使用eshell,所以我无法评论如何实际编写这个函数,但这是一个想法。

        【讨论】:

          【解决方案7】:

          fzf,命令行模糊查找器,为bash and zsh 添加了模糊补全。

          根据开发者的说法:

          它是一个交互式 Unix 命令行过滤器,可用于 任何清单;文件、命令历史、进程、主机名、书签、git 提交等。

          这是一个可移植的解决方案(适用于 Linux、Mac、Windows),没有依赖关系。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-02
            • 2010-11-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多