sh:有没有交互式编辑PWD的命令?

sh:有没有交互式编辑PWD的命令?

我正在寻找一个调用readline或类似的命令,以 current 开头$PWD,让用户编辑当前目录,然后cd编辑值。例如

> cd ~/a/b/c/d
> pwd
> /home/alice/a/b/c/d

然后运行建议的icd命令(“交互式cd”,灵感来自 imv重命名工具)。它提示用户如下:

> icd
icd> /home/alice/a/b/c/d

然后用户可以按 Alt-b、Alt-b、Alt-t,结果是:

icd> /home/alice/a/c/b/d

(Alt-t 转置bc

按 Enter 键后,该icd命令将当前目录更改为/home/alice/a/c/b/d.

理想情况下icd会有一些自动完成功能。甚至可以直观地指示当前值是否是现有/有效目录。

这几乎可以在 zsh 中通过输入来完成

> cd `pwd`

然后按 Tab 键。但像这样的命令icd可以节省击键次数。

有关的:交互式CD(目录浏览器)

答案1

对于bash支持您的任何其他外壳程序,readline您也许可以使用此功能

icd() { local a; read -ei "${1:-$PWD}" -p "$FUNCNAME> " a && cd "$a"; }

用法

icd          # Starts editing with $PWD
icd /root    # Starts editing with /root

答案2

至少在zsh中可以做到。类似的事情还有内置于 fzf,您可以在其中Alt+C按 cd 通过模糊选择进入目录:

人们可能可以使用您建议的icd工具来代替 fzf。

我不相信它可以以符合 POSIX 的方式完成。

相关内容