Π΄Π»Ρ ΡΡΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ fasd_cd.
ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² Π²Π°ΡΠ΅ΠΌ bashrc ΠΈΡΠΏΡΠ°Π²ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ z ΠΈ zz
function fasd_cd {
["$ 2" = '-i'] && {cd fasd -id "$1"
| awk '{print "$ 2"}'; Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅; }
{cd fasd -d "$1" -1
| awk '{print "$ 2"}'; Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅; }
}
+1, Ρ ΠΌΠ΅Π½Ρ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΈ Π½Π° ubuntu, Π½ΠΈ Π½Π° osx. ΠΡΡΡ Π»ΠΈ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅?
Π― ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ fasd Π½Π° Ubuntu. Π Π°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
bash:
Installed: 4.3-7ubuntu1.5
Candidate: 4.3-7ubuntu1.5
Version table:
*** 4.3-7ubuntu1.5 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
100 /var/lib/dpkg/status
4.3-6ubuntu1 0
500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
ΠΠΎΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ .bashrc
:
fasd_cache="$HOME/.fasd-init-bash"
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache
# fasd completions
alias ei='e -i'
alias k='f -e kate'
alias l='f -e less'
alias n='f -e nano'
alias o='a -e xdg-open'
alias zi='z -i'
_fasd_bash_hook_cmd_complete ei k l n o zi
+1 Π’Π°ΠΊΠΆΠ΅ Ρ ΠΌΠ΅Π½Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° osx.
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ fasd_cd
Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅ rc
. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π΄Π²Π°ΠΆΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ²ΠΎΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ rc
.
Π ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠΊΠΎΠΌΠ°Π½Π΄Π° init, Π½ΠΎ ΠΎΠ½Π° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· homebrew ΠΈ apt-get. ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π½ΠΎ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π±Π΅ΡΠ°-Π²Π΅ΡΡΠΈΠ΅ΠΉ OSX El Capitan, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΠ½Π΅ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠ΄Π°Π΅ΡΡΡ ΠΎΠ±Π»Π°ΠΆΠ°ΡΡΡΡ Ρ Ubuntu.
@FranzSkuffka
echo $SHELL
)fasd
? (Π·Π°ΠΏΡΡΡΠΈΡΠ΅ which fasd
)fasd
? ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΠ»Π° Π²Π°ΡΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ°? ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ echo test
ΠΈΠ»ΠΈ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ fasd
ΠΈ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΡ._ΠΠ° ΠΎΠ±Π΅ΠΈΡ
ΠΌΠ°ΡΠΈΠ½Π°Ρ
ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ zshrc_
Ubuntu (ΡΠ΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π΅ Π·Π½Π°Ρ ΠΏΠΎΡΠ΅ΠΌΡ)
[~] echo $SHELL
/usr/bin/zsh
[~] which fasd
/home/jan/bin/fasd
[~] fasd
...
test
[~] fasd_cd
...
Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ
OSX (Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ)
[/home] echo $SHELL
/bin/zsh
[/home] which fasd
/usr/local/bin/fasd
[/home] fasd
...
test
[/home] fasd_cd
zsh: command not found: fasd_cd
ΠΡΠΎ ΡΡΡΠ°Π½Π½ΠΎ. ΠΠ°ΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ? fasd --init auto
?
Π΄Π°
[~] fasd --init auto
{ if [ "$ZSH_VERSION" ] && compctl; then # zsh
eval "$(fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install \
zsh-wcomp zsh-wcomp-install)"
elif [ "$BASH_VERSION" ] && complete; then # bash
eval "$(fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install)"
else # posix shell
eval "$(fasd --init posix-alias posix-hook)"
fi
} >> "/dev/null" 2>&1
[~] fasd_cd
zsh: command not found: fasd_cd
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΎΡΠ½ΡΠΌ, Ρ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ z rupa, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π½. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
Π§ΡΠΎ ΠΆ, Π΄ΡΠΌΠ°Ρ ΡΠ΅Π±Π΅ Π½ΡΠΆΠ½ΠΎ eval "$(fasd --init auto)"
. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ.
fasd --init auto
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈ fasd
- ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ z
ΠΈ fasd
ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ fasd
ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ z
.
echo 'eval "$(fasd --init auto)"' >> ~/.zshrc
source ~/.zshrc
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ zshrc
Π½Π° bashrc
Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ bash
Π£ ΠΌΠ΅Π½Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΠΉΡΠ°Ρ. ΠΠΎΡ ΠΎΡΠΈΠ±ΠΊΠ°.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π§ΡΠΎ ΠΆ, Π΄ΡΠΌΠ°Ρ ΡΠ΅Π±Π΅ Π½ΡΠΆΠ½ΠΎ
eval "$(fasd --init auto)"
. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ.fasd --init auto
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Ρ Π²Π°ΡΠ΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΎΠΉ, Π΅ΡΠ»ΠΈfasd
- ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡz
ΠΈfasd
ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡfasd
ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈz
.