Aceasta este comanda zshcontrib care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
zshcontrib - contribuțiile utilizatorilor la zsh
DESCRIERE
Distribuția sursă Zsh include o serie de articole contribuite de comunitatea de utilizatori.
Acestea nu sunt în mod inerent o parte a shell-ului și unele pot să nu fie disponibile în fiecare zsh
instalare. Cele mai semnificative dintre acestea sunt documentate aici. Pentru documentare privind
alte elemente contribuite, cum ar fi funcțiile shell, căutați comentarii în sursa funcției
fișiere.
UTILITĂȚI
accesarea Pe net Ajutor
Secvența de taste ESC h este în mod normal obligat de ZLE să execute alergare-ajutor widget (vezi
zshzle(1)). Aceasta invocă alergare-ajutor comanda cu cuvântul de comandă din curent
linia de intrare ca argument. În mod implicit, alergare-ajutor este un alias pentru om comanda, deci asta
adesea eșuează atunci când cuvântul de comandă este un shell încorporat sau o funcție definită de utilizator. De
redefinirea alergare-ajutor alias, se poate îmbunătăți ajutorul on-line oferit de shell.
fișiere de ajutor utilitate, găsită în UTIL directorul de distribuție, este un program Perl
care poate fi folosit pentru a procesa manualul zsh pentru a produce un fișier de ajutor separat pentru fiecare shell
încorporat și, de asemenea, pentru multe alte funcții shell. Cel care poate fi încărcat automat alergare-ajutor funcţie,
gasit in Funcții/Diverse, caută aceste fișiere de ajutor și efectuează alte câteva teste pentru
produce cel mai complet ajutor posibil pentru comandă.
Fișierele de ajutor sunt instalate implicit într-un subdirector de /usr/share/zsh or
/usr/local/share/zsh.
Pentru a crea propriile fișiere de ajutor cu fișiere de ajutor, alegeți sau creați un director în care
fișierele individuale de ajutor pentru comandă vor locui. De exemplu, ați putea alege ~/zsh_help. Dacă
ați despachetat distribuția zsh în directorul dvs. de acasă, veți folosi comenzile:
mkdir ~/zsh_help
perl ~/zsh-5.1.1/Util/helpfiles ~/zsh_help
HELPDIR parametrul spune alergare-ajutor unde să cauți fișierele de ajutor. Când este dezactivat, se folosește
calea implicită de instalare. Pentru a utiliza propriul set de fișiere de ajutor, setați acest lucru la
calea corespunzătoare într-unul dintre fișierele de pornire:
HELPDIR=~/zsh_help
Pentru a utiliza alergare-ajutor funcție, trebuie să adăugați linii de genul următor la dvs
.zshrc sau fișier de pornire echivalent:
Unalias alergare-ajutor
încărcare automată alergare-ajutor
Rețineți că pentru `încărcare automată alergare-ajutor'la muncă, la alergare-ajutor fișierul trebuie să fie într-unul dintre
directoarele numite în dvs fpath matrice (vezi zshparam(1)). Acesta ar trebui să fie deja
caz dacă aveți o instalare zsh standard; dacă nu este, copiați Funcții/Misc/run-help
într-un director adecvat.
Recompilarea funcţii
Dacă editați frecvent funcțiile zsh sau actualizați periodic instalarea zsh la
urmăriți cele mai recente evoluții, este posibil să descoperiți că resumele de funcții compilate cu
zcompile încorporate sunt adesea învechite în ceea ce privește fișierele sursă a funcției.
Aceasta nu este de obicei o problemă, deoarece zsh caută întotdeauna cel mai nou fișier atunci când încarcă a
funcția, dar poate cauza o pornire mai lentă a shell-ului și o încărcare a funcției. De asemenea, dacă un digerat
fișierul este utilizat în mod explicit ca element al fpath, zsh nu va verifica dacă vreuna dintre sursele sale
fișierele s-au schimbat.
zrecompile funcție de încărcare automată, găsită în Funcții/Diverse, poate fi folosit pentru a păstra
funcția digeră la zi.
zrecompile [ -qt ] [ nume ... ]
zrecompile [ -qt ] -p arg ... [ -- arg ... ]
Aceasta încearcă să găsească *.zwc fișiere și recompilați-le automat dacă cel puțin unul dintre
fișierele originale sunt mai noi decât fișierul compilat. Acest lucru funcționează numai dacă numele
stocate în fișierele compilate sunt căi complete sau sunt relative la directorul care
contine .zwc fișier.
În prima formă, fiecare nume este numele unui fișier compilat sau al unui director
conținând *.zwc fișiere care ar trebui verificate. Dacă nu sunt date argumente,
directoare și *.zwc fișiere în fpath sunt folosite.
Cand -t este dat, nu se realizează nicio compilare, dar o stare de returnare de zero (adevărat)
este setat dacă există fișiere care trebuie recompilate și diferite de zero (false)
in caz contrar. The -q opțiunea liniștește ieșirea discutabilă care descrie ce zrecompile
face.
Fara -t opțiunea, starea de returnare este zero dacă toate fișierele necesare
re-compilarea ar putea fi compilată și diferită de zero dacă compilarea pentru cel puțin unul dintre
fișierele au eșuat.
În cazul în care -p este dată opțiunea args sunt interpretate ca unul sau mai multe seturi de
argumente pentru zcompile, separate prin `--'. De exemplu:
zrecompile -p \
-R ~ / .zshrc -- \
-M ~/.zcompdump -- \
~/zsh/comp.zwc ~/zsh/Finalizare/*/_*
Aceasta compilează ~ / .zshrc în ~/.zshrc.zwc dacă asta nu există sau dacă este mai vechi
decât ~ / .zshrc. Fișierul compilat va fi marcat pentru citire în loc de mapare. The
acelasi lucru se face pt ~/.zcompdump si ~/.zcompdump.zwc, dar acest fișier compilat este
marcate pentru cartografiere. Ultima linie recreează fișierul ~/zsh/comp.zwc dacă vreuna dintre
fișierele care se potrivesc cu modelul dat sunt mai noi decât acesta.
Fara -p opțiune, zrecompile nu creează rezumate de funcții care nu
există deja și nici nu adaugă noi funcții la digest.
Următoarea buclă shell este un exemplu de metodă pentru crearea rezumatelor de funcții pentru toți
funcții în dvs fpath, presupunând că aveți permisiunea de scriere în directoare:
pentru ((i=1; i <= $#fpath; ++i)); do
dir=$fpath[i]
zwc=${dir:t}.zwc
if [[ $dir == (.|..) || $dir == (.|..)/* ]]; apoi
continua
fi
fișiere=($dir/*(N-.))
if [[ -w $dir:h && -n $fișiere ]]; apoi
fișiere=(${${(M)fișiere%/*/*}#/})
if ( cd $dir:h &&
zrecompile -p -U -z $zwc $fișiere ); apoi
fpath[i]=$fpath[i].zwc
fi
fi
făcut
-U si -z opțiunile sunt adecvate pentru funcțiile din instalarea zsh implicită fpath;
poate fi necesar să utilizați diferite opțiuni pentru directoarele cu funcții personale.
Odată ce rezumatele au fost create și dvs fpath modificat pentru a se referi la ele, puteți păstra
le actualizează prin alergare zrecompile fara argumente.
Tastatură Definiție
Numărul mare de combinații posibile de tastaturi, stații de lucru, terminale,
emulatorii și sistemele de ferestre fac imposibil ca zsh să aibă legături de taste încorporate
pentru fiecare situatie. The zkbd utilitate, găsită în Funcții/Diverse, vă poate ajuta rapid
creați legături de taste pentru configurația dvs.
Alerga zkbd fie ca funcție încărcată automat, fie ca script shell:
zsh -f ~/zsh-5.1.1/Functions/Misc/zkbd
Când alergi zkbd, vă solicită mai întâi să introduceți tipul de terminal; dacă implicit oferă
este corect, doar apăsați Retur. Apoi vă solicită să apăsați un număr de taste diferite pentru
determinați caracteristicile tastaturii și terminalului dvs.; zkbd te avertizează dacă găsește
orice ieșit din comun, cum ar fi o cheie Delete care nu trimite niciuna ^H nici ^?.
Apăsările de taste citite de zkbd sunt înregistrate ca definiție pentru o matrice asociativă numită
cheie, scris într-un fișier din subdirector .zkbd în cadrul fie al tău ACASĂ or ZDOTDIR
director. Numele fișierului este compus din TERMEN, Vendor si OSTYPE parametrii,
unite prin cratime.
Puteți citi acest fișier în dvs .zshrc sau alt fișier de pornire cu `sursă' sau `.'
comenzi, apoi faceți referire la cheie parametru în comenzile bindkey, astfel:
sursă ${ZDOTDIR:-$HOME}/.zkbd/$TERM-$VENDOR-$OSTTYPE
[[ -n ${key[stânga]} ]] && bindkey „${key[Left]}” înapoi-char
[[ -n ${key[dreapta]} ]] && bindkey „${key[Dreapta]}” înainte-car
# etc
Rețineți că pentru `încărcare automată zkbd'la muncă, la zkdb fișierul trebuie să fie într-unul dintre
directoarele numite în dvs fpath matrice (vezi zshparam(1)). Acesta ar trebui să fie deja cazul
dacă aveți o instalare standard zsh; dacă nu este, copiați Funcții/Diverse/zkbd la un
directorul adecvat.
Dumping Coajă Stat
Ocazional, puteți întâlni ceea ce pare a fi o eroare în shell, mai ales dacă dvs
folosesc o versiune beta a zsh sau o versiune de dezvoltare. De obicei este suficient să
trimiteți o descriere a problemei la una dintre listele de corespondență zsh (vezi zsh(1)), dar
uneori, unul dintre dezvoltatorii zsh va trebui să vă recreeze mediul pentru a
urmăriți problema.
Scenariul numit reporter, găsit în UTIL directorul de distribuție, este furnizat
în acest scop. (Este, de asemenea, posibil să încărcare automată reporter, Dar reporter nu este
instalat în fpath în mod implicit.) Acest script produce o imagine detaliată a stării shell-ului,
sub forma unui alt script care poate fi citit cu `zsh -fpentru a recrea starea aceea.
A folosi reporter, citiți scriptul în shell-ul dvs. cu `.' comanda și redirecționează
ieșire într-un fișier:
. ~/zsh-5.1.1/Util/reporter > zsh.raport
Ar trebui să verificați zsh.raport fișier pentru orice informații sensibile, cum ar fi parolele și
ștergeți-le manual înainte de a trimite scriptul către dezvoltatori. De asemenea, așa cum poate ieșirea
fii voluminos, cel mai bine este să așteptați ca dezvoltatorii să ceară aceste informații înainte
trimitand-o.
De asemenea, puteți utiliza reporter pentru a descărca doar un subset al stării shell. Asta uneori
util pentru crearea fișierelor de pornire pentru prima dată. Cea mai mare parte a rezultatelor de la reporter este
mult mai detaliat decât este necesar de obicei pentru un fișier de pornire, dar pseudonime, Opțiuni,
si zstyles stările pot fi utile deoarece includ doar modificări de la valorile implicite. The
legături starea poate fi utilă dacă ați creat oricare dintre propriile hărți de taste, deoarece reporter
aranjează să arunce comenzile de creare a hărții de taste, precum și legăturile pentru fiecare hartă de taste.
Așa cum este de obicei cu instrumentele automate, dacă creați un fișier de pornire cu reporter, Ar trebui
editați rezultatele pentru a elimina comenzile inutile. Rețineți că, dacă utilizați noul
sistem de completare, ar trebui nu aruncați funcții stare la fișierele de pornire cu
reporter; folosește compdump funcţionează în schimb (vezi zshcompsys(1)).
reporter [ de stat ... ]
Imprimați la ieșirea standard subsetul indicat al stării curente de shell. The
de stat argumentele pot fi unul sau mai multe dintre:
toate Ieșiți toate cele enumerate mai jos.
pseudonime
Ieșire definiții de alias.
legături
Ieșiți hărți și legături ale tastelor ZLE.
completare
Ieșire în stil vechi compctl comenzi. Noua finalizare este acoperită de funcții
si zstyles.
funcții
Încărcări automate de ieșire și definiții de funcții.
Limitele producție limita comenzi.
Opțiuni
producție setopt comenzi.
stiluri La fel ca zstyles.
variabile
Atribuții de parametri shell de ieșire, plus exporturile comenzi pentru orice mediu
variabile.
zstyles
producție zstyle comenzi.
În cazul în care de stat este omis, toate este asumat.
Cu excepția lui `toate', fiecare de stat poate fi prescurtat cu orice prefix, chiar și cu un singur prefix
scrisoare; prin urmare a este la fel ca pseudonime, z este la fel ca zstyles, Etc
manipulând Cârlig funcţii
add-zsh-hook [ -dD ] [ -Uzk ] cârlig funcţie
Mai multe funcții sunt speciale pentru shell, așa cum este descris în secțiunea SPECIALĂ
FUNCȚII, vezi zshmisc(1), prin aceea că sunt apelate automat la un anumit punct
în timpul execuției shell-ului. Fiecare are o matrice asociată constând din nume de
funcții care trebuie apelate în același punct; acestea sunt așa-numitele „funcții hook”.
Funcția shell add-zsh-hook oferă o modalitate simplă de adăugare sau eliminare
funcții din matrice.
cârlig este unul dintre chpwd, periodic, precmd, preexec, zshaddhistory, zshexit,
zsh_directory_name, funcțiile speciale în cauză. Rețineți că
zsh_directory_name este numit într-un mod diferit față de celelalte funcții, dar poate
să fie încă manipulat ca un cârlig.
funcţie este numele unei funcții shell obișnuite. Dacă nu sunt oferite opțiuni, aceasta va
să fie adăugat la matricea de funcții care urmează să fie executate în contextul dat.
Dacă opțiunea -d este dat, cel funcţie este eliminat din matricea de funcții pentru
fi executat.
Dacă opțiunea -D este dat, cel funcţie este tratat ca un model și orice potrivire
numele de funcții sunt eliminate din matricea de funcții care urmează să fie executate.
Opțiunile -U, -z si -k sunt transmise ca argumente către încărcare automată pentru funcţie. Pentru
funcțiile contribuite cu zsh, opțiunile -Uz sunt adecvate.
AMINTIND RECENT DIRECTORII
Funcția cdr vă permite să schimbați directorul de lucru cu un director de lucru anterior
director dintr-o listă întreținută automat. Conceptul este similar cu directorul
stiva controlată de pushd, popd si dirs încorporate, dar este mai configurabil și așa cum este
stochează toate intrările în fișiere pe care le păstrează între sesiuni și (în mod implicit) între
emulatori de terminale în sesiunea curentă. Dublatele sunt eliminate automat, astfel încât
lista reflectă cea mai recentă utilizare a fiecărui director.
Rețineți că pushd stiva de directoare nu este de fapt modificată sau utilizată de cdr dacă nu tu
configurați-l să facă acest lucru așa cum este descris în secțiunea de configurare de mai jos.
Instalare
Sistemul funcționează prin intermediul unei funcții hook care este apelată de fiecare dată când directorul
schimbări. Pentru a instala sistemul, încărcați automat funcțiile necesare și utilizați add-zsh-hook
funcția descrisă mai sus:
încărcare automată -Uz chpwd_recent_dirs cdr add-zsh-hook
add-zsh-hook chpwd chpwd_recent_dirs
Acum, de fiecare dată când schimbați direct interactiv, indiferent de comandă pe care o utilizați,
directorul în care schimbați va fi memorat în ordinea cea mai recentă.
Utilizare
Toată interacțiunea directă cu utilizatorul se face prin intermediul cdr Funcția.
Argumentul pentru cdr este un număr N corespunzând Ncel mai recent schimbat în
director. 1 este directorul imediat precedent; directorul curent este memorat
dar nu este oferit ca destinație. Rețineți că, dacă aveți mai multe ferestre deschise, 1 mai
se referă la un director schimbat în altă fereastră; puteți evita acest lucru având
fișiere per-terminal pentru stocarea directorului așa cum este descris pentru fişier-dirs-recent stil
de mai jos.
Dacă setați recent-dirs-default stilul descris mai jos cdr se va comporta la fel ca cd if
dat un argument nenumeric sau mai mult de un argument. Lista de directoare recentă este
actualizat la fel, oricum schimbați directorul.
Dacă argumentul este omis, se presupune 1. Aceasta este similară cu pushdcomportamentul lui
schimbând cele mai recente două directoare din stivă.
Completare pentru argumentul la cdr este disponibil dacă a fost rulat compinit; selectarea meniului
este recomandat, folosind:
zstyle ':completion:*:*:cdr:*:*' meniu selecţie
pentru a vă permite să parcurgeți directoarele recente; ordinea se păstrează, deci primul
alegerea este cel mai recent director înaintea celui actual. Stilul verboz este de asemenea
recomandat pentru a vă asigura că directorul este afișat; acest stil este activat implicit, deci nu există nicio acțiune
obligatoriu, cu excepția cazului în care l-ați schimbat.
Opţiuni
Comportamentul lui cdr poate fi modificată prin următoarele opțiuni.
-l listează numerele și directoarele corespunzătoare în formă prescurtată (adică cu
~ înlocuirea reaplicată), una pe linie. Directoarele de aici nu sunt citate (acest
ar fi o problemă numai dacă numele unui director ar conține o linie nouă). Acesta este folosit de
sistemul de completare.
-r setează variabila răspuns la setul curent de directoare. Nimic nu este tipărit și
directorul nu este schimbat.
-e vă permite să editați lista de directoare, câte unul pe linie. Lista poate fi editată
în orice măsură doriți; nu se efectuează nicio verificare a stării de spirit. Completarea este disponibilă.
Nu este necesară citarea (cu excepția liniilor noi, unde am în orice caz nr
simpatie); directoarele sunt neabreviate de la și conțin o cale absolută, de exemplu
ei încep cu /. De obicei, prima intrare ar trebui lăsată ca curentă
director.
Configuraţie
Configurarea se face prin intermediul mecanismului de stiluri care ar trebui să fie familiar de la finalizare;
dacă nu, vezi descrierea zstyle comanda in vezi zshmodules(1). Contextul pentru
setarea stilurilor ar trebui să fie ':chpwd:*' în cazul în care sensul contextului este extins în
viitor, de exemplu:
zstyle ':chpwd:*' recent-dirs-max 0
stabilește valoarea lui recent-dirs-max stil la 0. În practică, numele stilului este specific
suficient pentru ca un context de „*” să fie bine.
O excepție este recent-dirs-insert, care este utilizat exclusiv de sistemul de completare și
la fel și contextul obișnuit al sistemului de completare (':completare:*' dacă nimic mai specific nu este
necesar), deși din nou '*' ar trebui să fie bine în practică.
recent-dirs-default
Dacă este adevărat, iar comanda așteaptă un index de director recent și fie există
mai mult de un argument sau argumentul nu este un număr întreg, apoi ajungeți la
"CD". Acest lucru permite leneșului să folosească o singură comandă pentru schimbarea directorului.
Finalizarea recunoaște și acest lucru; vedeți recent-dirs-insert pentru cum să controlați
finalizarea când această opțiune este în uz.
fişier-dirs-recent
Fișierul în care este salvată lista de directoare. Valoarea implicită este
${ZDOTDIR:-$HOME}/.chpwd-recent-dirs, adică acesta este în directorul dvs. de acasă, cu excepția cazului în care
ai setat variabila ZDOTDIR pentru a indica altundeva. Numele directorului sunt
salvat în $'...' formular citat, astfel încât fiecare linie din fișier poate fi furnizată direct către
coaja ca argument.
Valoarea acestui stil poate fi o matrice. În acest caz, primul fișier din listă
va fi folosit întotdeauna pentru salvarea directoarelor în timp ce orice alte fișiere sunt lăsate
neatins. Când citiți lista de directoare recente, dacă există mai puține decât
numărul maxim de intrări în primul fișier, conținutul fișierelor ulterioare din fișierul
matricea va fi atașată cu duplicatele eliminate din lista afișată. Conținuturile
dintre cele două fișiere nu sunt sortate împreună, adică toate intrările din primul fișier
sunt afișate mai întâi. Valoarea specială + poate apărea în listă pentru a indica
fișierul implicit ar trebui citit în acel moment. Acest lucru permite efecte precum următoarele:
zstyle ':chpwd:*' fişier-dirs-recent \
~/.chpwd-recent-dirs-${TTY##*/} +
Directoarele recente sunt citite dintr-un fișier numerotat conform terminalului. Dacă
sunt intrări insuficiente, lista este completată din fișierul implicit.
Este posibil să se utilizeze zstyle -e pentru a face directorul configurabil în timpul rulării:
zstyle -e ':chpwd:*' fişier-dirs-recent pick-recent-dirs-file
pick-recent-dirs-file() {
if [[ $PWD = ~/text/scriere(|/*) ]]; apoi
raspunde=(~/.chpwd-recent-dirs-writing)
altfel
raspuns=(+)
fi
}
În acest exemplu, dacă directorul curent este ~/text/scriere sau un director sub
acesta, apoi utilizați un fișier special pentru salvarea directoarelor recente, altfel utilizați cel implicit.
recent-dirs-insert
Folosit până la finalizare. Dacă recent-dirs-default este adevărat, apoi setând acest lucru la adevărat
face ca directorul real, mai degrabă decât indexul său, să fie inserat în comandă
linia; aceasta are același efect ca și utilizarea indexului corespunzător, dar face ca
istoricul este mai clar și linia mai ușor de editat. Cu această setare, dacă face parte dintr-un
argumentul a fost deja tastat, finalizarea normală a directorului, mai degrabă decât recentă
completarea directorului este finalizată; acest lucru se datorează faptului că finalizarea recentă a directorului este
se așteaptă să se facă prin parcurgerea modului meniului de intrări.
Dacă valoarea stilului este mereu, atunci vor fi doar directoarele recente
efectuat; în acest caz, utilizați cd comandă când doriți să completați altele
directoare.
Dacă valoarea este da înapoi, directoarele recente vor fi încercate mai întâi, apoi normale
completarea directorului este efectuată dacă finalizarea recentă a directorului nu a găsit a
meci.
În cele din urmă, dacă valoarea este atât apoi sunt prezentate ambele seturi de completări; cel
mecanismul obișnuit de etichetă poate fi folosit pentru a distinge rezultatele, cu directoare recente
etichetat ca recent-dirs. Rețineți că directoarele recente introduse sunt abreviate
cu nume de directoare acolo unde este cazul.
recent-dirs-max
Numărul maxim de directoare de salvat în fișier. Dacă acesta este zero sau negativ
nu exista maxim. Valoarea implicită este 20. Rețineți că aceasta include directorul curent,
care nu este oferit, deci cel mai mare număr de directoare care vi se vor oferi este
cu unul mai putin decat maximul.
recent-dirs-prune
Acest stil este o matrice care determină ce directoare ar trebui (sau nu) să fie adăugate
la lista recentă. Elementele matricei pot include:
mamă Tăiați părinții (mai precis, strămoșii) din lista recentă. Dacă
prezent, schimbarea directă în jos cu orice număr de directoare cauzează
directorul curent pentru a fi suprascris. De exemplu, schimbarea de la ~pws la
~pws/some/other/dir face ca ~pws să nu fie lăsat în directorul recent
grămadă. Acest lucru se aplică numai modificărilor directe ale directoarelor descendente;
directoarele anterioare de pe listă nu sunt tăiate. De exemplu, schimbarea de la
~pws/yet/nother to ~pws/some/other/dir nu face ca ~pws să fie tăiat.
model:model
Oferă un model zsh pentru directoarele care nu ar trebui adăugate la cele recente
listă (dacă nu există deja). Acest element poate fi repetat pentru a adăuga diferite
modele. De exemplu, 'model:/ tmp(|/*)' se oprește / tmp sau descendenții săi
din a fi adăugat. The EXTENDED_GLOB opțiunea este întotdeauna activată pentru acestea
modele.
recent-dirs-pushd
Dacă este setat la adevărat, cdr voi folosi pushd în loc de cd pentru a schimba directorul, deci
directorul este salvat în stiva de directoare. Deoarece stiva de directoare este complet
separat de lista de fișiere salvate de mecanismul utilizat în acest fișier există
nici un motiv evident pentru a face asta.
Utilizare cu dinamic director denumire
Este posibil să faceți referire la directoare recente folosind sintaxa numelui directorului dinamic prin
folosind funcția furnizată zsh_directory_name_cdr un carlig:
încărcare automată -Uz add-zsh-hook
add-zsh-hook -Uz zsh_directory_name zsh_directory_name_cdr
Când se face acest lucru, ~[1] se va referi la cel mai recent director, altul decât $PWD, și așa
pe. Finalizare după ~[... functioneaza de asemenea.
Detalii of director manipulare
Această secțiune este pentru curioși sau confuzi; majoritatea utilizatorilor nu vor trebui să știe acest lucru
informaţii.
Directoarele recente sunt salvate într-un fișier imediat și, prin urmare, sunt păstrate peste tot
sesiuni. Rețineți că în prezent nu este aplicată nicio blocare a fișierelor: lista este actualizată imediat
comenzi interactive și nicăieri altundeva (spre deosebire de istorie), și se presupune că ești doar tu
vei schimba directorul într-o singură fereastră deodată. Acest lucru nu este sigur pe conturile partajate, dar
în orice caz, sistemul are o utilitate limitată atunci când altcineva se schimbă
set de directoare la spatele tău.
Pentru a face acest lucru puțin mai sigur, doar modificările directorului sunt instituite din linia de comandă,
fie direct, fie indirect prin apeluri de funcții shell (dar nu prin subshell-uri,
evalerile, capcanele, funcțiile de completare și altele asemenea) sunt salvate. Funcțiile Shell ar trebui să utilizeze cd
-q or pushd -q pentru a evita efectele secundare dacă modificarea directorului trebuie să fie invizibilă la
linia de comandă. Vedeți conținutul funcției chpwd_recent_dirs pentru mai multe detalii.
Adunarea INFORMAŢII DIN VERSIUNE CONTROL SISTEME
În multe cazuri, este plăcut să preluați automat informații din controlul versiunilor
sisteme (VCS), cum ar fi subversion, CVS sau git, pentru a le putea furniza utilizatorului;
eventual în promptul utilizatorului. Astfel încât să poți spune imediat ce ramură ești
în prezent, de exemplu.
Pentru a face acest lucru, puteți utiliza vcs_info Funcția.
Sunt acceptate următoarele VCS-uri, arătând numele prescurtat cu care sunt menționate
în cadrul sistemului:
bazar (bzr)
http://bazaar.canonical.com/
Codeville (CDV)
http://freecode.com/projects/codeville/
Sistem de versiuni simultane (cvs)
http://www.nongnu.org/cvs/
Darcs (darcs)
http://darcs.net/
fosilă (fosil)
http://fossil-scm.org/
Git (merge)
http://git-scm.com/
GNU arch (TLA)
http://www.gnu.org/software/gnu-arch/
Mercurial (hg)
http://mercurial.selenic.com/
Monoton (MTN)
http://monotone.ca/
forțat (p4)
http://www.perforce.com/
Subversiune (SVN)
http://subversion.apache.org/
SVK (SVK)
http://svk.bestpractical.com/
Există și suport pentru sistemul de gestionare a patch-urilor cuvertură
(http://savannah.nongnu.org/projects/quilt). Vedea pilotă Asistență mai jos pentru detalii.
A încărca vcs_info:
încărcare automată -Uz vcs_info
Poate fi folosit în orice prompt existent, deoarece nu necesită niciun fel de specific $psvar
intrările să fie disponibile.
Pornire rapidă
Pentru ca această caracteristică să funcționeze rapid (inclusiv culorile), puteți face următoarele
(presupunând că ai încărcat vcs_info corect - vezi mai sus):
zstyle ':vcs_info:*' formate de acțiune \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
zstyle ':vcs_info:*' Formate \
'%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f '
zstyle ':vcs_info:(sv[nk]|bzr):*' format ramură „%b%F{1}:%F{3}%r”
precmd () { vcs_info }
PS1='%F{5}[%F{2}%n%F{5}] %F{3}%3~ ${vcs_info_msg_0_}%f%# '
Evident, ultimele două rânduri sunt acolo pentru demonstrație. Trebuie să suni vcs_info din
ta precmd funcţie. Odată ce este făcut, aveți nevoie de un singur citat „${vcs_info_msg_0_}” in
solicitarea dvs.
Pentru a putea folosi „${vcs_info_msg_0_}” direct în promptul dvs. astfel, va trebui
au PROMPT_SUBST opțiunea activată.
Acum sună la vcs_info_printsys utilitar din linia de comandă:
% vcs_info_printsys
## listă of sprijinite versiune Control backend-uri:
## invalid sisteme sunt prefixate by a hașiș semna (#)
bzr
CDV
cvs
darcs
fosil
merge
hg
MTN
p4
SVK
SVN
TLA
## arome (nu poti be utilizat in il permite or dezactivați stiluri; ei
## sunt activat si invalid cu lor maestru [git-svn -> git])
## ei *poate sa* be utilizat in contexte: „:vcs_info:git-svn:*”.
git-p4
git-svn
hg-git
hg-hgsubversiune
hg-hgsvn
Este posibil să nu doriți toate acestea, deoarece nu are rost să rulați codul de detectat
sistemele pe care nu le utilizați. Deci, există o modalitate de a dezactiva complet unele backend-uri:
zstyle ':vcs_info:*' dezactivați bzr CDV darcs MTN SVK TLA
De asemenea, puteți alege câteva din acea listă și să le activați numai pe acelea:
zstyle ':vcs_info:*' permite merge cvs SVN
Dacă reluați vcs_info_printsys după una dintre aceste comenzi, veți vedea backend-urile
enumerate în dezactivați stil (sau backend-uri nu în permite stil - dacă ai folosit asta)
marcat ca dezactivat printr-un semn hash. Asta înseamnă că detectarea acestor sisteme este omisă
complet. Fără timp pierdut acolo.
Configuraţie
vcs_info caracteristica poate fi configurată prin zstyle.
În primul rând, contextul în care lucrăm:
:vcs_info:vcs-string:contextul utilizatorului:repo-root-name
vcs-string
este unul din: merge, git-svn, git-p4, hg, hg-git, hg-hgsubversiune, hg-hgsvn, darcs, bzr,
CDV, MTN, SVN, cvs, SVK, TLA, p4 or fosil. Când cârligele sunt active, numele cârligelor este
adăugat după un „+”. (Vedea cârlige in vcs_info de mai jos.)
contextul utilizatorului
este un șir configurabil liber, atribuibil de utilizator ca prim argument
vcs_info (vezi descrierea acesteia mai jos).
repo-root-name
este numele unui depozit în care doriți să se potrivească un stil. Deci, dacă vrei o
setare specifică /usr/src/zsh, cu aceasta fiind o finalizare CVS, puteți seta
repo-root-name la zsh ca să fie așa.
Există trei valori speciale pentru vcs-string: Primul este numit -init-, adică în
efect atâta timp cât nu s-a decis ce backend VCS să folosească. Al doilea este -preinit-;
este folosit înainte vcs_info este rulat, la inițializarea variabilelor de export de date. The
a treia valoare specială este Formate și este folosit de către vcs_info_lastmsg pentru a-l căuta
stiluri.
Valoarea inițială a repo-root-name is -toate- și este înlocuit cu numele real, așa cum
de îndată ce se știe. Folosiți doar această parte a contextului pentru a defini Formate,
formate de acțiune or format ramură stiluri, deoarece este garantat că repo-root-name este pus la punct
corect numai pentru acestea. Pentru toate celelalte stiluri, doar utilizați '*' in schimb.
Există două valori predefinite pentru contextul utilizatorului:
lipsă
cel folosit dacă nu este specificat niciunul
comandă
folosit de vcs_info_lastmsg pentru a căuta stilurile sale
Desigur, puteți folosi ':vcs_info:*' pentru a potrivi toate VCS-urile în toate contextele utilizatorului simultan.
Aceasta este o descriere a tuturor stilurilor care sunt căutate.
Formate
O listă de formate, folosită atunci când formatul de acțiune nu este folosit (ceea ce este de cele mai multe ori).
formate de acțiune
O listă de formate, folosită dacă există o acțiune specială în cursul dvs. curent
repertoriu; ca o rebază interactivă sau un conflict de îmbinare.
format ramură
Unele backend-uri înlocuiesc %b în formatele și stilurile de acțiune de mai sus, nu numai de
un nume de ramură dar și printr-un număr de revizuire. Acest stil vă permite să modificați modul în care acesta
șir ar trebui să arate.
nvcsformats
Aceste „formate” sunt setate atunci când nu am detectat un sistem de control al versiunilor pentru
directorul curent sau vcs_info a fost dezactivat. Acest lucru este util dacă doriți vcs_info la
preia complet generarea promptului tău. Ai face ceva de genul
PS1='${vcs_info_msg_0_}' pentru a realiza asta.
hgrevformat
hg folosește atât un hash, cât și un număr de revizuire pentru a face referire la un anumit set de modificări în a
repertoriu. Cu acest stil puteți formata șirul de revizuire (vezi format ramură)
să includă una sau ambele. Este util doar când obţine-revizuire este adevarat. Rețineți că
ID-ul complet al reviziei de 40 de caractere nu este disponibil (cu excepția cazului în care se utilizează codul folosire-simplu
opțiunea) deoarece executarea hg de mai multe ori per prompt este prea lentă; poți
personalizați acest comportament folosind cârlige.
max-exporturi
Definește numărul maxim de vcs_info_msg_*_ variabile vcs_info va seta.
permite O listă de backend-uri pe care doriți să le utilizați. Verificat în -init- context. Dacă această listă
conține un element numit NONE nu se folosește deloc backend și vcs_info se va face
nimic. Dacă această listă conține Toate colectiile, vcs_info va folosi toate backend-urile cunoscute. Doar cu
Toate colectiile in permite va dezactivați stilul are vreun efect. Toate colectiile si NONE sunt cazul
insensibil.
dezactivați
O listă de VCS-uri pe care nu le doriți vcs_info pentru a testa pentru depozite (verificat în
-init- context, de asemenea). Folosit doar dacă permite conține Toate colectiile.
dezactivare-modele
O listă de modele care sunt verificate $PWD. Dacă un model se potrivește, vcs_info
va fi dezactivat. Acest stil este verificat în :vcs_info:-init-:*:-all- context.
Spune, ~/.zsh este un director sub control de versiuni, în care nu vrei vcs_info
pentru a fi activ, face:
zstyle ':vcs_info:*' dezactivare-modele „$HOME/.zsh(|/*)”
folosi-pilota
Dacă este activat, cuvertură codul de suport este activ în modul „addon”. Vedea pilotă Asistență
pentru detalii.
pilota-de sine stătătoare
Dacă este activată, detectarea modului „autonom” este încercată dacă niciun VCS nu este activ într-un anumit moment
director. Vedea pilotă Asistență pentru detalii.
quilt-patch-dir
Suprascrie valoarea lui $QUILT_PATCHES variabilă de mediu. Vedea pilotă Asistență
pentru detalii.
quiltcommand
Cand cuvertură în sine este numit în suport pilota valoarea acestui stil este folosit ca
numele comenzii.
verificare pentru modificări
Dacă este activat, acest stil provoacă %c si %u formatul scapă pentru a se afișa atunci când funcționează
directorul are modificări necommitate. Șirurile afișate de aceste evadări pot fi
controlat prin intermediul stagedstr si unstagedstr stiluri. Singurele backend-uri care
în prezent acceptă această opțiune sunt merge, hg și bzr (ultimele două doar suportă
neînscenat).
Pentru ca acest stil să fie evaluat cu hg backend, obţine-revizuire stilul trebuie să
fi setat și folosire-simplu stilul trebuie nesetat. Acesta din urmă este implicit; cel
fostul nu este.
Cu bzr backend, categorie ușoară checkouts onora acest stil numai dacă utilizare-server
stilul este stabilit.
Rețineți, acțiunile întreprinse dacă acest stil este activat sunt potențial costisitoare (citiți:
pot fi lente, în funcție de cât de mare este depozitul curent). Prin urmare, acesta
este dezactivat în mod implicit.
verificarea-pentru-schimbări-etape
Acest stil este ca verificare pentru modificări, dar nu verifică niciodată fișierele worktree, doar
metadatele din .${vcs} dir. Prin urmare, acest stil inițializează numai %c
scăpare (cu stagedstr) dar nu %u evadare. Acest stil este mai rapid decât
verificare pentru modificări.
În merge backend, acest stil verifică modificările în index. Alte backend-uri fac
nu implementează în prezent acest stil.
Acest stil este dezactivat implicit.
stagedstr
Acest șir va fi folosit în %c scăpa dacă există schimbări în etape în
repertoriu.
unstagedstr
Acest șir va fi folosit în %u scăpa dacă există modificări neetapăte în
repertoriu.
comandă
Acest stil provoacă vcs_info pentru a utiliza șirul furnizat ca comandă pentru a utiliza ca
Binarul lui VCS. Rețineți că setarea asta în „:vcs_info:*' nu este o idee bună.
Dacă valoarea acestui stil este goală (care este implicit), numele binar utilizat este
numele backend-ului utilizat (de ex SVN este folosit într-un SVN repertoriu).
repo-root-name partea din context este întotdeauna implicită -toate- când acest stil
este privit în sus.
De exemplu, acest stil poate fi folosit pentru a utiliza binare de la o instalare non-implicit
directoare. Să presupunem, merge este instalat în / usr / bin dar administratorul dvs. de sistem a instalat un
versiune mai nouă în /usr/local/bin. În loc să schimbi ordinea ta $ PATH
parametru, puteți face acest lucru:
zstyle ':vcs_info:git:*:-all-' comandă /usr/local/bin/git
utilizare-server
Acesta este folosit de backend-ul Perforce (p4) pentru a decide dacă ar trebui să contacteze
Server Perforce pentru a afla dacă un director este gestionat de Perforce. Acesta este
singurul mod fiabil de a face acest lucru, dar riscă o întârziere dacă numele serverului
nu poate fi gasit. Dacă serverul (mai precis, gazdă:port pereche care descrie
serverul) nu poate fi contactat, numele acestuia este pus în tabloul asociativ
vcs_info_p4_dead_servers și nu este contactat din nou în timpul sesiunii până când nu este
îndepărtat cu mâna. Dacă nu setați acest stil, p4 backend-ul este utilizabil numai dacă
ați setat variabila de mediu P4CONFIG la un nume de fișier și au
fișierele corespunzătoare din directoarele rădăcină ale fiecărui client Perforce. Vezi comentarii
in functie VCS_INFO_detect_p4 pentru mai multe detalii.
Backend-ul Bazarului (bzr) folosește acest lucru pentru a permite contactarea serverului despre
casele ușoare, vezi verificare pentru modificări stil.
folosire-simplu
Dacă există două moduri diferite de a culege informații, puteți selecta
unul mai simplu prin setarea acestui stil la adevărat; implicit este să utilizați
cod nu atât de simplu, care este potențial mult mai lent, dar ar putea fi mai precis
în toate cazurile posibile. Acest stil este folosit de către bzr si hg backend-uri. În cazul
of hg va invoca programul hexdump extern pentru a analiza starea binară
fișier cache; această metodă nu va returna numărul de revizuire local.
obţine-revizuire
Dacă este setată la true, vcs_info face eforturi suplimentare pentru a afla revizuirea a
arborele de lucru al depozitului (în prezent pentru merge si hg backend-uri, unde acest tip de
informaţia nu este întotdeauna vitală). Pentru merge, valoarea hash a celor verificate în prezent
out commit este disponibil prin intermediul %i expansiune. Cu hg, numărul de revizuire local
și hash-ul global corespunzător sunt disponibile prin %i.
obţine-mq Dacă este setat la adevărat, hg backend-ul va căuta o coadă Mercurial (mq) plasture
director. Informațiile vor fi disponibile prin intermediul `%m' înlocuire.
obține-marcaje
Dacă este setat la adevărat, hg backend va încerca să obțină o listă de marcaje curente. ei
va fi disponibil prin intermediul `%m' înlocuire.
Implicit este generarea unei liste separate prin virgulă a tuturor numelor de marcaje care se referă
la revizuirea verificată în prezent. Dacă un marcaj este activ, numele acestuia este
a sufixat un asterisc și a fost plasat pe primul loc în listă.
utilizare-prompt-escapes
Determină dacă presupunem că șirul asamblat de la vcs_info include prompt
scapă. (Folosit de vcs_info_lastmsg.)
depana Activați ieșirea de depanare pentru a urmări posibilele probleme. În prezent, acest stil este doar
folosit de vcs_infosistemul de cârlige al lui.
cârlige Un stil de listă care definește numele funcțiilor de cârlig. Vedea cârlige in vcs_info mai jos pentru
Detalii.
patch-format
nopatch-format
Această pereche de stiluri formatează informațiile de corecție utilizate de %m expando în formate
și formate de acțiune pentru merge si hg backend-uri. Valoarea este supusă unor anumite
%-extensii descrise mai jos.
devine neaplicat
Acest stil boolean controlează dacă un backend ar trebui să încerce să adune o listă de
patch-uri neaplicate (de exemplu, cu patch-uri Mercurial Queue).
Folosit de către cuvertură si hg backend-uri.
Valorile implicite pentru aceste stiluri în toate contextele sunt:
Formate
" (%s)-[%b]%u%c-"
formate de acțiune
" (%s)-[%b|%a]%u%c-"
format ramură
„%b:%r” (pentru bzr, svn, svk și hg)
nvcsformats
""
hgrevformat
„%r:%h”
max-exporturi
2
permite Toate colectiile
dezactivați
(lista goala)
dezactivare-modele
(lista goala)
verificare pentru modificări
fals
verificarea-pentru-schimbări-etape
fals
stagedstr
(siruri de caractere")
unstagedstr
(șir: „U”)
comandă
(Șir gol)
utilizare-server
fals
folosire-simplu
fals
obţine-revizuire
fals
obţine-mq adevărat
obține-marcaje
fals
utilizare-prompt-escapes
adevărat
depana fals
cârlige (lista goala)
folosi-pilota
fals
pilota-de sine stătătoare
fals
quilt-patch-dir
gol - folosire $QUILT_PATCHES
quiltcommand
cuvertură
patch-format
backend Dependent/ă
nopatch-format
backend Dependent/ă
devine neaplicat
fals
În mod normal Formate si formate de acțiune se fac urmatoarele inlocuiri:
%s VCS-ul în uz (git, hg, svn etc.).
%b Informații despre filiala actuală.
%a Un identificator care descrie acțiunea. Are sens doar în formate de acțiune.
%i Numărul sau identificatorul actual al revizuirii. Pentru hg il hgrevformat stilul poate fi folosit
pentru a personaliza ieșirea.
%c Coarda din stagedstr stil dacă există modificări în etape în depozit.
%u Coarda din unstagedstr stil dacă există modificări neetapăte în
repertoriu.
%R Directorul de bază al depozitului.
%r Numele depozitului. Dacă %R is /foo/bar/repoXY, %r is repoXY.
%S Un subdirector într-un depozit. Dacă $PWD is /foo/bar/repoXY/bere/gustos, %S is
bere/gustos.
%m Un înlocuitor „diverse”. Este la latitudinea backend-ului să decidă ce anume
înlocuirea se extinde la.
hg si merge Backend-urile folosesc acest expando pentru a afișa informații despre corecție. hg surse
informații de patch de la mq extensiile; merge de la depășește comanda si de la
si stgit extensie. The patch-format si nopatch-format stilurile controlează
șir generat. Primul este utilizat atunci când cel puțin un patch din coada de patch-uri
a fost aplicat, iar acesta din urmă altfel.
hg Backend-ul afișează informații despre marcaje în acest expando (în plus față de mq
informație). Vezi obţine-mq si obține-marcaje stiluri. Ambele stiluri pot
să fie activat în același timp. Dacă ambele sunt activate, ambele șiruri rezultate vor fi
afișat separat de un punct și virgulă (care nu poate fi personalizat în prezent).
In format ramură se fac aceste înlocuiri:
%b Numele sucursalei.
%r Numărul actual al revizuirii sau hgrevformat stil pentru hg.
In hgrevformat se fac aceste înlocuiri:
%r Numărul actual al reviziei locale.
%h Identificatorul actual al revizuirii globale.
In patch-format si nopatch-format se fac aceste înlocuiri:
%p Numele patch-ului cel mai de sus aplicat (şir-aplicat).
%u Numărul de plasturi neaplicați (şir neaplicat).
%n Numărul de plasturi aplicate.
%c Numărul de plasturi neaplicați.
%a Numărul tuturor patch-urilor.
%g Numele celor activi mq paznici (hg backend).
%G Numărul de activi mq paznici (hg backend).
Nu toate backend-urile VCS trebuie să accepte toate înlocuirile. Pentru nvcsformats nu există înlocuitori
executat deloc, este doar un șir.
ciudățenii
Dacă doriți să utilizați %b (bold off) extindere promptă în Formate, care se extinde %b în sine,
utilizare %%b. Asta va cauza vcs_info extindere pentru a înlocui %%b cu %b, astfel încât zsh's
mecanismul de extindere prompt poate face față. În mod similar, a preda %b din format ramură,
utilizare %%%%b. Ne pare rău pentru acest inconvenient, dar nu poate fi evitat cu ușurință. Din fericire, facem
nu se ciocnește cu o mulțime de expansiuni prompte și acest lucru trebuie făcut doar pentru acestea.
pilotă Asistență
pilotă nu este un sistem de control al versiunilor, prin urmare acesta nu este implementat ca backend. Aceasta
poate ajuta la urmărirea unei serii de patch-uri. Oamenii îl folosesc pentru a păstra un set de schimbări
doriți să utilizați pe lângă pachetele software (care sunt strâns integrate în pachet
procesul de construire - proiectul Debian face acest lucru pentru un număr mare de pachete). Cutie de pilota
ajută, de asemenea, dezvoltatorii individuali să țină evidența propriilor patch-uri pe deasupra versiunii reale
sisteme de control.
vcs_info integrarea încearcă să susțină ambele moduri de utilizare a plapumii având două ușor
diferite moduri de operare: modul „addon” și modul „autonom”).
Pentru ca modul „addon” să devină activ vcs_info trebuie să fi detectat deja o versiune reală
sistem de control care controlează directorul. Dacă acesta este cazul, un director care deține
trebuie găsite plasturi de pilota. Directorul respectiv este configurabil prin `QUILT_PATCHES'
variabilă de mediu. Dacă acea variabilă există valoarea ei este folosită, în caz contrar valoarea
`patch-uri' este asumat. Valoarea de la $QUILT_PATCHES poate fi suprascris folosind
"petice-pilasuri" stil. (Notă: puteți utiliza vcs_info pentru a păstra valoarea de $QUILT_PATCHES
corectează tot timpul prin intermediul post-pilota cârlig).
Când directorul în cauză este găsit, se presupune că quilt este activ. Pentru a aduna mai mult
informație, vcs_info caută un director numit `.pc'; Quilt folosește acel director pentru
urmăriți starea sa actuală. Dacă acest director nu există, știm că quilt nu a făcut
orice în directorul de lucru (citiți: încă nu au fost aplicate patch-uri).
Dacă se aplică plasturi, vcs_info va încerca să afle care. Dacă vrei să știi care
patch-urile unei serii nu sunt încă aplicate, trebuie să activați devine neaplicat stil în
contextul potrivit.
vcs_info permite un control foarte detaliat asupra modului în care sunt prezentate informațiile adunate
(vezi secțiunile de mai jos, Stiluri si cârlige in vcs_info), toate acestea sunt documentate mai jos.
Rețineți că există o serie de alte sisteme de urmărire a patch-urilor care funcționează pe lângă un anumit
sistem de control al versiunilor (cum ar fi stgit pentru merge, mq pentru hg); configurația pentru sisteme
ca acestea sunt, în general, configurate în același mod ca și cuvertură sprijini.
În cazul în care cuvertură suportul funcționează în modul „addon”, șirul produs este disponibil ca a
înlocuire simplă a formatului (%Q mai exact), care poate fi folosit în Formate si
formate de acțiune; vezi mai jos pentru detalii).
Dacă, pe de altă parte, codul de asistență funcționează în modul „autonom”, vcs_info voi
preface de parcă cuvertură au fost un sistem real de control al versiunilor. Asta înseamnă că versiunea
identificatorul sistemului de control (care altfel ar fi ceva de genul „svn” sau „cvs”) va fi
setată la `- pilota-'. Acest lucru are implicații asupra contextului stilului utilizat în care se află acest identificator
al doilea element. vcs_info va fi completat o valoare adecvată pentru „repozitivul”
directorul rădăcină și șirul care conține informațiile despre starea quilt va fi
disponibil ca înlocuitor „diverse” (și %Q pentru compatibilitate cu modul „addon”.
Ceea ce rămâne de discutat este modul în care este detectat modul „autonom”. Detectarea în sine este a
serie de căutări pentru directoare. Puteți avea această detectare activată tot timpul în
fiecare director care nu este altfel sub controlul versiunilor. Dacă știi că există doar un
set limitat de copaci unde doriți vcs_info pentru a încerca să cauți Quilt în
Modul „autonom” pentru a minimiza cantitatea de căutare la fiecare apel către vcs_info, Există
o serie de moduri de a face asta:
În esență, detectarea modului „autonom” este controlată de un stil numit
`pilota-de sine stătătoare'. Este un stil șir și valoarea lui poate avea efecte diferite. The
cele mai simple valori sunt: `mereu' pentru a rula detectarea de fiecare dată vcs_info este rulat și `nu' la
dezactivați complet detectarea.
Dacă valoarea de pilota-de sine stătătoare este altceva, este interpretat diferit. Dacă
valoare este numele unei variabile scalare valoarea acelei variabile este verificată și că
valoarea este folosită în același mod „întotdeauna”/„niciodată” ca cel descris mai sus.
Dacă valoarea de pilota-de sine stătătoare este o matrice, elementele acelei matrice sunt folosite ca
nume de director sub care doriți ca detectarea să fie activă.
If pilota-de sine stătătoare este o matrice asociativă, cheile sunt luate ca nume de director sub
pe care doriți ca detectarea să fie activă, dar numai dacă valoarea corespunzătoare este
șir `adevărat'.
Nu în ultimul rând, dacă valoarea de pilota-de sine stătătoare este numele unei funcții, the
funcția este apelată fără argumente și valoarea returnată decide dacă detectarea ar trebui
fii activ. O valoare returnată „0” este adevărată; o valoare returnată diferită de zero este interpretată ca falsă.
Rețineți, dacă există atât o funcție, cât și o variabilă cu numele de pilota-de sine stătătoare,
funcția va avea prioritate.
Funcţie Descrieri (Public API)
vcs_info [contextul utilizatorului]
Funcția principală, care rulează toate backend-urile și adună toate datele în
${vcs_info_msg_*_}. Aceasta este funcția de la care doriți să apelați precmd daca vrei
pentru a include informații actualizate în solicitarea dvs. (vezi Variabil descriere de mai jos).
Dacă este dat un argument, acel șir va fi folosit în loc de lipsă în
contextul utilizatorului domeniul contextului stilistic.
vcs_info_hookadd
Înregistrează static un număr de funcții pentru un cârlig dat. Cârligul trebuie să fie
dat ca prim argument; ceea ce urmează este o listă de nume de funcții de cârlig la
înregistrează-te la cârlig. `+vi-' prefixul trebuie lăsat afară. Vedea cârlige in
vcs_info mai jos pentru detalii.
vcs_info_hookdel
Scoateți funcțiile cârlig dintr-un cârlig dat. Cârligul trebuie dat ca primul
argument non-opțiune; ceea ce urmează este o listă de nume de funcții de cârlig de anulat
din cârlig. Dacă `-a' este folosit ca prim argument, toate apariții ale
funcțiile sunt neînregistrate. În caz contrar, numai ultima apariție este eliminată (dacă a
funcția a fost înregistrată la un cârlig de mai multe ori) . `+vi-' prefixul trebuie să fie
lăsat aici. Vedea cârlige in vcs_info mai jos pentru detalii.
vcs_info_lastmsg
Emite ultimul ${vcs_info_msg_*_} valoare. Ia în considerare valoarea
utilizare-prompt-escapes stil în ':vcs_info:formats:command:-all-'. De asemenea, doar imprimă
max-exporturi valori.
vcs_info_printsys [contextul utilizatorului]
Imprimă o listă a tuturor sistemelor de control al versiunilor acceptate. Util pentru a afla posibil
contexte (și care dintre ele sunt activate) sau valori pentru dezactivați stil.
vcs_info_setsys
Inițializează vcs_infolista internă a backend-urilor disponibile. Cu această funcție, tu
poate adăuga suport pentru noile VCS-uri fără a reporni shell-ul.
Toate funcțiile sunt numite VCS_INFO_* sunt numai pentru uz intern.
Variabil Descriere
${vcs_info_msg_N_} (Rețineți liniutul de subliniere de la urmă)
Unde N este un număr întreg, de exemplu, vcs_info_msg_0_. Aceste variabile sunt stocarea pentru
mesajul informativ ultimul vcs_info apelul s-a adunat. Acestea sunt puternice
conectat la Formate, formate de acțiune si nvcsformats stilurile descrise mai sus.
Aceste stiluri sunt liste. Primul membru al listei se extinde în
${vcs_info_msg_0_}, al doilea în ${vcs_info_msg_1_} iar al N-lea în
${vcs_info_msg_N-1_}. (Vezi max-exporturi stilul de mai sus.)
Toate variabilele sunt numite VCS_INFO_* sunt numai pentru uz intern.
cârlige in vcs_info
Cârligele sunt locuri în vcs_info unde puteți rula propriul cod. Codul respectiv poate comunica
cu codul care l-a numit și prin acesta, schimbați comportamentul sistemului.
Pentru configurare, cârligele schimbă contextul stilului:
:vcs_info:vcs-string+nume-cârlig:contextul utilizatorului:repo-root-name
Pentru a înregistra funcții într-un cârlig, trebuie să le enumerați în cârlige stilul în
context adecvat.
Exemplu:
zstyle ':vcs_info:*+foo:*' cârlige bar Baz
Acest lucru înregistrează funcții la cârligul „foo” pentru toate backend-urile. Pentru a evita spațiul de nume
probleme, toate numele funcțiilor înregistrate sunt predate de un `+vi-', deci funcțiile reale
numit pentru cârligul „foo” sunt `+vi-bar' și `+vi-baz'.
Dacă doriți să înregistrați o funcție într-un hook, indiferent de contextul actual, dvs
poate folosi vcs_info_hookadd funcţie. Pentru a elimina o funcție care a fost adăugată astfel, aplicația
vcs_info_hookdel funcția poate fi utilizată.
Dacă ceva pare ciudat, puteți activa stilul boolean „debug” în contextul potrivit
iar codul hook-calling va imprima ceea ce a încercat să execute și dacă funcția în
întrebarea a existat.
Când înregistrați mai multe funcții la un cârlig, toate funcțiile sunt executate una după
altul până când o funcție returnează diferit de zero sau până când toate funcțiile au fost apelate.
Sunt executate funcții de cârlig sensibile la context înainte cele înregistrate static (cele
adăugat de vcs_info_hookadd).
Puteți trece date între funcții printr-o matrice asociativă, datele utilizatorului. De exemplu:
+vi-git-myfirsthook(){
user_data[myval]=$myval
}
+vi-git-mysecondhook(){
# do ceva cu ${user_data[myval]}
}
Există o serie de variabile care sunt speciale în contexte de cârlig:
putrezi Valoarea returnată pe care sistemul hook o va returna apelantului. Valoarea implicită este an
întreg „zero”. Dacă și cum s-a schimbat putrezi value modifică execuția apelantului
depinde de carlig specific. Consultați documentația cârligului de mai jos pentru detalii.
hook_com
O matrice asociată care este utilizată pentru comunicarea bidirecțională de la apelant
pentru a conecta funcții. Cheile folosite depind de cârligul specific.
context
Contextul activ al cârligului. Funcțiile care doresc să modifice această variabilă ar trebui
faceți-l mai întâi în domeniu local.
tu VCS curent după ce a fost detectat. Aceleași valori ca în activare/dezactivare
sunt folosite stilul. Disponibil în toate cârligele cu excepția lansare.
În sfârșit, lista completă a cârligelor disponibile în prezent:
lansare
Apelat după pornire vcs_info dar înainte ca VCS-ul din acest director să fie determinat.
Poate fi folosit pentru a dezactiva vcs_info temporar dacă este necesar. Când putrezi este setat la
1, vcs_info avortează și nu face nimic; când este setat la 2, vcs_info stabilește totul ca
dacă nu era activ controlul versiunilor și iese.
pre-obține date
La fel ca lansare dar după ce VCS a fost detectat.
gen-hg-bookmark-string
Apelat în backend-ul Mercurial atunci când este generat un șir de marcaj; cel
obţine-revizuire si obține-marcaje stilurile trebuie să fie adevărate.
Acest cârlig primește numele marcajelor Mercurial care vcs_info culese de la
`hg'.
Dacă un marcaj este activ, tasta ${hook_com[hg-active-bookmark]} este setat la ei
Nume. Altfel, cheia este nesetata.
La setare putrezi la non-zero, șirul în ${hook_com[hg-bookmark-string]} va fi
Folosit în %m scăpa înăuntru Formate si formate de acțiune și va fi disponibil în
global backend_misc matrice ca ${backend_misc[marcaje]}.
gen-applied-string
Chemat în merge (cu stgit sau în timpul rebazării sau îmbinării) și hg (cu mq) backend-uri
și, în cuvertură sprijin atunci când şir-aplicat este generată; cel folosi-pilota zstyle
trebuie să fie adevărat pentru cuvertură ( mq si stgit backend-urile sunt active implicit).
Acest cârlig primește numele tuturor patch-urilor aplicate care vcs_info adunate până acum în
ordinea opusă, ceea ce înseamnă că primul argument este patch-ul cel mai de sus și
si asa mai departe.
La setare putrezi la non-zero, șirul în ${hook_com[applied-string]} va fi
Folosit în %m scăpa înăuntru Formate si formate de acțiune; va fi disponibil în
global backend_misc matrice ca $backend_misc[patches]}; și va fi disponibil ca
%p în patch-format si nopatch-format stiluri.
gen-unapplied-string
Chemat în merge (cu stgit sau în timpul rebasei), și hg (cu mq) backend și în
cuvertură sprijin atunci când şir neaplicat este generată; cel devine neaplicat stilul trebuie
fii adevărat.
Acest cârlig primește numele tuturor patch-urilor neaplicate care vcs_info colectate până acum
în ordine opusă, ceea ce înseamnă că primul argument este patch-ul următor în linie
să fie aplicate și așa mai departe.
La setare putrezi la non-zero, șirul în ${hook_com[unapplied-string]} va fi
disponibil ca %u în patch-format si nopatch-format stiluri.
gen-mqguards-string
Chemat în hg backend când garda-snur este generată; cel obţine-mq stilul trebuie să fie
adevărat (implicit).
Acest cârlig primește numele oricărui activ mq paznici.
La setare putrezi la non-zero, șirul în ${hook_com[guards-string]} va fi folosit
în %g scăpa în patch-format si nopatch-format stiluri.
nu-vcs Acest cârlige este apelat atunci când nu a fost detectat niciun sistem de control al versiunilor.
„hook_comparametrul ' nu este utilizat.
post-backend
Apelat imediat ce backend-ul a terminat de colectat informații.
„hook_com' cheile disponibile sunt ca pentru set-mesaj cârlig.
post-pilota
Chemat după cuvertură sprijinul se face. Următoarele informații sunt transmise ca
argumente pentru cârlig: 1. modul de suport pentru pilota („addon” sau „autonom”); 2. cel
directorul care conține seria de patch-uri; 3. directorul care deține pilotele
informații de stare (directorul `.pc') sau șirul "-nopc-" dacă acel director
nu a fost găsit.
Parametrul „hook_com” nu este utilizat.
set-ramură-format
Apelat înainte de `format ramură' este setat. Singurul argument pentru cârlig este formatul
care este configurat în acest moment.
„hook_com' cheile luate în considerare sunt `ramură' și `Revizuire'. Sunt setate la
valorile descoperite până acum de vcs_info și orice modificare va fi utilizată direct atunci când
înlocuirea efectivă se face.
If putrezi este setat la non-zero, șirul în ${hook_com[branch-replace]} va fi folosit
neschimbat ca `%b' înlocuirea în variabilele stabilite de vcs_info.
set-hgrev-format
Apelat înainte de un `hgrevformat' este setat. Singurul argument pentru cârlig este formatul
care este configurat în acest moment.
„hook_com' cheile luate în considerare sunt `hașiș' și `localrev'. Sunt setate la
valorile descoperite până acum de vcs_info și orice modificare va fi utilizată direct atunci când
înlocuirea efectivă se face.
If putrezi este setat la non-zero, șirul în ${hook_com[rev-replace]} va fi folosit
neschimbat ca `%i' înlocuirea în variabilele stabilite de vcs_info.
pre-addon-quilt
Acest cârlig este folosit când vcs_infoFuncționalitatea pilotă a lui este activă în modul „supliment”.
(pilota folosită deasupra unui sistem real de control al versiunii). Este activat chiar înainte
se întreprinde orice acțiune specifică pentru pilota.
Setarea `putrezivariabila din acest cârlig la o valoare diferită de zero evită orice plapumă
acțiuni specifice să nu fie executate deloc.
set-patch-format
Acest cârlig este folosit pentru a controla unele dintre posibilele expansiuni în patch-format si
nopatch-format stiluri cu sisteme de cozi de patch-uri, cum ar fi quilt, mqueue și altele asemenea.
Acest cârlig este folosit în merge, hg si cuvertură backend-uri.
Cârligul permite controlul %p (${hook_com[applied]}) Şi %u
(${hook_com[unapplied]}) extindere în toate backend-urile care folosesc cârligul. Cu
mercurial backend, the %g (${hook_com[gărzi]}) extinderea este controlabilă în
pe lângă asta.
If putrezi este setat la non-zero, șirul în ${hook_com[patch-replace]} va fi folosit
neschimbat în loc de un format extins de la patch-format or nopatch-format.
set-mesaj
Apelat de fiecare dată înainte de un `vcs_info_msg_N_mesajul este setat. Este nevoie de două
argumente; primul fiind `N' în numele variabilei mesaj, al doilea este
configurat în prezent Formate or formate de acțiune.
Există un număr de `hook_com', care sunt folosite aici: `acțiune', `ramură',
`de bază', `nume de bază', `subdir', `pus în scenă', `neînscenat', `Revizuire', `misc', `tu' și
unul `miscN' intrare pentru fiecare câmp de date specific pentru backend (N începând de la zero). ei
sunt setate la valorile stabilite până acum de vcs_info și orice modificare va fi folosită
direct când se face înlocuirea efectivă.
Deoarece acest cârlig este declanșat de mai multe ori (o dată pentru fiecare configurat Formate or
formate de acțiune), fiecare dintre `hook_com' cheile menționate mai sus (cu excepția miscN
intrări) are un `_orig', deci chiar dacă ai schimbat o valoare după bunul tău plac
puteți obține în continuare valoarea inițială în următoarea rulare. Schimbarea `_orig' valori
probabil nu este o idee bună.
If putrezi este setat la non-zero, șirul în ${hook_com[message]} va fi folosit
neschimbat ca mesajul de vcs_info.
Dacă toate acestea sună destul de confuz, aruncați o privire la Exemple secțiunea de mai jos și, de asemenea
în Diverse/vcs_info-exemple fișier în sursa Zsh. Acestea conțin un cod explicativ.
Exemple
Nu folosi vcs_info deloc (chiar dacă este în promptul dvs.):
zstyle ':vcs_info:*' permite NONE
Dezactivați backend-urile pentru bzr si SVK:
zstyle ':vcs_info:*' dezactivați bzr SVK
Dezactivează totul dar bzr si SVK:
zstyle ':vcs_info:*' permite bzr SVK
Oferiți formate speciale pentru merge:
zstyle ':vcs_info:git:*' Formate ' GIT, BEBELUS! [%b]'
zstyle ':vcs_info:git:*' formate de acțiune ' GIT ACȚIUNE! [%b|%a]'
TOATE %x extindere în tot felul de formate (Formate, formate de acțiune, format ramură, numele tau
it) se fac folosind `zformat'încorporat din `zsh/zutil' modulul. Asta înseamnă că poți
face totul cu astea %x elementele pe care le suportă zformat. În special, dacă vrei
ceva care este cu adevărat lung pentru a avea o lățime fixă, ca un haș într-un mercurial
branchformat, puteți face acest lucru: %12.12i. Acest lucru va micșora hash-ul de 40 de caractere la 12
personaje principale. Forma este de fapt `%minute.maxx'. Mai mult este posibil. Vezi secțiunea
„Modulul zsh/zutil” în zshmodules(1) pentru detalii.
Folosiți mai repede bzr backend
zstyle ':vcs_info:bzr:*' folosire-simplu adevărat
Dacă folosiți folosire-simplu, vă rugăm să raportați dacă face `the-right-thing[tm]'.
Afișați numărul de revizuire în galben pentru bzr si SVN:
zstyle ':vcs_info:(svn|bzr):*' \
format ramură '%b%{'${fg[galben]}'%}:%r'
Dacă doriți culori, asigurați-vă că includeți codurile de culoare %{...%} daca vrei sa folosesti
șirul oferit de vcs_info în îndemnuri.
Iată cum să tipăriți informațiile VCS ca o comandă (nu într-un prompt):
alias vcsi='vcs_info comanda; vcs_info_lastmsg'
În acest fel, puteți defini chiar și formate diferite pentru ieșire prin vcs_info_lastmsg în
':vcs_info:*:comandă:*' spatiu de nume.
Acum, așa cum am promis, un cod care folosește cârlige: să zicem, ați dori să înlocuiți șirul „svn” cu
„subversiune” în vcs_info's %s Formate înlocuire.
În primul rând, vom spune vcs_info pentru a apela o funcție la popularea variabilelor de mesaj cu care
informatiile adunate:
zstyle ':vcs_info:*+set-message:*' cârlige svn2subversion
Nimic nu se intampla. Ceea ce este rezonabil, deoarece nu am definit încă funcția reală. La
vedeți ce încearcă să facă subsistemul hooks, activați `depanastilul:
zstyle ':vcs_info:**+*:*' depana adevărat
Asta ar trebui să vă dea o idee despre ce se întâmplă. Mai exact, funcția pe care o suntem
caut este `+vi-svn2subversion'. Rețineți că `+vi-' prefix. Deci, totul este în ordine,
la fel de documentat. Când ați terminat de verificat rezultatul de depanare, dezactivați-o din nou:
zstyle ':vcs_info:**+*:*' depana fals
Acum, să definim funcția:
funcţie +vi-svn2subversion() {
[[ ${hook_com[vcs_orig]} == SVN ]] && hook_com[vcs]=subversiune
}
Destul de simplu. Și ar fi putut fi și mai simplu, dacă ne-am fi înregistrat funcția
într-un context mai puţin generic. Dacă o facem numai în `SVNcontextul backend-ului, nu avem nevoie
pentru a testa care backend-ul activ este:
zstyle ':vcs_info:svn+set-message:*' cârlige svn2subversion
funcţie +vi-svn2subversion() {
hook_com[vcs]=subversiune
}
Și, în sfârșit, un exemplu puțin mai elaborat, care folosește un cârlig pentru a crea un personalizat
șir de marcaj pentru hg backend.
Din nou, începem prin a înregistra o funcție:
zstyle ':vcs_info:hg+gen-hg-bookmark-string:*' cârlige hgbookmarks
Și apoi definim `+vi-hgbookmarks funcţie:
funcţie +vi-hgbookmarks() {
# lipsă is la conectaţi toate semn de carte nume by
# virgule. Acest Amestecuri lucruri up a mic.
# Imagina, există unu tip of marcajele acea is
# special la te. Spune, deoarece este *ta* muncă.
# Acestea marcajele uite mereu ca acest: "SH/*"
# (deoarece ta inițiale sunt SH, pentru exemplu).
# Acest face il marcajele şir utilizare aceste
# marcaje. If există mai mult decât unu, it
# concatenează lor folosind virgule.
# marcajele întors by `hg' sunt disponibil in
# il funcții pozitional parametri.
local s="${(Mj:,:)@:#sh/*}"
# Acum, il comunicare cu il cod acea Apeluri
# il cârlig funcții is făcut de il hook_com[]
# hash. cheie at care il `gen-hg-bookmark-string'
# cârlig arată is `hg-bookmark-string'. Asa de:
hook_com[hg-bookmark-string]=$s
# Și la semnal acea we vrea la utilizare il şir we
# doar generat, set il special variabil `ret` la
# ceva alte decât il lipsă zero:
ret=1
reveni 0
}
Câteva exemple mai lungi și fragmente de cod care ar putea fi utile sunt disponibile în exemple
fișier aflat la Misc/vcs_info-examples în directorul sursă Zsh.
Aceasta se încheie turul nostru ghidat prin zsh's vcs_info.
PROMPT TEME
Instalare
Ar trebui să vă asigurați că toate funcțiile de la Funcții/Promptions directorul sursei
distribuția sunt disponibile; toate încep cu șirul `prompt_', cu excepția
functie speciala`promptinit'. De asemenea, aveți nevoie de `culori'funcția de la Funcții/Diverse.
Este posibil ca toate aceste funcții să fi fost deja instalate pe sistemul dumneavoastră; dacă nu, o vei face
trebuie să le găsiți și să le copiați. Directorul ar trebui să apară ca unul dintre elementele
il fpath matrice (acest lucru ar trebui să fie deja cazul dacă au fost instalate) și cel puțin
funcţie promptinit ar trebui să fie încărcat automat; va încărca automat restul. În cele din urmă, să
inițializați utilizarea sistemului pe care trebuie să îl apelați promptinit funcţie. Următoarele
cod în dvs .zshrc va aranja pentru aceasta; presupunem că funcțiile sunt stocate în
director ~/myfns:
fpath=(~/myfns $fpath)
încărcare automată -U promptinit
promptinit
Temă Selecţie
Folosește prompt comanda pentru a selecta tema preferată. Această comandă poate fi adăugată la dvs
.zshrc în urma apelului către promptinit pentru a începe deja zsh cu o temă
selectat.
prompt [ -c | -l ]
prompt [ -p | -h ] [ temă ... ]
prompt [ -s ] temă [ arg ... ]
Setați sau examinați tema promptului. Fără opțiuni și a temă argument, tema
cu acest nume este setată ca temă curentă. Temele disponibile sunt determinate la
timpul de rulare; folosește -l opțiunea de a vedea o listă. Specialul temă `aleator' selectează la
aleatoriu una dintre temele disponibile și setează solicitarea la asta.
În unele cazuri temă poate fi modificat de unul sau mai multe argumente, care ar trebui să fie
dat după numele temei. Consultați ajutorul pentru fiecare temă pentru descrieri ale acestora
argumente.
Opțiunile sunt:
-c Afișați tema selectată în prezent și parametrii acesteia, dacă există.
-l Listați toate temele de prompt disponibile.
-p Previzualizează tema numită de temă, sau toate temele dacă nu temă este dată.
-h Afișați ajutor pentru tema numită de temă, sau pentru prompt functia daca nu
temă este dată.
-s set temă ca temă curentă și starea de salvare.
prompt_temă_înființat
Fiecare disponibil temă are o funcție de configurare care este apelată de prompt funcție la
instalați acea temă. Această funcție poate defini și alte funcții, după cum este necesar
mențineți promptul, inclusiv funcțiile utilizate pentru a previzualiza promptul sau pentru a oferi ajutor
pentru utilizarea sa. În mod normal, nu ar trebui să apelați direct funcția de configurare a unei teme.
ZLE FUNCȚII
Widget-urile
Toate aceste funcții implementează widget-uri ZLE definite de utilizator (vezi zshzle(1)) care poate fi legat
la apăsările de taste în shell-uri interactive. Pentru a le folosi, dvs .zshrc ar trebui să conțină linii ale
formă
încărcare automată funcţie
vedea -N funcţie
urmată de un adecvat bindkey comandă pentru a asocia funcția cu o secvență de taste.
Legăturile sugerate sunt descrise mai jos.
funcții de cuvinte în stil bash
Dacă sunteți în căutarea unor funcții pentru a implementa mutarea și editarea cuvintelor în
mod de bash, în care numai caracterele alfanumerice sunt considerate caractere de cuvinte,
puteți utiliza funcțiile descrise în secțiunea următoare. Următorul este
suficient:
încărcare automată -U select-stil-cuvânt
select-stil-cuvânt pocni
înainte-cuvânt-potrivire, potrivire-cuvânt-înapoi
ucide-cuvânt-potrivire, potrivire-cuvânt-ucidere-înapoi
transpune-cuvinte-potrivire, majuscule-cuvânt-potrivire
potrivire-majuscule-cuvinte, potrivire-în jos-majuscule-cuvânt
select-stil-cuvânt, potrivire-cuvânt-context, potrivire-cuvinte-cu-stil
Cei opt `-MeciFuncțiile sunt înlocuitoare pentru widget-urile încorporate
fără sufix. În mod implicit, ei se comportă într-un mod similar. Cu toate acestea, prin utilizare
a stilurilor și a funcției select-stil-cuvânt, felul în care se potrivesc cuvintele poate fi
modificat.
Cea mai simplă modalitate de a configura funcțiile este utilizarea select-stil-cuvânt, Care
poate fi fie apelată ca o funcție normală cu argumentul corespunzător, fie invocată
ca un widget definit de utilizator care va solicita primul caracter al stilului cuvântului
a fi folosit. Prima dată când este invocat, cel opt -Meci funcțiile vor
înlocuiește automat versiunile încorporate, astfel încât acestea nu trebuie să fie încărcate
explicit.
Stilurile de cuvinte disponibile sunt următoarele. Se examinează doar primul personaj.
pocni Caracterele cuvintelor sunt doar caractere alfanumerice.
normală. Ca și în operarea normală a shell-ului: caracterele cuvintelor sunt caractere alfanumerice
plus orice caractere prezente în șirul dat de parametru $WORDCHARS.
coajă Cuvintele sunt argumente complete ale comenzii shell, eventual inclusiv complete
șiruri de caractere citate sau orice simboluri speciale pentru shell.
spatiu alb
Cuvintele sunt orice set de caractere delimitat de spații albe.
lipsă
Restabiliți setările implicite; aceasta este de obicei la fel ca `normală.'.
Toate în afară de `lipsă' poate fi introdus ca un caracter majuscule, care are același
efect, dar cu potrivirea subcuvintelor activată. În acest caz, cuvinte cu majuscule
caracterele sunt tratate special: fiecare serie separată de caractere majuscule sau un
caracterul majuscul urmat de orice număr de alte caractere, este considerat a
cuvânt. Stilul subcuvinte-gamă poate furniza un interval de caractere alternativ la
implicit `[:superior:]'; valoarea stilului este tratată ca conținutul unui `[...]'
model (rețineți că suporturile exterioare nu trebuie furnizate, ci doar acelea
zonele denumite înconjurătoare).
Mai mult control poate fi obținut folosind zstyle comanda, așa cum este descris în
zshmodules(1). Fiecare stil este privit în context :zle:widget Unde widget is
numele widget-ului definit de utilizator, nu numele funcției care îl implementează,
deci în cazul definiţiilor furnizate de select-stil-cuvânt corespunzătoare
contextele sunt :zle:forward-word, și așa mai departe. Functia select-stil-cuvânt în sine
definește întotdeauna stiluri pentru context `:zle:*' care poate fi depășit de mai multe
modele specifice (mai lungi), precum și contexte explicite.
Stilul stilul cuvântului specifică regulile de utilizat. Acest lucru poate avea următoarele
valori.
normală. Utilizați regulile shell standard, adică alfanumerice și $WORDCHARS, dacă nu
depășite de stiluri cuvinte-caractere or Cuvânt clasă.
specificată
similar normală., Dar caracterele specificate și nu și
alfanumerice, sunt considerate caractere de cuvinte.
nespecificat
Negarea specificatului. Caracterele date sunt cele care vor nu be
considerat parte a unui cuvânt.
coajă Cuvintele sunt obținute prin utilizarea regulilor sintactice pentru generarea comenzii shell
argumente. În plus, jetoane speciale care nu sunt niciodată argumente de comandă
precum `()' sunt, de asemenea, tratate ca cuvinte.
spatiu alb
Cuvintele sunt șiruri de caractere delimitate de spații albe.
Primele trei dintre aceste reguli folosesc de obicei $WORDCHARS, dar valoarea din
parametrul poate fi suprascris de stil cuvinte-caractere, care funcționează exact în
la fel ca $WORDCHARS. În plus, stilul Cuvânt clasă folosește clasa de caractere
sintaxă pentru a grupa caractere și are prioritate cuvinte-caractere dacă ambele sunt setate.
Cuvânt clasă stilul nu include parantezele din jur ale personajului
clasă; de exemplu, `-:[:alnum:]' este valabil Cuvânt clasă să includă pe toate
alfanumerice plus caracterele `-' și `:'. Fii atent inclusiv cu `]', `^' și
`-' deoarece acestea sunt speciale în clasele de caractere.
stilul cuvântului poate avea și `-subcuvânt' atașat la valoarea sa pentru a activa subcuvânt
potrivire, așa cum este descris mai sus.
Stilul skip-cars este util mai ales pentru transpune-cuvinte și funcții similare.
Dacă este setat, oferă un număr de caractere începând de la poziția cursorului, ceea ce va face
nu pot fi considerate parte a cuvântului și sunt tratate ca spațiu, indiferent de ce
sunt de fapt. De exemplu, dacă
zstyle „:zle:transpose-words” skip-cars 1
a fost stabilit și transpune-cuvinte-potrivire este apelat cu cursorul pe X of
fooXbar, În cazul în care X poate fi orice caracter, atunci expresia rezultată este barXfoo.
Controlul cu granulație mai fină poate fi obținut prin setarea stilului cuvânt-context la o matrice
de perechi de intrări. Fiecare pereche de intrări este formată din a model și subcontext.
Argumentul shell pe care se află cursorul se potrivește cu fiecare model pe rând până când
unul se potrivește; dacă o face, contextul este extins cu două puncte și corespunzătoare
subcontext. Rețineți că testul se face față de cuvântul original de pe linie, cu
fără dezlipire de ghilimele. Între cuvinte se face o manipulare specială: curentul
contextul este examinat și dacă acesta conține șirul înapoi, cuvântul dinaintea cursorului
este luat în considerare, altfel cuvântul după cursor este luat în considerare. Sunt date câteva exemple
de mai jos.
Stilul skip-spații albe-în primul rând este folosit doar cu înainte-cuvânt widget. Daca
este setat la adevărat, atunci înainte-cuvânt omite orice caractere non-cuvânt, urmat de oricare
caractere non-cuvânt: aceasta este similară cu comportamentul altor cuvinte orientate
widget-uri, precum și cel folosit de alți editori, dar diferă de standard
comportamentul zsh. Atunci când se utilizează select-stil-cuvânt widget-ul este setat în context
:zle:* la adevărat dacă cuvântul stil este pocni si fals in caz contrar. Poate fi anulat
punându-l în contextul mai specific :zle:forward-word*.
Iată câteva exemple de utilizare a stilurilor, preluate de fapt din cele simplificate
interfață în select-stil-cuvânt:
zstyle ':zle:*' stilul cuvântului standard
zstyle ':zle:*' cuvinte-caractere ''
Implementează gestionarea cuvintelor în stil bash pentru toate widget-urile, adică numai alfanumerice
caractere de cuvinte; echivalent cu setarea parametrului WORDCHARS gol pentru dat
context.
stil ':zle:*ucide*' stilul cuvântului spaţiu
Folosește cuvinte delimitate de spațiu pentru widget-uri cu cuvântul „ucide” în nume. Nici
a stilurilor cuvinte-caractere nici Cuvânt clasă este folosit în acest caz.
Iată câteva exemple de utilizare a cuvânt-context stil pentru a extinde contextul.
zstyle ':zle:*' cuvânt-context \
„*/*” fişier "[[:spaţiu:]]" spatiu alb
zstyle „:zle:transpose-words:whitspace” stilul cuvântului coajă
zstyle „:zle:transpose-words:filename” stilul cuvântului normală.
zstyle „:zle:transpose-words:filename” cuvinte-caractere ''
Aceasta oferă două moduri diferite de utilizare transpune-cuvinte in functie de daca
cursorul este pe spații albe între cuvinte sau pe un nume de fișier, aici orice cuvânt care conține a
/. Pe spații albe, argumentele complete așa cum sunt definite de regulile standard de shell vor fi
transpus. Într-un nume de fișier, doar litere alfanumerice vor fi transpuse. În altă parte,
cuvintele vor fi transpuse folosind stilul implicit pentru :zle:transpose-words.
Potrivirea cuvintelor și toată manipularea zstyle setările este de fapt implementată
prin functie potrivire-cuvinte-cu-stil. Acesta poate fi folosit pentru a crea noi definite de utilizator
widget-uri. Funcția de apelare ar trebui să seteze parametrul local curcontext la
:zle:widget, creați parametrul local cuvinte_potrivite și sunați potrivire-cuvinte-cu-stil
fara argumente. La întoarcere, cuvinte_potrivite va fi setat la o matrice cu
elemente: (1) începutul liniei (2) cuvântul dinaintea cursorului (3) orice non-cuvânt
caractere între acel cuvânt și cursor (4) orice caracter non-cuvânt la
poziția cursorului plus orice caractere rămase fără cuvânt înainte de următorul cuvânt,
inclusiv toate caracterele specificate de skip-cars stil, (5) cuvântul la sau
după cursor (6) orice caractere non-cuvânt care urmează cuvântul respectiv (7) the
restul liniei. Oricare dintre elemente poate fi un șir gol; chemarea
funcția ar trebui să testeze acest lucru pentru a decide dacă își poate îndeplini funcția.
Este posibil să treci opțiuni cu argumente către potrivire-cuvinte-cu-stil a trece peste
utilizarea stilurilor. Opțiunile sunt:
-w stilul cuvântului
-s skip-cars
-c Cuvânt clasă
-C cuvinte-caractere
-r subcuvinte-gamă
De exemplu, potrivire-cuvinte-cu-stil -w coajă -c 0 poate fi folosit pentru a extrage comanda
argument în jurul cursorului.
cuvânt-context stilul este implementat de funcție potrivire-cuvânt-context. Acest
de obicei, nu ar trebui să fie apelat direct.
copie-cuvânt-anterior
Acest widget funcționează ca o combinație de introduce-ultimul-cuvânt si copy-prev-shell-word.
Invocările repetate ale widget-ului preiau cuvintele anterioare din istoricul relevant
linia. Cu un argument numeric N, introduceți fișierul Nal-lea cuvânt din rândul istoriei; N Mai
fi negativ pentru a număra de la sfârșitul liniei.
If introduce-ultimul-cuvânt a fost folosit pentru a prelua ultimul cuvânt dintr-o istorie anterioară
linie, invocările repetate vor înlocui acel cuvânt cu cuvinte anterioare din același
linia.
În caz contrar, widget-ul se aplică cuvintelor de pe linia în curs de editare. The
widget stilul poate fi setat la numele unui alt widget la care ar trebui apelat
recupera cuvintele. Acest widget trebuie să accepte aceleași trei argumente ca și
introduce-ultimul-cuvânt.
ciclu-finalizare-pozitii
După inserarea unui șir neambiguu în linia de comandă, se bazează noua funcție
sistemul de completare poate ști despre mai multe locuri din acest șir unde caractere
lipsesc sau diferă de cel puțin unul dintre posibilele potriviri. Va fi atunci
plasați cursorul pe poziția pe care o consideră a fi cea mai interesantă, adică
cea în care se poate dezambigua între cât mai multe potriviri cu cât
tastarea cât mai puțin posibilă.
Acest widget permite ca cursorul să fie mutat cu ușurință în alte locuri interesante.
Poate fi invocat în mod repetat pentru a comuta între toate pozițiile raportate de
sistem de completare.
şterge-întregul-cuvânt-potrivire
Aceasta este o altă funcție care funcționează ca -Meci funcțiile descrise
imediat deasupra, adică folosirea stilurilor pentru a decide limitele cuvintelor. Cu toate acestea, este
nu este un înlocuitor pentru nicio funcție existentă.
Comportamentul de bază este de a șterge cuvântul din jurul cursorului. Nu există numeric
tratarea argumentelor; este luat în considerare doar cuvântul unic din jurul cursorului. Dacă
widgetul conține șirul ucide, textul eliminat va fi plasat în cutbuffer
pentru smulgerile viitoare. Acest lucru poate fi obținut prin definire ucide-tot-cuvânt-potrivire as
urmează:
vedea -N ucide-tot-cuvânt-potrivire şterge-întregul-cuvânt-potrivire
și apoi legarea widget-ului ucide-tot-cuvânt-potrivire.
în sus-sau-început-căutare, căutarea în jos sau la început
Aceste widget-uri sunt similare cu funcțiile încorporate în sus-sau-căutare si
în jos-sau-căutare: dacă într-un buffer cu mai multe linii se deplasează în sus sau în jos în interiorul
tampon, altfel caută o linie istorică care să se potrivească cu începutul curentului
linia. În acest caz, totuși, ei caută o linie care se potrivește cu linia curentă
până la poziția curentă a cursorului, în felul
istorie-început-căutare-înapoi si -redirecţiona, mai degrabă decât primul cuvânt de pe
linia.
editare-linie-comandă
Editați linia de comandă folosind editorul dvs. vizual, ca în ksh.
bindkey -M vicmd v editare-linie-comandă
extinde-absolut-cale
Extindeți numele fișierului sub cursor la o cale absolută, rezolvând simbolic
link-uri. Acolo unde este posibil, segmentul de cale inițial este transformat într-un director numit
sau trimitere la directorul principal al unui utilizator.
istorie-căutare-sfârșit
Această funcție implementează widget-urile istorie-început-căutare-înapoi-sfârşit si
istorie-început-căutare-înainte-sfârşit. Aceste comenzi funcționează prin apelarea mai întâi la
widget încorporat corespunzător (consultați „Controlul istoricului” în zshzle(1)) și apoi se deplasează
cursorul la sfârșitul liniei. Poziția inițială a cursorului este memorată și
restaurat înainte de a apela widget-ul încorporat a doua oară, astfel încât aceeași căutare
se repetă pentru a privi mai departe istoria.
Deși tu încărcare automată doar o singură funcție, comenzile pentru a o folosi sunt ușor
diferit deoarece implementează două widget-uri.
vedea -N istorie-început-căutare-înapoi-sfârşit \
istorie-căutare-sfârșit
vedea -N istorie-început-căutare-înainte-sfârşit \
istorie-căutare-sfârșit
bindkey „\e^P” istorie-început-căutare-înapoi-sfârşit
bindkey „\e^N” istorie-început-căutare-înainte-sfârşit
istoric-început-meniu-căutare
Această funcție implementează încă o altă formă de căutare a istoricului. Textul de dinainte
cursorul este folosit pentru a selecta linii din istoric, ca pt
istorie-început-căutare-înapoi cu excepția faptului că toate potrivirile sunt afișate numerotat
meniul. Tastând cifrele corespunzătoare, se inserează linia completă a istoricului. Rețineți că
zerourile de început trebuie introduse (sunt afișate numai atunci când este necesar pentru eliminare
ambiguitate). Se caută întreaga istorie; nu există nicio distincţie între
înainte și înapoi.
Cu un argument numeric, căutarea nu este ancorată la începutul liniei; cel
șirul introdus de utilizare poate apărea oriunde în rând în istoric.
Dacă numele widgetului conține `-Sfârșit' cursorul este mutat la sfârșitul liniei
introdus. Dacă numele widgetului conține `-spaţiu' orice spațiu din textul tastat este
tratat ca un wildcard și se poate potrivi cu orice (deci un spațiu principal este echivalent
a da un argument numeric). Ambele forme pot fi combinate, de exemplu:
vedea -N istoric-început-căutare-meniu-spațiu-sfârșit \
istoric-început-meniu-căutare
istorie-model-căutare
Funcția istorie-model-căutare implementează widget-uri care solicită un model
cu care să căutați istoricul înapoi sau înainte. Modelul este în
formatul obișnuit zsh, oricum ar putea fi primul caracter ^ pentru a ancora căutarea la
începutul liniei, iar ultimul caracter poate fi $ să ancoreze căutarea până la capăt
a liniei. Dacă căutarea nu a fost ancorată la sfârșitul liniei, cursorul este
poziționat imediat după modelul găsit.
Comenzile pentru a crea widget-uri care se pot lega sunt similare cu cele din exemplu
imediat deasupra:
încărcare automată -U istorie-model-căutare
vedea -N istorie-model-căutare-înapoi istorie-model-căutare
vedea -N istoric-model-căutare-înainte istorie-model-căutare
incarg Introducerea tastelor pentru acest widget cu cursorul plasat pe sau la stânga acestuia
un număr întreg face ca acel număr întreg să fie incrementat cu unu. Cu un argument numeric,
numărul este incrementat cu valoarea argumentului (decrementat dacă valoarea numerică
argumentul este negativ). Parametrul shell incarg poate fi setat să schimbe valoarea implicită
increment la altceva decât unul.
bindkey „^X+” incarg
incremental-complet-cuvânt
Acest lucru permite completarea incrementală a unui cuvânt. După pornirea acestei comenzi, o listă
opțiunile de completare pot fi afișate după fiecare caracter pe care îl tastați, ceea ce puteți
sterge cu ^H or DEL. Apăsând pe return acceptă finalizarea până acum și revine
la editarea normală (adică linia de comandă este nu executat imediat). Tu
poate lovi TAB pentru a face finalizarea normală, ^G a avorta înapoi la starea când tu
a început, și ^D pentru a enumera meciurile.
Acest lucru funcționează numai cu noul sistem de completare bazat pe funcții.
bindkey '^Xi' incremental-complet-cuvânt
insert-compus-char
Această funcție vă permite să compuneți caractere care nu apar pe tastatură
fi introdus în linia de comandă. Comanda este urmată de două taste
corespunzătoare caracterelor ASCII (nu există prompt). Pentru caracterele accentuate,
cele două taste sunt un caracter de bază urmat de un cod pentru accent, în timp ce pentru
alte caractere speciale cele două personaje împreună formează un mnemonic pentru
caracterul care trebuie introdus. Codurile cu două caractere sunt un subset al celor date de
RFC 1345 (vezi de exemplu http://www.faqs.org/rfcs/rfc1345.html).
Funcția poate fi urmată opțional de până la două caractere care îl înlocuiesc pe unul
sau ambele caractere citite de la tastatură; dacă ambele caractere sunt furnizate,
nu se citește nicio intrare. De exemplu, insert-compus-char a: poate fi folosit într-un widget
pentru a introduce un a cu umlaut în linia de comandă. Acest lucru are avantaje față de utilizare
cu un caracter literal că este mai portabil.
Pentru cele mai bune rezultate, zsh ar fi trebuit să fie construit cu suport pentru caractere multibyte
(configurat cu --enable-multibyte); cu toate acestea, funcția funcționează pentru cei limitati
interval de caractere disponibil în seturi de caractere pe un singur octet, cum ar fi ISO-8859-1.
Caracterul este convertit în reprezentarea locală și inserat în
linia de comandă la poziția cursorului. (Conversia se face în interiorul shell-ului,
folosind orice facilități oferite de biblioteca C.) Cu un argument numeric, the
caracterul și codul său sunt previzualizate în linia de stare
Funcția poate fi rulată în afara zle, caz în care tipărește caracterul (împreună
cu o linie nouă) la ieșirea standard. Intrarea este încă citită de la apăsarea tastelor.
Vedea insert-unicode-char pentru o modalitate alternativă de inserare a caracterelor Unicode
folosind numărul lor hexazecimal de caractere.
Setul de caractere accentuate este rezonabil complet până la caracterul Unicode
U+0180, setul de caractere speciale mai puțin. Cu toate acestea, este foarte sporadic de la
acel punct. Adăugarea de noi personaje este totuși ușoară; vezi functia
define-compuse-cars. Vă rugăm să trimiteți orice completări la [e-mail protejat].
Codurile pentru al doilea caracter atunci când sunt folosite pentru a accentua primul sunt următoarele.
Rețineți că nu orice personaj poate lua fiecare accent.
! Mormânt.
' Acut.
> Circumflex.
? Tilde. (Aceasta nu e ~ deoarece RFC 1345 nu presupune că acel caracter este prezent
pe tastatură.)
- Macron. (O bară orizontală deasupra caracterului de bază.)
( Breve. (O formă de vas de mică adâncime peste caracterul de bază.)
. Punct deasupra caracterului de bază, sau în cazul lui i fără punct, sau în cazul
L si l un punct centrat.
: Diereza (Umlaut).
c Sedilă.
_ Subliniați, însă în prezent nu există caractere subliniate.
/ Trage prin caracterul de bază.
" Dublu acut (suportat doar pe câteva litere).
; Ogonek. (Un mic cârlig orientat spre înainte în colțul din dreapta jos al
caracter.)
< Caron. (Puțin v peste literă.)
0 Încercați peste caracterul de bază.
2 Agățați personajul de bază.
9 Claxon peste personajul de bază.
Cele mai comune caractere din alfabetul arab, chirilic, grec și ebraic
Sunt disponibile; consultați RFC 1345 pentru secvențele adecvate. În plus, un set
codurile cu două litere care nu sunt în RFC 1345 sunt disponibile pentru caracterele cu lățime dublă
corespunzătoare caracterelor ASCII din ! la ~ (0x21 până la 0x7e) precedând
caracter cu ^, De exemplu, ^A pentru o lățime dublă A.
Următoarele alte secvențe de două caractere sunt înțelese.
caractere ASCII
Acestea sunt deja prezente pe majoritatea tastaturilor:
<( Paranteză pătrată din stânga
// Bară oblică inversă (solidus)
)> Paranteză pătrată dreaptă
(! Acolade din stânga (paranteză)
!! Bară verticală (simbol țeavă)
!) Acolada dreapta (paranteză)
'? Tildă
Scrisori speciale
Caractere găsite în diferite variante ale alfabetului latin:
ss Eszett (scharfes S)
D-, d- Eth
TH, th Ghimpe
kk kra
'n 'n
NG, ng Ng
OI, oi Oi
yr yr
ED ezh
Simboluri valutare
Ct Cent
Pd Liră sterlină (de asemenea, lire și altele)
Cu Monedă
Ye Yen
Eu Euro (NB nu în RFC 1345)
Caractere de punctuație
Referințele la ghilimele „dreapte” indică forma (precum un 9 mai degrabă decât 6)
mai degrabă decât utilizarea lor gramaticală. (De exemplu, ghilimele duble mici „dreapte”.
este folosit pentru a deschide cotațiile în germană.)
!I Semnul exclamării inversat
BB Bară verticală spartă
SE Secțiune
Co Drepturi de autor
-a Indicator ordinal feminin spaniol
<< Guillemet stânga
-- Cratimă moale
Rg Marca inregistrata
PI Pilcrow (paragraf)
-o Indicator ordinal masculin spaniol
>> Ghillemet dreapta
?I Semn de întrebare inversat
-1 Cratimă
-N În liniuță
-M Em liniuță
-3 Bara orizontala
:3 Elipsă verticală
.3 Elipsa orizontală a liniei mediane
!2 Linie verticală dublă
=2 Linie joasă dublă
'6 ghilimele din stânga
'9 ghilimele drepte
.9 Citatul mic „Corect”.
9' Citate „dreapta” inversată
"6 ghilimele duble stânga
"9 ghilimele drepte
:9 „Dreapta” ghilimele duble joase
9" Ghilimele duble „dreapta” inversate
/- Pumnal
/= Pumnal dublu
Simboluri matematice
DG Grad
-2, +-, -+
- semnul, semnul +/-, semnul -/+
2S Superscriptul 2
3S Superscriptul 3
1S Superscriptul 1
My Micro
.M Punct din mijloc
14 Trimestru
12 Jumătate
34 Trei sferturi
*X Multiplicare
-: diviziune
%0 Per mile
FA, TE, /0
Pentru toți, există, un set gol
dP, DE, NB
Derivată parțială, delta (increment), del (nabla)
(-, -) Element de, conține
*P, +Z Produs, suma
*-, Ob, Sb
Asterisc, inel, glonț
RT, 0(, 00
Semn rădăcină, proporțional cu, infinit
Alte simboluri
cS, cH, cD, cC
Costume de cărți: pică, inimioare, diamante, crose
Md, M8, M2, Mb, Mx, MX
Notație muzicală: crotchet (noră), tresă (notă), semicrește
(note a șaisprezecelea), semn steag, semn natural, semn ascuțit
Fm, Ml Femeie barbat
Accente pe cont propriu
'> Circumflexă (la fel cu caretul, ^)
'! Mormânt (la fel ca backtick, `)
', Sedilă
': Diereza (Umlaut)
'm Macron
'' Acut
fisiere-inserare
Această funcție vă permite să introduceți un model de fișier și să vedeți rezultatele extinderii
la fiecare pas. Când apăsați Retur, toate expansiunile sunt inserate în comandă
linia.
bindkey „^Xf” fisiere-inserare
insert-unicode-char
Când este executat pentru prima dată, utilizatorul introduce un set de cifre hexazecimale. Aceasta este
încheiat cu un alt apel către insert-unicode-char. Cifrele sunt apoi răsucite
în caracterul Unicode corespunzător. De exemplu, dacă widget-ul este legat de
^XU, secvența de caractere `^XU 4 c ^XU'inserții L (Unicode U+004c).
Vedea insert-compus-char pentru o modalitate de inserare a caracterelor folosind două caractere
mnemonic.
îngust la regiune [ -p pre ] [ -P post ]
[ -S statepm | -R statepm | [ -l lbufvar ] [ -r rbufvar ] ]
[ -n ] [ Începe capăt ]
îngust la regiune-invizibil
Restrângeți porțiunea editabilă a tamponului la regiunea dintre cursor și
marca, care poate fi în oricare ordine. Este posibil ca regiunea să nu fie goală.
îngust la regiune poate fi folosit ca widget sau apelat ca funcție de la a
widget definit de utilizator; implicit, textul din afara zonei editabile rămâne
vizibil. A recursiv-editare este efectuată și starea de lărgire inițială este atunci
restaurat. Diverse opțiuni și argumente sunt disponibile atunci când este numit ca a
Funcția.
Opțiunile -p pretext si -P posttext poate fi folosit pentru a înlocui textul înainte și
după afișare pe durata funcției; unul sau ambele pot fi un gol
șir.
Dacă opțiunea -n este de asemenea dat, pretext or posttext va fi introdus doar dacă există
este text înainte sau după regiune care va deveni invizibil.
Pot fi date două argumente numerice care vor fi folosite în locul cursorului și
marcați pozițiile.
Optiunea -S statepm este folosit pentru a restrânge în funcție de celelalte opțiuni în timpul salvării
starea originală în parametrul cu nume statepm, în timp ce opțiunea -R statepm
este folosit pentru a restabili starea din parametru; rețineți în ambele cazuri nume a
este necesar un parametru. În al doilea caz, alte opțiuni și argumente sunt
irelevant. Când se utilizează această metodă, nu recursiv-editare se efectuează; chemarea
widget-ul ar trebui să apeleze această funcție cu opțiunea -S, efectuează propria editare pe
linia de comandă sau transmiteți controlul utilizatorului prin `vedea recursiv-editare', atunci numiți asta
funcţionează cu opţiunea -R. Argumentul statepm trebuie să fie un nume potrivit pentru un
parametru obișnuit, cu excepția parametrilor care încep cu prefixul _ntr_ sunt
rezervat pentru utilizare în interior îngust la regiune. De obicei, parametrul va fi local
funcția de apelare.
Opțiunile -l lbufvar si -r rbufvar poate fi folosit pentru a specifica parametrii în care
widget-ul va stoca textul rezultat din operație. Parametrul lbufvar
va conține LBUFER si rbufvar va conține RBUFFER. Nici unul dintre acești doi
opțiunile pot fi utilizate cu -S or -R.
îngust la regiune-invizibil este un widget simplu care apelează îngust la regiune cu
argumente care înlocuiesc orice text din afara regiunii cu `...'. Nu este nevoie
orice argumente.
Afișajul este restaurat (și widget-ul revine) la orice comandă zle care ar fi
de obicei fac ca linia să fie acceptată sau anulată. De aici o astfel de comandă suplimentară
este necesar să accepte sau să anuleze linia curentă.
Starea de returnare a ambelor widget-uri este zero dacă linia a fost acceptată, altfel nu este zero.
Iată un exemplu trivial de widget care utilizează această caracteristică.
local de stat
îngust la regiune -p $'Editare limitat regiune\n' \
-P '' -S de stat
vedea recursiv-editare
îngust la regiune -R de stat
prezice pe
Acest set de funcții implementează tastarea predictivă folosind căutarea în istoric. După
prezice pe, tastarea caracterelor determină editorul să privească înapoi în istoric pentru
prima linie care începe cu ceea ce ați tastat până acum. După prezice off,
editarea revine la normal pentru linia găsită. De fapt, de multe ori nici nu ai nevoie
să utilizeze prezice off, pentru că dacă linia nu se potrivește cu ceva din istorie,
adăugarea unei chei efectuează completarea standard și apoi se inserează singură dacă nu
au fost găsite completări. Cu toate acestea, editarea în mijlocul unei linii este pasibilă
predicție confuză; vezi comutare stilul de mai jos.
Cu sistemul de completare bazat pe funcții (care este necesar pentru aceasta), ar trebui să fii
capabil să tasteze TAB aproape în orice moment pentru a avansa cursorul la următorul
Poziția caracterului „interesant” (de obicei, sfârșitul cuvântului curent, dar
uneori undeva la mijlocul cuvântului). Și, desigur, de îndată ce
întreaga linie este ceea ce vrei, poți accepta cu retur, fără a fi nevoie să te muți
cursorul până la capăt mai întâi.
Prima dată prezice pe este utilizat, creează mai multe funcții widget suplimentare:
șterge-înapoi-și-prevăd
Înlocuiește înapoi-sterge-car widget. Nu trebuie să legați acest lucru
tu.
inserați-și-prevăd
Implementează tastarea predictivă prin înlocuirea auto-inserție widget. Tu faci
nu trebuie să legați acest lucru singur.
prezice off
Dezactivează tastarea predictivă.
Deși tu încărcare automată numai prezice pe funcție, este necesar să se creeze o
combinarea tastelor pentru prezice off de asemenea.
vedea -N prezice pe
vedea -N prezice off
bindkey „^X^Z” prezice pe
bindkey '^Z' prezice off
citire din minibuffer
Acest lucru este cel mai util atunci când este apelat ca funcție din interiorul unui widget, dar va funcționa
corect ca widget în sine. Acesta solicită o valoare sub curent
Linie de comanda; o valoare poate fi introdusă folosind toate operațiunile zle standard (și
nu doar setul restrâns disponibil la executare, de exemplu,
execute-named-cmd). Valoarea este apoi returnată la funcția de apelare din
parametru $ RĂSPUNS iar tamponul de editare a revenit la starea anterioară. Dacă
citirea a fost întreruptă de o întrerupere a tastaturii (de obicei ^G), funcția returnează starea 1
si $ RĂSPUNS nu este setat.
Dacă un argument este furnizat funcției, acesta este luat ca prompt, în caz contrar `? '
este folosit. Dacă sunt furnizate două argumente, acestea sunt promptul și valoarea inițială
of $LBUFFER, iar dacă este dat un al treilea argument, acesta este valoarea inițială a $RBUFFER.
Aceasta oferă o valoare implicită și plasarea cursorului de pornire. La întoarcere
întregul tampon este valoarea lui $ RĂSPUNS.
Este disponibilă o opțiune: `-k o' precizează că o personajele trebuie citite
în loc de o linie întreagă. Editorul de linii nu este invocat recursiv în acest caz,
deci, în funcție de setările terminalului, este posibil ca intrarea să nu fie vizibilă și doar
tastele de intrare sunt plasate în $ RĂSPUNS, nu întregul tampon. Rețineți că, spre deosebire de citit
builtin o trebuie dat; nu există implicit.
Numele este o denumire ușoară greșită, deoarece, de fapt, minibufferul propriu al shell-ului nu este folosit.
Prin urmare, este încă posibil să sunați executat-numit-cmd și funcții similare în timp ce
citind o valoare.
înlocuire-argument, înlocuire-argument-editare
Funcția înlocuire-argument poate fi folosit pentru a înlocui un argument de linie de comandă în
linia de comandă curentă sau, dacă linia de comandă curentă este goală, în ultima comandă
linie executată (noua linie de comandă nu este executată). Argumentele sunt la fel de delimitate
prin sintaxa shell standard,
Dacă este dat un argument numeric, acesta specifică argumentul care trebuie înlocuit. 0
înseamnă numele comenzii, ca în expansiunea istorică. Un argument numeric negativ
numără înapoi de la ultimul cuvânt.
Dacă nu este dat niciun argument numeric, argumentul curent este înlocuit; acesta este ultimul
argument dacă linia anterioară a istoricului este utilizată.
Funcția solicită un argument de înlocuire.
Dacă widget-ul conține șirul edita, de exemplu este definit ca
vedea -N înlocuire-argument-editare înlocuire-argument
atunci funcția prezintă valoarea curentă a argumentului pentru editare, în caz contrar
tamponul de editare pentru înlocuire este inițial gol.
înlocuiți-șir, înlocuire-model
înlocuiți-șir-din nou, înlocuiți-model-din nou
Funcția înlocuiți-șir implementează trei widget-uri. Dacă este definit sub același
nume ca funcție, solicită două șiruri de caractere; primul șir (sursă) va fi
înlocuit cu al doilea oriunde apare în buffer-ul de editare a liniilor.
Dacă numele widgetului conține cuvântul `model', de exemplu prin definirea widget-ului
folosind comanda `vedea -N înlocuire-model înlocuiți-șir', atunci potrivirea este
efectuate folosind modele zsh. Toate modelele zsh extinse globbing pot fi utilizate în
șirul sursă; rețineți că, spre deosebire de generarea numelui de fișier, modelul nu are nevoie
pentru a se potrivi cu un cuvânt întreg, nici calificativele glob nu au niciun efect. In plus
șirul de înlocuire poate conține substituții de parametri sau comenzi. Mai mult, a
`&' din șirul de înlocuire va fi înlocuit cu șirul sursă potrivit și
o cifră cu ghilimele înapoi `\N' va fi înlocuit cu Nexpresia dintre paranteze
potrivite. Forma `\{N}' poate fi folosit pentru a proteja cifra de cifrele următoare.
Dacă widgetul conține în schimb cuvântul `regex' (sau `expresie regulată'), atunci potrivirea este
efectuate folosind expresii regulate, respectând setarea opțiunii
RE_MATCH_PCRE (vezi descrierea funcției regexp-inlocuire de mai jos). The
Sunt disponibile facilități speciale de înlocuire descrise mai sus pentru potrivirea modelelor.
În mod implicit, sursa anterioară sau șirul de înlocuire nu va fi oferit pentru
editare. Cu toate acestea, această caracteristică poate fi activată prin setarea stilului editare-anterior
in contextul :zle:widget (de exemplu, :zle:înlocuiește-șir) Pentru a adevărat. În
în plus, un argument numeric pozitiv obligă valorile anterioare să fie oferite, a
argument negativ sau zero îi obligă să nu fie.
Funcția înlocuiți-șir-din nou poate fi folosit pentru a repeta înlocuirea anterioară;
nu se face nicio solicitare. Ca și în cazul înlocuiți-șir, dacă numele widget-ului conține
cuvântul `model' sau `regex', se realizează potrivirea modelului sau expresiei regulate,
altfel o înlocuire literală a șirului. Rețineți că sursa anterioară și înlocuirea
textul sunt aceleași indiferent dacă se folosește modelul, expresia regulată sau potrivirea șirurilor.
În plus, înlocuiți-șir arată înlocuirea anterioară deasupra promptului, deci
atâta timp cât a existat unul în timpul sesiunii curente; dacă șirul sursă este gol,
acea înlocuire va fi repetată fără ca widgetul să solicite o înlocuire
șir.
De exemplu, pornind de la linia:
imprima Acest linie conține ventilator si iubitor
și invocând înlocuire-model cu șirul sursă `f(?)n' și înlocuitorul
șir `c\1r' produce linia nu foarte utilă:
imprima Acest linie conține mașină si cordon
Gama șirului de înlocuire poate fi limitată prin utilizarea
îngust la regiune-invizibil widget. O limitare a versiunii actuale este aceea
anula va parcurge modificările aduse șirurilor de înlocuire și sursă înainte
anulând înlocuirea în sine.
trimite-invizibil
Acest lucru este similar cu read-from-minibuffer prin faptul că poate fi apelat ca o funcție de la
un widget sau ca un widget propriu și citește interactiv intrarea din
tastatură. Cu toate acestea, intrarea în curs de tastare este ascunsă și un șir de asteriscuri
(`*') este afișat în schimb. Valoarea este salvată în parametru $INVIZIBIL la care a
referința este inserată în memoria tampon de editare la poziția restaurată a cursorului. Dacă
citirea a fost întreruptă de o întrerupere a tastaturii (de obicei ^G) sau o altă evadare din
editare precum push-line, $INVIZIBIL este setat la gol și buffer-ul original este
restaurat neschimbat.
Dacă un argument este furnizat funcției, acesta este luat ca prompt, în caz contrar
`Fără ecou text: ' este folosit (ca în emacs). Dacă un al doilea și al treilea argument sunt
cu condiția ca acestea să fie folosite pentru a începe și a încheia referința la $INVIZIBIL acesta este
introdus în tampon. Implicit este deschiderea cu ${, Apoi INVIZIBIL și
aproape cu }, dar multe alte efecte sunt posibile.
inserare inteligentă-ultimul-cuvânt
Această funcție poate înlocui introduce-ultimul-cuvânt widget, așa:
vedea -N introduce-ultimul-cuvânt inserare inteligentă-ultimul-cuvânt
Cu un argument numeric sau când sunt transmise argumente de linie de comandă într-un apel de la
alt widget, se comportă ca introduce-ultimul-cuvânt, cu excepția faptului că cuvintele din comentarii sunt
ignorat când INTERACTIVE_COMMENTS este setat.
În caz contrar, se găsește cuvântul „interesant” cel mai din dreapta din comanda anterioară
și introdus. Definiția implicită a „interesant” este aceea că cuvântul conține
cel puțin un caracter alfabetic, bară oblică sau bară oblică inversă. Această definiție poate fi
anulate prin utilizarea Meci stil. Contextul folosit pentru a căuta stilul este
numele widget-ului, deci de obicei contextul este :inserați-ultimul-cuvânt. Cu toate acestea, puteți lega
această funcție la diferite widget-uri pentru a utiliza diferite modele:
vedea -N inserare-ultima-temă inserare inteligentă-ultimul-cuvânt
zstyle :inserare-ultima-temă Meci „[[:alpha:]][][[:alnum:]]#=*”
bindkey '\e=' inserare-ultima-temă
Dacă nu se găsește niciun cuvânt interesant și auto-anterior stilul este setat la o valoare adevărată,
căutarea continuă în sus prin istorie. Când auto-anterior este nesetat sau
false (implicit), widget-ul trebuie invocat în mod repetat pentru a căuta
linii de istorie anterioare.
linii de transpunere
Util doar cu un buffer de editare cu mai multe linii; liniile aici sunt linii în interiorul
tampon curent de pe ecran, nu linii istorice. Efectul este similar cu funcția
cu același nume în Emacs.
Transpuneți linia curentă cu linia anterioară și mutați cursorul la început
a liniei următoare. Repetând acest lucru (ceea ce se poate face oferind un rezultat pozitiv
argument numeric) are ca efect deplasarea liniei de deasupra cursorului în jos cu a
număr de linii.
Cu un argument numeric negativ, necesită două linii deasupra cursorului. Acestea doua
liniile sunt transpuse și cursorul este mutat la începutul liniei anterioare. Folosind
un argument numeric mai mic decat -1 are ca efect mutarea liniei deasupra cursorului
cresc cu minus acel număr de linii.
care-comandă
Această funcție este un înlocuitor drop-in pentru widget-ul încorporat care-comandă. Ea
are un comportament îmbunătățit, prin faptul că detectează corect dacă comanda sau nu
cuvântul trebuie extins ca alias; dacă da, continuă să urmărească cuvântul de comandă
din aliasul extins până ajunge la comanda care va fi executată.
Stilul de unde este disponibilă în context :zle:$WIDGET; acesta poate fi setat la un
matrice pentru a oferi comanda și opțiunile care vor fi folosite pentru a investiga comanda
cuvânt găsit. Valoarea implicită este de unde -c.
zcalc-auto-inserare
Această funcție este utilă împreună cu zcalc funcția descrisă în secțiune
Funcții matematice. Ar trebui să fie legat de o cheie reprezentând un operator binar
precum `+', `-', `*' sau `/'. Când rulați în zcalc, dacă cheia apare la
începutul liniei sau imediat după o paranteză deschisă, textul „ans " is
introdus înainte de reprezentarea cheii în sine. Acest lucru permite utilizarea ușoară a
răspuns din calculul anterior din linia curentă. Textul de inserat
înainte ca simbolul tastat să poată fi modificat prin setarea variabilei
ZCALC_AUTO_INSERT_PREFIX.
Prin urmare, de exemplu, tastând `+12' urmat de return adaugă 12 la rezultatul anterior.
Când nu este în zcalc, cheia inserează pur și simplu simbolul în sine.
Utilitate funcţii
Aceste funcții sunt utile în construirea widget-urilor. Ele ar trebui să fie încărcate cu `încărcare automată
-U funcţie' și apelat așa cum este indicat din widget-urile definite de utilizator.
Split-shell-arguments
Această funcție împarte linia care este editată în prezent în argumente shell și
spatiu alb. Rezultatul este stocat în matrice răspuns. Matricea conține toate
părți ale liniei în ordine, începând cu orice spațiu înainte de primul argument,
și terminând cu orice spațiu alb după ultimul argument. Prin urmare (atâta timp cât
opțiune KSH_ARRAYS nu este setat) spațiul alb este dat de indici impari din matrice și
argumente prin indici pari. Rețineți că nu se face nicio eliminare a ghilimelelor; alăturarea
împreună toate elementele de răspuns în ordine este garantată producerea originalului
linia.
Parametrul RĂSPUNS este setat la indexul cuvântului în răspuns care conține
caracter după cursor, unde primul element are indexul 1. Parametrul
RĂSPUNS2 este setat la indexul caracterului de sub cursorul din acel cuvânt, unde
primul caracter are indicele 1.
prin urmare răspuns, RĂSPUNS si RĂSPUNS2 toate trebuie făcute locale pentru funcția de încadrare.
Vezi funcția modifică-argumentul-curent, descris mai jos, pentru un exemplu despre cum
apelați această funcție.
modifică-argumentul-curent [ expr-folosind-$ ARG | FUNC ]
Această funcție oferă o metodă simplă de a permite modificarea widgeturilor definite de utilizator
argumentul liniei de comandă sub cursor (sau imediat la stânga lui
cursor dacă cursorul se află între argumente).
Argumentul poate fi o expresie care, atunci când este evaluată, operează pe shell
parametru ARG, care va fi setat la argumentul liniei de comandă sub
cursor. Expresia trebuie citată corespunzător pentru a preveni evaluarea ei
din timp.
Alternativ, dacă argumentul nu conține șirul ARG, se presupune că este
o funcție shell, căreia argumentul curent al liniei de comandă este transmis ca unic
argument. Funcția ar trebui să seteze variabila RĂSPUNS la noua valoare pentru
argument de linie de comandă. Dacă funcția returnează o stare diferită de zero, la fel și
funcția de apelare.
De exemplu, un widget definit de utilizator care conține următorul cod convertește fișierul
caracterele din argumentul de sub cursor în majuscule:
modifică-argumentul-curent „${(U)ARG}”
Următoarele elimină orice citare din cuvântul curent (fie bare oblice inverse sau una
a stilurilor de ghilimele), și îl înlocuiește cu ghilimele simple pe tot parcursul:
modifică-argumentul-curent „${(qq)${(Q)ARG}}”
Următoarele realizează extinderea directorului pe argumentul liniei de comandă și
îl înlocuiește cu calea absolută:
expand-dir() {
RĂSPUNS=${~1}
RĂSPUNS=${RĂSPUNS:a}
}
modifică-argumentul-curent expand-dir
În practică funcția expand-dir probabil că nu ar fi definit în widget
Unde modifică-argumentul-curent se numește.
Stiluri
Comportamentul mai multor widget-uri de mai sus poate fi controlat prin utilizarea zstyle
mecanism. În special, widget-urile care interacționează cu sistemul de completare trec
contextul lor la orice completări pe care le invocă.
chei de rupere
Acest stil este folosit de către incremental-complet-cuvânt widget. Valoarea sa ar trebui să fie a
model și toate tastele care se potrivesc cu acest model vor determina oprirea widgetului
finalizare incrementală fără ca cheia să aibă vreun efect suplimentar. Ca toate stilurile
folosit direct de incremental-complet-cuvânt, acest stil este căutat folosind
context `:incremental'.
completator
incremental-complet-cuvânt si inserați-și-prevăd widget-urile își stabilesc nivelul superior
numele contextului înainte de completarea apelului. Acest lucru permite definirea unor seturi diferite
de funcții complete pentru completarea normală și pentru aceste widget-uri. De exemplu,
a folosi completare, aproximare și corectare pentru completare normală, completare
și corectare pentru finalizarea incrementală și numai completarea pentru predicția unu
as putea folosi:
zstyle ':completare:*' completator \
_complet _corect _aproximativ
zstyle ':completion:incremental:*' completator \
_complet _corect
zstyle ':completion:predict:*' completator \
_complet
Este o idee bună să restricționați completatorii utilizați în predicție, deoarece acestea pot
fi invocat automat pe măsură ce tastați. The _listă si _meniul completatorii nu ar trebui niciodată
fi folosit cu predicție. The _aproximativ, _corect, _extinde și _Meci
pot fi utilizați completatorii, dar rețineți că acestea pot schimba caracterele oriunde în
cuvântul din spatele cursorului, așa că trebuie să urmăriți cu atenție că rezultatul este ceea ce
ai intenționat.
cursor inserați-și-prevăd widget folosește acest stil, în contextul `:prezice', a decide
unde să plasați cursorul după ce a fost încercat finalizarea. Valorile sunt:
Completă
Cursorul este lăsat acolo unde se afla la finalizarea finalizării, dar numai dacă este
după un caracter egal cu cel tocmai introdus de utilizator. Dacă este
după un alt caracter, această valoare este aceeași cu `cheie'.
cheie Cursorul este lăsat după napariția caracterului tocmai inserat,
Unde n este de câte ori acel caracter a apărut în cuvânt înainte
s-a încercat finalizarea. Pe scurt, acest lucru are ca efect părăsirea
cursorul după caracterul tocmai tastat chiar dacă a aflat codul de completare
că nu trebuie introduse alte caractere în acea poziție.
Orice altă valoare pentru acest stil lasă necondiționat cursorul pe această poziție
unde l-a lăsat codul de completare.
listă Când utilizați incremental-complet-cuvânt widget, acest stil spune dacă se potrivește
ar trebui să fie listate la fiecare apăsare de tastă (dacă se potrivesc pe ecran). Folosiți contextul
prefixul `:completion:incremental'.
inserați-și-prevăd widget folosește acest stil pentru a decide dacă completarea ar trebui să fie
arătat chiar dacă există o singură finalizare posibilă. Acest lucru se face dacă valoarea de
acest stil este sfoara mereu. În acest caz, contextul este `:prezice"(nu
`:completion:predict').
Meci Acest stil este folosit de inserare inteligentă-ultimul-cuvânt pentru a furniza un model (folosind full
EXTENDED_GLOB sintaxă) care se potrivește cu un cuvânt interesant. Contextul este numele
widgetul la care inserare inteligentă-ultimul-cuvânt este legat (vezi mai sus). Implicit
comportamentul de inserare inteligentă-ultimul-cuvânt este echivalent cu:
zstyle :inserați-ultimul-cuvânt Meci '*[[:alfa:]/\\]*'
Cu toate acestea, poate doriți să includeți cuvinte care conțin spații:
zstyle :inserați-ultimul-cuvânt Meci „*[[:alpha:][:space:]/\\]*”
Sau includeți numere atâta timp cât cuvântul are cel puțin două caractere:
zstyle :inserați-ultimul-cuvânt Meci „*([[:cifra:]]?|[[:alpha:]/\\])*”
Exemplul de mai sus face ca redirecționări precum „2>” să fie incluse.
prompt incremental-complet-cuvânt widget-ul arată valoarea acestui stil în stare
linie în timpul finalizării incrementale. Valoarea șirului poate conține oricare dintre
urmând subşiruri în maniera PS1 și alți parametri prompti:
%c Înlocuit cu numele funcției de completare care a generat potrivirile
(fără liniuța de subliniere).
%l Cand listă stilul este setat, înlocuit cu `...' dacă lista de meciuri este prea
lung să încapă pe ecran și cu un șir gol în caz contrar. Dacă listă
stilul este „fals” sau nu este setat, „%l' este întotdeauna eliminat.
%n Înlocuit cu numărul de potriviri generate.
%s Înlocuit cu `-Nu Match-', `-Nu prefix-', sau un șir gol dacă nu există
completare care se potrivește cu cuvântul de pe linie, dacă potrivirile nu au comun
prefix diferit de cuvântul de pe linie, sau dacă există un astfel de comun
respectiv prefix.
%u Înlocuit cu partea neechivocă a tuturor meciurilor, dacă există și dacă
este diferit de cuvântul de pe linie.
Ca `chei de rupere', aceasta folosește `:incremental' context.
taste de oprire
Acest stil este folosit de către incremental-complet-cuvânt widget. Valoarea lui este tratată
similar cu cel pentru chei de rupere stil (și folosește același context:
`:incremental'). Cu toate acestea, în acest caz toate cheile se potrivesc cu modelul dat ca fiind
value va opri completarea incrementală și apoi își va executa funcția obișnuită.
comutare Acest stil boolean este folosit de prezice pe și widget-urile aferente acestuia în context
`:prezice'. Dacă este setată la una dintre valorile „adevărate” standard, tastarea predictivă este
dezactivat automat în situațiile în care este puțin probabil să fie util, cum ar fi
la editarea unui buffer cu mai multe linii sau după mutarea în mijlocul unei linii și apoi
ștergerea unui caracter. Implicit este să lăsați predicția activată până la an
apel explicit la prezice off.
prolix
Acest stil boolean este folosit de prezice pe și widget-urile aferente acestuia în context
`:prezice'. Dacă este setată la una dintre valorile standard „adevărate”, aceste widget-uri afișează a
mesaj sub prompt atunci când starea predictivă este comutată. Acest lucru este cel mai util
în combinație cu comutare stil. Valoarea implicită nu afișează aceste mesaje.
widget Acest stil este similar cu comandă stil: pentru funcțiile widget care utilizează vedea la
apelați alte widget-uri, acest stil poate fi uneori folosit pentru a suprascrie widget-ul care
se numește. Contextul acestui stil este numele widget-ului de apelare (nu il
numele funcției de apelare, deoarece o funcție poate fi legată de mai multe widget-uri
nume).
zstyle :copy-earlier-word widget inserare inteligentă-ultimul-cuvânt
Verificați documentația pentru widget-ul sau funcția de apelare pentru a determina dacă
widget este folosit stilul.
EXCEPȚIE MANIPULARE
Sunt furnizate două funcții pentru a permite zsh să ofere gestionarea excepțiilor într-o formă care
ar trebui să fie familiar din alte limbi.
arunca excepție
Funcția arunca aruncă numitul excepție. Numele este un șir arbitrar și
este folosit doar de către arunca si captură funcții. O excepție este în cea mai mare parte
tratată la fel ca o eroare de shell, adică o excepție netratată va cauza shell-ul
pentru a anula toate procesările într-o funcție sau script și pentru a reveni la nivelul superior în
un shell interactiv.
captură model-excepție
Funcția captură returnează starea zero dacă a fost aruncată o excepție și modelul
model-excepție se potrivește cu numele său. În caz contrar, returnează starea 1.
model-excepție este un model de shell standard, respectând setarea curentă a
il EXTENDED_GLOB opțiune. Un alias captură este, de asemenea, definit pentru a preveni argumentul
la funcția de la numele de fișiere care se potrivesc, astfel încât modelele pot fi folosite fără ghilimele. Notă
că excepțiile nu sunt fundamental diferite de alte erori de shell este
este posibil să se detecteze erorile de shell folosind un șir gol ca nume de excepție. The
variabila shell PRINS este stabilit de captură la numele excepţiei prinse. Este
este posibil să reintroduceți o excepție apelând arunca funcţionează din nou o dată
a fost prinsă o excepție.
Funcțiile sunt concepute pentru a fi utilizate împreună cu mereu construct descris în
zshmisc(1). Acest lucru este important deoarece numai acest construct oferă suportul necesar pentru
exceptii. Un exemplu tipic este următorul.
{
# "încerca" bloca
# ... cuibărit cod aici Apeluri "arunca MyExcept"
} mereu {
# "mereu" bloca
if captură MyExcept; apoi
imprima "Prins excepție MyExcept"
Elif captură ''; apoi
imprima "Prins a coajă eroare. Propagarea..."
arunca ''
fi
# Altele excepții sunt nu manipulate dar Mai be prins mai mult
# up il apel grămadă.
}
Dacă toate excepțiile ar trebui luate în considerare, ar putea fi de preferat următoarea expresie.
{
# ... cuibărit cod aici aruncă an excepție
} mereu {
if captură *; apoi
caz $PRINS in
(MyExcept)
imprima "Prins my propriu excepție"
;;
(*)
imprima "Prins unele alte excepție"
;;
ESAC
fi
}
În comun cu gestionarea excepțiilor în alte limbi, excepția poate fi aruncată prin cod
adânc imbricat în blocul `try'. Cu toate acestea, rețineți că trebuie aruncat în interiorul
înveliș curent, nu într-un subshell bifurcat pentru o conductă, înveliș curent între paranteze
construct, sau o formă de înlocuire de comandă sau proces.
Sistemul utilizează intern variabila shell EXCEPȚIE pentru a înregistra numele
excepție între aruncare și prindere. Un dezavantaj al acestei scheme este că, dacă
excepția nu este gestionată variabila EXCEPȚIE rămâne setat și poate fi incorect
recunoscut ca numele unei excepții dacă apare ulterior o eroare de shell. Adăugând dezactivat
EXCEPȚIE la începutul stratului exterior al oricărui cod care utilizează gestionarea excepțiilor
va elimina această problemă.
MIMA FUNCȚII
Sunt disponibile trei funcții pentru a asigura gestionarea fișierelor recunoscute prin extensie, pt
exemplu pentru a trimite un fișier text.ps când este executat ca o comandă către un vizualizator adecvat.
zsh-mime-setup [ -fv ] [ -l [ sufix ... ] ]
zsh-mime-handler [ -l ] comandă argument ...
Aceste două funcții folosesc fișierele ~/.mime.tipuri si /etc/mime.types, Care
asociați tipuri și extensii, precum și ~/.mailcap si /etc/mailcap dosare, care
tipurile asociate și programele care le gestionează. Acestea sunt furnizate pe multe
sisteme cu extensii de poștă Internet multimedia.
Pentru a activa sistemul, funcția zsh-mime-setup ar trebui să fie încărcat și rulat automat.
Acest lucru permite ca fișierele cu extensii să fie tratate ca executabile; astfel de fișiere să fie
completat de sistemul de completare a funcţiilor. Functia zsh-mime-handler să
nu trebuie apelat de utilizator.
Sistemul funcționează prin crearea de aliasuri sufixe cu `alias -s'. Aliasuri de sufix
instalat deja de utilizator nu va fi suprascris.
Pentru sufixele definite cu litere mici, variantele cu litere mari vor fi, de asemenea, automat
manipulate (de ex PDF este tratat automat dacă se manipulează pentru sufix pdf is
definit), dar nu invers.
Apeluri repetate către zsh-mime-setup nu înlocuiți maparea existentă între
sufixe și fișiere executabile, cu excepția cazului în care opțiunea -f este dată. Rețineți, totuși, că
aceasta nu anulează aliasurile sufixelor existente atribuite altor handler decât
zsh-mime-handler.
apel zsh-mime-setup cu optiunea -l listează mapările existente fără
alterandu-le. Sufixe pentru listă (care poate conține caractere tip model care ar trebui
fi citat din interpretare imediată pe linia de comandă) poate fi dat ca
argumente suplimentare, altfel toate sufixele sunt listate.
apel zsh-mime-setup cu optiunea -v determină afișarea ieșirii detaliate în timpul
operația de configurare.
Sistemul respectă mailcap steaguri are nevoie de terminal si ieșire copioasă, A se vedea
mailcap(4).
Funcțiile folosesc următoarele stiluri, care sunt definite cu zstyle builtin
comanda (vezi zshmodules(1)). Ele ar trebui definite înainte zsh-mime-setup este rulat.
Contextele folosite încep toate cu :mima:, cu componente suplimentare în unele cazuri.
Se recomandă ca un trailing * (citat corespunzător) să fie atașat modelelor de stil
în cazul în care sistemul este extins în viitor. Câteva exemple sunt date mai jos.
Pentru fișierele care au mai multe sufixe, de ex .pdf.gz, unde contextul include
sufix va fi căutat începând cu cel mai lung sufix posibil până la o potrivire
căci stilul este găsit. De exemplu, dacă .pdf.gz produce o potrivire pentru handler,
care va fi folosit; în caz contrar manipulatorul pt .gz va fi folosit. Rețineți că, din cauza
după cum funcționează aliasurile de sufix, este întotdeauna necesar să existe un handler pentru
cel mai scurt sufix posibil, deci în acest exemplu .pdf.gz poate fi tratat numai dacă .gz is
de asemenea, tratate (deși nu neapărat în același mod). Alternativ, dacă nu
manipulare pentru .gz este necesar pe cont propriu, adăugând pur și simplu comanda
alias -s gz=zsh-mime-handler
la codul de inițializare este suficient; .gz nu se va gestiona singur, dar
poate fi în combinație cu alte sufixe.
curent-coaja
Dacă acest stil boolean este adevărat, handlerul mailcap pentru context în
întrebarea este rulată folosind eval încorporat în loc de pornirea unui nou sh
proces. Acest lucru este mai eficient, dar poate să nu funcționeze în cazuri ocazionale
unde handlerul mailcap folosește sintaxa strictă POSIX.
dezmoșteni Dacă acest stil boolean este adevărat, handlerele mailcap au început în fundal
va fi renegat, adică nu va fi supus controlului locului de muncă în interiorul carcasei părinte.
Astfel de operatori aproape întotdeauna își produc propriile ferestre, deci singurul probabil
efectul secundar dăunător al stabilirii stilului este că devine mai greu de ucis
locuri de muncă din interiorul cochiliei.
executa-ca-așa-este
Acest stil oferă o listă de modele care trebuie asortate cu fișierele trimise
execuție cu un program de gestionare. Dacă fișierul se potrivește cu modelul,
întreaga linie de comandă este executată în forma sa curentă, fără un handler. Acest
este util pentru fișierele care ar putea avea sufixe, dar care totuși pot fi executabile
în dreptul lor propriu. Dacă stilul nu este setat, modelul *(*) *(/) este folosit;
prin urmare, fișierele executabile sunt executate direct și nu sunt transmise unui handler,
si optiunea AUTO_CD poate fi folosit pentru a schimba directoarele care se întâmplă cu
au sufixe MIME.
executa-niciodata
Acest stil este util în combinație cu executa-ca-așa-este. Este setat la un
matrice de modele corespunzătoare căilor complete către fișiere care nu ar trebui să fie niciodată
tratat ca executabil, chiar dacă fișierul trecut la handler MIME se potrivește
executa-ca-așa-este. Acest lucru este util pentru sistemele de fișiere care nu se ocupă de executare
permisiunea sau care conțin executabile dintr-un alt sistem de operare. Pentru
exemplu, dacă /mnt/windows este o montură Windows, atunci
zstyle ':mima:*' executa-niciodata „/mnt/windows/*”
se va asigura că orice fișiere găsite în acea zonă vor fi executate ca tipuri MIME
chiar dacă sunt executabile. După cum arată acest exemplu, numele complet al fișierului
se potrivește cu modelul, indiferent de modul în care fișierul a fost transmis către
manipulator. Fișierul este rezolvat într-o cale completă folosind :A schimbare
descrise în subsecțiunea Modificatori în zshexpn(1); aceasta înseamnă că
linkurile simbolice sunt rezolvate acolo unde este posibil, astfel încât linkurile către alt fișier
sistemele se comportă în mod corect.
calea fișierului
Folosit dacă stilul găsiți fișierul în cale este valabil pentru același context. Setați la o
matrice de directoare care sunt utilizate pentru căutarea fișierului care urmează să fie tratat;
implicit este calea comenzii dată de parametrul special cale.
opțiunea shell PATH_DIRS este respectat; dacă este setat, calea corespunzătoare
va fi căutat chiar dacă numele fișierului care urmează să fie tratat așa cum apare
linia de comandă conține un `/'. Contextul complet este :mima:.sufix:, După cum
descris pentru stil manipulant.
găsiți fișierul în cale
Dacă este setat, permite fișierele ale căror nume nu conțin căi absolute
căutat în calea comenzii sau în calea specificată de calea fișierului
stil. Dacă fișierul nu este găsit în cale, acesta este căutat local
(indiferent dacă directorul curent este sau nu în cale); daca nu se gaseste
local, handlerul va anula, cu excepția cazului în care mâner-inexistent stilul este stabilit.
Fișierele găsite în cale sunt testate așa cum este descris pentru stil executa-ca-așa-este.
Contextul complet este :mima:.sufix:, așa cum este descris pentru stil manipulant.
steaguri Definește steaguri pentru a merge cu un handler; contextul este ca pentru manipulant stil,
iar formatul este ca pentru steagurile din mailcap.
mâner-inexistent
În mod implicit, argumentele care nu corespund fișierelor nu sunt transmise la
handler MIME pentru a-l împiedica să intercepteze comenzile găsite în
cale care se întâmplă să aibă sufixe. Acest stil poate fi setat la o serie de
modele glob extinse pentru argumente care vor fi transmise handlerului chiar
dacă nu există. Dacă nu este setat în mod explicit, va fi implicit
[[:alfa:]]#:/* ceea ce permite transmiterea URL-urilor către handler-ul MIME chiar
deși nu există în acest format în sistemul de fișiere. Contextul complet
is :mima:.sufix:, așa cum este descris pentru stil manipulant.
manipulant
Specifică un handler pentru un sufix; sufixul este dat de context ca
:mima:.sufix:, iar formatul handler-ului este exact cel din mailcap.
Rețineți în special `.' și două puncte pentru a distinge această utilizare a
context. Aceasta anulează orice handler specificat de mailcap fișiere. Dacă
handler necesită un terminal, the steaguri stilul ar trebui să fie setat să includă
cuvânt are nevoie de terminal, sau dacă rezultatul urmează să fie afișat printr-un pager (dar
nu dacă handlerul este el însuși un pager), ar trebui să includă ieșire copioasă.
mailcap
O listă de fișiere în formatul ~/.mailcap si /etc/mailcap de citit
în timpul instalării, înlocuind lista implicită care constă din acele două fișiere.
Contextul este :mima:. O + din listă va fi înlocuită cu cea implicită
fișiere.
mailcap-priorități
Acest stil este folosit pentru a rezolva mai multe intrări mailcap pentru același MIME
tip. Este alcătuit dintr-o matrice a următoarelor elemente, în descendență
ordinea de prioritate; Înregistrările ulterioare vor fi folosite dacă intrările anterioare nu sunt disponibile
pentru a rezolva intrările care se compară. Dacă niciunul dintre teste nu rezolvă problema
intrări, prima intrare întâlnită este reținută.
fișiere Ordinea fișierelor (intrări în mailcap stil) citeste. Mai devreme
sunt preferate fișierele. (Rețineți că acest lucru nu rezolvă intrările din același
fişier.)
prioritate
Steagul de prioritate de la intrarea mailcap. Prioritatea este un număr întreg
de la 0 la 9, valoarea implicită fiind 5.
steaguri Testul dat de mailcap-prio-steaguri opțiunea este utilizată pentru a rezolva
intrări.
loc Sunt preferate intrările ulterioare; deoarece intrările sunt strict ordonate,
acest test reușește întotdeauna.
Rețineți că, deoarece acest stil este gestionat în timpul inițializării, contextul este
mereu :mima:, fără discriminare prin sufix.
mailcap-prio-steaguri
Acest stil este folosit atunci când cuvântul cheie steaguri este întâlnită în lista de
testele specificate de mailcap-priorități stil. Ar trebui să fie setat pe o listă
de modele, fiecare dintre acestea fiind testat împotriva steagurilor specificate în
intrare mailcap (cu alte cuvinte, seturile de sarcini găsite cu unele
intrări în fișierul mailcap). Se preferă modelele anterioare din listă
cele ulterioare, iar modelele potrivite sunt preferate celor nepotrivite.
tipuri de mim
O listă de fișiere în formatul ~/.mime.tipuri si /etc/mime.types pentru a fi
citit în timpul configurării, înlocuind lista implicită care constă din cele două
fișiere. Contextul este :mima:. O + din listă va fi înlocuită cu
fișiere implicite.
niciodată-fond
Dacă acest stil boolean este setat, handlerul pentru contextul dat este întotdeauna
rulează în prim-plan, chiar dacă steaguri furnizate în intrarea mailcap
sugerează că nu trebuie să fie (de exemplu, nu necesită un terminal).
pager Dacă este setat, va fi folosit în loc de $PAGER or mai mult să se ocupe de sufixe unde
ieșire copioasă steag este setat. Contextul este ca pentru manipulant, adică
:mima:.sufix: pentru manipularea unui fișier cu date sufix.
Exemple:
zstyle ':mima:*' mailcap ~/.mailcap /usr/local/etc/mailcap
zstyle ':mime:.txt:' manipulant mai puțin %s
zstyle ':mime:.txt:' steaguri are nevoie de terminal
Cand zsh-mime-setup este rulat ulterior, va căuta mailcap intrări în
două dosare date. Fișiere de sufix .TXT va fi gestionat rulând `mai puțin fișier.txt'.
Steagul are nevoie de terminal este setat să arate că acest program trebuie să ruleze atașat la a
Terminal.
Deoarece există mai mulți pași pentru a trimite o comandă, următorii ar trebui să fie
verificat dacă încercați să executați un fișier prin extensie .ext nu are
efectul așteptat.
Comanda `alias -s ext' ar trebui să arate `ps=zsh-mime-handler'. Dacă se arată
altceva, un alt alias sufix a fost deja instalat și nu a fost suprascris.
Dacă nu arată nimic, nu a fost instalat niciun handler: acest lucru este cel mai probabil pentru că nu
handler a fost găsit în .tipuri.mime si mailcap combinatie pentru .ext fișiere. În
în acest caz, ar trebui adăugată o manipulare adecvată ~/.mime.tipuri si mailcap.
Dacă extensia este gestionată de zsh-mime-handler dar dosarul nu este deschis
corect, fie handlerul definit pentru tip este incorect, fie steagurile
asociate cu acesta sunt adecvate. Alergare zsh-mime-setup -l va arăta
handler și, dacă există, steagurile. A %s în manipulator este înlocuit cu
dosar (cotat corespunzător dacă este necesar). Verificați dacă programul de gestionare este listat
și poate fi rulat în modul arătat. De asemenea, verificați dacă steagurile are nevoie de terminal or
ieșire copioasă sunt setate dacă handlerul trebuie să fie rulat sub un terminal; al doilea
flag este folosit dacă ieșirea ar trebui trimisă către un pager. Un exemplu de potrivit
mailcap intrarea pentru un astfel de program este:
text/html; /usr/bin/lynx „%s”; are nevoie de terminal
Alergarea `zsh-mime-handler -l comandă linie' tipărește linia de comandă care ar fi
executat, simplificat pentru a elimina efectul oricăror steaguri și citat astfel încât
ieșirea poate fi rulată ca o linie de comandă zsh completă. Acesta este folosit de finalizare
sistem pentru a decide cum să se completeze după un fișier gestionat de zsh-mime-setup.
pick-web-browser
Această funcție este separată de cele două funcții MIME descrise mai sus și poate fi
atribuit direct unui sufix:
încărcare automată -U pick-web-browser
alias -s html=pick-web-browser
Este furnizat ca un front-end inteligent pentru a trimite un browser web. S-ar putea
rulați fie ca funcție, fie ca script shell. Statutul 255 este returnat dacă nu
browser-ul ar putea fi pornit.
Sunt disponibile diferite stiluri pentru a personaliza alegerea browserelor:
în stil browser
Valoarea stilului este o matrice care oferă preferințe în ordine descrescătoare
pentru tipul de browser de utilizat. Valorile elementelor pot fi
funcţionare
Utilizați un browser GUI care rulează deja când este afișat un X Window
disponibil. Browserele enumerate în x-browsere stilul este încercat
comanda până se găsește unul; dacă este, fișierul va fi afișat în
browserul respectiv, astfel încât utilizatorul ar putea avea nevoie să verifice dacă a apărut.
Dacă nu este găsit niciun browser care rulează, unul nu este pornit. Alte browsere
decât Firefox, Opera și Konqueror se presupune că înțeleg
Sintaxa Mozilla pentru deschiderea unui URL de la distanță.
x Porniți un nou browser GUI când este disponibil un afișaj X Window.
Căutați disponibilitatea unuia dintre browserele enumerate în
x-browsere stil și începeți primul care se găsește. Niciun cec nu este
creat pentru un browser care rulează deja.
tty Porniți un browser bazat pe terminal. Căutați disponibilitatea unuia
dintre browserele enumerate în tty-browsere stil și începe primul
unul care se gaseste.
Dacă stilul nu este setat implicit funcţionare x tty este folosit.
x-browsere
O matrice în ordinea descrescătoare a preferințelor browserelor de utilizat atunci când rulează
sub sistemul X Window. Matricea constă din numele comenzii sub
care să pornească browserul. Ele sunt privite în context :mima: (care
poate fi extins în viitor, deci anexând `*' este recomandat). De exemplu,
zstyle ':mima:*' x-browsere operă cuceritor Firefox
specifică că pick-web-browser ar trebui să caute mai întâi o instanță care rulează
Opera, Konqueror sau Firefox, în această ordine, și dacă nu reușește să găsească vreunul
ar trebui să încerce să pornească Opera. Valoarea implicită este Firefox mozilla netscape
operă cuceritor.
tty-browsere
O matrice similară cu x-browsere, cu excepția faptului că oferă browserelor de utilizat atunci când nu
X Afișarea ferestrei este disponibilă. Valoarea implicită este elinkuri Link-uri râs.
comandă
Dacă este setat, acest stil este folosit pentru a alege comanda folosită pentru a deschide o pagină pentru
un browser. Contextul este :mime:browser:new:$browser: pentru a începe un nou
browser sau :mime:browser:running:$browser: pentru a deschide o adresă URL într-un browser
rulează deja pe afișajul X actual, unde $browser este valoarea
potrivite în x-browsere or tty-browsere stil. Secvența de evadare %b in
valoarea stilului va fi înlocuită de browser, în timp ce %u va fi înlocuit
prin URL. Dacă stilul nu este setat, valoarea implicită pentru toate instanțele noi este
echivalent cu %b %u iar valorile implicite pentru utilizarea browserelor care rulează sunt
echivalent cu valorile kfmclient openURL %u pentru Konqueror, Firefox
-filă nouă %u pentru Firefox, operă -pagina noua %u pentru Opera și %b -la distanta
„openUrl(%u)” pentru toate celelalte.
MATEMATIC FUNCȚII
zcalc [ -dacă ] [ expresie ... ]
Un calculator destul de puternic bazat pe facilitatea de evaluare aritmetică a zsh.
Sintaxa este similară cu cea a formulelor din majoritatea limbajelor de programare; vezi
secțiunea „Evaluare aritmetică” în zshmisc(1) pentru detalii.
Non-programatorii ar trebui să rețină că, la fel ca în multe alte limbaje de programare,
expresii care implică numai numere întregi (fie constante fără un `.', variabile
care conțin astfel de constante precum șiruri de caractere sau variabile declarate ca fiind numere întregi) sunt by
implicit evaluat folosind aritmetica întregi, care nu este cum un birou obișnuit
calculatorul funcționează. Pentru a forța operarea în virgulă mobilă, treceți opțiunea -f; vedea
note suplimentare de mai jos.
Biblioteca de matematică zsh/mathfunc va fi încărcat dacă este disponibil; vezi
secțiunea „Modulul zsh/mathfunc” în zshmodules(1). Funcțiile matematice
corespund bibliotecilor de sistem brute, deci funcțiile trigonometrice sunt evaluate
folosind radiani și așa mai departe.
Fiecare linie tastata este evaluata ca o expresie. Promptul arată un număr, care
corespunde unui parametru de poziție unde este rezultatul acelui calcul
stocate. De exemplu, rezultatul calculului pe linia precedată de `4> '
este disponibil ca $4. Ultima valoare calculată este disponibilă ca ans. Comandă completă
este disponibilă editarea liniilor, inclusiv istoricul calculelor anterioare; cel
istoricul este salvat în fișier ~/.zcalc_istory. Pentru a ieși, introduceți o linie goală sau tastați
`:q„ pe cont propriu („q' este permis pentru compatibilitate istorică).
O linie care se termină cu o singură bară oblică inversă este tratată în același mod în care este
editare în linia de comandă: bara oblică inversă este eliminată, funcția solicită mai multe
intrare (promptul este precedat de `...' pentru a indica acest lucru), iar liniile sunt
combinate într-una singură pentru a obține rezultatul final. În plus, dacă intrarea până acum
conține mai mult paranteze deschise decât închise zcalc va solicita mai multe introduceri.
Dacă se dau argumente lui zcalc la pornire, ele sunt folosite pentru amorsarea primelor
parametrii poziționali. O indicație vizuală a acestui lucru este dată când calculatorul
începe.
Constantele PI (3.14159...) și E (2.71828...) sunt furnizate. Parametru
atribuirea este posibilă, dar rețineți că toți parametrii vor fi introduși în global
spațiu de nume.
Baza de ieșire poate fi inițializată prin trecerea opțiunii `-#de bază', de exemplu
`zcalc - # 16' („#' poate fi necesar să fie citat, în funcție de opțiunile de globalizare
a stabilit).
Dacă opțiunea `-e' este setat, funcția rulează neinteractiv: argumentele sunt
tratate ca expresii pentru a fi evaluate ca și cum ar fi introduse interactiv rând cu rând.
Dacă opțiunea `-f' este setat, toate numerele sunt tratate ca virgulă mobilă, deci pentru
exemplu expresia `3/4' se evaluează la 0.75 în loc de 0. Opțiunile trebuie să apară
în cuvinte separate.
Promptul este configurabil prin intermediul parametrului ZCALCPROMPT, care trece prin standard
extindere promptă. Indexul intrării curente este stocat local în primul
element al matricei psvar, la care se poate face referire în ZCALCPROMPT ca `%1v'.
promptul implicit este `%1v> '.
Sunt disponibile câteva comenzi speciale; acestea sunt introduse de un colon. Pentru
compatibilitate inversă, două puncte pot fi omise pentru anumite comenzi. Completare
este disponibil dacă compinit a fost condus.
Precizia de ieșire poate fi specificată în zcalc prin comenzi speciale familiare
de la multe calculatoare.
:normă Formatul implicit de ieșire. Corespunde printf %g specificație.
De obicei, aceasta arată șase cifre zecimale.
:sci cifre
Notatie stiintifica, corespunzatoare printf %g formatul de ieșire cu
precizie dată de cifre. Aceasta produce fie punct fix, fie exponențial
notaţie în funcţie de valoarea de ieşire.
:repara cifre
Notație punct fix, corespunzătoare printf %f formatul de ieșire cu
precizie dată de cifre.
:ing cifre
Notație exponențială, corespunzătoare printf %E formatul de ieșire cu
precizie dată de cifre.
:brut Ieșire brută: aceasta este forma implicită a rezultatului dintr-o evaluare matematică.
Acest lucru poate arăta mai multă precizie decât are numărul de fapt.
Alte comenzi speciale:
:!linia...
Executa linia... ca o linie de comandă shell normală. Rețineți că este executat în
contextul funcției, adică cu variabile locale. Spațiul este opțional
după :!.
:local arg ...
Declarați variabilele locale ale funcției. Rețineți că anumite variabile sunt
utilizată de funcție în scopuri proprii. Alte variabile pot fi utilizate,
de asemenea, dar vor fi luate sau introduse în domeniul global.
:funcţie nume [ corp ]
Definiți o funcție matematică sau (cu nr corp) sterge-l. :funcţie Mai
fi prescurtat la :func sau pur și simplu :f. nume poate contine acelasi lucru
caractere ca nume de funcție shell. Funcția este definită folosind
zmathfuncdef, Vezi mai jos.
Rețineți că zcalc se ocupă de toate citarea. Prin urmare, de exemplu:
:f cub $1 * $1 * $1
definește o funcție care să cubeze singurul argument.
[#de bază]
Aceasta nu este o comandă specială, mai degrabă o parte din sintaxa aritmetică normală;
totuși, atunci când această formă apare pe o linie în sine, radixul implicit de ieșire
este setat la de bază. Utilizați, de exemplu, `[# 16]' pentru a afișa rezultatul hexazecimal
precedat de o indicație a bazei sau `[##16]' doar pentru a afișa brut
număr în baza dată. Bazele în sine sunt întotdeauna specificate în zecimale.
`[#]' restabilește formatul normal de ieșire. Rețineți că setarea unei baze de ieșire
suprimă ieșirea în virgulă mobilă; utilizați `[#]' pentru a reveni la funcționarea normală.
Consultați comentariile din funcție pentru câteva sfaturi suplimentare.
zmathfuncdef [ mathfunc [ corp ] ]
Un front-end convenabil pentru funcții -M.
Cu două argumente, definiți o funcție matematică numită mathfunc care poate fi folosit
în orice formă de evaluare aritmetică. corp este o expresie matematică a
implementează funcția. Poate conține referințe la parametrii de poziție $1, $2,
... pentru a se referi la parametri obligatorii și ${1:-defvaluare} ... pentru a se referi la opțional
parametrii. Rețineți că formularele trebuie respectate cu strictețe pentru ca această funcție
calculați numărul corect de argumente. Implementarea este ținută într-un shell
funcția numită zsh_math_func_mathfunc; de obicei, utilizatorul nu va trebui să se refere la
funcția shell direct. Orice funcție existentă cu același nume este în tăcere
înlocuit.
Cu un singur argument, eliminați funcția matematică mathfunc precum și coaja
implementarea funcției.
Fără argumente, enumerați-le pe toate mathfunc funcţionează într-o formă adecvată pentru restaurarea
definiție. Funcțiile nu au fost neapărat definite de zmathfuncdef.
USER CONFIGURARE FUNCȚII
zsh/newuser modulul vine cu o funcție pentru a ajuta la configurarea opțiunilor de shell pentru noi
utilizatorii. Dacă modulul este instalat, această funcție poate fi rulată și manual. Este
disponibil chiar dacă comportamentul implicit al modulului, și anume rularea funcției pentru un nou
conectarea utilizatorului fără fișiere de pornire, este inhibată.
zsh-newuser-install [ -f ]
Funcția prezintă utilizatorului diverse opțiuni pentru personalizarea acestora
scripturi de inițializare. Momentan doar ~ / .zshrc este manevrat. $ZDOTDIR/.zshrc is
folosit în schimb dacă parametrul ZDOTDIR este setat; aceasta oferă utilizatorului o modalitate de a
configurați un fișier fără a modifica unul existent .zshrc.
În mod implicit, funcția se închide imediat dacă găsește oricare dintre fișiere .zshenv,
.zprofile, .zshrc, .zlogin în directorul corespunzător. Optiunea -f is
necesare pentru a forța funcția să continue. Rețineți că acest lucru se poate întâmpla chiar dacă
.zshrc în sine nu există.
După cum este configurată în prezent, funcția se va închide imediat dacă utilizatorul are root
privilegii; acest comportament nu poate fi depășit.
Odată activată, comportamentul funcției ar trebui să se explice de la sine. Meniuri
sunt prezente permițând utilizatorului să modifice valoarea opțiunilor și parametrilor.
Sugestiile de îmbunătățiri sunt întotdeauna binevenite.
Când scriptul iese, utilizatorului i se oferă posibilitatea de a salva noul fișier sau
nu; modificările nu sunt ireversibile până în acest moment. Cu toate acestea, scenariul este atent
pentru a restricționa modificările la fișier numai la un grup marcat de liniile `# Linii
configurat by zsh-newuser-install' și `# Sfârşit of linii configurat by
zsh-newuser-install'. În plus, versiunea veche a .zshrc este salvat într-un fișier
cu sufixul .zni anexat.
Dacă funcția editează un existent .zshrc, este la latitudinea utilizatorului să se asigure că
modificările efectuate vor intra în vigoare. De exemplu, dacă controlul revine de obicei devreme de la
existenta .zshrc liniile nu vor fi executate; sau un fișier de inițializare ulterior
poate suprascrie opțiunile sau parametrii și așa mai departe. Funcția în sine nu
încercarea de a detecta orice astfel de conflicte.
ALTE FUNCȚII
Există un număr mare de funcții utile în Funcții/Diverse directorul zsh
distributie. Majoritatea sunt foarte simple și nu necesită documente aici, dar câteva sunt
demn de mențiune specială.
Descrieri
culori Această funcție inițializează mai multe tablouri asociative pentru a mapa numele culorilor la (și
de la) codurile terminalelor standard ANSI cu opt culori. Acestea sunt folosite de prompt
sistem tematic (vezi mai sus). Rareori ar trebui să fugi culori mai mult de o dată.
Cele opt culori de bază sunt: negru, roșu, verde, galben, albastru, purpuriu, cyan și
alb. Fiecare dintre acestea are coduri pentru prim-plan și fundal. In plus acolo
sunt șapte atribute de intensitate: , slab, a iesi in evidenta, sublinia, clipi din ochi, inversa,
si ascunde. În cele din urmă, există șapte coduri folosite pentru a anula atribute: nici unul (resetare
toate atributele la valorile implicite), normală. (nici îndrăzneț, nici slab), neremarcat,
fără subliniere, fără clipire, fără invers și nu-ascunde.
Unele terminale nu acceptă toate combinațiile de culori și intensități.
Matricele asociative sunt:
culoare
culoare Hartați toate numele culorilor la codurile lor întregi și codurile întregi la
nume de culori. Cele opt nume de bază se mapează la codurile de culoare din prim plan, la fel
nume prefixate cu `fg-', cum ar fi `fg-roșu'. Nume prefixate cu `bg-',
precum `bg-blue', consultați codurile de fundal. Maparea inversă de la
codul la culoare oferă numele de bază pentru codurile din prim-plan și bg- formular pentru
fundaluri.
Deși este o denumire greșită să le numim „culori”, aceste matrice mapează și
alte paisprezece atribute de la nume la coduri și coduri la nume.
fg
fg_bold
fg_no_bold
Mapați cele opt nume de culori de bază la secvențele de evacuare ale terminalului ANSI care se setează
proprietățile corespunzătoare textului din prim-plan. The fg secvențele schimbă
culoare fără a modifica cele opt atribute de intensitate.
bg
bg_bold
bg_no_bold
Mapați cele opt nume de culori de bază la secvențele de evacuare ale terminalului ANSI care se setează
proprietățile de fundal corespunzătoare. The bg secvențele schimbă culoarea
fără a modifica cele opt atribute de intensitate.
În plus, parametrii scalari resetare_culoare si culoarea_îndrăzneață sunt setate la ANSI
evadări terminale care dezactivează toate atributele și activează intensitatea îndrăzneață,
respectiv.
fned [ -x o ] nume
La fel ca Zed -f. Această funcție nu apare în distribuția zsh, dar poate fi
creat prin legare Zed la nume fned într-un director din dvs fpath.
este cel puțin necesar [ prezenta ]
Efectuați o comparație mai mare decât sau egală cu două șiruri de caractere având formatul a
numărul versiunii zsh; adică un șir de numere și text cu segmente separate
prin puncte sau liniuțe. Dacă prezenta șirul nu este furnizat, $ZSH_VERSION este folosit.
Segmentele sunt împerecheate de la stânga la dreapta în cele două șiruri cu părți principale fără numere
ignorat. Dacă un șir are mai puține segmente decât celălalt, segmentele lipsă sunt
considerat zero.
Acest lucru este util în fișierele de pornire pentru a seta opțiuni și alte stări care nu sunt
disponibil în toate versiunile de zsh.
este cel puțin 3.1.6-15 && setopt NO_GLOBAL_RCS
este cel puțin 3.1.0 && setopt HIST_REDUCE_BLANKS
este cel puțin 2.6-17 || imprima "Tu nu se poate utilizare este cel puțin Aici."
nslookup [ arg ... ]
Această funcție de ambalare pentru nslookup comanda necesită zsh/zpty modul (vezi
zshmodules(1)). Se comportă exact ca standardul nslookup cu excepția faptului că acesta
furnizează solicitări personalizabile (inclusiv un prompt din partea dreaptă) și finalizarea
comenzi nslookup, nume de gazdă etc. (dacă utilizați completarea bazată pe funcții
sistem). Stilurile de completare pot fi setate cu prefixul de context
`:completion:nslookup'.
Consultați și pager, prompt si rprompt stiluri de mai jos.
regexp-inlocuire a fost expresie regulată înlocui
Utilizați expresii regulate pentru a efectua o căutare globală și o operație de înlocuire pe a
variabil. Dacă opțiunea RE_MATCH_PCRE nu este setat, POSIX extins regulat
sunt folosite expresii, altfel expresii regulate compatibile cu Perl (aceasta necesită
coajă să fie legată de pcre bibliotecă).
a fost este numele variabilei care conține șirul de potrivire. Variabila
va fi modificat direct de funcție. Variabilele MECI, MBEGIN, REPARA,
Meci, mbegin, repara ar trebui evitate deoarece acestea sunt folosite de expresia regulată
cod.
expresie regulată este expresia regulată pentru a se potrivi cu șirul.
înlocui este textul de înlocuire. Acesta poate conține parametru, comandă și
expresii aritmetice care vor fi înlocuite: în special, o referire la
$MATCH va fi înlocuit cu textul potrivit modelului.
Starea de returnare este 0 dacă a fost efectuată cel puțin o potrivire, altfel 1.
alergare-ajutor cmd
Această funcție este concepută pentru a fi invocată de către alergare-ajutor Widget ZLE, în loc de
alias implicit. Consultați „Accesarea ajutorului on-line” de mai sus pentru instrucțiuni de configurare.
În discuția care urmează, dacă cmd este o cale de sistem de fișiere, este mai întâi redusă
la componenta sa cea mai din dreapta (numele fișierului).
Ajutorul este mai întâi căutat prin căutarea unui fișier numit cmd în directorul numit de către
HELPDIR parametru. Dacă nu este găsit niciun fișier, o funcție de asistent, un alias sau o comandă
numit alerga-ajutor-cmd is căutat. If găsite, il asistent is executat cu il odihnă of
il curent comandă linie (Tot după il comandă nume cmd) as ei argumente.
Cand nici fişier nici asistent is găsite, il extern comandă `om cmd' is alerga.
Un exemplu de asistent pentru comanda „ssh”:
run-help-ssh() {
emula -LR zsh
local -a args
# Șterge il "-l nume de utilizator" opțiune
zparseopts -D -E -a args l:
# Șterge alte opțiuni plecand: gazdă comandă
args=(${@:#-*})
if [[ ${#args} -lt 2 ]]; apoi
om ssh
altfel
alergare-ajutor $args[2]
fi
}
Câțiva dintre acești asistenți sunt furnizați în Funcții/Diverse director. Aceste
trebuie să fie încărcate automat sau plasate ca scripturi executabile în calea de căutare, în ordine
pentru a fi găsit și folosit de alergare-ajutor.
run-help-git
run-help-svk
run-help-svn
Funcții de asistent pentru merge, SVK și SVN comenzi.
tetris Zsh a fost acuzat odată că nu este la fel de complet ca Emacs, deoarece îi lipsea un Tetris
joc. Această funcție a fost scrisă pentru a respinge această calomnie vicioasă.
Această funcție trebuie utilizată ca widget ZLE:
încărcare automată -U tetris
vedea -N tetris
bindkey chei tetris
Pentru a începe un joc, executați widget-ul tastând chei. Indiferent de linia de comandă
editarea dispare temporar, iar harta dvs. de taste este, de asemenea, înlocuită temporar
prin tastele de control Tetris. Starea anterioară a editorului este restabilită când ieși
jocul (apăsând `q') sau când pierzi.
Dacă renunți în mijlocul unui joc, următoarea invocare a tetris widget-ul va
continua de unde ai ramas. Dacă ai pierdut, va începe un nou joc.
tetriscursuri
Acesta este un port al celor de mai sus către zcurses. Manipularea intrării este puțin îmbunătățită, așa că
că mutarea unui bloc în lateral nu avansează automat un pas de timp, iar
grafica utilizează grafica bloc Unicode.
Această versiune nu salvează starea jocului între invocări și nu este invocată
ca widget, ci mai degrabă ca:
încărcare automată -U tetriscursuri
tetriscursuri
zargi [ opțiune ... -- ] [ intrare ... ] [ -- comandă [ arg ... ] ]
Această funcție are un scop similar cu GNU xargs. În loc să citești rânduri din
argumente din intrarea standard, le preia din linia de comandă. Aceasta este
util deoarece zsh, în special cu operatori glob recursivi, adesea poate construi a
linie de comandă pentru o funcție shell care este mai lungă decât poate fi acceptată de un
comandă externă.
opțiune lista reprezintă opțiunile zargi comanda în sine, care sunt aceleași
precum cele ale xargs. intrare lista este o colecție de șiruri de caractere (adesea nume de fișiere)
care devin argumentele comandă, analog cu intrarea standard a xargs.
În sfârșit, arg lista constă din acele argumente (de obicei opțiuni) care sunt transmise
la comandă de fiecare dată când rulează. The arg lista precede elementele din
intrare listă în fiecare cursă. Daca nu comandă este prevăzut, apoi nu arg lista poate fi
furnizat, iar în acest caz comanda implicită este `imprima'cu argumente'-r --'.
De exemplu, pentru a obține un lung ls listarea tuturor fișierelor simple din directorul curent
sau subdirectoarele sale:
încărcare automată -U zargi
zargi -- **/*(.) -- ls -l
Rețineți că `--' este folosit atât pentru a marca sfârșitul opțiune lista și pentru a marca sfârșitul
a intrare listă, deci trebuie să apară de două ori ori de câte ori intrare lista poate fi goală.
Dacă se garantează că va fi cel puțin unul intrare și primul intrare nu începe
cu un `-', apoi primul `--' poate fi omis.
În cazul în care șirul `--' este sau poate fi un intrare, -e poate fi utilizată opțiunea
pentru a schimba marcatorul de sfârșit de intrări. Rețineți că acest lucru este valabil nu schimba
marker de sfârșit de opțiuni. De exemplu, pentru a folosi `..' ca marcator:
zargi -e.. -- **/*(.) .. ls -l
Aceasta este o alegere bună în acel exemplu, deoarece niciun fișier simplu nu poate fi numit `..', dar
cel mai bun marker final depinde de circumstanțe.
Opțiunile -i, -I, -l, -L și -n diferă ușor de utilizarea lor în xargs.
Nu există linii de intrare pentru zargi a număra, deci -l si -L numără prin intrare
listă și -n numără numărul de argumente transmise la fiecare execuție a comandă,
inclusiv Orice arg listă. De asemenea, oricând -i or -I este folosit, fiecare intrare este procesat
separat ca prin `-L 1'.
Pentru detalii despre celălalt zargi opțiuni, vezi xargs(1) (dar rețineți diferența în
functia intre zargi si xargs) sau fugi zargi cu --Ajutor opțiune.
Zed [ -f [ -x o ] ] nume
Zed -b Această funcție folosește editorul ZLE pentru a edita un fișier sau o funcție.
Unul singur nume argumentul este permis. Dacă -f este dată opțiunea, numele este luat la
fie cel al unei funcții; dacă funcția este marcată pentru încărcare automată, Zed căutări
acesta în fpath și îl încarcă. Rețineți că funcțiile editate în acest fel sunt instalate
în carcasa actuală, dar nu scris înapoi în fișierul de încărcare automată. În acest caz
il -x opțiunea specifică că filele principale indentează funcția în funcție de
sintaxa ar trebui convertită în numărul dat de spații; `-x 2' este consistent
cu aspectul funcțiilor distribuite cu shell-ul.
Fără -f, nume este numele căii fișierului de editat, care nu trebuie să existe; este
creat pe scriere, dacă este necesar.
În timpul editării, funcția setează harta tastelor principale la Zed și harta tastaturii comenzii vi
la zed-vicmd. Acestea vor fi copiate din cele existente principal si vicmd hărți de taste dacă
ele nu există prima dată Zed este rulat. Ele pot fi folosite pentru a oferi special
legături de chei utilizate numai în zed.
Dacă creează harta tastelor, Zed relegă tasta de întoarcere pentru a insera o întrerupere de linie și
`^X^W' pentru a accepta editarea în Zed keymap și leagă `ZZ' pentru a accepta editarea în
il zed-vicmd harta tastelor.
Numai legăturile pot fi instalate rulând `Zed -b'. Acest lucru este potrivit pentru
introducerea într-un fișier de pornire. Rețineți că, dacă reluați, aceasta va suprascrie pe cea existentă
Zed si zed-vicmd hărți de taste.
Completarea este disponibilă, iar stilurile pot fi setate cu prefixul de context
`:completion:zed'.
Un widget zle zed-set-file-name este disponibil. Acesta poate fi numit pe nume de la
în zed folosind `\ex zed-set-file-name' (rețineți, totuși, că din cauza lui zed
relegări va trebui să tastați ^j la sfârșit în loc de cheia de retur), sau poate
fi legat de o cheie în oricare dintre Zed or zed-vicmd hărți de taste după `Zed -b' a fost
alerga. Când widget-ul este apelat, acesta solicită un nou nume pentru fișier
editat. Când zed iese, fișierul va fi scris sub acel nume și originalul
dosarul va fi lăsat în pace. Widgetul nu are efect cu `Zed -f'.
In timp ce zed-set-file-name rulează, zed folosește harta tastelor zed-normal-keymap, Care este
conectat de la harta principală a tastelor în vigoare la momentul inițializării legărilor zed.
(Acest lucru este pentru a face ca tasta de revenire să funcționeze normal.) Rezultatul este că, dacă tasta principală
Harta tastelor a fost schimbată, widget-ul nu va observa. Acest lucru nu este o preocupare pentru majoritatea
utilizatori.
zcp [ -finqQvwW ] srcpat destinaţie
zln [ -finqQsvwW ] srcpat destinaţie
La fel ca zmv -C si zmv -L, respectiv. Aceste funcții nu apar în zsh
distribuție, dar poate fi creat prin legare zmv la nume zcp si zln în unele
directorul din dvs fpath.
zkbd Consultați „Definiția tastaturii” de mai sus.
zmv [ -finqQsvwW ] [ -C | -L | -M | -{p|P} program ] [ -o optstring ]
srcpat destinaţie
Mutați (de obicei, redenumiți) fișierele care se potrivesc cu modelul srcpat la fișierele corespunzătoare
având nume de forma dată de destinaţie, În cazul în care srcpat conţine paranteze
modele înconjurătoare care vor fi înlocuite la rândul lor de $1, $2, ... în destinaţie. Pentru
exemplu,
zmv '(*).lis' „$1.txt”
redenumește `foo.lis„la „foo.txt', `lucrurile.mei.vechi„la „textul.meu.vechi', Așadar
pe.
Modelul este întotdeauna tratat ca un EXTENDED_GLOB model. Orice fișier al cărui nume este
neschimbat prin înlocuire este pur și simplu ignorat. Orice eroare (o înlocuire
a rezultat într-un șir gol, două înlocuiri au dat același rezultat, the
destinația era un fișier obișnuit existent și -f nu a fost dat) cauzele întregului
funcția de a renunța fără a face nimic.
Pe lângă înlocuirea modelului, variabila $f se poate face referire la
al doilea argument (de înlocuire). Acest lucru face posibilă utilizarea substituției variabile
a altera argumentul; vezi exemple de mai jos.
Opțiuni:
-f Forțați suprascrierea fișierelor destinație. În prezent, nu este transmisă la
mv/cp/ln comanda din cauza capriciilor implementărilor (dar puteți folosi -de la
fa aia).
-i Interactiv: arată fiecare linie care urmează să fie executată și întreabă utilizatorul dacă
executa-l. `Y' sau `y' îl va executa, orice altceva îl va omite. Notă
că trebuie doar să tastați un caracter.
-n Fără execuție: imprimați ce s-ar întâmpla, dar nu o faceți.
-q Dezactivați calificativele globului gol: acum presupusă implicit, deci nu are
efect.
-Q Forțați calificativele pentru globul gol. Nu porniți acest lucru decât dacă sunteți cu adevărat
folosind calificativi glob într-un model.
-s Simbolic, transmis la ln; functioneaza doar cu -L.
-v Verbos: imprimați fiecare comandă pe măsură ce este executată.
-w Alegeți părți joker ale modelului, așa cum este descris mai sus și implicit
adăugați paranteze pentru referire la ele.
-W La fel ca -w, cu adăugarea de turnare a metacaractere în înlocuire
model în secvenţial {1} $ .. {N} $ referințe.
-C
-L
-M Forţarea cp, ln or mv, respectiv, indiferent de numele funcției.
-p program
Apel program în loc de cp, ln or mv. Orice ar face, ar trebui cel puțin
înțelegeți forma `program -- vechi nume nume nou' Unde vechi nume si nume nou
sunt nume de fișiere generate de zmv. program va fi împărțit în cuvinte, așa că ar putea
de exemplu, numele unui instrument de arhivare plus o subcomandă de copiere sau redenumire.
-P program
As -p program, cu excepția asta program nu acceptă următorul -- la
indica sfârșitul opțiunilor. În acest caz, numele fișierelor trebuie să fie deja în a
formă corectă pentru programul în cauză.
-o optstring
optstring este împărțit în cuvinte și transmis textual la cp, ln or
mv comanda chemată pentru a efectua lucrarea. Probabil că ar trebui să înceapă cu un `-'.
Alte exemple:
zmv -v '(* *)' „${1// /_}'
Pentru orice fișier din directorul curent cu cel puțin un spațiu în nume, înlocuiți
fiecare spațiu printr-o liniuță și afișați comenzile executate.
zmv -v '* *' „${f// /_}'
Acest lucru face exact același lucru, referindu-se la numele fișierului stocat în $f.
Pentru exemple mai complete și alte detalii de implementare, consultați zmv sursă
fișier, de obicei situat într-unul dintre directoarele numite în fișierul dvs fpath, Sau în
Funcții/Diverse/zmv în distribuția zsh.
zrecompile
Vezi `Funcții de recompilare' de mai sus.
zstyle+ context stil valoare [ + subcontext stil valoare ... ]
Acest lucru face definirea stilurilor un pic mai simplă prin utilizarea unui singur `+' ca un semn special
care vă permite să adăugați un nume de context la numele de context utilizat anterior. Ca
acest:
zstyle+ ':foo:bar' style1 valoare1 \
+':baz' style2 valoare2 \
+':frb' style3 valoare3
Aceasta definește style1 cu valoare1 pentru context :foo:bar ca de obicei, dar și asta
definește style2 cu valoare2 pentru context :foo:bar:baz si style3 cu valoare3 pentru
:foo:bar:frb. Orice subcontext poate fi șirul gol pentru a reutiliza primul context
neschimbat.
Stiluri
filă-inserare
Zed funcţie seturi acest stil în context `:completion:zed:*' a opri
finalizare când TAB este tastat la începutul unui rând. Puteți trece peste aceasta prin
stabilindu-ti propria valoare pentru acest context si stil.
pager nslookup funcția caută acest stil în contextul `:nslookup' a determina
programul folosit pentru a afișa rezultate care nu se potrivesc pe un singur ecran.
prompt
rprompt
nslookup funcția caută acest stil în contextul `:nslookup' pentru a seta
prompt și, respectiv, prompt din partea dreaptă. Expansiunile obișnuite pentru PS1
si RPS1 pot fi utilizați parametrii (vezi EXTENSIREA SECVENȚELOR PROMPT în zshmisc(1)).
Utilizați zshcontrib online folosind serviciile onworks.net