「チルダの略語」(たとえば、ディレクトリリストの2番目の項目を参照)を使用して参照できるように、ディレクトリスタックにディレクトリをプッシュしたいのですが、~1
実際にはそのディレクトリに切り替えたくありません。 Bashでは、-n
フラグを使用してこれを行うようですpushd
。
zshでこれに対応するものは何ですか?
答え1
編集できますdirstack
変える
function insertd {
emulate -L zsh
typeset -i n=0
while [[ $1 == [+-]<-> ]]; do
n=$1
shift
done
if (($# != 1)); then
echo 1>&2 "Usage: insertd [+N|-N] DIR"
return 3
fi
dirstack=($dirstack[1,$n] $1 $dirstack[$n,-1])
}
この動作をそれ自体に追加するには、関数にすることがpushd
できます。
function pushd {
if [[ $1 == -n ]]; then
shift
insertd "$@"
else
builtin pushd "$@"
fi
}
-n
この単純なバージョンはbashのように他のオプションとの組み合わせを処理しません。
あなたもできます。変数の編集まっすぐ。
vared dirstack
答え2
いつでも押し込み、交換できます。
例えば、pushd -q ~/Downloads; pushd