Rupesin tässä käyttämään zsh:ta bashin sijaan mm. komentojen oikoluvun takia. Muuten olen ollut oikein tyytyväinen, mutta tabitäydennys toimii joskus jotenkin oudosti. Minulla on kotikansiossani startup.sh-tiedosto, joka on ainoa st-alkuinen tiedosto/kansio kotikansiossani. jos kirjoitan ./st ja painan TAB, katoaa tuo st kokonaan ja jättää jäljelle pelkästään ./, mutta jos kirjoitan ./sta, täydentyy se oikein ./startup.sh:ksi. Bashissa ./st:kin täydentyi oikein. Olen huomannut samaa käytöstä muissakin tilanteissa. Osaisiko joku kokeneempi sanoa, onko .zshrcssäni jotain häikkää, vai enkö vain osaa. .zshrc on enimmäkseen linux.fistä kopioitu, loppuun olen lisäillyt vähän rivejä.
# Määritetään promptin (komentorivillä aina näkyvät merkit) ulkoasu. Muuttuja
# PROMPT on sama kuin PS1. %n tarkoittaa koneen ja %m käyttäjän nimeä. %~ on
# nykyinen työhakemisto ja %# on valmiusmerkki (tavallisilla käyttäjillä % ja
# rootilla #). Tulos näyttää tältä: [kayttaja@kone] /usr/bin/ %
# %~:n voi korvata %d:llä jolloin esim. kotihakemiston nimeä ei lyhenetä ~:nä.
# zsh:ssa on myös mahdollista käyttää valmiita prompt-teemoja.
PROMPT='%n@%m:%~%# '
# Määritellään komentorivin oikeassa laidassa näkyvä teksti (valinnainen).
# %t tarkoittaa kellonaikaa.
#RPROMPT='%t'
# Asetetaan komentohistoriatiedosto
export HISTFILE=~/.history
# Asetetaan historiatiedoston suurin mahdollinen koko riveinä
export HISTSIZE=999999999
# Asetetaan kerralla historiatiedostoon tallennettavien rivien maksimimäärä
export SAVEHIST=999999999
# Lisätään hakemistot /usr/local/bin/ ja $HOME/bin PATH-muuttujaan
export PATH="$PATH:/usr/local/bin:$HOME/bin"
# Määritetään oletustekstieditori. Tämä asetus vaikuttaa myös käytettävään
# näppäinyhdistelmäteemaan (vi tai emacs) mikäli sitä ei erikseen
# määritetä bindkey-komennolla.
export EDITOR="emacs"
export VISUAL=$EDITOR
# Asetetaan ls-komennon käyttämät värit.
export LS_COLORS='no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.deb=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:'
# Komentojen täydennyksen asetuksia. Näiden asetusten luontiin voi myös käyttää
# valmista velhoa, joka käynnistyy komennolla compinstall
# Asetetaan täydennyslistan väreiksi samat, kuin ls:llä
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# Ladataan normaalit täydennysfunktiot sekä oikoluku
zstyle ':completion:*' completer _expand _complete _correct _approximate
# Mahdollistaa sekä merkkijonon ensimmäisiin että viimeisiin merkkeihin
# pohjautuvan täydennyksen.
#zstyle ':completion:*' expand prefix suffix
# Täydennyslistan aakkosellinen järjestys. Muita vaihtoehtoja ovat mm. size
# (koko), date (muutospäivämäärä), time (muutosaika), access (edellinen avausaika)
# sekä reverse (kääntää tulostuksen)
zstyle ':completion:*' file-sort name
# Täydennettäessä yläpuolisten hakemistojen nimiä (cd ../) ei oteta huomioon nykyistä työhakemistoa
zstyle ':completion:*' ignore-parents pwd
# ps:n tulosteeseen pohjautuva valikkopohjainen täydennys kill-komennolle.
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*' force-list always
# Valikkopohjainen täydennys joka käynnistyy, kun vaihtoehtoja on yli ruudullinen.
zstyle ':completion:*' menu select=long
zstyle ':completion:*' select-prompt %SValikko aktiivinen. Sijainti: %p %s
# Isojen ja pienien kirjainten sekä välimerkkien vastaavuus komentojen
# oikoluvussa. Toisin sanoen mahdollistaa esimerkiksi komennon 'EMACs'
# täydentämisen 'emacs'iksi.
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z} r:|[._-,]=** r:|=** l:|=*'
# Käynnistetään (uuden tyylin mukaiset) täydennystoiminnot
autoload -Uz compinit
compinit
# Sallii tab-täydennyksen myös sanan keskellä
setopt COMPLETE_IN_WORD
# Pidetään taustaprosessit täydellä nopeudella
setopt NOBGNICE
# Liitetään zsh-istunnon päättyessä syötetyt komennot historiatiedoston loppuun
# sen nollamisen sijaan
setopt APPEND_HISTORY
# Liitetään syötetyt komennot historiatiedostoon välittömästi niiden syöttämisen
# jälkeen
setopt INC_APPEND_HISTORY
# Jaettu komentohistoria samanaikaisesti päälläolevien zsh-istuntojen kesken
#setopt SHARE_HISTORY
# Älä näytä montaa identtistä riviä haettaessa komentohistoriasta (CTRL+R)
setopt HIST_FIND_NO_DUPS
# Älä lisää identtisiä peräkkäisiä komentoja komentohistoriaan.
# Jos esim. kirjoitat 30 kertaa peräkkäin "ls", lisätään näistä vain yksi.
setopt HIST_IGNORE_DUPS
# Poistaa kaikki edeltävät identtidet rivit komentohistoriasta, vaikka näiden
# komentojen välillä olisi annettu muita komentoja.
setopt HIST_IGNORE_ALL_DUPS
# Jos annettua komentoa ei voida suorittaa ja se on hakemistonnimi, niin
# siirrytään automaattisesti tähän hakemistoon (cd).
setopt AUTO_CD
# Ei ikinä piipata
unsetopt BEEP
# Asetetaan muutamia aliaksia
alias ls="ls --color=auto"
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias asenna="sudo aptitude install"
alias emacs="emacs -nw"
alias oik="chmod 744"
alias poista="sudo aptitude remove"
alias xfer="sudo xfer"
alias xev="xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'"
alias saydone='notify-send "Valmis! `if [ \$? = 0 ]; then echo \:\); else echo \:\(; fi`"'
alias update="sudo aptitude update |tee update.txt && sudo aptitude upgrade -y |tee upgrade.txt; saydone"
alias etsi="aptitude search"
# Listaa vain hakemistot ja hakemistoihin viittaavat symboliset linkit
alias lsd='ls -ld *(-/DN)'
# Listaa vain pisteellä alkavat tiedostot
alias lsa='ls -A'
# Emacs-tyylinen komentorivin muokkaus (oletus)
bindkey -e
# Vi-tyylinen komentorivin muokkaus
#bindkey -v
# Korjataan Home- End- ja backspace-näppäinten toiminta
bindkey '\e[1~' beginning-of-line
bindkey '\e[4~' end-of-line
bindkey '^[[3~' delete-char
# Korjataan backspace-näppäimen toiminta xtermissä
case $TERM in (xterm*)
bindkey '\e[H' beginning-of-line
bindkey '\e[F' end-of-line ;;
esac
compctl -g '*.tar.gz *.tar.bz2 *.tar *.tgz *.tbz' + -g '*(-/)' tar
setopt CORRECT
zstyle '*' hosts pox.fi localhost