pushd
の編集
Top
/
pushd
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
[[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 }
テキスト整形のルールを表示する