ユーザーが現在のディレクトリを編集してから値を編集できるようにするreadline
currentで始まる呼び出しまたは類似のコマンドを探しています。例えば$PWD
cd
> 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
キーストロークを保存します。
答え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を押してファジー選択を含むディレクトリに入ります。
icd
fzfの代わりに提案したツールを使用することもできます。
POSIX互換の方法で実行できるとは思いません。