Created
January 7, 2026 11:32
-
-
Save lucivaldo/9e0be24faa7956a45878dc743b591ea8 to your computer and use it in GitHub Desktop.
Comando cd do fish alterado para continuar no diretório atual se nenhum argumento for passado
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function cd --description 'Change directory' | |
| # 🚫 Não ir para $HOME se nenhum argumento for passado | |
| if test (count $argv) -eq 0 | |
| return 0 | |
| end | |
| set -l MAX_DIR_HIST 25 | |
| if set -q argv[2]; and begin | |
| set -q argv[3] | |
| or not test "$argv[1]" = -- | |
| end | |
| printf "%s\n" (_ "Too many args for cd command") >&2 | |
| return 1 | |
| end | |
| # Skip history in subshells. | |
| if status --is-command-substitution | |
| builtin cd $argv | |
| return $status | |
| end | |
| # Avoid set completions. | |
| set -l previous $PWD | |
| if test "$argv" = - | |
| if test "$__fish_cd_direction" = next | |
| nextd | |
| else | |
| prevd | |
| end | |
| return $status | |
| end | |
| builtin cd $argv | |
| set -l cd_status $status | |
| if test $cd_status -eq 0 -a "$PWD" != "$previous" | |
| set -q dirprev | |
| or set -l dirprev | |
| set -q dirprev[$MAX_DIR_HIST] | |
| and set -e dirprev[1] | |
| # If dirprev, dirnext, __fish_cd_direction | |
| # are set as universal variables, honor their scope. | |
| set -U -q dirprev | |
| and set -U -a dirprev $previous | |
| or set -g -a dirprev $previous | |
| set -U -q dirnext | |
| and set -U -e dirnext | |
| or set -e dirnext | |
| set -U -q __fish_cd_direction | |
| and set -U __fish_cd_direction prev | |
| or set -g __fish_cd_direction prev | |
| end | |
| return $cd_status | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment