pushd
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[OSS]]
* pushd 補強 [#kd71beaf]
- .zshrc
-- autoload -Uz pd save_dirs restore_dirs
- プログラム
-- /Users/ogawa/.zsh/functions
- 補強機能
-- save機能
-- pds select 機能:誰かの真似
-- pdr : dirs -v
-- pd : 同じディレクトリを積まない
-- pdu: ユニーク
* コード [#z9c1d445]
/Users/ogawa/.config/zsh/features/dirstack.zsh
/Users/ogawa/.zsh/functions/pd
# pd function (duplicate directory skip)
pd() {
pd_main() {
pushd "$@" > /dev/null || return 1
[[ $# -eq 0 ]] && return 0 # 引数なし
local -a stack
stack=("${(@f)$(builtin dirs -p)}")
local cwd="${stack[1]}"
shift stack # 先頭をpop
# print -l "pd print:"
# typeset -p cwd stack
local iStack=0
for d in "${stack[@]}"; do
if [[ "$d" == "$cwd" ]]; then
popd >/dev/null || return 1
(( iStack == 0 )) && return 0 # カレント...
pushd +$iStack >/dev/null
break
fi
((iStack++))
done
}
pd_main "$@"
local return_code=$?
dirs -v
return $return_code
}
終了行:
[[OSS]]
* pushd 補強 [#kd71beaf]
- .zshrc
-- autoload -Uz pd save_dirs restore_dirs
- プログラム
-- /Users/ogawa/.zsh/functions
- 補強機能
-- save機能
-- pds select 機能:誰かの真似
-- pdr : dirs -v
-- pd : 同じディレクトリを積まない
-- pdu: ユニーク
* コード [#z9c1d445]
/Users/ogawa/.config/zsh/features/dirstack.zsh
/Users/ogawa/.zsh/functions/pd
# pd function (duplicate directory skip)
pd() {
pd_main() {
pushd "$@" > /dev/null || return 1
[[ $# -eq 0 ]] && return 0 # 引数なし
local -a stack
stack=("${(@f)$(builtin dirs -p)}")
local cwd="${stack[1]}"
shift stack # 先頭をpop
# print -l "pd print:"
# typeset -p cwd stack
local iStack=0
for d in "${stack[@]}"; do
if [[ "$d" == "$cwd" ]]; then
popd >/dev/null || return 1
(( iStack == 0 )) && return 0 # カレント...
pushd +$iStack >/dev/null
break
fi
((iStack++))
done
}
pd_main "$@"
local return_code=$?
dirs -v
return $return_code
}
ページ名: