1
Yleistä keskustelua / Vs: Uudet komentoriviohjelmat
« : 06.05.25 - klo:16.06 »
- cd-komennon tilalle zoxide
Tuotakin olen joskus kokeillut, mutta se ei sopinut minulle – osin koska minulla on tämmöinen Zsh-funktio tekemässä omaa elämääni helpommaksi:
Koodia: [Valitse]
either-history-dmenu () {
local -a lineselect
local selection
[[ -n $(whence fzf) ]] || {
zle -M 'asenna fzf'
return 1
}
lineselect=(fzf)
if [[ $BUFFER == cd\ * || $LBUFFER == *\ \~ ]]
then
selection=$(dirs | $lineselect)
if [[ -n $selection ]]
then
selection=$(print -- $selection | cut -f 1)
[[ $LBUFFER == *\ \~ ]] && LBUFFER+=$selection || LBUFFER+=\~$selection
fi
else
if [[ -z $LBUFFER ]]
then
LBUFFER="$(fc -lnr 1 | $lineselect)"
else
LBUFFER="$(fc -lnr 1 | grep -E $LBUFFER | $lineselect)"
fi
fi
}
Lisäksi asetetaan pari valintaa Zsh:ssa:
Koodia: [Valitse]
setopt auto_pushd
setopt pushd_ignore_dups
setopt pushd_silent
Tuon jälkeen voin kirjoittaa esimerkiksi kerran ”cd ~/jotakin/jossakin/kaukana”, minkä jälkeen paikka menee pushd-pinoon. Sitten cd + PgUp, niin saan fzf:ään luettelon, josta voin valita nuolinäppäimillä liikkua aikaisemmissa kansioissa ja sitten Enterillä valita, mihin haluan:
Koodia: [Valitse]
4 ~
3 /usr/share/applications
2 /etc/X11
1 /usr/local/sbin
0 /var/lib/plocate
5/5
>
Tosin kuten joku ehkä funktiosta osaa lukea, nykyisellään funktio vain palauttaa komentoriville komennon, joka pitää vielä Enterillä vahvistaa. Aikaisemmin valinta suoraan siirsi haluttuun paikkaan, mutta silloin en voinut enää muokata paikkaa tarvittaessa.