我正在寻找一个调用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 转置b
和c
)
按 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 的方式完成。