"물결표 약어"(예: 디렉터리 목록의 두 번째 항목 참조)를 사용하여 참조할 수 있도록 디렉터리 스택에 디렉터리를 푸시하고 싶지만 ~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