sh:PWDをインタラクティブに編集するコマンドはありますか?

sh:PWDをインタラクティブに編集するコマンドはありますか?

ユーザーが現在のディレクトリを編集してから値を編集できるようにするreadlinecurrentで始まる呼び出しまたは類似のコマンドを探しています。例えば$PWDcd

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

次に、提案されたicdコマンド(「interactive 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+Ccdを押してファジー選択を含むディレクトリに入ります。

icdfzfの代わりに提案したツールを使用することもできます。

POSIX互換の方法で実行できるとは思いません。

関連情報