Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Russian FAQ
- X-seq: zsh-users 9263
- From: UVV <UVV-mail@xxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx, zsh-users@xxxxxxxxxx
- Subject: Russian FAQ
- Date: Sun, 07 Aug 2005 17:10:28 +0800
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
With no comments!
Please, mail me about any mistakes!
mailto(pws@xxxxxxxxxxxxxxxxxxxxxxxx)\
whentxt(notableofcontents())\
COMMENT(-- mytt is like tt but adds quotes `like this' for plain text --)\
def(mytt)(1)(\
whentxt(`ARG1')\
whenhtml(tt(ARG1))\
whenlatex(tt(ARG1))\
whenms(tt(ARG1))\
whensgml(tt(ARG1)))\
COMMENT(-- mybf/em are like bf/em but add *emphasis* for text too --)\
def(mybf)(1)(\
whentxt(*ARG1*)\
whenhtml(bf(ARG1))\
whenlatex(bf(ARG1))\
whenms(bf(ARG1))\
whensgml(bf(ARG1)))\
def(myem)(1)(\
whentxt(_ARG1_)\
whenhtml(em(ARG1))\
whenlatex(em(ARG1))\
whenms(em(ARG1))\
whensgml(em(ARG1)))\
COMMENT(-- mydit is like dit but no `o' for text mode --)\
def(mydit)(1)(\
whenlatex(dit(ARG1))\
whenhtml(dit(ARG1))\
whentxt(ARG1)\
whenman(dit(ARG1))\
whenms(dit(ARG1))\
whensgml(dit(ARG1)))\
COMMENT(-- myeit is like eit but fancier text formatting --)\
def(myeit)(0)(\
whenlatex(eit())whenhtml(eit())whenman(eit())whenms(eit())whensgml(eit())\
whentxt(eit()CHAR(41)))\
def(myeitd)(0)(\
whenlatex(eit())whenhtml(eit())whenman(eit())whenms(eit())whensgml(eit())\
whentxt(.))\
COMMENT(-- don't want headers for text, USENET headers must come first --)\
def(myreport)(3)(\
whentxt(report()()())\
whenhtml(report(ARG1)(ARG2)(ARG3))\
whenlatex(report(ARG1)(ARG2)(ARG3))\
whenman(report(ARG1)(ARG2)(ARG3))\
whenms(report(ARG1)(ARG2)(ARG3))\
whensgml(report(ARG1)(ARG2)(ARG3)))
myreport(Z-Shell þÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ)(Peter Stephenson)(2005/01/11)
COMMENT(-- the following are for Usenet and must appear first)\
description(\
mydit(éÍÑ ÁÒÈÉ×Á:) unix-faq/shell/zsh
mydit(ðÏÓÌÅÄÎÅÅ ÉÚÍÅÎÅÎÉÅ:) 01.08.2005
mydit(ïÐÕÂÌÉËÏ×ÁÎÏ:) email(pws@xxxxxxxxxxxxxxxxxxxxxxxx (Peter Stephenson))
mydit(ðÅÒÅ×ÅÄÅÎÏ:) email(UVV-mail@xxxxxxxxx (àÒËÏ× ÷ÑÞÅÓÌÁ× ÷ÌÁÄÉÍÉÒÏ×ÉÞ))
mydit(þÁÓÔÏÔÁ ÏÂÎÏ×ÌÅÎÉÑ:) ÅÖÅÍÅÓÑÞÎÏ
mydit(á×ÔÏÒÓËÁÑ ÉÎÆÏÒÍÁÃÉÑ:) (C) P.W. Stephenson, 1995--2005 (óÍ. × ËÏÎÃÅ ÄÏËÕÍÅÎÔÁ)
)
üÔÏÔ ÄÏËÕÍÅÎÔ ÓÏÄÅÒÖÉÔ ÓÐÉÓÏË ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÈ (ÉÌÉ ÐÒÏÓÔÏ ×ÁÖÎÙÈ) ×ÏÐÒÏÓÏ×, ËÁÓÁÀÝÉÈÓÑ Z-shell, ËÏÍÁÎÄÎÏÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÄÌÑ ÍÎÏÇÉÈ UNIX-ÓÉÓÔÅÍ, ËÏÔÏÒÙÊ Ó×ÏÂÏÄÎÏ ÄÏÓÔÕÐÅÎ ×ÓÅÍ, Õ ËÏÔÏ ÅÓÔØ FTP-ÄÏÓÔÕÐ. Zsh ÏÔÎÏÓÉÔÓÑ Ë ÞÉÓÌÕ ÓÁÍÙÈ ÍÏÝÎÙÈ Ó×ÏÂÏÄÎÏ ÄÏÓÔÕÐÎÙÈ Bourne-like ÛÅÌÌÏ× ÄÌÑ ÉÎÔÅÒÁËÔÉ×ÎÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ.
åÓÌÉ ×Ù ÎÉËÏÇÄÁ ÎÅ ÓÌÙÛÁÌÉ Ï mytt(sh), mytt(csh) ÉÌÉ mytt(ksh), ÔÏÇÄÁ ×ÁÍ ×ÅÒÏÑÔÎÏ ÌÕÞÛÅ ÎÁÞÁÔØ Ó ÞÔÅÎÉÑ ÏÂÙÞÎÏÇÏ ××ÅÄÅÎÉÑ × UNIX, ÞÅÍ Ó ÜÔÏÇÏ ÄÏËÕÍÅÎÔÁ.
åÓÌÉ ×Ù ÈÏÔÉÔÅ ÕÚÎÁÔØ, ÇÄÅ ×ÚÑÔØ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÀ, ÐÅÒÅÈÏÄÉÔÅ Ë ×ÏÐÒÏÓÕ link(1.6)(16), Á ÎÅÒÁÚÒÅÛÉÍÙÅ ÐÒÏÂÌÅÍÙ ÏÓ×ÅÝÅÎÙ × ×ÏÐÒÏÓÅ link(5.2)(52).
whentxt(úÁÍÅÞÁÎÉÅ: ôÅËÓÔ, ÚÁËÌÀÞ£ÎÎÙÊ × `ÔÁËÉÅ ËÁ×ÙÞËÉ', Ñ×ÌÑÅÔÓÑ ÐÒÏÓÔÙÍ ÔÅËÓÔÏÍ. æÒÁÇÍÅÎÔÙ, ËÏÔÏÒÙÅ ×Ù ××ÏÄÉÔÅ, ÚÁËÌÀÞÁÀÔÓÑ × ÄÒÕÇÉÅ ËÁ×ÙÞËÉ.)
COMMENT(-- need to do this specially in text since it should go here --)
whentxt(óÏÄÅÒÖÁÎÉÅ:
çÌÁ×Á 1: úÎÁËÏÍÓÔ×Ï Ó zsh É ËÁË ÅÇÏ ÕÓÔÁÎÏ×ÉÔØ
1.1: éÓÔÏÞÎÉËÉ ÉÎÆÏÒÍÁÃÉÉ
1.2: þÔÏ ÜÔÏ?
1.3: þÔÏ × Î£Í ÈÏÒÏÛÅÇÏ?
1.4: îÁ ËÁËÉÈ ÍÁÛÉÎÁÈ ÏÎ ÚÁÐÕÓÔÉÔÓÑ? (á ÔÁËÖÅ ×ÁÖÎÙÅ ÚÁÍÅÞÁÎÉÑ ÐÏ ËÏÍÐÉÌÑÃÉÉ)
1.5: ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?
1.6: çÄÅ ÍÎÅ ÅÇÏ ×ÚÑÔØ?
1.7: õ ÍÅÎÑ ÎÅÔ ÄÏÓÔÕÐÁ ÓÕÐÅÒÐÏÌØÚÏ×ÁÔÅÌÑ: ËÁË ÓÄÅÌÁÔØ, ÞÔÏÂÙ zsh ÚÁÐÕÓËÁÌÓÑ ÐÒÉ ×ÈÏÄÅ × ÓÉÓÔÅÍÕ?
çÌÁ×Á 2: þÅÍ zsh ÏÔÌÉÞÁÅÔÓÑ ÏÔ ...?
2.1: ïÔÌÉÞÉÑ ÏÔ sh É ksh
2.2: óÈÏÄÓÔ×Á Ó csh
2.3: ðÏÞÅÍÕ ÍÏÉ ÐÓÅ×ÄÏÎÉÍÙ ÏÔ csh ÎÅ ÒÁÂÏÔÁÀÔ? (á ÔÁËÖÅ ÄÒÕÇÉÅ ÏÛÉÂËÉ Ó ÐÓÅ×ÄÏÎÉÍÁÍÉ.)
2.4: óÈÏÄÓÔ×Á Ó tcsh
2.5: óÈÏÄÓÔ×Á Ó bash
2.6: äÏÌÖÅÎ ÌÉ zsh ÂÙÔØ ÂÏÌØÛÅ/ÍÅÎØÛÅ ÐÏÈÏÖ ÎÁ ksh/(t)csh?
2.7: ðÏÄÄÅÒÖÉ×ÁÅÔ ÌÉ zsh Unicode/UTF-8?
çÌÁ×Á 3: ëÁË ÚÁÓÔÁ×ÉÔØ ÒÁÂÏÔÁÔØ ÒÁÚÌÉÞÎÙÅ ×ÅÝÉ
3.1: ðÏÞÅÍÕ ÐÅÒÅÍÅÎÎÁÑ `$var', ÇÄÅ `var="foo bar"' ÎÅ ÄÅÌÁÅÔ ÔÏÇÏ ÞÅÇÏ Ñ ÏÖÉÄÁÀ?
3.2: ÷ ËÁËÏÊ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ Ñ ÄÏÌÖÅÎ ÐÒÏÐÉÓÁÔØ...?
3.3: ÷ Þ£Í ÒÁÚÌÉÞÉÑ ÍÅÖÄÕ `export' É ÐÁÒÁÍÅÔÒÏÍ ALL_EXPORT ?
3.4: ëÁË ÍÎÅ ×ÙËÌÀÞÉÔØ ËÏÒÒÅËÃÉÀ ÐÒÁ×ÏÐÉÓÁÎÉÑ/ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÀ ÆÁÊÌÏ×ÙÈ ÉͣΠÄÌÑ ÏÄÎÏÊ ËÏÍÁÎÄÙ?
3.5: ëÁË ÍÎÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÍÅÔÁ ËÌÁ×ÉÛÁ ÒÁÂÏÔÁÌÁ ÎÁ ÍÏ£Í xterm?
3.6: ëÁË ÍÎÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÔÅËÕÝÁÑ ÄÉÒÅËÔÏÒÉÑ Á×ÔÏÍÁÔÉÞÅÓËÉ ×Ù×ÏÄÉÌÁÓØ × ÚÁÇÏÌÏ×ËÅ xterm?
3.7: ëÁË ÍÎÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÌÉÓÔ ÚÁ×ÅÒÛÅÎÉÑ ËÏÍÁÎÄ ÉÓÐÏÌØÚÏ×ÁÌ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ?
3.8: ðÏÞÅÍÕ "ÓÔÒÅÌËÉ" (ËÌÁ×ÉÛÉ ÕÐÒÁ×ÌÅÎÉÑ ËÕÒÓÏÒÏÍ) ÎÅ ÒÁÂÏÔÁÀÔ?
3.9: ðÏÞÅÍÕ ÔÅÒÍÉÎÁÌ × ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ ×ÅÄ£Ô ÓÅÂÑ ÓÍÅÛÎÏ?
3.10: ðÏÞÅÍÕ zsh ÎÅ ÒÁÂÏÔÁÅÔ ÂÏÌØÛÅ × ÒÅÖÉÍÅ Emacs?
3.11: ðÏÞÅÍÕ ÍÏÉ Á×ÔÏÚÁÇÒÕÖÁÅÍÙÅ ÆÕÎËÃÉÉ ÎÅ ÚÁÇÒÕÖÁÀÔÓÑ?
3.12: ëÁË ÒÁÂÏÔÁÅÔ ÂÁÚÏ×ÁÑ ÁÒÉÆÍÅÔÉËÁ?
3.13: ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÎÏ×ÕÀ ÓÔÒÏËÕ × ÐÒÉÇÌÁÛÅÎÉÉ?
3.14: ðÏÞÅÍÕ `bindkey ^a command-name' ÉÌÉ `stty intr ^-' ×ÅÄÕÔ ÓÅÂÑ ËÁË-ÔÏ ÓÍÅÛÎÏ?
3.15: ðÏÞÅÍÕ Ñ ÎÅ ÍÏÇÕ ÂÏÌØÛÅ Ó×ÑÚÁÔØ ÓÏÞÅÔÁÎÉÑ \C-s É \C-q ?
3.16: ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ `foo' ×ÎÕÔÒÉ ÆÕÎËÃÉÉ foo?
3.17: ðÏÞÅÍÕ ÐÏÄÓÔÁÎÏ×ËÁ ËÏÍÁÎÄÙ ÉÚ ÉÓÔÏÒÉÉ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÏÓËÌÉÃÁÔÅÌØÎÏÇÏ ÚÎÁËÁ ×ÏÚ×ÒÁÝÁÅÔ ÞÔÏ-ÔÏ ÓÍÅÛÎÏÅ?
3.18: ðÏÞÅÍÕ zsh ÕÂÉ×ÁÅÔ ×ÓÅ ÆÏÎÏ×ÙÅ ÐÒÏÃÅÓÓÙ ÐÒÉ ×ÙÈÏÄÅ?
3.19: ëÁË ÍÎÅ ÐÒÏÓÍÏÔÒÅÔØ ×Ó£ ÓÏÄÅÒÖÉÍÏÅ ÉÓÔÏÒÉÉ?
3.20: ðÏÞÅÍÕ ÄÒÕÇÏÊ ÓÉÎÔÁËÓÉÓ ÃÉËÌÁ ÔÏÖÅ ÒÁÂÏÔÁÅÔ, ÎÁÐÒÉÍÅÒ `while {...} {...}'?
3.21: ðÏÞÅÍÕ ÍÏÑ ÉÓÔÏÒÉÑ ÎÅ ÓÏÈÒÁÎÉÌÁÓØ?
3.22: ëÁË ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ, ÉÍÑ ËÏÔÏÒÏÊ Ñ×ÌÑÅÔÓÑ ÚÎÁÞÅÎÉÅÍ ÄÒÕÇÏÊ ÐÅÒÅÍÅÎÎÏÊ?
3.23: ëÁË ÐÒÅÄÏÔ×ÒÁÔÉÔØ ÚÁÔÉÒÁÎÉÅ ÓÏÏÂÝÅÎÉÑ, × ËÏÔÏÒÏÍ ÎÅÔ ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ, ÐÒÉÇÌÁÛÅÎÉÅÍ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ?
3.24: þÔÏ ÓÌÕÞÉÌÏÓØ Ó ÏÐÅÒÁÃÉÑÍÉ ×ÙÒÅÚÁÎÉÑ É ×ÓÔÁ×ËÉ × xterm?
3.25: ëÁË ÍÎÅ ÒÁÚÕËÒÁÓÉÔØ ÐÒÉÇÌÁÛÅÎÉÅ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ × Ã×ÅÔÎÏÍ xterm?
3.26: ðÏÞÅÍÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ËÏÍÁÎÄÙ `foo 2>&1 >foo.out | bar' ×Ù×ÏÄ ÄÕÂÌÉÒÕÅÔÓÑ?
çÌÁ×Á 4: óÅËÒÅÔÙ ÚÁ×ÅÒÛÅÎÉÑ
4.1: þÔÏ ÔÁËÏÅ ÚÁ×ÅÒÛÅÎÉÅ?
4.2: þÔÏ ÍÏÖÅÔ ÂÙÔØ ÚÁ×ÅÒÛÅÎÏ?
4.3: ëÁË zsh ÐÏÓÔÕÐÁÅÔ Ó ÎÅÏÐÒÅÄÅÌ£ÎÎÙÍÉ ÚÁ×ÅÒÛÅÎÉÑÍÉ?
4.4: ëÁË ÍÎÅ ÚÁ×ÅÒÛÉÔØ × ÓÅÒÅÄÉÎÅ ÓÌÏ×Á / ÄÏ ËÕÒÓÏÒÁ?
4.5: ëÁË ÍÎÅ ÎÁÞÁÔØ Ó ÐÒÏÇÒÁÍÍÉÒÕÅÍÙÍ ÚÁ×ÅÒÛÅÎÉÅÍ?
4.6: äÏÓÔÁÔÏÞÎÏ ÌÉ ÐÏÌÅÚÎÏ ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ?
çÌÁ×Á 5: âÕÄÕÝÅÅ zsh
5.1: ëÁËÉÅ ÏÛÉÂËÉ ÉÚ×ÅÓÔÎÙ É ÎÅÉÓÐÒÁ×ÌÅÎÙ? (á ÔÁËÖÅ ÎÅÄÁ×ÎÉÅ ×ÁÖÎÙÅ ÉÚÍÅÎÅÎÉÑ)
5.2: çÄÅ ÍÎÅ ÄÏÌÏÖÉÔØ Ï ÏÛÉÂËÁÈ, ÐÏÌÕÞÉÔØ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ / ËÔÏ ÒÁÂÏÔÁÅÔ ÎÁÄ zsh?
5.3: ëÁË ÎÁÓÞ£Ô ÓÐÉÓËÁ ÐÏÖÅÌÁÎÉÊ?
5.4: åÓÔØ ÌÉ Õ zsh ÐÒÏÂÌÅÍÁ 2000 ÇÏÄÁ (ÏÔÏÂÒÁÖÅÎÉÅ ÄÁÔÙ)?
âÌÁÇÏÄÁÒÎÏÓÔÉ
á×ÔÏÒÓËÁÑ ÉÎÆÏÒÍÁÃÉÑ
--- ëÏÎÅà ÓÏÄÅÒÖÁÎÉÑ ---
)
chapter(úÎÁËÏÍÓÔ×Ï Ó zsh É ËÁË ÅÇÏ ÕÓÔÁÎÏ×ÉÔØ)
sect(éÓÔÏÞÎÉËÉ ÉÎÆÏÒÍÁÃÉÉ)
label(11)
éÎÆÏÒÍÁÃÉÑ Ï zsh ÄÏÓÔÕÐÎÁ ÞÅÒÅÚ World Wide Web: url(http://sunsite.dk/zsh/)(http://sunsite.dk/zsh/) . óÅÒ×ÅÒ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÜÔÏÔ FAQ É ÍÎÏÇÏ ÄÒÕÇÏÇÏ, × ÄÁÎÎÙÊ ÍÏÍÅÎÔ ÏÎ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ Karsten Thygesen É ÄÒÕÇÉÍÉ (email(zsh@xxxxxxxxxx)). FAQ ÎÁÈÏÄÉÔÓÑ ÚÄÅÓØ url(http://sunsite.dk/zsh/FAQ/)(http://sunsite.dk/zsh/FAQ/) . îÁ ÓÁÊÔÅ ÔÁËÖÅ ÍÏÖÎÏ ÎÁÊÔÉ zsh-ÓËÒÉÐÔÙ É ÆÕÎËÃÉÉ; ÍÙ Ó ÕÄÏ×ÏÌØÓÔ×ÉÅÍ ÄÏÂÁ×ÉÍ ÄÒÕÇÉÅ ÉÌÉ ÐÒÏÓÔÏ ÄÁÄÉÍ ÓÓÙÌËÕ ÎÁ ×ÁÛÕ ÓÏÂÓÔ×ÅÎÎÕÀ ËÏÌÌÅËÃÉÀ.
üÔÏÔ ÄÏËÕÍÅÎÔ × ÏÒÉÇÉÎÁÌÅ ÂÙÌ ÎÁÐÉÓÁÎ × ÆÏÒÍÁÔÅ YODL, ÐÏÚ×ÏÌÑÀÝÅÍ ÌÅÇËÏ ËÏÎ×ÅÒÔÉÒÏ×ÁÔØ ÓÅÂÑ × ÒÁÚÌÉÞÎÙÅ ÆÏÒÍÁÔÙ. çÌÁ×ÎÙÊ ÉÓÈÏÄÎÙÊ ÆÁÊÌ ÌÅÖÉÔ ÚÄÅÓØ url(http://sunsite.dk/zsh/FAQ/zshfaq.yo)(http://sunsite.dk/zsh/FAQ/zshfaq.yo) É ÔÅËÓÔÏ×ÁÑ ×ÅÒÓÉÑ: url(http://sunsite.dk/zsh/FAQ/zshfaq.txt)(http://sunsite.dk/zsh/FAQ/zshfaq.txt) .
äÒÕÇÏÊ ÐÏÌÅÚÎÙÊ ÉÓÔÏÞÎÉË ÉÎÆÏÒÍÁÃÉÉ - ÜÔÏ ÓÏÂÒÁÎÉÅ FAQ-ÓÔÁÔÅÊ, ÞÁÓÔÏ ÒÁÚÍÅÝÁÅÍÙÈ × Usenet ÇÒÕÐÐÅ ÎÏ×ÏÓÔÅÊ comp.unix.questions, comp.unix.shells É comp.answers Ó ÏÔ×ÅÔÁÍÉ ÎÁ ÏÂÙÞÎÙÅ ×ÏÐÒÏÓÙ ÐÏ UNIX. ðÑÔØ ÉÚ ÓÅÍÉ ÓÔÁÔÅÊ Ó×ÑÚÁÎÙ Ó ÛÅÌÌÁÍÉ, ×ËÌÀÞÁÑ zsh, Ó ËÒÁÔËÉÍ ÏÐÉÓÁÎÉÅÍ ÒÁÚÌÉÞÉÊ. ôÁË ÖÅ ÓÕÝÅÓÔ×ÕÅÔ ÏÔÄÅÌØÎÙÊ FAQ ÐÏ ÒÁÚÌÉÞÉÑÍ ÛÅÌÌÏ× É ËÁË ÓÍÅÎÉÔØ ÛÅÌÌ. FAQ'É Usenet'Á ÄÏÓÔÕÐÎÙ ÐÏ FTP Ó rtfm.mit.edu É ÚÅÒËÁÌ, Á ÔÁË ÖÅ ÞÅÒÅÚ World Wide Web:
description(
mydit(óûá) url(http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html)
(http://www.cis.ohio-state.edu/hypertext/faq/usenet/top.html)
mydit(÷ÅÌÉËÏÂÒÉÔÁÎÉÑ) url(http://www.lib.ox.ac.uk/internet/news/faq/comp.unix.shell.html)
(http://www.lib.ox.ac.uk/internet/news/faq/comp.unix.shell.html)
mydit(îÉÄÅÒÌÁÎÄÙ) url(http://www.cs.uu.nl/wais/html/na-dir/unix-faq/shell/.html)
(http://www.cs.uu.nl/wais/html/na-dir/unix-faq/shell/.html)
)
÷Ù ÔÁË ÖÅ ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÅÇÏ ÐÏ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÅ, ÐÏÓÌÁ× ÐÉÓØÍÏ ÎÁ email(mail-server@xxxxxxxxxxxx) Ó ÓÏÏÂÝÅÎÉÅÍ mytt(send faqs/unix-faq/shell/zsh).
ðÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ ÜÔÏÇÏ FAQ ÔÁËÖÅ ÄÏÓÔÕÐÎÁ ÉÚ ÌÀÂÏÇÏ zsh ÁÒÈÉ×Á, ÕËÁÚÁÎÎÏÇÏ × ÓÐÉÓËÅ × ÐÕÎËÔÅ link(1.6)(16).
äÌÑ ÕÄÏÂÓÔ×Á ÞÔÅÎÉÑ, Á ÔÁËÖÅ ×ÄÏÂÁ×ÏË Ë ÏÐÉÓÁÎÉÀ ÐÏÌÅÚÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ Ñ ×ÙÌÏÖÉÌ ÔÕÄÁ ÖÅ ÒÕËÏ×ÏÄÓÔ×Ï ÐÏÌØÚÏ×ÁÔÅÌÑ. üÔÏ ÂÕÄÅÔ ÄÏÌÇÉÊ ÐÒÏÅËÔ, ÎÏ ÎÅÐÏÌÎÁÑ ×ÅÒÓÉÑ ÒÁÓÓËÁÚÙ×ÁÅÔ, ËÁË ÐÉÓÁÔØ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÆÁÊÌÙ É ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ ÎÏ×ÕÀ, ÂÏÌÅÅ ÍÏÝÎÕÀ ÆÏÒÍÕ ÚÁ×ÅÒÛÅÎÉÑ, ËÏÔÏÒÁÑ ×ÐÅÒ×ÙÅ ÐÏÑ×ÉÌÁÓØ × ×ÅÒÓÉÉ 3.1.6 (É ÎÅ ÏÐÉÓÁÎÁ × ÜÔÏÍ FAQ'Å), ÏÎÏ (ÒÕËÏ×ÏÄÓÔ×Ï) ÍÏÖÅÔ ÂÙÔØ ÎÁÊÄÅÎÏ ÚÄÅÓØ url(http://www.pwstephenson.fsnet.co.uk/computing/)(http://www.pwstephenson.fsnet.co.uk/computing/) ,ÐÒÉÞ£Í × ÒÁÚÌÉÞÎÙÈ ÆÏÒÍÁÔÁÈ.
(ëÁË ÍÅÔÏÄ ÞÔÅÎÉÑ × Emacs, ×Ù ÍÏÖÅÔÅ ÎÁÂÒÁÔØ tt(\M-2 \C-x $) , ÞÔÏÂÙ ÓÄÅÌÁÔØ ×ÅÓØ ÓÔÒÕËÔÕÒÉÒÏ×ÁÎÎÙÊ ÔÅËÓÔ ÎÅ×ÉÄÉÍÙÍ, ÚÁÔÅÍ tt(\M-0 \C-x $) , ËÏÇÄÁ ×Ù ÎÁ ÚÁÇÏÌÏ×ËÅ, ËÏÔÏÒÙÊ ×ÁÍ ÎÕÖÅÎ)
äÌÑ ÂÏÌÅÅ ÜËÌÅËÔÉÞÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ×ÁÍ ÓÌÅÄÕÅÔ ÐÏÓÅÔÉÔØ ×ÏÐÒÏÓ link(5.2)(52).
sect(þÔÏ ÜÔÏ?)
Zsh - ÜÔÏ ËÏÍÁÎÄÎÙÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ UNIX (ÛÅÌÌ), ËÏÔÏÒÙÊ ÉÚ ÓÔÁÎÄÁÒÔÎÙÈ ÛÅÌÌÏ× ÂÏÌØÛÅ ÐÏÈÏÖ ÎÁ Korn shell (ksh); ÅÇÏ ÓÏ×ÍÅÓÔÉÍÏÓÔØ Ó 1988 Korn shell ÐÏÓÔÅÐÅÎÎÏ ×ÙÒÏÓÌÁ. ïÎ ×ËÌÀÞÁÅÔ ÕÓÏ×ÅÒÛÅÎÓÔ×Ï×ÁÎÉÑ ÍÎÏÇÉÈ ÔÉÐÏ×, ÏÓÏÂÅÎÎÏ × ÒÅÄÁËÔÏÒÅ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÐÁÒÁÍÅÔÒÙ ÄÌÑ ×ÙÂÏÒÁ ÒÅÖÉÍÁ, ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÀ ÆÁÊÌÏ×ÙÈ ÉÍ£Î, ÆÕÎËÃÉÉ, Ë ËÏÔÏÒÙÍ ÐÒÉ×ÙËÌÉ ÐÏÌØÚÏ×ÁÔÅÌÉ C-shell (csh), É ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ×ÚÑÔÙÅ ÉÚ tcsh ÄÒÕÇÉÈ ÛÅÌÌÏ×.
åÇÏ ÎÁÐÉÓÁÌ Paul Falstad, ËÏÇÄÁ ÏÎ ÂÙÌ ÓÔÕÄÅÎÔÏÍ ÕÎÉ×ÅÒÓÉÔÅÔÁ Princeton; ÔÅÍ ÎÅ ÍÅÎÅÅ, Paul ÂÏÌØÛÅ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÅÇÏ É ×ÏÐÒÏÓÙ ÓÌÅÄÕÅÔ ÏÔÐÒÁ×ÌÑÔØ × ÒÁÓÓÙÌËÕ (ÓÍ. ×ÏÐÒÏÓ link(5.2)(52)). Zsh ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÎÁ ÕÓÌÏ×ÉÑÈ ÓÔÁÎÄÁÒÔÎÏÊ ÌÉÃÅÎÚÉÉ Berkeley.
úÁ ÐÏÄÒÏÂÎÏÓÔÑÍÉ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÏÂÒÁÔÉÔØÓÑ Ë ÆÁÊÌÁÍ Doc/intro.txt ÉÌÉ Doc/intro.troff, ×ËÌÀÞ£ÎÎÙÍ × ÉÓÈÏÄÎÙÊ ËÏÄ ÄÉÓÔÒÉÂÕÔÉ×Á. óÐÉÓÏË ×ÏÚÍÏÖÎÏÓÔÅÊ ÐÒÉ×ÅÄ£Î × ÆÁÊÌÅ FEATURES.
sect(þÔÏ × Î£Í ÈÏÒÏÛÅÇÏ?)
÷ÏÔ ÎÅÓËÏÌØËÏ ÐÕÎËÔÏ× × Þ£Í zsh ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÒÏÛ. îÅ ÐÒÅÔÅÎÄÕÅÔ ÎÁ ÉÓËÌÀÞÉÔÅÌØÎÏÓÔØ, ÏÓÏÂÅÎÎÏ ËÁË ÛÅÌÌÙ, ËÏÐÉÒÕÀÝÉÅ ÄÒÕÇ ÄÒÕÇÁ, ÈÏÔÑ × ÒÅÄÁËÔÏÒÅ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É × ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ ÆÁÊÌÏ×ÙÈ ÉͣΠzsh ×ÎÅ ËÏÎËÕÒÅÎÃÉÉ. ñ ÎÅ ÚÎÁÀ Ï ÇÌÁ×ÎÙÈ ÉÎÔÅÒÁËÔÉ×ÎÙÈ ÏÓÏÂÅÎÎÏÓÔÑÈ × ÄÒÕÇÉÈ Ó×ÏÂÏÄÎÏ ÄÏÓÔÕÐÎÙÈ ÛÅÌÌÁÈ, ËÏÔÏÒÙÅ zsh ÔÁËÖÅ ÎÅ ÉÍÅÅÔ (ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÎÅËÏÔÏÒÙÈ).
itemize(
it() òÅÄÁËÔÏÒ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ:
itemize(
it() ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ: ÏÂßÅÄÉÎÑÅÔ ÓÐÏÓÏÂÎÏÓÔØ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÓÀ ÍÏÝØ zsh: ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÀ ÉÍ£Î É ×ÏÚÍÏÖÎÏÓÔÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ,
it() ÍÎÏÇÏÓÔÒÏÞÎÙÅ ËÏÍÁÎÄÙ ÄÏÓÔÕÐÎÙ ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ËÁË ÏÄÉÎ ÂÕÆÅÒ (ÄÁÖÅ ÆÁÊÌÙ!),
it() ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ ÐÅÒÅÍÅÎÎÙÈ (vared),
it() ÓÔÅË ÂÕÆÅÒÁ ËÏÍÁÎÄ,
it() ÐÅÞÁÔØ ÔÅËÓÔÁ ÐÒÑÍÏ × ÂÕÆÅÒ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ (print -z),
it() ×ÙÐÏÌÎÅÎÉÅ ÎÅÓ×ÑÚÁÎÎÙÈ ËÏÍÁÎÄ,
it() Ä×Á ÒÁÚÎÙÈ ×ÉÄÁ ÍÅÎÀ ÚÁ×ÅÒÛÅÎÉÑ,
it() ÚÁ×ÅÒÛÅÎÉÅ ÐÅÒÅÍÅÎÎÙÈ, ÆÕÎËÃÉÊ É ÐÁÒÁÍÅÔÒÏ×,
it() ×ÓÔÒÏÅÎÎÏÅ ÒÁÓÛÉÒÅÎÉÅ ÐÅÒÅÍÅÎÎÙÈ É ËÏÍÁÎÄ ÉÓÔÏÒÉÉ.
)
it() þÒÅÚ×ÙÞÁÊÎÏ ÍÏÝÎÁÑ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÑ ÉͣΠ×ËÌÀÞÁÅÔ × ÓÅÂÑ:
itemize(
it() ÒÅËÕÒÓÉ×ÎÁÑ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÑ ÉͣΠ(ÓÍ. find),
it() ÕÔÏÞÎÅÎÉÅ ÆÁÊÌÏ×ÙÈ ÁÔÒÉÂÕÔÏ× (ÒÁÚÍÅÒ, ÔÉÐ, Ô.Ä. ÔÁËÖÅ cf. find),
it() ÐÏÌÎÏÅ ÚÁÍÅÝÅÎÉÅ É ÏÔÒÉÃÁÎÉÅ ÛÁÂÌÏÎÏ×.
)
it() ðÏÄÄÅÒÖËÁ ÎÅÓËÏÌØËÉÈ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÊ (ÐÒÏÝÅ, ÞÅÍ tee).
it() âÏÌØÛÏÅ ËÏÌÉÞÅÓÔ×Ï ÐÁÒÁÍÅÔÒÏ× ÄÌÑ ÐÒÉÓÐÏÓÁÂÌÉ×ÁÎÉÑ.
it() òÁÓÛÉÒÅÎÉÅ ÐÕÔÉ (=foo -> /usr/bin/foo).
it() õÄÏÂÏÞÉÔÁÅÍÙÅ ×ÙÒÁÖÅÎÉÑ × watch, time É prompt (×ËÌÀÞÁÑ ÕÓÌÏ×ÎÙÅ ×ÙÒÁÖÅÎÉÑ).
it() éÍÅÎÏ×ÁÎÎÙÅ ÄÉÒÅËÔÏÒÉÉ (named directories).
it() éÓÞÅÒÐÙ×ÁÀÝÁÑ ÁÒÉÆÍÅÔÉËÁ Ó ÃÅÌÙÍÉ É ×ÅÝÅÓÔ×ÅÎÎÙÍÉ ÞÉÓÌÁÍÉ.
it() íÁÎÉÐÕÌÑÃÉÉ Ó ÍÁÓÓÉ×ÁÍÉ (×ËÌÀÞÁÑ ÐÅÒÅ×ÏÒÏÔ ÓÔÒÏË).
it() áÓÓÏÃÉÁÔÉ×ÎÙÅ ÍÁÓÓÉ×Ù (ÈÅÛÉ ËÌÀÞ-ÚÎÁÞÅÎÉÅ)
it() éÓÐÒÁ×ÌÅÎÉÅ ÏÒÆÏÇÒÁÆÉÞÅÓËÉÈ ÏÛÉÂÏË.
)
sect(îÁ ËÁËÉÈ ÍÁÛÉÎÁÈ ÏÎ ÚÁÐÕÓÔÉÔÓÑ? (á ÔÁËÖÅ ×ÁÖÎÙÅ ÚÁÍÅÞÁÎÉÑ ÐÏ ËÏÍÐÉÌÑÃÉÉ))
îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 3.0, zsh ÉÓÐÏÌØÚÕÅÔ × ËÁÞÅÓÔ×Å ÍÅÈÁÎÉÚÍÁ ÕÓÔÁÎÏ×ËÉ GNU autoconf. üÔÏ ÚÎÁÞÉÔÅÌØÎÏ ÐÏ×ÙÛÁÅÔ ÇÉÂËÏÓÔØ ÐÏ ÓÒÁ×ÎÅÎÉÀ ÓÏ ÓÔÁÒÙÍ ÍÅÈÁÎÉÚÍÏÍ `buildzsh'. óÌÅÄÏ×ÁÔÅÌØÎÏ, zsh ÄÏÌÖÅÎ ÓËÏÍÐÉÌÉÒÏ×ÁÔØÓÑ É ÚÁÐÕÓËÁÔØÓÑ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ×ÅÒÓÉÉ UNIX, É ÎÁ ÍÎÏÇÉÈ ÎÅ ÓÌÉÛËÏÍ ÓÏ×ÒÅÍÅÎÎÙÈ ×ÅÒÓÉÑÈ ÔÏÖÅ. þÔÏÂÙ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ ÐÏ ËÏÎËÒÅÔÎÏÊ ÁÒÈÉÔÅËÔÕÒÅ, ÌÕÞÛÅ ×ÚÇÌÑÎÕÔØ × ÆÁÊÌ MACHINES.
óÕÝÅÓÔ×ÕÀÔ ÔÁËÖÅ ÏÔÄÅÌØÎÙÅ ÐÏÒÔÙ ÄÌÑ Windows É OS/2 (ÓÍ. `çÄÅ Ñ ÍÏÇÕ ×ÚÑÔØ' ÄÁÌÅÅ).
åÓÌÉ ×Ù ÈÏÔÉÔÅ ÞÔÏ-ÔÏ ÉÚÍÅÎÉÔØ, ÞÔÏÂÙ ÄÏÂÁ×ÉÌÁÓØ ÐÏÄÄÅÒÖËÁ ÎÏ×ÏÊ ÐÌÁÔÆÏÒÍÙ, ÜÔÏ ÂÕÄÅÔ ÕÞÔÅÎÏ, ÅÓÌÉ ÂÙ ×Ù ÄÏÂÁ×ÉÌÉ ÐÒÅÐÒÏÃÅÓÓÏÒÎÙÊ ËÏÄ É ÉÚÍÅÎÉÌÉ configure.in É acconfig.h ÄÌÑ Á×ÔÏÍÁÔÉÞÅÓËÏÊ ËÏÎÆÉÇÕÒÁÃÉÉ zsh. úÁÔÅÍ ÏÔÏÛÌÉÔÅ ÔÒÅÂÕÅÍÙÅ ËÏÎÔÅËÓÔÎÙÅ diff-ÆÁÊÌÙ × ÒÁÓÓÙÌËÕ (×ÏÐÒÏÓ link(5.2)(52)). ðÏÖÁÌÕÊÓÔÁ, ÕÂÅÄÉÔÅÓØ, ÄÌÑ ÎÁÞÁÌÁ, ÞÔÏ Õ ×ÁÓ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ ÄÉÓÔÒÉÂÕÔÉ×Á.
þÔÏÂÙ ÎÁÞÁÔØ ÒÁÂÏÔÁÔØ, ÄÏÓÔÁÎØÔÅ ÉÓÈÏÄÎÙÊ ÄÉÓÔÒÉÂÕÔÉ× (×ÏÐÒÏÓ link(1.6)(16)), ÒÁÚÁÒÈÉ×ÉÒÕÊÔÅ ÅÇÏ, É ÐÒÏÞÉÔÁÊÔÅ ÆÁÊÌ INSTALL × ÇÌÁ×ÎÏÍ ËÁÔÁÌÏÇÅ. æÁÊÌ MACHINES ÓÏÄÅÒÖÉÔ ÉÎÆÏÒÍÁÃÉÀ ÐÏ ËÏÎÐÉÌÑÃÉÉ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÈ ÁÒÈÉÔÅËÔÕÒÁÈ.
mybf(úÁÍÅÞÁÎÉÅ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÅÊ nawk) (óÌÅÄÕÀÝÁÑ ÉÎÆÏÒÍÁÃÉÑ ÐÏÓÔÕÐÉÌÁ ÏÔ Zoltan Hidvegi): îÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ nawk ÆÁÊÌ signames.h ÍÏÖÅÔ ÂÙÔØ ÎÅÐÒÁ×ÉÌØÎÙÍ. éÚ-ÚÁ ÜÔÏÇÏ ÓÉÇÎÁÌØÎÙÅ ËÏÄÙ ÍÏÇÕÔ ÓÔÁÔØ ÎÅÐÒÉÇÏÄÎÙÍÉ. üÔÏ ÞÁÓÔÏ ÐÒÏÉÓÈÏÄÉÔ ÎÁ Ultrix, HP-UX, IRIX (?). õÓÔÁÎÏ×ÉÔÅ gawk, ÅÓÌÉ ×Ù ÓÔÏÌËÎÕÌÉÓØ Ó ÔÁËÉÍÉ ÐÒÏÂÌÅÍÁÍÉ.
sect(ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?)
Zsh 4.2.5 - ÐÏÓÌÅÄÎÑÑ ÓÔÁÂÉÌØÎÁÑ ×ÅÒÓÉÑ (ÎÁ ÍÏÍÅÎÔ ÐÅÒÅ×ÏÄÁ).
âÏÌØÛÅ ÎÅ ÂÕÄÅÔ ×ÅÒÓÉÉ 4.0 ÔÅÐÅÒØ ×ÅÒÓÉÑ 4.2 ÓÔÁÎÅÔ ÓÔÁÂÉÌØÎÙÍ ÒÅÌÉÚÏÍ.
éÎÏÇÄÁ ÄÏÓÔÕÐÎÁ ÓÌÅÄÕÀÝÁÑ ÂÅÔÁ-×ÅÒÓÉÑ. òÁÚ×ÉÔÉÅ zsh - ÜÔÏ ÚÁÐÌÁÔËÁ ÚÁ ÚÁÐÌÁÔËÏÊ, Ó ËÁÖÄÏÊ ÐÒÏÍÅÖÕÔÏÞÎÏÊ ÏÂÝÅÄÏÓÔÕÐÎÏÊ ×ÅÒÓÉÅÊ. úÁÍÅÔØÔÅ, ÞÔÏ `ÏÔËÒÙÔÁÑ' ÓÉÓÔÅÍÁ ÒÁÚÒÁÂÏÔËÉ ÐÏÄÒÁÚÕÍÅ×ÁÅÔ ÏÛÉÂËÉ, ÐÏÑ×ÌÑÀÝÉÅÓÑ × ÂÏÌØÛÉÎÓÔ×Å ÎÏ×ÙÈ ×ÅÒÓÉÊ. ïÂÙÞÎÏ ÏÎÉ ÂÙÓÔÒÏ ÉÓÐÒÁ×ÌÑÀÔÓÑ. åÓÌÉ ×ÁÍ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÉÎÔÅÒÅÓÎÏ ÕÚÎÁÔØ Ï ÓÁÍÙÈ ÐÏÓÌÅÄÎÉÈ ÕÌÕÞÛÅÎÉÑÈ, É ×Ù ÍÅÎØÛÅ ÂÅÓÐÏËÏÉÔÅÓØ Ï ÓÔÁÂÉÌØÎÏÓÔÉ ÏËÒÕÖÅÎÉÑ - ÒÁÚÒÁÂÁÔÙ×ÁÅÍÁÑ ×ÅÒÓÉÑ ÚÁÇÒÕÖÁÅÔÓÑ ÄÏ×ÏÌØÎÏ ÞÁÓÔÏ × ÁÒÈÉ× tt(ÄÉÒÅËÔÏÒÉÉ ÒÁÚÒÁÂÏÔÞÉËÏ×).
úÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ ÛÅÌÌ ÉÚÍÅÎÑÅÔÓÑ, ÐÏÜÔÏÍÕ ÏÎ ÍÏÖÅÔ ÓÔÁÔØ ÎÅÓÏ×ÍÅÓÔÉÍÙÍ ÓÏ ÓÔÁÒÙÍÉ ×ÅÒÓÉÑÍÉ; ÐÏÓÍÏÔÒÉÔÅ ËÏÎÃÏ×ËÕ ×ÏÐÒÏÓÁ link(5.1)(51) ÄÌÑ ÕÔÏÞÎÅÎÉÑ. éÚÍÅÎÅÎÉÑ ÔÁËÏ×Á ×ÉÄÁ ÐÏÞÔÉ ×ÓÅÇÄÁ ÎÁÚÙ×ÁÀÔÓÑ ÎÏ×ÉÞËÁÍÉ ÌÉÛÎÉÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ × ÏÒÉÇÉÎÁÌØÎÏÍ ÐÒÏÅËÔÅ (ËÁË ×ÏÓÐÒÉÎÑÔÏ ÔÅËÕÝÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ), ÉÌÉ ÒÁÓÛÉÒÑÀÔ ÓÏ×ÍÅÓÔÉÍÏÓÔØ Ó ÄÒÕÇÉÍÉ Bourne shell ÐÒÏÉÚ×ÏÄÎÙÍÉ, ÉÌÉ (× ÏÓÎÏ×ÎÏÍ × 3.0 ×ÅÔËÅ) ÐÒÅÄÏÓÔÁ×ÌÑÀÔ POSIX ÓÏ×ÍÅÓÔÉÍÏÓÔØ.
sect(çÄÅ ÍÎÅ ÅÇÏ ×ÚÑÔØ?)
label(16)
ëÏÏÒÄÉÎÁÔÏÒÏÍ ÒÁÚÒÁÂÏÔËÉ ÐÒÏÅËÔÁ × ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ Ñ×ÌÑÀÓØ Ñ; ÐÓÅ×ÄÏÎÉÍ email(coordinator@xxxxxxx) ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎ ÄÌÑ ËÏÎÔÁËÔÁ Ó ËÅÍ ÕÇÏÄÎÏ, ËÔÏ ÎÁ ÒÁÂÏÞÅÍ ÍÅÓÔÅ. éÚ×ÅÓÔÎÙ ÓÌÅÄÕÀÝÉÅ ÞÁÓÔÏ ÏÂÎÏ×ÌÑÀÝÉÅÓÑ ÚÅÒËÁÌÁ; ÐÅÒ×ÏÅ - ÜÔÏ ÏÆÉÃÉÁÌØÎÙÊ ÁÒÈÉ×ÎÙÊ ÓÁÊÔ, ÎÁ ÓÅÇÏÄÎÑÛÎÉÊ ÄÅÎØ ÏÎ ÎÁÈÏÄÉÔÓÑ × á×ÓÔÒÁÌÉÉ. ÷ÓÅ ÏÎÉ ÄÏÓÔÕÐÎÙ ÐÏ ÁÎÏÎÉÍÎÏÍÕ FTP. çÌÁ×ÎÙÅ ÓÁÊÔÙ ÉÍÅÀÔ ÔÅÓÔ ×ÅÒÓÉÉ × ÐÏÄÄÉÒÅËÔÏÒÉÉ `testing': ÜÔÉ ÅÖÅÍÉÎÕÔÎÙÅ ÒÁÚÒÁÂÁÔÙ×ÁÅÍÙÅ ×ÅÒÓÉÉ ÓÌÅÄÕÅÔ ÂÒÁÔØ ÅÓÌÉ ×Ù ÐÌÁÎÉÒÕÅÔÅ ÐÏÍÏÞØ ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÉ ÛÅÌÌÁ. óÌÅÄÕÀÝÉÊ ÓÐÉÓÏË ÔÁËÖÅ ÅÓÔØ ÎÁ url(http://www.zsh.org)(http://www.zsh.org) .
descriprion(
mydit(äÏÍÁÛÎÉÊ ÓÁÊÔ) url(ftp://ftp.zsh.org)(ftp://ftp.zsh.org)
mydit() url(http://www.zsh.org/pub/zsh/)(http://www.zsh.org/pub/zsh/)
mydit(á×ÓÔÒÁÌÉÑ) url(ftp://ftp.ips.gov.au/mirror/zsh/)(ftp://ftp.ips.gov.au/mirror/zsh/)
mydit(äÁÎÉÑ) url(ftp://sunsite.dk/pub/unix/shells/zsh)(ftp://sunsite.dk/pub/unix/shells/zsh)
mydit(æÉÎÌÑÎÄÉÑ) url(ftp://ftp.funet.fi/pub/unix/shells/zsh/)(ftp://ftp.funet.fi/pub/unix/shells/zsh/)
mydit(æÒÁÎÃÉÑ) url(ftp://ftp.cenatls.cena.dgac.fr/shells/zsh/)(ftp://ftp.cenatls.cena.dgac.fr/shells/zsh/)
mydit(çÅÒÍÁÎÉÑ) url(ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/)(ftp://ftp.fu-berlin.de/pub/unix/shells/zsh/)
mydit() url(ftp://ftp.uni-trier.de/pub/unix/shell/zsh/)(ftp://ftp.uni-trier.de/pub/unix/shell/zsh/)
mydit(÷ÅÎÇÒÉÑ) url(ftp://ftp.cs.elte.hu/pub/zsh/)(ftp://ftp.cs.elte.hu/pub/zsh/)
mydit() (ÔÁËÖÅ url(http://www.cs.elte.hu/pub/zsh/)(http://www.cs.elte.hu/pub/zsh/))
mydit() url(ftp://ftp.kfki.hu/pub/packages/zsh/)(ftp://ftp.kfki.hu/pub/packages/zsh/)
mydit(éÚÒÁÉÌØ) url(ftp://ftp.math.technion.ac.il/pub/zsh/)(ftp://ftp.math.technion.ac.il/pub/zsh/)
mydit() url(http://www.math.technion.ac.il/pub/zsh/)(http://www.math.technion.ac.il/pub/zsh/)
mydit(éÔÁÌÉÑ) url(ftp://ftp.unina.it/pub/Unix/pkgs/shell/zsh/)(ftp://ftp.unina.it/pub/Unix/pkgs/shell/zsh/)
mydit(ñÐÏÎÉÑ) url(ftp://ftp.nisiq.net/pub/shells/zsh/)(ftp://ftp.nisiq.net/pub/shells/zsh/)
mydit() url(ftp://ftp.win.ne.jp/pub/shell/zsh/)(ftp://ftp.win.ne.jp/pub/shell/zsh/)
mydit(îÏÒ×ÅÇÉÑ) url(ftp://ftp.uit.no/pub/unix/shells/zsh/)(ftp://ftp.uit.no/pub/unix/shells/zsh/)
mydit(ðÏÌØÛÁ) url(ftp://sunsite.icm.edu.pl/pub/unix/shells/zsh/)(ftp://sunsite.icm.edu.pl/pub/unix/shells/zsh/)
mydit(òÕÍÙÎÉÑ) url(ftp://ftp.roedu.net/pub/mirrors/ftp.zsh.org/pub/zsh/)(ftp://ftp.roedu.net/pub/mirrors/ftp.zsh.org/pub/zsh/)
mydit() url(ftp://ftp.kappa.ro/pub/mirrors/ftp.zsh.org/pub/zsh/)(ftp://ftp.kappa.ro/pub/mirrors/ftp.zsh.org/pub/zsh/)
mydit(óÌÏ×ÅÎÉÑ) url(ftp://ftp.siol.net/mirrors/zsh/)(ftp://ftp.siol.net/mirrors/zsh/)
mydit(û×ÅÃÉÑ) url(ftp://ftp.lysator.liu.se/pub/unix/zsh/)(ftp://ftp.lysator.liu.se/pub/unix/zsh/)
mydit(÷ÅÌÉËÏÂÒÉÔÁÎÉÑ) url(ftp://ftp.net.lut.ac.uk/zsh/)(ftp://ftp.net.lut.ac.uk/zsh/)
mydit() (ÔÁËÖÅ ÐÏ FSP ÎÁ 21)
mydit() url(ftp://sunsite.org.uk/packages/zsh/)(ftp://sunsite.org.uk/packages/zsh/)
mydit(óûá) url(ftp://uiarchive.uiuc.edu/pub/packages/shells/zsh/)(ftp://uiarchive.uiuc.edu/pub/packages/shells/zsh/)
mydit() url(ftp://ftp.rge.com/pub/shells/zsh/)(ftp://ftp.rge.com/pub/shells/zsh/)
mydit() url(ftp://foad.org/pub/zsh/)(ftp://foad.org/pub/zsh/)
mydit() url(http://foad.org/zsh/)(http://foad.org/zsh/)
)
ðÏÒÔ ÄÌÑ Windows ÒÁÚÒÁÂÏÔÁÎ ÏÔÄÅÌØÎÏ email(Amol Deshpande <amold@xxxxxxxxxxxxx>); ÐÏÖÁÌÕÊÓÔÁ, ÓÏÏÂÝÁÊÔÅ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÅÍÕ Ï ÌÀÂÙÈ ÓÐÅÃÉÆÉÞÎÙÈ ÐÒÏÂÌÅÍÁÈ Windows. ïÎ ÏÓÎÏ×ÁÎ ÎÁ ×ÅÒÓÉÉ 3.0.5, É ×ÏÚÍÏÖÎÏ ÎÅ ÂÕÄÅÔ ÄÁÌØÛÅ ÒÁÚÒÁÂÁÔÙ×ÁÔØÓÑ. ÷Ù ÍÏÖÅÔÅ ÅÇÏ ×ÚÑÔØ Ó:
description(
mydit() url(ftp://ftp.blarg.net/users/amol/zsh)(ftp://ftp.blarg.net/users/amol/zsh)
)
äÌÑ ×ÅÒÓÉÉ 4 - ÎÅÔ ÐÏÒÔÁ ÄÌÑ Windows, ÎÏ ÎÏ×ÙÅ ÒÅÌÉÚÙ ËÏÍÐÉÌÉÒÕÀÔÓÑ ÐÏÄ Cygwin - Ó×ÏÂÏÄÎÏ ÄÏÓÔÕÐÎÏÅ UNIX ÏËÒÕÖÅÎÉÅ ÄÌÑ Win32 API. ÷Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÎÅÍ ÎÁ:
url(http://sourceware.cygnus.com/cygwin)(http://sourceware.cygnus.com/cygwin).
ôÁËÖÅ ÄÌÑ OS/2 ÐÏÒÔ ÄÏÓÔÕÐÅÎ ÏÔ email(TAMURA Kent <kent@xxxxxxxxxxxxxx>) ÎÁ
description(
mydit() url(http://cgi.din.or.jp/~tkent/tmp/zsh-3.0.0-os2-a01.zip)(http://cgi.din.or.jp/~tkent/tmp/zsh-3.0.0-os2-a01.zip)
)
÷ ÓÅÒÅÄÉÎÅ ÏËÔÑÂÒÑ 1997 ÐÏÑ×ÉÌÓÑ ÁÒÈÉ× ÐÁÔÞÅÊ, ÐÏÓÙÌÁÅÍÙÈ × ÒÁÓÓÙÌËÕ ÒÁÚÒÁÂÏÔÞÉËÏ×. úÁÍÅÔØÔÅ, ÞÔÏ ÎÅ ×ÓÅ ÉÚ ÎÉÈ ÍÏÇÕÔ ÂÙÔØ ÄÏÂÁ×ÌÅÎÙ × ÛÅÌÌ, Á ÎÅËÏÔÏÒÙÅ ÕÖÅ ÄÏÂÁ×ÌÅÎÙ; ×Ù ÍÏÖÅÔÅ ÐÒÏÓÔÏ ÉÓËÁÔØ ÞÔÏ-ÔÏ, ÞÅÇÏ ×Ù ÈÏÔÉÔÅ É ÞÅÇÏ ÎÅÔ × ×ÁÛÅÊ ×ÅÒÓÉÉ ÛÅÌÌÁ. ôÁËÖÅ ÍÏÇÕÔ ÂÙÔØ ÎÅËÏÔÏÒÙÅ ÐÒÅÄÐÏÓÙÌËÉ ÒÁÎÅÅ × ÁÒÈÉ×Å. ïÎ ÍÏÖÅÔ ÂÙÔØ ÎÁÊÄÅÎ (ËÁË ÏÐÉÓÁÎÏ × link(1.1)(11)) ÎÁ:
description(
mydit() url(http://sunsite.dk/zsh/Patches/)(http://sunsite.dk/zsh/Patches/)
)
sect(õ ÍÅÎÑ ÎÅÔ ÄÏÓÔÕÐÁ ÓÕÐÅÒÐÏÌØÚÏ×ÁÔÅÌÑ: ËÁË ÓÄÅÌÁÔØ, ÞÔÏÂÙ zsh ÚÁÐÕÓËÁÌÓÑ ÐÒÉ ×ÈÏÄÅ × ÓÉÓÔÅÍÕ?)
ë ÎÅÓÞÁÓÔØÀ, ÎÁ ÍÎÏÇÉÈ ÍÁÛÉÎÁÈ ×Ù ÎÅ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ mytt(chsh) ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ×ÁÛ ÛÅÌÌ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ÆÁÊÌ /etc/shells ÎÅ ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÉÍÅÎÉ ÛÅÌÌÁ, Ô.Å. ÅÓÌÉ Õ ×ÁÓ ÅÓÔØ Ó×ÏÑ ÓÏÂÓÔ×ÅÎÎÁÑ ËÏÐÉÑ zsh, ÔÏ ×ÁÍ ÎÕÖÎÁ ÎÅËÏÔÏÒÁÑ ÈÉÔÒÏÓÔØ, ÞÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ ÅÇÏ ÐÒÉ ×ÈÏÄÅ × ÓÉÓÔÅÍÕ. (ðÒÏÓÔÏ ÎÁÂÒÁÔØ mytt(zsh) - ÜÔÏ ÎÅ ÓÅÒØÅÚÎÏÅ ÒÅÛÅÎÉÅ, Ô.Ë. ×ÁÛ ÏÒÉÇÉÎÁÌØÎÙÊ ÛÅÌÌ ÖÄÅÔ ÐÏËÁ ×Ù ×ÙÊÄÅÔÅ.)
ïÓÎÏ×ÎÁÑ ÉÄÅÑ - ÉÓÐÏÌØÚÏ×ÁÔØ mytt(exec <zsh-path>), ÞÔÏÂÙ ÚÁÍÅÎÉÔØ ÔÅËÕÝÉÊ ÛÅÌÌ ÎÁ zsh. þÁÓÔÏ ×Ù ÍÏÖÅÔÅ ÜÔÏ ÓÄÅÌÁÔØ × Ó×ÏÅÍ ÐÒÏÆÉÌÅ, × ÔÁËÏÍ ÆÁÊÌÅ ËÁË .profile (ÅÓÌÉ ×ÁÛ ÛÅÌÌ sh ÉÌÉ ksh) ÉÌÉ .login (ÅÓÌÉ csh). õÂÅÄÉÔÅÓØ, ÞÔÏ Õ ×ÁÓ ÅÓÔØ ÓÐÏÓÏÂ × ÄÁÌØÎÅÊÛÅÍ ÉÚÍÅÎÉÔØ ÆÁÊÌ (ÎÁÐÒÉÍÅÒ ÞÅÒÅÚ FTP) ÄÏ ÔÏÇÏ ËÁË ×Ù ÐÏÐÒÏÂÕÅÔÅ mytt(exec) - ÜÔÏ ÞÁÓÔÏ ÂÙ×ÁÅÔ ÎÅÐÒÏÓÔÉÔÅÌØÎÏ.
åÓÌÉ zsh × ÐÏÄÄÉÒÅËÔÏÒÉÉ mytt(bin) × ×ÁÛÅÊ ÄÏÍÁÛÎÅÊ ÄÉÒÅËÔÏÒÉÉ, ÎÁÐÉÛÉÔÅ ÜÔÏ × .profile:
verb(
[ -f $HOME/bin/zsh ] && exec $HOME/bin/zsh -l
)
ÉÌÉ, ÅÓÌÉ ×ÁÛ ÛÅÌÌ csh ÉÌÉ tcsh, ÎÁÐÉÛÉÔÅ ÜÔÏ × .login:
verb(
if ( -f ~/bin/zsh ) exec ~/bin/zsh -l
)
(× ÌÀÂÏÍ ÓÌÕÞÁÅ ÐÁÒÁÍÅÔÒ mytt(-l) ÇÏ×ÏÒÉÔ zsh, ÞÔÏ ÏÎ ÉÓÐÏÌØÚÕÅÔÓÑ ËÁË ÏÂÏÌÏÞËÁ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ).
åÓÌÉ ×Ù ÈÏÔÉÔÅ ÐÒÏ×ÅÒÉÔØ ÒÁÂÏÔÏÓÐÏÓÏÂÎÏÓÔØ ÓÃÅÎÁÒÉÑ, ×Ù ÍÏÖÅÔÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÐÒÉ ×ÈÏÄÅ × ÓÉÓÔÅÍÕ ÂÙÌ ×ÏÐÒÏÓ, ÚÁÐÕÓËÁÔØ ÌÉ zsh. óÌÅÄÕÀÝÉÊ ÓËÒÉÐÔ ÒÁÂÏÔÁÅÔ ÄÌÑ Bourne-like ÛÅÌÌÏ×:
verb(
[ -f $HOME/bin/zsh ] && {
echo "÷×ÅÄÉÔÅ Y, ÞÔÏÂÙ ÚÁÐÕÓÔÉÔØ zsh: \c"
read line
[ "$line" = Y ] && exec $HOME/bin/zsh -l
}
)
É ÄÌÑ C-shell-like ÛÅÌÌÏ×:
verb(
if ( -f ~/bin/zsh ) then
echo -n "÷×ÅÄÉÔÅ Y, ÞÔÏÂÙ ÚÁÐÕÓÔÉÔØ zsh: "
if ( "$<" == Y ) exec ~/bin/zsh -l
endif
)
îÅ ÓÔÏÉÔ ÐÉÓÁÔØ ÜÔÏ (ÄÁÖÅ ÂÅÚ ÐÁÒÁÍÅÔÒÁ -l) × ÆÁÊÌ .cshrc, ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ, ÎÅ ÐÒÏ×ÅÒÉ×, ÞÔÏ csh ÐÒÅÄÐÏÌÁÇÁÅÔ ÄÅÌÁÔØ, Ô.Ë. ËÁÖÄÙÊ ÜËÚÅÍÐÌÑÒ csh ×ÅÒΣÔÓÑ × zsh É ÓËÒÉÐÔÙ (ÄÁ, Ë ÓÏÖÁÌÅÎÉÅ ÎÅËÏÔÏÒÙÅ ÌÀÄÉ ÐÉÛÕÔ ÔÁË), ×ÙÚ×ÁÎÎÙÅ îå ÐÒÉ ÐÏÍÏÝÉ `csh -f' ÏÔËÁÖÕÔÓÑ ÒÁÂÏÔÁÔØ. åÓÌÉ ×Ù ÈÏÔÉÔÅ, ÞÔÏÂÙ xterm ÚÁÐÕÓËÁÌ zsh, ÉÚÍÅÎÉÔÅ ÐÅÒÅÍÅÎÎÕÀ ÏËÒÕÖÅÎÉÑ SHELL ÎÁ ÐÏÌÎÙÊ ÐÕÔØ Ë ÛÅÌÌÕ zsh × ÔÏ ÖÅ ×ÒÅÍÑ, ËÏÇÄÁ ×Ù ÚÁÐÕÓËÁÅÔÅ zsh (ÆÁËÔÉÞÅÓËÉ, ÜÔÏ ÚÄÒÁ×ÁÑ ÌÏÇÉËÁ, ÄÁÖÅ ÅÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ xterm). åÓÌÉ ×Ù ÚÁÐÕÓÔÉÌÉ zsh ÉÚ Ó×ÏÅÇÏ .cshrc, ÍÉÎÉÍÁÌØÎÁÑ ÂÅÚÏÐÁÓÎÏÓÔØ - ÐÒÏ×ÅÒÉÔØ mytt(if ($?prompt) exec zsh).
åÓÌÉ ÂÙ ×Ù ÈÏÔÅÌÉ, ÞÔÏÂÙ ÛÅÌÌ ÐÏËÁÚÙ×ÁÌÓÑ × ÓÐÉÓËÅ ÐÒÏÃÅÓÓÏ× ËÁË mytt(-zsh), ×Ù ÍÏÖÅÔÅ ÓÄÅÌÁÔØ ÓÓÙÌËÕ (-zsh) ÎÁ (zsh) (Ô.Å. mytt(ln -s ~/bin/zsh ~/bin/-zsh)) É ÉÚÍÅÎÉÔØ exec ÎÁ mytt(exec -zsh). (õÂÅÄÉÔÅÓØ, ÞÔÏ mytt(-zsh) ÎÁÊÄÅÔÓÑ ÞÅÒÅÚ ÐÅÒÅÍÅÎÎÕÀ path.) üÔÏ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ÔÁË ÖÅ, ËÁË É ÐÁÒÁÍÅÔÒ mytt(-l).
óÎÏÓËÁ: ÅÓÌÉ Õ ×ÁÓ ÎÅÔ ÄÏÓÔÕÐÁ ÓÕÐÅÒÐÏÌØÚÏ×ÁÔÅÌÑ, ÕÂÅÄÉÔÅÓØ, ÞÔÏ zsh ÚÁÎÅÓÅÎ × /etc/shells ÎÁ ×ÓÅÈ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÍÁÛÉÎÁÈ, ×ËÌÀÞÁÑ NIS ËÌÉÅÎÔÙ, ÉÎÁÞÅ Õ ×ÁÓ ÂÕÄÕÔ ÐÒÏÂÌÅÍÙ Ó FTP ÄÏÓÔÕÐÏÍ Ë ÜÔÉÍ ÍÁÛÉÎÁÍ.
chapter(þÅÍ zsh ÏÔÌÉÞÁÅÔÓÑ ÏÔ ...?)
ëÁË ÕÖÅ ÕÐÏÍÉÎÁÌÏÓØ ÒÁÎÅÅ, zsh ÂÏÌÅÅ ÐÏÈÏÖ ÎÁ ksh, × ÔÏ ÖÅ ×ÒÅÍÑ ÍÎÏÖÅÓÔ×Ï ÄÏÐÏÌÎÅÎÉÊ ÐÏÒÁÄÕÀÔ ÐÏÌØÚÏ×ÁÔÅÌÅÊ csh. úÄÅÓØ ÐÒÉ×ÅÄÅÎÙ ÂÏÌÅÅ ÄÅÔÁÌØÎÙÅ Ó×ÅÄÅÎÉÑ. ðÏÓÍÏÔÒÉÔÅ ÔÁËÖÅ ÓÔÁÔØÀ `òÁÚÌÉÞÉÑ UNIX ÛÅÌÌÏ× É ËÁË ÉÚÍÅÎÉÔØ ×ÁÛ ÛÅÌÌ' (`UNIX shell differences and how to change your shell)', ÞÁÓÔÏ ÒÁÚÍÅÝÁÅÍÕÀ × USENET ÇÒÕÐÐÅ comp.unix.shell.
sect(ïÔÌÉÞÉÑ ÏÔ sh É ksh)
label(21)
âÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ ksh (ÓÌÅÄÏ×ÁÔÅÌØÎÏ ÔÁËÖÅ É sh) ÐÒÉÓÕÔÓÔ×ÕÀÔ × zsh; ÐÒÏÂÌÅÍÙ ÍÏÇÕÔ ×ÏÚÎÉËÎÕÔØ, ÐÏÔÏÍÕ ÞÔÏ ÏÒÇÁÎÉÚÁÃÉÑ ÉÈ ÓÌÅÇËÁ ÒÁÚÌÉÞÁÅÔÓÑ. úÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ ÎÅ ×ÓÅ ÆÕÎËÃÉÉ ksh ÏÄÉÎÁËÏ×Ù. ñ ÏÓÎÏ×Ù×ÁÌÓÑ ÎÁ ×ÅÒÓÉÉ ksh 11/16/88f; ÏÔÌÉÞÉÑ ÏÔ ksh93 ÂÕÄÕÔ ÂÏÌÅÅ ÓÕÝÅÓÔ×ÅÎÎÙ.
ðÏÄ×ÅÄ£Í ÉÔÏÇ:
enumerate(
myeit() ÐÏ ×ÓÅÍ ÐÁÒÁÍÅÔÒÁÍ ÎÅÂÅÚÏÐÁÓÎÏ ÄÏÐÕÓËÁÔØ ÏÂÙÞÎÙÊ ÚÁÐÕÓË zsh ÐÏÌØÚÏ×ÁÔÅÌÅÍ, Ô.Ë. ÏÎ ÂÕÄÅÔ ×ÅÓÔÉ ÓÅÂÑ ËÁË sh ÉÌÉ ksh ÓÏ×ÍÅÓÔÉÍÙÊ;
myeit() ×ÙÚÙ×ÁÑ zsh ËÁË sh ÉÌÉ ksh (ÉÌÉ ÅÓÌÉ ËÁÖÄÙÊ ÉÚ ÎÉÈ Ñ×ÌÑÅÔÓÑ ÓÉÍ×ÏÌÉÞÅÓËÏÊ ÓÓÙÌËÏÊ ÎÁ zsh) ÎÕÖÎÏ ÚÁÄÁ×ÁÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÐÁÒÁÍÅÔÒÙ ÄÌÑ ÌÕÞÛÅÊ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ (ÉÚ ÓÁÍÏÇÏ zsh, ×ÙÚÏ× mytt(ARGV0=sh zsh) ÂÕÄÅÔ ÔÏÖÅ ÒÁÂÏÔÁÔØ);
myeit() ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 3.0 ÕÌÕÞÛÁÅÔÓÑ ÓÏ×ÍÅÓÔÉÍÏÓÔØ sh, ÐÏÜÔÏÍÕ zsh ÔÅÐÅÒØ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ Ó GNU configure ÉÌÉ perl Configure;
myeit() ÓÔÅÐÅÎØ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ Ó ksh ÔÁËÖÅ ÎÁ ×ÙÓÏÔÅ, ÎÏ ÎÅÓËÏÌØËÏ ×ÅÝÅÊ ÏÔÓÕÔÓÔ×ÕÀÔ: ÎÁÐÒÉÍÅÒ, ÂÏÌÅÅ ÓÌÏÖÎÙÅ ÆÏÒÍÙ ×ÙÒÁÖÅÎÉÊ ÒÁÚÌÉÞÎÙ ÄÌÑ ×ÅÒÓÉÊ ÄÏ 3.1.3 --- ÓÍÏÔÒÉÔÅ ÂÏÌÅÅ ÄÅÔÁÌØÎÙÊ ÓÐÉÓÏË ÎÉÖÅ;
myeit() ÔÁËÖÅ, Ó ×ÅÒÓÉÉ 3.0 ÄÏÓÔÕÐÎÁ ËÏÍÁÎÄÁ `emulate': `emulate ksh' É `emulate sh' ÚÁÄÁÀÔ ÒÁÚÌÉÞÎÙÅ ÐÁÒÁÍÅÔÒÙ ÔÏÞÎÏ ÔÁË ÖÅ ËÁË É ÉÚÍÅÎÅÎÉÅ ÏÄÎÏÂÕË×ÅÎÎÙÈ ÆÌÁÇÏ×, ËÁË ÅÓÌÉ ÂÙ ÛÅÌÌ ÂÙÌ ÂÙ ×ÙÚ×ÁÎ Ó ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ÉÍÅÎÅÍ. ÷ËÌÀÞÅÎÉÅ ËÏÍÁÎÄÙ `emulate sh; setopt localoptions' × ÛÅÌÌ-ÆÕÎËÃÉÉ ×ËÌÀÞÉÔ ÜÍÕÌÑÃÉÀ sh ÔÏÌØËÏ ÄÌÑ ÜÔÏÊ ÆÕÎËÃÉÉ. ÷ ×ÅÒÓÉÉ 4 (É × 3.0.6 ÄÏ 8), ÜÔÏ ÍÏÖÅÔ ÂÙÔØ ÚÁÐÉÓÁÎÏ ËÁË `emulate -L sh'.
)
ëÌÁÓÓÉÞÅÓËÏÅ ÒÁÚÌÉÞÉÅ - ÒÁÚÂÉ×ÁÎÉÅ ÎÁ ÓÌÏ×Á, ÏÂÓÕÖÄÁÅÍÏÅ × ×ÏÐÒÏÓÅ link(3.1)(31); ÜÔÏ ÚÁÈ×ÁÔÙ×ÁÅÔ ÏÞÅÎØ ÍÎÏÇÉÈ ÎÁÞÉÎÁÀÝÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ zsh. ëÁË ÐÒÁ×ÉÌÏ, ÜÔÏ ÁËÔÕÁÌØÎÁÑ ÏÛÉÂËÁ, ËÁÓÁÀÝÁÑÓÑ ËÁÖÄÏÇÏ ÄÒÕÇÏÇÏ ÛÅÌÌÁ. ïÔ×ÅÔ - ÜÔÏ ÚÁÄÁÔØ tt(SH_WORD_SPLIT) ÄÌÑ ÏÂÒÁÔÎÏÊ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ. óÌÅÄÕÀÝÅÅ ËÌÁÓÓÉÞÅÓËÏÅ ÒÁÚÌÉÞÉÅ - ÎÅ ÉÍÅÀÝÁÑ ÓÅÂÅ ÒÁ×ÎÙÈ ÆÏÒÍÁ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ ÉͣΠ- ÐÒÉÞÉÎÁ ÏÔËÁÚÁ ËÏÍÁÎÄ; ÚÁÄÁÊÔÅ tt(NO_NOMATCH) ÄÌÑ ÜÔÏÇÏ.
÷ÏÔ ÓÐÉÓÏË ÒÁÚÌÉÞÎÙÈ ÐÁÒÁÍÅÔÒÏ×, Ó ËÏÔÏÒÙÍÉ ×ÏÚÒÁÓÔ£Ô ksh-ÓÏ×ÍÅÓÔÉÍÏÓÔØ, ÈÏÔÑ ÍÏÇÕÔ ÕÍÅÎØÛÉÔØÓÑ ÓÐÏÓÏÂÎÏÓÔÉ zsh: ÞÉÔÁÊÔÅ ÒÕËÏ×ÏÄÓÔ×Ï ÐÏ ÐÁÒÁÍÅÔÒÁÍ tt(GLOB_SUBST), tt(IGNORE_BRACES) (ÈÏÔÑ ÒÁÓÛÉÒÅÎÉÅ ÓËÏÂÏË ×ÓÔÒÅÞÁÅÔÓÑ × ÎÅÓËÏÌØËÉÈ ×ÅÒÓÉÑÈ ksh), tt(KSH_ARRAYS), tt(KSH_GLOB), tt(KSH_OPTION_PRINT), tt(LOCAL_OPTIONS), tt(NO_BAD_PATTERN), tt(NO_BANG_HIST), tt(NO_EQUALS), tt(NO_HUP), tt(NO_NOMATCH), tt(NO_RCS), tt(NO_SHORT_LOOPS), tt(PROMPT_SUBST), tt(RM_STAR_SILENT), tt(POSIX_BUILTINS), tt(SH_FILE_EXPANSION), tt(SH_GLOB), tt(SH_OPTION_LETTERS), tt(SH_WORD_SPLIT) (ÓÍ. ×ÏÐÒÏÓ link(3.1)(31)) É tt(SINGLE_LINE_ZLE).
úÁÍÅÔØÔÅ, ÞÔÏ ×Ù ÍÏÖÅÔÅ ×ÙËÌÀÞÉÔØ ÌÀÂÙÅ ×ÓÔÒÏÅÎÎÙÅ ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ×ÁÍ ÎÅ ÎÕÖÎÙ. åÓÌÉ ×ÙÚ×ÁÔØ ËÁË `ksh', ÛÅÌÌ ÐÏÐÙÔÁÅÔÓÑ ÚÁÄÁÔØ ÐÏÄÈÏÄÑÝÉÅ ÐÁÒÁÍÅÔÒÙ.
÷ÏÔ ÎÅÓËÏÌØËÏ ÏÔÌÉÞÉÊ ÏÔ ksh - × ÏÓÎÏ×ÎÏÍ ÏÎÉ ÓÕÝÅÓÔ×ÅÎÎÙ ÄÌÑ ÐÒÏÇÒÁÍÍÉÓÔÏ× ksh, ÎÅËÏÔÏÒÙÅ ÉÚ ÎÉÈ ÍÏÇÕÔ ÂÙÔØ ×ÏÓÐÒÉÎÑÔÙ ËÁË ÏÛÉÂËÉ. úÁÍÅÔØÔÅ, ÞÔÏ ÜÔÏÔ ÓÐÉÓÏË ÕÍÙÛÌÅÎÎÏ ÐÏÌÎÙÊ É ÂÏÌØÛÉÎÓÔ×Ï ÚÎÁÞÅÎÉÊ ÄÏ×ÏÌØÎÏ ÎÅÚÎÁÞÉÔÅÌØÎÙ. ôÁËÉÅ ÏÔÍÅÔËÉ `*' ÐÒÅÄÓÔÁ×ÌÑÀÔ ÓÔÉÌØ ksh, ÅÓÌÉ ÛÅÌÌ ×ÙÚ×ÁÎ Ó ÉÍÅÎÅÍ `ksh' ÉÌÉ ÅÓÌÉ ÄÅÊÓÔ×ÕÅÔ `emulate ksh'. çÌÁ×ÎÙÅ ÓÌÏ×Á, ÏÔÎÏÓÑÝÉÅÓÑ Ë ÐÁÒÁÍÅÔÒÁÍ ÛÅÌÌÁ, ÐÏÄÞ£ÒËÎÕÔÙ.
itemize(
it() óÉÎÔÁËÓÉÓ:
itemize(
it() * òÁÚÄÅÌÅÎÉÑ ÎÁ ÓÌÏ×Á: ÓÍ. ×ÏÐÒÏÓ link(3.1)(31).
it() * íÁÓÓÉ×Ù (ÐÏ ÕÍÏÌÞÁÎÉÀ) ÂÏÌØÛÅ ÐÏÈÏÖÉ ÎÁ ÍÁÓÓÉ×Ù csh, ÞÅÍ ksh: ÉÎÄÅËÓÙ ÎÁÞÉÎÁÀÔÓÑ Ó 1, ÎÅ Ó 0; tt(array[0]) ÏÔÎÏÓÉÔÓÑ Ë tt(array[1]); mytt($array) ÏÔÎÏÓÉÔÓÑ ËÏ ×ÓÅÍÕ ÍÁÓÓÉ×Õ, ÎÅ Ë tt($array[0]); ÓËÏÂËÉ ÌÉÛÎÉÅ: tt($a[1] == ${a[1]}), É Ô.Ä. úÁÄÁÊÔÅ ÐÁÒÁÍÅÔÒ tt(KSH_ARRAYS) ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ.
it() óÏÐÒÏÃÅÓÓÙ, ÕÓÔÁÎÏ×ÌÅÎÎÙÅ mytt(coproc); mytt(|&) ×ÅÄÕÔ ÓÅÂÑ ÔÁË ÖÅ, ËÁË É × csh. ïÂÒÁÂÏÔËÁ ÆÁÊÌÏ×ÙÈ ÄÅÓËÒÉÐÔÏÒÏ× ÓÏÐÒÏÃÅÓÓÁ ÔÏÖÅ ÒÁÚÌÉÞÁÅÔÓÑ.
it() ÷ mytt(cmd1 && cmd2 &), ÔÏÌØËÏ mytt(cmd2) ×ÍÅÓÔÏ ×ÓÅÇÏ ×ÙÒÁÖÅÎÉÑ ÚÁÐÕÓÔÉÔÓÑ × ÆÏÎÅ zsh. ÷ ÒÕËÏ×ÏÄÓÔ×Å ÎÁÐÉÓÁÎÏ, ÞÔÏ ÜÔÏ ÏÛÉÂËÁ. éÓÐÏÌØÚÕÊÔÅ mytt({ cmd1 && cmd2 } &) ÄÌÑ ÆÏÎÁ.
)
it() ðÏÄÓÔÁÎÏ×ËÁ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÑ ÉÍÅÎ É Ô.Ä.:
itemize(
it()* îÅ×ÏÚÍÏÖÎÏÓÔØ ÓÏÐÏÓÔÁ×ÉÔØ ÏÂÒÁÚÅà ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÉÍÅÎÉ ×ÙÚÏ×ÅÔ ÏÛÉÂËÕ (ÉÓÐÏÌØÚÕÊÔÅ tt(NO_NOMATCH)).
it()* òÅÚÕÌØÔÁÔÙ ÐÏÄÓÔÁÎÏ×ËÉ ÔÒÁËÔÕÀÔÓÑ ËÁË ÏÂÙÞÎÙÊ ÔÅËÓÔ: mytt(foo="*"; print $foo) ÎÁÐÅÞÁÔÁÅÔ ×ÓÅ ÆÁÊÌÙ × ksh, ÎÏ mytt(*) × zsh ÓÌÅÄÕÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ tt(GLOB_SUBST), ÞÔÏÂÙ ÄÏÓÔÉÞØ ÔÏÇÏ ÖÅ ÒÅÚÕÌØÔÁÔÁ.
it()* tt($PSn) ÎÅ ÄÅÌÁÅÔ ÐÁÒÁÍÅÔÒÉÞÅÓËÕÀ ÐÏÄÓÔÁÎÏ×ËÕ ÐÏ ÕÍÏÌÞÁÎÉÀ (ÉÓÐÏÌØÚÕÊÔÅ tt(PROMPT_SUBST)).
it()* óÔÁÎÄÁÒÔÎÁÑ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÑ ÉÍÅÎ ÎÅ ÐÏÚ×ÏÌÑÅÔ ÏÂÒÁÚÃÙ × ÓÔÉÌÅ ksh.
üË×É×ÁÌÅÎÔÎÏÓÔØ:
----------------------------------------------------------------------
ksh zsh úÎÁÞÅÎÉÑ
------ ------ ---------
!(foo) ^foo þÔÏ-ÌÉÂÏ, ËÒÏÍÅ foo.
or foo1~foo2 þÔÏ-ÌÉÂÏ ÐÏ ÏÂÒÁÚÃÕ foo1 , ÎÏ ÎÅ foo2[1].
@(foo1|foo2|...) (foo1|foo2|...) ïÄÉÎ ÉÚ foo1 ÉÌÉ foo2 ÉÌÉ ...
?(foo) (foo|) îÏÌØ ÉÌÉ ÏÄÉÎ ÓÌÕÞÁÊ foo.
*(foo) (foo)# îÏÌØ ÉÌÉ ÂÏÌØÛÅ ÓÌÕÞÁÅ× foo.
+(foo) (foo)## ïÄÉÎ ÉÌÉ ÂÏÌØÛÅ ÓÌÕÞÁÅ× foo.
----------------------------------------------------------------------
æÏÒÍÙ mytt(^), mytt(~) É mytt(#) (ÎÏ ÎÅ mytt(|)) ÔÒÅÂÕÀÔ tt(EXTENDED_GLOB). îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 3.1.3, ÆÏÒÍÙ ksh ÐÏÌÎÏÓÔØÀ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ, ËÏÇÄÁ ÚÁÄÁÎ ÐÁÒÁÍÅÔÒ tt(KSH_GLOB); ÄÌÑ ÐÒÅÄÙÄÕÝÉÈ ×ÅÒÓÉÊ ×Ù ÄÏÌÖÎÙ ÐÏÌØÚÏ×ÁÔØÓÑ ÄÁÎÎÏÊ ÔÁÂÌÉÃÅÊ.
[1] úÁÍÅÔØÔÅ, ÞÔÏ ÓÉÍ×ÏÌ mytt(~) - ÜÔÏ ÔÏÌØËÏ ÏÐÅÒÁÔÏÒ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ ÉÍ£Î, ÉÍÅÀÝÉÊ ÍÅÎØÛÉÊ ÐÒÉÏÒÉÔÅÔ, ÞÅÍ mytt(/). îÁÐÒÉÍÅÒ, mytt(**/foo~*bar*) ÕËÁÚÙ×ÁÅÔ ÎÁ ÌÀÂÙÅ ÆÁÊÌÙ × ÐÏÄÄÉÒÅËÔÏÒÉÉ mytt(foo), ËÒÏÍÅ mytt(bar), ×ÓÔÒÅÞÁÀÝÉÈÓÑ ÐÏ ÐÕÔÉ (Ô.Å. mytt(users/barstaff/foo) ÂÕÄÕÔ ÉÓËÌÀÞÅÎÙ ÏÐÅÒÁÔÏÒÏÍ mytt(~)). ëÁË mytt(**) ÏÐÅÒÁÔÏÒ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÓÇÒÕÐÐÉÒÏ×ÁÎ (× ËÒÕÇÌÙÈ ÓËÏÂËÁÈ ÏÎ ÔÒÁËÔÕÅÔÓÑ ËÁË mytt(*)), ÜÔÏ ÎÕÖÎÏ, ÞÔÏÂÙ ÉÓËÌÀÞÉÔØ ÎÅÓËÏÌØËÏ ÐÏÄÄÉÒÅËÔÏÒÉÊ ÉÚ ÏÂÒÁÚÃÁ mytt(**).
it() ðÒÉÓ×ÁÉ×ÁÎÉÑ ÂÅÚ ËÁ×ÙÞÅË ÐÒÏÉÚ×ÏÄÑÔ ÒÁÓÛÉÒÅÎÉÅ ÉÍÅÎÉ ÆÁÊÌÁ ÐÏÓÌÅ Ä×ÏÅÔÏÞÉÑ mytt(:) (ÐÒÅÄÎÁÚÎÁÞÁÅÔÓÑ ÄÌÑ tt(PATH)).
it() mytt(typeset) É mytt(integer) ÉÍÅÀÔ ÓÐÅÃÉÁÌØÎÏÅ ÐÏ×ÅÄÅÎÉÅ ÄÌÑ ÐÒÉÓ×ÁÉ×ÁÎÉÊ × ksh, ÎÏ ÎÅ × zsh. îÁÐÒÉÍÅÒ, ×ÏÔ ÜÔÏ ÎÅ ÒÁÂÏÔÁÅÔ × zsh:
verb(
integer k=$(wc -l ~/.zshrc)
)
ÐÏÔÏÍÕ ÞÔÏ ×ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ ÉÚ tt(wc) ×ËÌÀÞÁÅÔ ×ÅÄÕÝÉÅ ÐÒÏÂÅÌÙ, ËÏÔÏÒÙÅ ÒÁÚÄÅÌÑÀÔ ÓÌÏ×Á. Ksh ÔÒÁËÔÕÅÔ ÐÒÉÓ×ÁÉ×ÁÎÉÅ ÓÐÅÃÉÁÌØÎÏ ËÁË ÏÄÎÏ ÓÌÏ×Ï.
)
it() ÷ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄ:
itemize(
it()* îÅÔ ÐÅÒÅÍÅÎÎÏÊ tt($ENV) (ÉÓÐÏÌØÚÕÊÔÅ tt(/etc/zshrc), tt(~/.zshrc); Á ÔÁËÖÅ tt($ZDOTDIR)).
it() tt($PATH) ÎÅ ÐÒÏÓÍÁÔÒÉ×ÁÅÔÓÑ ÄÌÑ ËÏÍÁÎÄ, ÓÐÅÃÉÁÌØÎÏ ×ÙÚ×ÁÎÎÙÈ ÂÅÚ -c.
)
it() ðÓÅ×ÄÏÎÉÍÙ É ÆÕÎËÃÉÉ:
itemize(
it() ÷ÁÖÅÎ ÐÏÒÑÄÏË × ËÏÔÏÒÏÍ ÏÐÒÅÄÅÌÑÀÔÓÑ ÐÓÅ×ÄÏÎÉÍÙ É ÆÕÎËÃÉÉ: ÆÕÎËÃÉÉ, ÏÐÒÅÄÅÌ£ÎÎÙÅ Ó ÐÏÍÏÝØÀ (), ÒÁÓÛÉÒÑÀÔ ÐÓÅ×ÄÏÎÉÍÙ -- ÓÍ. ×ÏÐÒÏÓ link(2.3)(23).
it() ðÓÅ×ÄÏÎÉÍÙ É ÆÕÎËÃÉÉ ÎÅ ÍÏÇÕÔ ÜËÓÐÏÒÔÉÒÏ×ÁÔØÓÑ.
it() îÅÔ ÏÔÓÌÅÖÉ×ÁÅÍÙÈ ÐÓÅ×ÄÏÎÉÍÏ×: ÈÅÛÉÒÏ×ÁÎÉÅ ËÏÍÁÎÄ ÉÈ ÚÁÍÅÎÑÅÔ.
it() éÓÐÏÌØÚÏ×ÁÎÉÅ ÐÓÅ×ÄÏÎÉÍÏ× ÄÌÑ ÐÒÉ×ÑÚËÉ Ë ËÌÁ×ÉÛÁÍ ÚÁÍÅÎÅÎÏ ÎÁ `bindkey'.
it()* ðÁÒÁÍÅÔÒÙ ÎÅ ÌÏËÁÌØÎÙ ÄÌÑ ÆÕÎËÃÉÊ (ÉÓÐÏÌØÚÕÊÔÅ LOCAL_OPTIONS; ÚÁÍÅÔØÔÅ, ÞÔÏ ÜÔÏ ×ÓÅÇÄÁ ÍÏÖÅÔ ÂÙÔØ ×ÙËÌÀÞÅÎÏ ÌÏËÁÌØÎÏ, ÞÔÏÂÙ ÐÅÒÅÄÁÔØ ÐÁÒÁÍÅÔÒÙ ÏÔ ÆÕÎËÃÉÉ ÎÁ ×ÙÚÙ×ÁÅÍÙÊ ÕÒÏ×ÅÎØ).
it() æÕÎËÃÉÉ, ÏÐÒÅÄÅÌ£ÎÎÙÅ ËÁË `function funcname { body }' ×ÅÄÕÔ ÓÅÂÑ ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É `funcname () { body }'. ÷ ksh ÐÏÓÌÅÄÎÉÅ ×ÅÄÕÔ ÓÅÂÑ ËÁË ÅÓÌÉ ÂÙ ÉÈ ÔÅÌÏ ÂÙÌÏ ÐÒÏÞÉÔÁÎÏ ÉÚ ÆÁÊÌÁ, ÎÁÞÉÎÁÀÝÅÇÏÓÑ Ó `.', É ÔÏÌØËÏ ÐÏÓÌÅÄÎÉÅ ×ÅÄÕÔ ÓÅÂÑ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ËÁË ÆÕÎËÃÉÉ.
)
it() ðÒÅÒÙ×ÁÎÉÑ É ÓÉÇÎÁÌÙ:
itemize(
it()* ðÒÅÒÙ×ÁÎÉÑ ÎÅ ÌÏËÁÌØÎÙ ÄÌÑ ÆÕÎËÃÉÊ. ðÁÒÁÍÅÔÒ LOCAL_TRAPS ÄÏÓÔÕÐÅÎ Ó ×ÅÒÓÉÉ 3.1.6.
it() TRAPERR ÓÔÁÌ TRAPZERR (ÜÔÏ ÂÙÌÏ ×ÙÚ×ÁÎÏ UNICOS, ËÏÔÏÒÙÊ ÉÍÅÅÔ SIGERR).
)
it() òÅÄÁËÔÉÒÏ×ÁÎÉÅ:
itemize(
it() ðÁÒÁÍÅÔÒÙ tt(gmacs), tt(viraw) - ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ. éÓÐÏÌØÚÕÊÔÅ bindkey, ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ÐÏ×ÅÄÅÎÉÅ ÒÅÄÁËÔÏÒÁ: mytt(set -o {emacs,vi}) ÓÔÁÌÏ `bindkey -{e,v}', ÈÏÔÑ `set -o emacs' É `set -o vi' ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ; ÄÌÑ gmacs - ÐÅÒÅÊÄÉÔÅ × ÒÅÖÉÍ emacs É ÉÓÐÏÌØÚÕÊÔÅ `bindkey \^t gosmacs-transpose-characters'.
it() ðÁÒÁÍÅÔÒ mytt(keyword) - ÎÅ ÓÕÝÅÓÔ×ÕÅÔ É mytt(-k) - ×ÍÅÓÔÏ ÉÎÔÅÒÁËÔÉ×ÎÙÈ ËÏÍÍÅÎÔÁÒÉÅ×. (mytt(keyword) - ÔÁË ÖÅ ÉÓÞÅÚÌÁ × ÎÅÄÁ×ÎÉÈ ×ÅÒÓÉÑÈ ksh.)
it()* õÐÒÁ×ÌÅÎÉÅ ÉÓÔÏÒÉÅÊ × ÍÎÏÇÏÞÉÓÌÅÎÎÙÈ ÛÅÌÌÁÈ ÒÁÚÌÉÞÎÏ: ÉÓÔÏÒÉÑ ÎÅ ÓÏÈÒÁÎÑÅÔÓÑ É ÎÅ ×ÏÓÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÐÏÓÌÅ ËÁÖÄÏÊ ËÏÍÁÎÄÙ. ðÁÒÁÍÅÔÒ tt(SHARE_HISTORY) ÐÏÑ×ÉÌÓÑ × ×ÅÒÓÉÉ 3.1.6 É ÏÎ ÚÁÄÁ£ÔÓÑ × ÒÅÖÉÍÅ ksh ÓÏ×ÍÅÓÔÉÍÏÓÔÉ, ÞÔÏÂÙ ÉÓÐÒÁ×ÉÔØ ÜÔÏ.
it() mytt(\) ÎÅ ÜËÒÁÎÉÒÕÅÔ ÓÉÍ×ÏÌÙ (ÉÓÐÏÌØÚÕÊÔÅ mytt(^V)).
it() îÅ ×ÓÅ ÐÒÉ×ÑÚÙ×ÁÎÉÑ ksh ÚÁÄÁÀÔÓÑ (ÎÁÐÒÉÍÅÒ mytt(<ESC>#); ÐÒÏÂÕÊÔÅ mytt(<ESC>q)).
it()* mytt(#) - × ÉÎÔÅÒÁËÔÉ×ÎÏÍ ÛÅÌÌÅ ÐÏ ÕÍÏÌÞÁÎÉÀ îå ÔÒÁËÔÕÅÔÓÑ ËÁË ËÏÍÍÅÎÔÁÒÉÊ.
)
it() ÷ÓÔÒÏÅÎÎÙÅ ËÏÍÁÎÄÙ:
itemize(
it() îÅËÏÔÏÒÙÅ ×ÓÔÒÏÅÎÎÙÅ ËÏÍÁÎÄÙ (tt(r), tt(autoload), tt(history), tt(integer) ...) ÂÙÌÉ ÐÓÅ×ÄÏÎÉÍÁÍÉ × ksh.
it() ÷ÓÔÒÏÅÎÎÏÊ ËÏÍÁÎÄÙ newgrp ÎÅÔ: ÉÓÐÏÌØÚÕÊÔÅ mytt(alias newgrp="exec newgrp")
it() mytt(jobs) ÎÅ ÉÍÅÅÔ ÆÌÁÇÁ mytt(-n).
)
it() äÒÕÇÉÅ ÏÓÏÂÅÎÎÏÓÔÉ:
itemize(
it() mytt(select) ×ÓÅÇÄÁ ÐÏËÁÚÙ×ÁÅÔ ÚÁÎÏ×Ï ÓÐÉÓÏË ×ÙÂÏÒÁ ÎÁ ËÁÖÄÏÍ ÃÉËÌÅ.
)
)
sect(óÈÏÄÓÔ×Á Ó csh)
èÏÔÑ ÏÐÒÅÄÅÌ£ÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÓÔÒÅÍÑÔÓÑ ÚÁÍÁÎÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÅÊ csh, ÓÉÎÔÁËÓÉÓ, × ÏÂÝÅÍ, ÄÏ×ÏÌØÎÏ ÒÁÚÌÉÞÅÎ É ×ÁÍ, ÎÅÓÏÍÎÅÎÎÏ, ÎÅ ÓÌÅÄÕÅÔ ÐÙÔÁÔØÓÑ ÚÁÐÕÓÔÉÔØ ÓËÒÉÐÔÙ ÂÅÚ ÉÚÍÅÎÅÎÉÑ. c2z ÓÃÅÎÁÒÉÊ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ Ó ÉÓÈÏÄÎÉËÁÍÉ (× Misc/c2z) ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÍÏÞØ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÆÁÊÌÙ .cshrc É .login; ÐÏÓÍÏÔÒÉÔÅ ÔÁËÖÅ ÓÌÅÄÕÀÝÉÊ ×ÏÐÒÏÓ, ËÁÓÁÀÝÉÊÓÑ ÐÓÅ×ÄÏÎÉÍÏ×, ÏÓÏÂÅÎÎÏ ÔÅÈ, ËÏÔÏÒÙÅ Ó ÁÒÇÕÍÅÎÔÁÍÉ.
Csh-ÓÏ×ÍÅÓÔÉÍÙÅ ÄÏÐÏÌÎÅÎÉÑ ×ËÌÀÞÁÀÔ × ÓÅÂÑ:
itemize(
it() ×ÓÔÒÏÅÎÎÙÅ ËÏÍÁÎÄÙ tt(logout), tt(rehash), tt(source), tt((un)limit).
it() ÆÁÊÌ tt(*rc) ÄÌÑ ÉÎÔÅÒÁËÔÉ×ÎÙÈ ÛÅÌÌÏ×.
it() ÓÔÅËÉ ÄÉÒÅËÔÏÒÉÊ.
it() ÐÁÒÁÍÅÔÒÙ tt(cshjunkie*), tt(ignoreeof).
it() ÐÁÒÁÍÅÔÒ tt(CSH_NULL_GLOB).
it() tt(>&), tt(|&) É Ô.Ð. ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ.
(úÁÍÅÔØÔÅ, ÞÔÏ mytt(>file 2>&1) ÓÔÁÎÄÁÒÔÎÁÑ ËÏÍÁÎÄÁ Bourne shell'Á ÄÌÑ csh ÏÎÁ ×ÙÇÌÑÄÉÔ ÔÁË mytt(>&file).)
it() tt(foreach ...) loops; ÁÌØÔÅÒÎÁÔÉ×ÎÙÊ ÓÉÎÔÁËÓÉÓ ÄÌÑ ÄÒÕÇÉÈ ÃÉËÌÏ×.
it() áÌØÔÅÒÎÁÔÉ×ÎÙÊ ÓÉÎÔÁËÓÉÓ mytt(if ( ... ) ...), ÈÏÔÑ ÏÎ ÎÅ ÒÁÂÏÔÁÅÔ ËÁË × csh: ÏÎ ÏÖÉÄÁÅÔ ËÏÍÁÎÄÕ × ËÒÕÇÌÙÈ ÓËÏÂËÁÈ, ÔÁËÖÅ ËÁË É mytt(for), mytt(which).
it() tt($PROMPT) ÔÁËÁÑ ÖÅ ËÁË É tt($PS1), tt($status) ÔÁËÁÑ ÖÅ ËÁË É tt($?), tt($#argv) ÔÁËÁÑ ÖÅ ËÁË É tt($#), ....
it() üËÒÁÎÉÒÕÅÍÙÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÐÉÛÕÔÓÑ ÞÅÒÅÚ tt(%) ÄÌÑ ÐÒÉÇÌÁÛÅÎÉÑ.
it() óÐÅÃÉÁÌØÎÙÅ ÍÁÓÓÉ×Ù tt($PATH) É Ô.Ð., ÒÁÚÄÅÌ£ÎÎÙÅ Ä×ÏÅÔÏÞÉÑÍÉ, tt($path) ÍÁÓÓÉ×Ù.
it() ÉÓÔÏÒÉÑ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ tt(!) (ËÏÔÏÒÁÑ ÍÏÖÅÔ ÂÙÔØ ×ÙËÌÀÞÅÎÁ ÞÅÒÅÚ mytt(setopt nobanghist)).
it() íÁÓÓÉ×Ù ÉÍÅÀÔ ÔÁËÉÅ ÖÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÁË É × csh (ÓÍ. link(2.1)(21)).
)
sect(ðÏÞÅÍÕ ÍÏÉ ÐÓÅ×ÄÏÎÉÍÙ ÏÔ csh ÎÅ ÒÁÂÏÔÁÀÔ? (á ÔÁËÖÅ ÄÒÕÇÉÅ ÏÛÉÂËÉ Ó ÐÓÅ×ÄÏÎÉÍÁÍÉ.))
label(23)
äÌÑ ÎÁÞÁÌÁ, ÐÒÏ×ÅÒØÔÅ, ËÁËÏÊ ÓÉÎÔÁËÓÉÓ ×Ù ÉÓÐÏÌØÚÕÅÔÅ
verb(
alias newcmd='list of commands'
)
Á ÎÅ
verb(
alias newcmd 'list of commands'
)
ËÏÔÏÒÙÊ ÎÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ. (åÓÌÉ `newcmd' É `list of commands' ÕÖÅ ÏÐÒÅÄÅÌÅÎÙ ËÁË ÐÓÅ×ÄÏÎÉÍÙ.)
÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ, ×ÁÛÉ ÐÓÅ×ÄÏÎÉÍÙ ×ÏÚÍÏÖÎÏ ÓÏÄÅÒÖÁÔ ÓÓÙÌËÕ ÎÁ ËÏÍÁÎÄÎÕÀ ÓÔÒÏËÕ ÆÏÒÍÙ mytt(\!*), É Ô.Ð. Zsh ÎÅ ÏÐÅÒÉÒÕÅÔ ÔÁËÉÍ ÐÏ×ÅÄÅÎÉÅÍ ÔÁË, ËÁË ÜÔÏ ÄÅÌÁÀÔ ÛÅÌÌ-ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ ÒÅÛÅÎÉÅ ÜÔÏÊ ÐÒÏÂÌÅÍÙ ÂÏÌÅÅ ÓÏÄÅÒÖÁÔÅÌØÎÏ Ó ÄÒÕÇÉÍÉ ÆÏÒÍÁÍÉ ÁÒÇÕÍÅÎÔÏ×. îÁÐÒÉÍÅÒ, csh ÐÓÅ×ÄÏÎÉÍ
verb(
alias cd 'cd \!*; echo $cwd'
)
ÍÏÖÅÔ ÂÙÔØ ÚÁÍÅΣΠÆÕÎËÃÉÅÊ zsh,
verb(
cd() { builtin cd "$@"; echo $PWD; }
)
(`builtin' ÓÏÂÝÁÅÔ zsh ÉÓÐÏÌØÚÏ×ÁÔØ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ `cd', ÉÚÂÅÇÁÑ ÂÅÓËÏÎÅÞÎÏÇÏ ÃÉËÌÁ, ÉÌÉ, ×ÏÚÍÏÖÎÏ ÌÕÞÛÅ,
verb(
cd() { builtin cd "$@"; print -D $PWD; }
)
(ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ ×ÁÛÅÊ ÄÏÍÁÛÎÅÊ ÄÉÒÅËÔÏÒÉÉ × tt(~)). æÁËÔÉÞÅÓËÉ, ÜÔÁ ÐÒÏÂÌÅÍÁ ÌÕÞÛÅ ÒÅÛÅÎÁ ÏÐÒÅÄÅÌÅÎÉÅÍ ÓÐÅÃÉÁÌØÎÏÊ ÆÕÎËÃÉÉ chpwd() (ÓÍ. ÒÕËÏ×ÏÄÓÔ×Ï). úÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ mytt(;) × ËÏÎÃÅ ÆÕÎËÃÉÉ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ × zsh, × ÏÔÌÉÞÉÅ ÏÔ ksh ÉÌÉ sh.
÷ÏÔ ÒÕËÏ×ÏÄÓÔ×Ï Bart Schaefer ÐÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÀ ÐÓÅ×ÄÏÎÉÍÏ× csh ÄÌÑ zsh.
enumerate(
myeit() ÷ csh ÐÓÅ×ÄÏÎÉÍ ÓÓÙÌÁÅÔÓÑ ÎÁ ÐÁÒÁÍÅÔÒÙ (tt(\!:1), tt(\!*) É Ô.Ð.), ÔÏÇÄÁ × zsh ×ÁÍ ÎÕÖÎÁ ÆÕÎËÃÉÑ (ÓÓÙÌÁÀÝÁÑÓÑ ÎÁ tt($1), tt($*) É Ô.Ð.). éÎÁÞÅ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÓÅ×ÄÏÎÉÍÙ zsh.
myeit() åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÆÕÎËÃÉÀ zsh, ×ÁÍ ÎÕÖÎÏ ÓÓÙÌÁÔØÓÑ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÎÁ tt($*) × ÔÅÌÅ (×ÎÕÔÒÉ tt({ })). ðÁÒÁÍÅÔÒÙ ÎÅ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÑ×ÌÑÀÔÓÑ ×ÎÕÔÒÉ tt({ }), ÜÔÏ ÓÐÏÓÏ ÉÈ ÄÏÂÁ×ÌÅÎÉÑ × ÐÓÅ×ÄÏÎÉÍ.
myeit() åÓÌÉ csh ÐÓÅ×ÄÏÎÉÍ ÓÓÙÌÁÅÔÓÑ ÎÁ Ó×Ï£ ÓÏÂÓÔ×ÅÎÎÏÅ ÉÍÑ (tt(alias rm "rm -i")), ÔÏÇÄÁ × ÆÕÎËÃÉÉ zsh ×ÁÍ ÎÕÖÎÏ ËÌÀÞÅ×ÏÅ ÓÌÏ×Ï "command" (function tt(rm()) { command rm -i "$@" }), ÎÏ × ÐÓÅ×ÄÏÎÉÍÁÈ zsh ÏÎÏ ÎÅ ÎÕÖÎÏ (tt(alias rm="rm -i")).
myeit() åÓÌÉ Õ ×ÁÓ ÅÓÔØ ÐÓÅ×ÄÏÎÉÍÙ, ÓÓÙÌÁÀÝÉÅÓÑ ÄÒÕÇ ÎÁ ÄÒÕÇÁ (tt(alias ls "ls -C"; alias lf "ls -F" ==> lf == ls -C -F)), ÔÏÇÄÁ ×Ù ÄÏÌÖÎÙ ÌÉÂÏ:
itemize(
it() ÐÒÅÏÂÒÁÚÏ×ÁÔØ ÉÈ ×ÓÅ × ÆÕÎËÃÉÉ zsh; ÉÌÉ
it() ÐÏÓÌÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ, ÕÂÅÄÉÔÅÓØ, ÞÔÏ ×ÁÛ .zshrc ÏÐÒÅÄÅÌÑÅÔ ×ÓÅ ×ÁÛÉ ÐÓÅ×ÄÏÎÉÍÙ ÄÏ ÔÏÇÏ, ËÁË ÏÎ ÏÐÒÅÄÅÌÑÅÔ ËÁËÕÀ-ÌÉÂÏ ÉÚ ÆÕÎËÃÉÊ.
)
üÔÉ ÐÅÒ×ÙÅ ÞÅÔÙÒÅ ÐÒÁ×ÉÌÁ - ×Ó£, ÞÔÏ ×ÁÍ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÕÖÎÏ, ÎÏ ×ÏÔ ÅÝ£ ÞÅÔÙÒÅ ÄÌÑ ÂÏÌÅÅ ÓÌÏÖÎÙÈ csh ÐÓÅ×ÄÏÎÉÍÏ×:
myeit() òÁÓÐÒÅÄÅÌÅÎÉÅ ×ÎÕÔÒÅÎÎÉÈ ÐÅÒÅÍÅÎÎÙÈ csh × zsh ÆÕÎËÃÉÉ (ÐÒÉÎÉÍÁÅÔÓÑ, ÞÔÏ tt(SH_WORD_SPLIT) É tt(KSH_ARRAYS) îå ÚÁÄÁÎÙ × zsh):
verb(
csh zsh
===== ==========
\!* $* (ÉÌÉ $argv)
\!^ $1 (ÉÌÉ $argv[1])
\!:1 $1
\!:2 $2 (ÉÌÉ $argv[2], É Ô.Ð.)
\!$ $*[$#] (ÉÌÉ $argv[$#], ÉÌÉ $*[-1])
\!:1-4 $*[1,4]
\!:1- $*[1,$#-1] (ÉÌÉ $*[1,-2])
\!^- $*[1,$#-1]
\!*:q "$@"
\!*:x $=* ($*:x ÎÅ ÒÁÂÏÔÁÅÔ (ÐÏËÁ))
)
myeit() úÁÐÏÍÎÉÔÅ, ÞÔÏ ÓÓÙÌÁÔØÓÑ ÎÁ ÐÏÚÉÃÉÀ (tt($1), tt($2), É Ô.Ð.) ÂÏÌØÛÕÀ, ÞÅÍ ÞÉÓÌÏ ÐÁÒÁÍÅÔÒÏ×, - ÜÔÏ îå ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ zsh. (îÁÐÒÉÍÅÒ, × csh ÐÓÅ×ÄÏÎÉÍ, ÓÓÙÌÁÀÝÉÊÓÑ ÎÁ tt(\!:5) ÂÕÄÅÔ Ñ×ÌÑÔØÓÑ ÐÒÉÞÉÎÏÊ ÏÛÉÂËÉ, ÅÓÌÉ 4 ÉÌÉ ÍÅÎØÛÅ ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ× ÚÁÄÁÎÏ; × zsh ÆÕÎËÃÉÉ, tt($5) - ÜÔÏ ÐÕÓÔÁÑ ÓÔÒÏËÁ, ÅÓÌÉ ÐÁÒÁÍÅÔÒÏ× 4 ÉÌÉ ÍÅÎØÛÅ.)
myeit() þÔÏÂÙ ÎÁÞÁÔØ ÐÓÅ×ÄÏÎÉÍ Ó ÓÉÍ×ÏÌÁ - (Þ£ÒÔÏÞËÁ, ÄÅÆÉÓ), ÉÓÐÏÌØÚÕÊÔÅ mytt(alias --):
verb(
csh zsh
=============== ==================
alias - "fg %-" alias -- -="fg %-"
)
myeit() éÚÂÅÇÁÊÔÅ mytt(alias -g) × zsh, ÅÓÌÉ ×Ù ÎÅ Õ×ÅÒÅÎÙ × ÔÏÍ, ÞÔÏ ×Ù ÄÅÌÁÅÔÅ.
)
åÝ£ ÏÄÎÁ ÓÅÒØ£ÚÎÁÑ ÐÒÏÂÌÅÍÁ Ó ÐÓÅ×ÄÏÎÉÍÁÍÉ: ÒÁÓÓÍÏÔÒÉÍ
verb(
alias l='/bin/ls -F'
l() { /bin/ls -la "$@" | more }
)
mytt(l) × ÏÐÒÅÄÅÌÅÎÉÉ ÆÕÎËÃÉÉ ÎÁÈÏÄÉÔÓÑ × ÐÏÚÉÃÉÉ ËÏÍÁÎÄÙ, ËÏÔÏÒÁÑ ÒÁÓÛÉÒÑÅÔ ÐÓÅ×ÄÏÎÉÍ, ÏÐÒÅÄÅÌÑÀÝÉÊ mytt(/bin/ls) É mytt(-F) ËÁË ÆÕÎËÃÉÀ, ËÏÔÏÒÁÑ ×ÙÚÙ×ÁÅÔ mytt(/bin/ls), ËÏÔÏÒÁÑ × Ó×ÏÀ ÏÞÅÒÅÄØ ×ÙÚÙ×ÁÅÔ ÒÅËÕÒÓÉÀ. üÔÏÇÏ ÍÏÖÎÏ ÉÚÂÅÖÁÔØ, ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ mytt(function) ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ ÆÕÎËÃÉÉ, ËÏÔÏÒÁÑ ÎÅ ÒÁÓÛÉÒÑÅÔ ÐÓÅ×ÄÏÎÉÍ. üÔÏ ×ÏÚÍÏÖÎÏ ÁÒÇÕÍÅÎÔÉÒÏ×ÁÔØ ÄÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÙÈ ÐÒÅÄÕÐÒÅÖÄÅÎÉÊ ÇÄÅ-ÎÉÂÕÄØ × ÜÔÏÍ ÂÅÓÐÏÒÑÄËÅ.
ðÒÁ×ÉÌÏ Bart'a Schaefer'a: ïÐÒÅÄÅÌÉÔÅ ÓÎÁÞÁÌÁ ÔÅ ÐÓÅ×ÄÏÎÉÍÙ, ËÏÔÏÒÙÅ ×Ù ÏÖÉÄÁÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × ÔÅÌÅ ÆÕÎËÃÉÊ, ÎÏ ÏÐÒÅÄÅÌÉÔÅ ÆÕÎËÃÉÀ ÓÎÁÞÁÌÁ, ÅÓÌÉ ÐÓÅ×ÄÏÎÉÍ ÉÍÅÅÔ ÔÁËÏÅ ÖÅ ÉÍÑ ËÁË É ÆÕÎËÃÉÑ.
sect(óÈÏÄÓÔ×Á c tcsh)
(åÓÔÅÓÔ×ÅÎÎÏ, × ÜÔÏÔ ÒÁÚÄÅÌ ÍÏÖÎÏ ÏÔÎÅÓÔÉ ×Ó£, ÞÔÏ ÎÁÐÉÓÁÎÏ ÄÌÑ csh.) ïÐÒÅÄÅÌ£ÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÚÁÉÍÓÔ×Ï×ÁÎÙ ÉÚ tcsh, ×ËÌÀÞÁÑ tt($watch), tt(run-help), tt($savehist), ÐÅÒÉÏÄÉÞÎÙÅ ËÏÍÁÎÄÙ É Ô.Ð., ÒÁÓÛÉÒÅÎÎÙÅ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ, ×ÓÔÒÏÅÎÎÙÅ tt(sched) É tt(which). ðÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ ÂÙÌÏ ÏÓÎÏ×ÁÎÏ ÎÁ tcsh, ÎÏ ÏÎÏ ÐÏÌÎÏÓÔØÀ ÏÔÌÉÞÁÅÔÓÑ ÏÔ tcsh's mytt(complete). (åÓÔØ perl-ÓËÒÉÐÔ, ÎÁÚÙ×ÁÅÍÙÊ tt(lete2ctl), × ÄÉÒÅËÔÏÒÉÉ Misc ÉÓÈÏÄÎÏÇÏ ÄÉÓÔÒÉÂÕÔÉ×Á ÄÌÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ mytt(complete) × mytt(compctl) ×ÙÒÁÖÅÎÉÑ.) üÔÏ ÎÅ ÏËÏÎÞÁÔÅÌØÎÙÊ ÓÐÉÓÏË: ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÐÏÛÌÉ × ÄÒÕÇÏÍ ÎÁÐÒÁ×ÌÅÎÉÉ.
åÓÌÉ ×Ù ÐÒÏÐÕÓÔÉÌÉ ÆÕÎËÃÉÀ ÒÅÄÁËÔÏÒÁ tt(run-fg-editor), ÐÏÐÒÏÂÕÊÔÅ ÞÔÏ-ÎÉÂÕÄØ Ó mytt(bindkey -s) (ËÏÔÏÒÁÑ ÐÒÉ×ÑÚÙ×ÁÅÔ ÓÔÒÏËÕ Ë ÎÁÖÁÔÉÀ ËÌÁ×ÉÛÉ), ÎÁÐÒÉÍÅÒ
verb(
bindkey -s '^z' '\eqfg %$EDITOR:t\n'
)
ËÏÔÏÒÁÑ ÐÏÍÅÝÁÅÔ ÔÅËÕÝÕÀ ÓÔÒÏËÕ × ÓÔÅË É ÐÙÔÁÅÔÓÑ ÐÅÒÅÎÅÓÔÉ ÒÁÂÏÔÕ Ó ÂÁÚÏ×ÙÍ ÉÍÅÎÅÍ ×ÁÛÅÇÏ ÒÅÄÁËÔÏÒÁ ÎÁ ÐÅÒÅÄÎÉÊ ÐÌÁÎ. mytt(bindkey -s) ÄÁ£Ô ÎÅÏÇÒÁÎÉÞÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ ÎÁ ÜÔÉÈ ÓÔÒÏËÁÈ. ÷Ù ÍÏÖÅÔÅ ×ÙÐÏÌÎÉÔØ ÌÀÂÕÀ ËÏÍÁÎÄÕ × ÓÅÒÅÄÉÎÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÓÔÒÏËÉ ÔÁËÖÅ, ËÁË ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ tcsh ÐÁÒÁÍÅÔÒ mytt(-c):
verb(
bindkey -s '^p' '\eqpwd\n'
)
÷ ÏÂÏÉÈ ÐÒÉÍÅÒÁÈ, mytt(\eq) ÓÏÈÒÁÎÑÅÔ ÔÅËÕÝÕÀ ÐÏÚÉÃÉÀ ××ÏÄÁ, ËÏÔÏÒÁÑ ÂÕÄÅÔ ×ÏÓÓÔÁÎÏ×ÌÅÎÁ ÐÏÓÌÅ ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄÙ; ÌÕÞÛÉÊ ÜÆÆÅËÔ Ó ÍÎÏÇÏÓÔÒÏÞÎÙÍÉ ÂÕÆÅÒÁÍÉ ÄÏÓÔÉÇÁÅÔÓÑ, ÅÓÌÉ ×Ù ÔÁËÖÅ ÉÍÅÅÔÅ
verb(
bindkey '\eq' push-input
)
ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ×ÓÅÇÏ ÂÕÆÅÒÁ. ÷ ×ÅÒÓÉÉ 4 É ÐÏÓÌÅÄÎÅÊ ×ÅÒÓÉÉ zsh 3.1, Õ ×ÁÓ ÅÓÔØ ÓÌÅÄÕÀÝÉÅ ÂÏÌÅÅ ÓÌÏÖÎÙÅ ÐÁÒÁÍÅÔÒÙ
verb(
run-fg-editor() {
zle push-input
BUFFER="fg %$EDITOR:t"
zle accept-line
}
zle -N run-fg-editor
)
É ×Ù ÍÏÖÅÔÅ ÔÅÐÅÒØ ÐÒÉ×ÑÚÁÔØ tt(run-fg-editor) ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É ÌÀÂÕÀ ÄÒÕÇÕÀ ÆÕÎËÃÉÀ ÒÅÄÁËÔÏÒÁ.
sect(óÈÏÄÓÔ×Á Ó bash)
Bourne-Again Shell, bash - ÜÔÏ ÄÒÕÇÏÊ ÒÁÓÛÉÒÅÎÎÙÊ Bourne-like ÛÅÌÌ; ÓÁÍÏÅ ÇÌÁ×ÎÏÅ ÏÞÅ×ÉÄÎÏÅ ÏÔÌÉÞÉÅ ÏÔ zsh, ÞÔÏ ÏÎ ÎÅ ÐÙÔÁÅÔÓÑ ÜÍÕÌÉÒÏ×ÁÔØ Korn shell. ðÏÓËÏÌØËÕ ÏÂÁ ÛÅÌÌÁ ÁËÔÉ×ÎÏ ÒÁÚ×É×ÁÀÔÓÑ, ÔÏ ×ÏÚÍÏÖÎÏ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÂÙÔØ ÓÌÉÛËÏÍ ÓÐÅÃÉÆÉÞÎÙÍ × ÜÔÏÍ ×ÏÐÒÏÓÅ. bash ÏÂÒÁÝÁÅÔ ÂÏÌØÛÅ ×ÎÉÍÁÎÉÑ ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÉÅ ÓÔÁÎÄÁÒÔÁÍ (× Ô.Þ. POSIX), É ÏÎ ÉÚÂÅÇÁÅÔ ÂÏÌØÛÅ ÎÅÐÏÎÑÔÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ (ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ É Ô.Ä.), ÞÅÍ zsh.
ïÄÎÁËÏ, × ÐÏÓÌÅÄÎÉÅ ÇÏÄÙ ÂÙÌÉ ÎÅËÏÔÏÒÙÅ ÐÅÒÅÓÅÞÅÎÉÑ Ó ÒÁÓÛÉÒÅÎÉÑÍÉ. Zsh (ÎÁÞÉÎÁÑ Ó 3.1.6) ÉÍÅÅÔ ×ÏÚÍÏÖÎÏÓÔØ bash'Á `tt(${var/old/new})' ÚÁÍÅÎÙ ÔÅËÓÔÁ tt(old) ÎÁ ÔÅËÓÔ tt(new) × ÐÁÒÁÍÅÔÒÁÈ tt($var). úÁÍÅÔØÔÅ ÚÄÅÓØ ÏÄÎÏ ÏÔÌÉÞÉÅ: ÐÏËÁ ÏÂÁ ÛÅÌÌÁ ÐÒÉÎÁÄÌÅÖÁÔ ÓÉÎÔÁËÓÉÓÕ `tt(${var/#old/new})' É `tt(${var/%old/new})' ÄÌÑ ÆÉËÓÁÃÉÉ ÏÂÒÁÚÃÁ tt(old) × ÎÁÞÁÌÅ ÉÌÉ × ËÏÎÃÅ ÔÅËÔÁ ÐÁÒÁÍÅÔÒÁ ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ, × zsh ×Ù ÎÅ ÍÏÖÅÔÅ ÐÏÓÔÁ×ÉÔØ `tt(#)' ÉÌÉ `tt(%)' ×ÎÕÔÒØ ÐÁÒÁÍÅÔÒÁ: ÄÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ `tt({var/$old/new})', ÇÄÅ tt(old) ÎÁÞÉÎÁÅÔÓÑ Ó `tt(#)' ÔÒÁËÔÕÅÔÓÑ ËÁË ÏÂÙÞÎÙÊ ÓÉÍ×ÏÌ × zsh, × ÏÔÌÉÞÉÅ ÏÔ bash. þÔÏÂÙ ÓÄÅÌÁÔØ ÔÁËÏÅ × zsh, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ (ÉÚ 3.1.7) ÎÏ×ÙÊ ÓÉÎÔÁËÓÉÓ ÄÌÑ ÆÉËÓÉÒÏ×ÁÎÉÑ × ÌÀÂÏÊ ÆÏÒÍÅ, `tt((#s))' ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ÎÁÞÁÌÕ ÓÔÒÏËÉ, É `tt((#e))' ÓÏÏÔ×ÅÔÓÔ×ÕÅÔ ËÏÎÃÕ. üÔÏ ÔÒÅÂÕÅÔ ÚÁÄÁÎÎÏÇÏ ÐÁÒÁÍÅÔÒÁ tt(EXTENDED_GLOB).
sect(îÅ ÄÏÌÖÅÎ ÌÉ zsh ÂÙÔØ ÂÏÌØÛÅ/ÍÅÎØÛÅ ÐÏÈÏÖ ÎÁ ksh/(t)csh?)
ìÀÄÉ ÞÁÓÔÏ ÓÐÒÁÛÉ×ÁÀÔ, ÐÏÞÅÍÕ zsh ÉÍÅÅÔ ×ÓÅ ÜÔÉ `ÎÅÎÕÖÎÙÅ' csh-like ×ÏÚÍÏÖÎÏÓÔÉ, ÉÌÉ ËÒÏÍÅ ÔÏÇÏ, ÐÏÞÅÍÕ zsh ÎÅ ÐÏÎÉÍÁÅÔ ÂÏÌÅÅ ÇÌÕÂÏËÏ ÓÉÎÔÁËÓÉÓ csh. üÔÏ ÄÁÌÅËÏ ÏÔ ÏËÏÎÞÁÔÅÌØÎÏÇÏ ÏÔ×ÅÔÁ É ÄÅÂÁÔÙ ÎÅÓÏÍÎÅÎÎÏ ÂÕÄÕÔ ÐÒÏÄÏÌÖÁÔØÓÑ.
ãÅÌØÀ Paul'Á × ÎÁÐÉÓÁÎÉÉ zsh ÂÙÌÏ ÓÏÚÄÁÎÉÅ ksh-like ÛÅÌÌÁ, ËÏÔÏÒÙÊ ÂÙ ÉÍÅÌ ×ÏÚÍÏÖÎÏÓÔÉ ÓÅÍÅÊÓÔ×Á csh. äÏÌÇÏÅ ×ÒÅÍÑ csh ÂÙÌ ÐÒÅÄÐÏÞÉÔÁÅÍÙÍ ÉÎÔÅÒÁËÔÉ×ÎÙÍ ÛÅÌÌÏÍ, É ÂÙÌÏ ÓÉÌØÎÏÅ ÓÏÐÒÏÔÉ×ÌÅÎÉÅ, ÞÔÏÂÙ ÓÍÅÎÉÔØ csh ÎÁ ÞÔÏ-ÎÉÂÕÄØ, ÎÅ ÐÒÉÎÁÄÌÅÖÁÝÅÅ Ë ÓÅÍÅÊÓÔ×Õ, ÓÌÅÄÏ×ÁÔÅÌØÎÏ ÒÁÓÛÉÒÅÎÎÙÊ ÓÉÎÔÁËÓÉÓ É ÐÁÒÁÍÅÔÒ tt(CSH_JUNKIE). üÔÏÔ ÁÒÇÕÍÅÎÔ ×Ó£ ÅÝ£ × ÓÉÌÅ. ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÁÒÇÕÍÅÎÔÙ ÄÌÑ ÂÌÉÚËÏÊ ÚÁÍÅÎÙ ksh ÄÁÖÅ ÂÏÌÅÅ ×ÅÓÏÍÙÅ: ÎÅÄÏÓÔÁÔËÉ csh ËÁË ÑÚÙËÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÈÏÒÏÛÏ ÉÚ×ÅÓÔÎÙ (×ÚÇÌÑÎÉÔÅ × ÌÀÂÏÊ Usenet FAQ ÁÒÈÉ×, ÎÁÐÒÉÍÅÒ url(http://www.cis.ohio-state.edu/hypertext/faq/usenet/unix-faq/shell/csh-whynot/faq.html)(http://www.cis.ohio-state.edu/hypertext/faq/usenet/unix-faq/shell/csh-whynot/faq.html), ÅÓÌÉ ×Ù ÓÏÍÎÅ×ÁÅÔÅÓØ) É zsh ÍÏÖÅÔ ÚÁÐÕÓËÁÔØ ÍÎÏÖÅÓÔ×Ï ÓÔÁÎÄÁÒÔÎÙÈ ÓÃÅÎÁÒÉÅ×, ÔÁËÉÈ ËÁË /etc/rc.
ëÏÎÅÞÎÏ ÜÔÏ ÄÅÌÁÅÔ zsh ÄÏ×ÏÌØÎÏ ÏÇÒÏÍÎÙÍ Ó ÂÏÌØÛÉÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ, ÜÔÏ ÏÂÒÁÝÅÎÉÅ, × ÏÓÎÏ×ÎÏÍ, Ë ÈÁËÅÒÁÍ. ôÏÌØËÏ ÏÔ×ÅÔ, ×ÏÚÍÏÖÎÏ, ÐÏÌÎÏÓÔØÀ ÕÄÏ×ÌÅÔ×ÏÒÉÔÅÌØÎÙÊ, Ô.Å. ×Ù ÄÏÌÖÎÙ ÉÇÎÏÒÉÒÏ×ÁÔØ ÔÏ, ÞÔÏ ×ÁÍ ÎÅ ÎÕÖÎÏ. ðÒÅÄÓÔÁ×ÌÅÎÉÅ Ï ÚÁÇÒÕÚËÅ × ÍÏÄÕÌÑÈ × ×ÅÒÓÉÉ 3.1 ÄÏÌÖÎÏ ÐÏÍÏÞØ.
sect(ðÏÄÄÅÒÖÉ×ÁÅÔ ÌÉ zsh Unicode/UTF-8?)
`Unicode', ÉÌÉ UCS (Universal Character Set), ÜÔÏ ÓÏ×ÒÅÍÅÎÎÁÑ ÎÁÐÒÁ×ÌÅÎÉÅ ÓÐÅÃÉÁÌÉÚÉÒÏ×ÁÎÎÏÊ ËÏÄÉÒÏ×ËÉ. ïÎÁ ÚÁÍÅÎÑÅÔ ÏÇÒÏÍÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÐÅÃÉÁÌØÎÙÈ ËÏÄÉÒÏ×ÏË ×ÎÅ ASCII. `UTF-8' ÜÔÏ Unicode ËÏÄÉÒÏ×ËÁ, ËÏÔÏÒÁÑ ÏÓÏÂÅÎÎÏ ÅÓÔÅÓÔ×ÅÎÎÁ ÎÁ Unix-like ÓÉÓÔÅÍÁÈ.
÷: ðÏÄÄÅÒÖÉ×ÁÅÔ ÌÉ zsh UTF-8?
ï: ×ÓÔÒÏÅÎÎÁÑ ËÏÍÁÎÄÁ zsh printf ÐÏÄÄÅÒÖÉ×ÁÅÔ "\u" É "\U" ÜËÒÁÎÉÒÏ×ÁÎÉÅ, ËÏÔÏÒÁÑ ×Ù×ÏÄÉÔ ÐÒÏÉÚ×ÏÌØÎÙÅ ÓÉÍ×ÏÌÙ Unicode. ZLE (the Zsh Line Editor) ÎÅ ÉÍÅÅÔ ÐÏÎÑÔÉÑ Ï ËÏÄÉÒÏ×ËÁÈ, É ÐÕÔÁÅÔÓÑ ÐÒÉ ÍÎÏÇÏÏËÔÅÔÎÙÈ ËÏÄÉÒÏ×ËÁÈ.
÷: ðÏÞÅÍÕ Õ zsh ÎÅÔ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ ÐÏÄÄÅÒÖËÉ UTF-8?
ï: ëÏÄ ÅÝ£ ÎÅ ÎÁÐÉÓÁÎ.
÷: þÔÏ ÓÌÏÖÎÏÇÏ × ÒÅÁÌÉÚÁÃÉÉ ÐÏÄÄÅÒÖËÉ UTF-8?
ï: äÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÒÁ×ÉÌØÎÏ ÏÐÅÒÉÒÏ×ÁÔØ Ó ÐÒÏÉÚ×ÏÌØÎÏÊ ËÏÄÉÒÏ×ËÏÊ, ÚÎÁÞÉÔÅÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ ÎÕÖÎÏ ×ÎÅÓÔÉ × ÛÅÌÌ.
÷: ðÏÞÅÍÕ zsh ÎÅ ÍÏÖÅÔ ÐÒÏÓÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ readline?
ï: ZLE ÎÅ ÉÚÏÌÉÒÏ×ÁÎ ÏÔ ÏÓÔÁÌØÎÏÇÏ ÛÅÌÌÁ. éÚÏÌÉÒÏ×ÁÔØ ÅÇÏ ÔÁË, ÞÔÏÂÙ ÍÏÖÎÏ ÂÙÌÏ ÚÁÍÅÎÉÔØ ÎÁ readline ÔÒÅÂÏ×ÁÌÏ ÂÙ ÚÎÁÞÉÍÙÈ ÕÓÉÌÉÊ. ë ÔÏÍÕ ÖÅ, ÉÓÐÏÌØÚÕÑ readline ÐÏÑ×ÉÌÓÑ ÂÙ ÏÂÒÁÔÎÙÊ ÜÆÆÅËÔ ÚÎÁÞÉÍÏÊ ÐÏÔÅÒÉ ×ÏÚÍÏÖÎÏÓÔÅÊ.
÷: ëÁËÉÅ ÉÚÍÅÎÅÎÉÑ ÐÌÁÎÉÒÕÀÔÓÑ?
ï: ÷×ÏÄ ÐÏÄÄÅÒÖËÉ Unicode ÂÕÄÅÔ ÐÏÓÔÅÐÅÎÎÙÊ, ÎÕ Á ÅÓÌÉ ×Ù ÉÎÔÅÒÅÓÕÅÔÅÓØ ×Ï ××ÅÄÅÎÉÉ, ÔÏ ×ÁÍ ÓÌÅÄÕÅÔ ÐÒÉÓÏÅÄÉÎÉÔØÓÑ Ë ÌÉÓÔÕ ÒÁÓÓÙÌÏË ÒÁÚÒÁÂÏÔÞÉËÏ× (zsh-workers mailing list). ëÁË ÐÅÒ×ÙÊ ÛÁÇ, ZLE ÂÕÄÅÔ ÐÅÒÅÐÉÓÁÎ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÛÉÒÏËÉÈ ÓÉÍ×ÏÌÏ× (wide characters). óÉÍ×ÏÌÙ, ÏÓÎÏ×ÁÎÎÙÅ ÎÁ ×ÉÄÖÅÔÁÈ(widgets), ÓÍÏÇÕÔ ÔÏÇÄÁ ÏÐÅÒÉÒÏ×ÁÔØ Ó ÃÅÌÙÍ ÛÉÒÏËÉÍ ÓÉÍ×ÏÌÏÍ, ×ÍÅÓÔÏ ÏÄÎÏÇÏ ÂÁÊÔÁ, É ÎÕÖÎÁÑ ÛÉÒÉÎÁ ÓÉÍ×ÏÌÏ× ÍÏÖÅÔ ÂÙÔØ ÒÁÓÓÞÉÔÁÎÁ Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ wcswidth().
chapter(ëÁË ÚÁÓÔÁ×ÉÔØ ÒÁÂÏÔÁÔØ ÒÁÚÌÉÞÎÙÅ ×ÅÝÉ)
sect(ðÏÞÅÍÕ ÐÅÒÅÍÅÎÎÁÑ mytt($var), ÇÄÅ mytt(var="foo bar") ÎÅ ÄÅÌÁÅÔ ÔÏÇÏ ÞÅÇÏ Ñ ÏÖÉÄÁÀ?)
label(31)
÷ ÂÏÌØÛÅÎÓÔ×Å Bourne-shell ÐÒÏÉÚ×ÏÄÎÙÈ, ÐÅÒÅÍÅÎÎÙÅ ÉÚ ÎÅÓËÏÌØËÉÈ ÓÌÏ×, ÔÁËÉÅ ËÁË
verb(
var="foo bar"
)
ÒÁÚÄÅÌÑÀÔÓÑ ÎÁ ÓÌÏ×Á, ËÏÇÄÁ ÐÒÏÐÕÓËÁÀÔÓÑ ÞÅÒÅÚ ËÏÍÁÎÄÕ ÉÌÉ ÉÓÐÏÌØÚÕÀÔÓÑ × mytt(for foo in $var) ÃÉËÌÅ. ðÏ ÕÍÏÌÞÁÎÉÀ, zsh ÎÅ ×ÅÄ£Ô ÓÅÂÑ ÔÁË, ÞÔÏÂÙ ÐÅÒÅÍÅÎÎÁÑ ÏÓÔÁÌÁÓØ ÃÅÌÏÊ. (üÔÏ ÎÅ ÏÛÉÂËÁ! óÍÏÔÒÉÔÅ ÄÁÌØÛÅ.) ðÁÒÁÍÅÔÒ tt(SH_WORD_SPLIT) ÓÕÝÅÓÔ×ÕÅÔ, ÞÔÏÂÙ ÐÒÅÄÏÓÔÁ×ÉÔØ ÓÏ×ÍÅÓÔÉÍÏÓÔØ.
îÁÐÒÉÍÅÒ, ÏÐÒÅÄÅÌÅÎÉÅ ÆÕÎËÃÉÉ args ÐÏËÁÚÙ×ÁÅÔ ËÏÌÉÞÅÓÔ×Ï Å£ ÁÒÇÕÍÅÎÔÏ×:
verb(
args() { echo $#; }
)
É Ó ÎÁÛÉÍ ÏÐÒÅÄÅÌÅÎÉÅÍ `var',
verb(
args $var
)
ÎÁ ×ÙÈÏÄÅ ÒÅÚÕÌØÔÁÔ ÂÕÄÅÔ `1'. ðÏÓÌÅ
verb(
setopt shwordsplit
)
ÔÁËÁÑ ÖÅ ÆÕÎËÃÉÑ ÄÁÓÔ ÒÅÚÕÌØÔÁÔ `2', ËÁË Ó sh É ksh.
åÓÌÉ ×ÁÍ ÎÅ ÎÕÖÎÁ ÐÏÌÎÁÑ sh/ksh ÓÏ×ÍÅÓÔÉÍÏÓÔØ, ×ÁÍ ÓÌÅÄÕÅÔ ÓÐÒÏÓÉÔØ ÓÅÂÑ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ ×Ù ÈÏÔÉÔÅ ÔÁËÏÇÏ ÐÏ×ÅÄÅÎÉÑ, Ô.Ë. ÒÅÚÕÌØÔÁÔ ÍÏÖÅÔ ÄÁÔØ ÎÅÏÖÉÄÁÎÎÙÊ ÜÆÆÅËÔ ÄÌÑ ÐÅÒÅÍÅÎÎÙÈ, ÂÅÚÏÂÉÄÎÏ ÚÁÐÏÌÎÅÎÎÙÈ ÐÒÏÂÅÌÁÍÉ. üÔÏ ÍÏÖÅÔ ÂÙÔØ ÕÖÁÓÎÏÊ ÐÒÏÂÌÅÍÏÊ Ó ËÁ×ÙÞËÁÍÉ, ËÏÇÄÁ ÓÃÅÎÁÒÉÊ ×ÙÚÙ×ÁÀÔ ÉÚ ÄÒÕÇÉÈ ÛÅÌÌÏ×. ïÂÙÞÎÙÊ ÓÐÏÓÏ ÄÏÂÉÔØÓÑ ÒÁÚÄÅÌÅÎÉÑ ÎÁ ÓÌÏ×Á × zsh - ÜÔÏ ÞÅÒÅÚ ÍÁÓÓÉ×Ù. îÁÐÒÉÍÅÒ,
verb(
set -A array one two three twenty
)
(ÉÌÉ
verb(
array=(one two three twenty)
)
ÅÓÌÉ ×Ù ÐÒÅÄÐÏÞÉÔÁÅÔÅ), ÓÌÅÄÕÀÝÅÅ
verb(
args $array
)
ÄÁÓÔ ÒÅÚÕÌØÔÁÔ `4', ÎÅ ÏÂÒÁÝÁÑ ×ÎÉÍÁÎÉÑ ÎÁ ÐÁÒÁÍÅÔÒ tt(SH_WORD_SPLIT). íÁÓÓÉ×Ù ÔÁËÖÅ ÂÏÌÅÅ ÕÎÉ×ÅÒÓÁÌØÎÙ, ÞÅÍ ÓÔÒÏËÉ. ÷ÏÚÍÏÖÎÏ, ÅÓÌÉ ÂÙ ÜÔÏÔ ÍÅÈÁÎÉÚÍ ÂÙÌ ÂÙ ×ÓÅÇÄÁ ÄÏÓÔÕÐÅÎ, ÎÉËÏÇÄÁ ÎÅ ÂÙÌÏ ÂÙ Á×ÔÏÍÁÔÉÞÅÓËÏÇÏ ÒÁÚÄÅÌÅÎÉÑ ÎÁ ÓÌÏ×Á × ÓËÁÌÑÒÁÈ, ËÏÔÏÒÙÅ Ñ×ÌÑÀÔÓÑ ÒÁÚÎÏ×ÉÄÎÏÓÔØÀ ÎÅËÏÎÔÒÏÌÉÒÕÅÍÙÈ ÓÌÁÂÙÈ ÍÁÓÓÉ×Ï×.
úÁÍÅÔØÔÅ, ÞÔÏ ÜÔÏ ÐÒÏÉÓÈÏÄÉÔ, ÎÅ×ÚÉÒÁÑ ÎÁ ÚÎÁÞÅÎÉÅ ÒÁÚÄÅÌÉÔÅÌÑ ×ÎÕÔÒÅÎÎÉÈ ÐÏÌÅÊ, tt($IFS); ÄÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, Ó mytt(IFS=:; foo=a:b; args $foo) ×Ù ÐÏÌÕÞÉÔÅ ÏÔ×ÅÔ 1.
äÒÕÇÉÍ ÓÐÏÓÏÂÏÍ ÒÁÚÄÅÌÉÔØ ÎÁ ÓÌÏ×Á - ×ËÌÀÞÉÔØ ÚÄÒÁ×ÏÍÙÓÌÑÝÅÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ `eval':
verb(
sentence="Longtemps, je me suis couch\\'e de bonne heure."
eval "words=($sentence)"
)
ÐÏÓÌÅ ËÏÔÏÒÏÇÏ $words - ÜÔÏ ÍÁÓÓÉ× ÓÏ ÓÌÏ×ÁÍÉ ÉÚ $sentence (ÚÁÍÅÔØÔÅ, ÞÔÏ ÓÐÅÃÉÁÌØÎÙÅ ÓÉÍ×ÏÌÙ ÄÌÑ ÛÅÌÌÁ, ÔÁËÉÅ ËÁË mytt(') × ÜÔÏÍ ÐÒÉÍÅÒÅ, ÄÏÌÖÎÙ ÕÖÅ ÂÙÔØ × ËÁ×ÙÞËÁÈ), ÉÌÉ, ÍÅÎØÛÅ ÓÔÁÎÄÁÒÔÁ, ÎÏ ÚÁÔÏ ÂÏÌÅÅ ÎÁÄ£ÖÎÏ, ×ËÌÀÞÉÔØ tt(SH_WORD_SPLIT) ÔÏÌØËÏ ÄÌÑ ÏÄÎÏÊ ÐÅÒÅÍÅÎÎÏÊ:
verb(
args ${=sentence}
)
×ÓÅÇÄÁ ×ÅÒÎ£Ô 8 ÎÁÄ ÏÐÒÅÄÅÌÅÎÉÅÍ mytt(args). (äÌÑ ÓÔÁÒÙÈ ×ÅÒÓÉÊ zsh, tt(${=foo}) - ÐÅÒÅËÌÀÞÁÅÔ tt(SH_WORD_SPLIT); ÔÅÐÅÒØ ÏÎ ÐÒÏÓÔÏ ×ËÌÀÞÁÅÔÓÑ.)
úÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ ÍÅÔÏÄ tt("$@") ÒÁÚÄÅÌÅÎÉÑ ÎÁ ÓÌÏ×Á ×ÓÅÇÄÁ ÄÏÓÔÕÐÅÎ × zsh ÆÕÎËÃÉÑÈ É ÓÃÅÎÁÒÉÑÈ (ÈÏÔÑ ÔÏÞÎÅÅ ÜÔÏ ÒÁÚÄÅÌÅÎÉÅ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÍÁÓÓÉ×Á - ÎÅ ÒÁÚÄÅÌÅÎÉÅ ÐÏ ÓÌÏ×ÁÍ). üÔÏ ÂÏÌÅÅ ÐÏÒÔÉÒÏ×ÁÎÏ, ÞÅÍ tt($*), É ÂÕÄÅÔ ÒÁÂÏÔÁÔØ, ÎÅ×ÚÉÒÁÑ ÎÁ ÐÁÒÁÍÅÔÒ tt(SH_WORD_SPLIT); ÄÒÕÇÏÅ ÒÁÚÌÉÞÉÅ - tt($*) ÕÄÁÌÑÅÔ ÐÕÓÔÙÅ ÁÒÇÕÍÅÎÔÙ ÉÚ ÍÁÓÓÉ×Á. ÷Ù ÍÏÖÅÔÅ ÜÔÏ ÉÓÐÒÁ×ÉÔØ ÐÏÌÏ×ÉÎÕ ÜÔÏÇÏ, ÉÓÐÏÌØÚÕÑ tt(${==*}), ËÏÔÏÒÁÑ ×ÙËÌÀÞÉÔ tt(SH_WORD_SPLIT) ÄÌÑ ÐÒÏÄÏÌÖÅÎÉÑ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ.
tt(SH_WORD_SPLIT) ÚÁÄÁ£ÔÓÑ, ËÏÇÄÁ zsh ×ÙÚÙ×ÁÅÔÓÑ Ó ÉÍÅÎÁÍÉ `ksh' ÉÌÉ `sh', ÉÌÉ (ÞÔÏ ÐÏÌÎÏÓÔØÀ ÜË×É×ÁÌÅÎÔÎÏ) ËÏÇÄÁ ÚÁÄÁÎÙ mytt(emulate ksh) ÉÌÉ mytt(emulate sh).
åÓÔØ ÏÄÉÎ ÜÆÆÅËÔ ÒÁÚÄÅÌÅÎÉÑ ÎÁ ÓÌÏ×Á, ËÏÔÏÒÙÊ ÒÁÚÌÉÞÁÅÔÓÑ × ksh É zsh. ÷ ksh Õ ×ÓÔÒÏÅÎÎÙÈ ËÏÍÁÎÄ (ÎÁÐÒÉÍÅÒ ÔÁËÉÈ ËÁË tt(typeset) É tt(export)), ËÏÔÏÒÙÅ ÏÂßÑ×ÌÑÀÔ ÐÁÒÁÍÅÔÒÙ, ×ËÌÀÞÅÎÉÅ ÒÁÚÄÅÌÅÎÉÑ ÎÁ ÓÌÏ×Á ÎÅ ÂÕÄÅÔ ÄÅÊÓÔ×Ï×ÁÔØ ÐÏÓÌÅ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÁÒÇÕÍÅÎÔÁ:
verb(
typeset param=`echo foo bar`
)
× ksh ÂÕÄÅÔ ÓÏÚÄÁÎ ÐÁÒÁÍÅÔÒ ÓÏ ÚÎÁÞÅÎÉÅÍ mytt(foo bar), Á × zsh ÂÕÄÅÔ ÓÏÚÄÁÎ ÐÁÒÁÍÅÔÒ tt(param) ÓÏ ÚÎÁÞÅÎÉÅÍ tt(foo) É ÐÁÒÁÍÅÔÒÏÍ tt(bar), ÞØ£ ÚÎÁÞÅÎÉÅ ÐÕÓÔÏÅ. ðÒÏÔÉ×ÏÐÏÌÏÖÎÏÓÔØ ÜÔÏÇÏ Ó ÎÏÒÍÁÌØÎÙÍ ÐÒÉÓ×ÁÉ×ÁÎÉÅÍ (ÎÉËÁËÏÇÏ tt(typeset) ÉÌÉ ÄÒÕÇÏÊ ËÏÍÁÎÄÙ ×ÐÅÒÅÄÉ), ËÏÔÏÒÏÅ ÎÉËÏÇÄÁ ÎÅ ÒÁÚÄÅÌÉÔ ÎÁ ÓÌÏ×Á, ÐÏËÁ ÚÁÄÁÎ ÐÁÒÁÍÅÔÒ tt(GLOB_ASSIGN). ó zsh ×ÅÒÓÉÉ 4.0.2 ÐÁÒÁÍÅÔÒ tt(KSH_TYPESET), ÚÁÄÁÀÝÉÊÓÑ Á×ÔÏÍÁÔÉÞÅÓËÉ × ÒÅÖÉÍÅ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ, ÉÓÐÒÁ×ÌÑÅÔ ÜÔÕ ÐÒÏÂÌÅÍÕ. úÁÍÅÔØÔÅ, ÞÔÏ × bash ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ×ÓÔÒÅÞÁÅÔÓÑ ÓÏ ×ÓÅÍÉ ÁÒÇÕÍÅÎÔÁÍÉ, ËÏÔÏÒÙÅ ×ÙÇÌÑÄÑÔ ËÁË ÐÒÉÓ×ÁÉ×ÁÎÉÑ Ó ËÁËÉÍ ÂÙ ÔÏ ÎÉ ÂÙÌÏ ÉÍÅÎÅÍ ËÏÍÁÎÄÙ; × zsh ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ ÍÏÖÎÏ ÐÏÌÕÞÉÔØ, ÚÁÄÁ× ÐÁÒÁÍÅÔÒ tt(MAGIC_EQUAL_SUBST).
sect(÷ ËÁËÏÊ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ Ñ ÄÏÌÖÅÎ ÐÒÏÐÉÓÁÔØ...?)
óÕÝÅÓÔ×ÕÅÔ 4 ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÆÁÊÌÁ, ËÏÔÏÒÙÅ ÉÎÉÃÉÁÌÉÚÉÒÕÀÔÓÑ ÐÒÉ ÚÁÐÕÓËÅ × ÒÁÚÌÉÞÎÙÈ ÏÂÓÔÏÑÔÅÌØÓÔ×ÁÈ: tt(.zshenv), tt(.zprofile), tt(.zshrc) É tt(.zlogin). ïÎÉ ÏÂÙÞÎÏ ÎÁÈÏÄÑÔÓÑ × ×ÁÛÅÊ ÄÏÍÁÛÎÅÊ ÄÉÒÅËÔÏÒÉÉ, ÎÏ ÐÅÒÅÍÅÎÎÁÑ tt($ZDOTDIR) ÍÏÖÅÔ ÂÙÔØ ÚÁÄÁÎÁ, ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ÜÔÏ. úÄÅÓØ ÐÒÉ×ÅÄÅÎÙ ÎÅÓËÏÌØËÏ ËÒÁÔËÉÈ ÓÏ×ÅÔÏ×, ËÁË ÉÈ ÉÓÐÏÌØÚÏ×ÁÔØ. óÕÝÅÓÔ×ÕÀÔ ÔÁËÖÅ ÆÁÊÌÙ, ËÏÔÏÒÙÅ ÓÉÓÔÅÍÎÙÊ ÁÄÍÉÎÉÓÔÒÁÔÏÒ ÍÏÖÅÔ ÚÁÄÁÔØ ÄÌÑ ×ÓÅÈ ÛÅÌÌÏ×; ×Ù ÍÏÖÅÔÅ ÉÚÂÅÖÁÔØ ÚÁÐÕÓËÁ ×ÓÅÈ, ËÒÏÍÅ tt(/etc/zshenv), ÚÁÐÕÓÔÉ× zsh Ó ÐÁÒÁÍÅÔÒÏÍ tt(-f) --- ÐÏ ÜÔÏÊ ÐÒÉÞÉÎÅ ×ÁÖÎÏ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÏÒÏ× ÕÄÏÓÔÏ×ÅÒÉÔØÓÑ, ÞÔÏ tt(/etc/zshenv) ÎÅ ÓÏÄÅÒÖÉÔ ÎÉÞÅÇÏ ÌÉÛÎÅÇÏ.
ðÏÒÑÄÏË, × ËÏÔÏÒÏÍ ÜÔÉ 4 ÆÁÊÌÁ ÉÝÕÔÓÑ (ÎÉ ÏÄÉÎ ÉÈ ÎÉÈ myem(ÎÅ ÏÂÑÚÁÎ) ÓÕÝÅÓÔ×Ï×ÁÔØ) ÔÏÌØËÏ ÞÔÏ ÐÒÉ×ÅÄ£Î. ôÅÍ ÎÅ ÍÅÎÅÅ, tt(.zprofile) É tt(.zlogin) ÚÁÐÕÓËÁÀÔÓÑ ÔÏÌØËÏ ËÏÇÄÁ zsh - ÏÂÏÌÏÞËÁ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ (login shell) --- ËÏÇÄÁ ×Ù ÐÅÒ×ÙÊ ÒÁÚ ÚÁÛÌÉ × ÓÉÓÔÅÍÕ, ËÏÎÅÞÎÏ, É ËÏÇÄÁ ×Ù ÚÁÐÕÓËÁÅÔÅ zsh Ó ÐÁÒÁÍÅÔÒÏÍ tt(-l). ÷ÓÅ login shells ÉÎÔÅÒÁËÔÉ×ÎÙÅ. ðÏÒÑÄÏË ÒÁÚÌÉÞÁÅÔÓÑ ÔÏÌØËÏ ÍÅÖÄÕ ÜÔÉÍ; ×ÁÍ ÓÌÅÄÕÅÔ ÒÅÛÉÔØ, ËÏÇÄÁ ×ÁÍ ÎÕÖÎÏ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÙ: ÄÏ ÉÌÉ ÐÏÓÌÅ tt(.zshrc). üÔÉ ÆÁÊÌÙ - ÈÏÒÏÛÅÅ ÍÅÓÔÏ, ÞÔÏÂÙ ÚÁÄÁÔØ ÐÅÒÅÍÅÎÎÙÅ ÏËÒÕÖÅÎÉÑ (Ô.Å. ËÏÍÁÎÄÙ mytt(export)), Ô.Ë. ÏÎÉ ÐÅÒÅÄÁÀÔÓÑ ×ÓÅÍ ÛÅÌÌÁÍ É ÎÅÔ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÕÓÔÁÎÁ×ÌÉ×ÁÔØ ÉÈ ÚÁÎÏ×Ï, Á ÔÁËÖÅ ÐÒÏ×ÅÒÑÔØ, ÐÒÁ×ÉÌØÎÏ ÌÉ ÎÁÓÔÒÏÅÎ ÔÅÒÍÉÎÁÌ (ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÓÌÕÞÁÅ×, ËÏÇÄÁ ×Ù ÈÏÔÉÔÅ ÉÚÍÅÎÉÔØ Ó×ÏÊÓÔ×Á ÜÍÕÌÑÔÏÒÁ ÔÅÒÍÉÎÁÌÁ, ÎÁÐÒÉÍÅÒ tt(xterm), ÔÏÇÄÁ ×ÁÍ ÎÕÖÎÏ ÉÚÍÅÎÑÔØ ÆÁÊÌ tt(.zshrc), Ô.Ë. ÏÂÙÞÎÏ ×Ù ÎÅ ÐÏÌÕÞÁÅÔÅ ÏÂÏÌÏÞËÕ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ).
ôÏÌØËÏ ÏÄÉÎ ÆÁÊÌ ×Ù ÍÏÖÅÔÅ ÚÁÍÅÎÉÔØ, ËÏÔÏÒÙÊ ÚÁÐÕÓËÁÅÔÓÑ ËÁÖÄÙÊ ÒÁÚ ÐÒÉ ÓÔÁÒÔÅ zsh (ÔÏÌØËÏ ÅÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ ÐÁÒÁÍÅÔÒ tt(-f)) ÜÔÏ tt(.zshenv), ÜÔÏ ÈÏÒÏÛÅÅ ÍÅÓÔÏ ÄÌÑ ËÏÍÁÎÄ, ÄÁÖÅ ÅÓÌÉ ÛÅÌÌ ÎÅÉÎÔÅÒÁËÔÉ×ÎÙÊ: ÐÁÒÁÍÅÔÒÙ ÄÌÑ ÉÚÍÅÎÅÎÉÑ ÓÉÎÔÁËÓÉÓÁ, ÔÁËÉÅ ËÁË tt(EXTENDED_GLOB), ÌÀÂÙÅ ÉÚÍÅÎÅÎÉÑ, ËÁÓÁÀÝÉÅÓÑ mytt(limit), ÌÀÂÙÅ ÐÅÒÅÍÅÎÎÙÅ, ËÁËÉÅ ÔÏÌØËÏ ÈÏÔÉÔÅ, ÞÔÏÂÙ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÏÎÉ ÚÁÄÁÎÙ, ÎÁÐÒÉÍÅÒ, tt($fpath) ÄÌÑ ÐÏÉÓËÁ ÆÕÎËÃÉÊ. ÷Ù ÎÅÓÏÍÎÅÎÎÏ ÎÅ ÈÏÔÉÔÅ, ÞÔÏÂÙ tt(.zshenv) ÞÔÏ-ÎÉÂÕÄØ ×Ù×ÏÄÉÌ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ. îÅËÏÔÏÒÙÅ ÌÀÄÉ ÐÒÅÄÐÏÞÉÔÁÀÔ ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ tt(.zshenv) ÄÌÑ ÚÁÄÁÎÉÑ ÐÁÒÁÍÅÔÒÏ×, ËÁË ×ÌÉÑÔÅÌØÎÙÊ ÓÃÅÎÁÒÉÊ; ÎÏ ÞÔÏÂÙ ÓÄÅÌÁÔØ zsh ÓÃÅÎÁÒÉÉ ÐÏÒÔÉÒÕÅÍÙÍÉ ÏÂÙÞÎÏ ÔÒÅÂÕÅÔÓÑ ÎÅÍÎÏÇÏ ÕÓÉÌÉÊ.
é ÎÁËÏÎÅÃ, tt(.zshrc) ÚÁÐÕÓËÁÅÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÉÎÔÅÒÁËÔÉ×ÎÏÇÏ ÛÅÌÌÁ; ÏÎ ×ËÌÀÞÁÅÔ × ÓÅÂÑ É ÏÂÏÌÏÞËÉ ×ÈÏÄÁ × ÓÉÓÔÅÍÕ, ÎÏ ÔÁËÖÅ × ÌÀÂÏÅ ×ÒÅÍÑ, ËÏÇÄÁ ×Ù ÚÁÐÕÓËÁÅÔÅ ÛÅÌÌ, ÐÒÏÓÔÏ ÎÁÂÒÁ× mytt(zsh) ÉÌÉ ÏÔËÒÙ× ÎÏ×ÏÅ ÏËÎÏ ÜÍÕÌÑÃÉÉ ÔÅÒÍÉÎÁÌÁ. ÷ ÜÔÏÍ ÆÁÊÌÅ ÍÅÓÔÏ ÄÌÑ ÉÚÍÅÎÅÎÉÑ ÐÏ×ÅÄÅÎÉÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÞÅÒÅÚ ÐÁÒÁÍÅÔÒÙ ÉÌÉ mytt(bindkey), ËÏÎÔÒÏÌÉÒÏ×ÁÎÉÑ, ËÁË ÓÏÈÒÁÎÑÅÔÓÑ ×ÁÛÁ ÉÓÔÏÒÉÑ, ÚÁÄÁÎÉÑ ÐÓÅ×ÄÏÎÉÍÏ×, ÎÅÓÍÏÔÒÑ ÎÁ ÔÏ, ÞÔÏ ×Ù ÉÈ ÂÕÄÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ × ÓÃÅÎÁÒÉÑÈ, É ÄÌÑ ÌÀÂÏÇÏ ÄÒÕÇÏÇÏ ÍÕÓÏÒÁ, ËÏÔÏÒÙÊ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÜËÓÐÏÒÔÉÒÏ×ÁÎ, ÎÏ ×Ù ÔÏÌØËÏ ÉÓÐÏÌØÚÕÅÔÅ ÐÒÑÍÏ ÄÌÑ ÉÎÔÅÒÁËÔÉ×ÎÏÇÏ ÛÅÌÌÁ. ÷Ù ×ÅÒÏÑÔÎÏ ÎÅ ÈÏÔÉÔÅ, ÞÔÏÂÙ tt(.zshrc) ÞÔÏ-ÌÉÂÏ ×Ù×ÏÄÉÌ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ, ÅÓÔØ ÓÌÕÞÁÊ, ËÏÇÄÁ ÜÔÏ ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ ÐÒÏÂÌÅÍÏÊ, ÔÁËÏÊ ËÁË ÉÓÐÏÌØÚÏ×ÁÎÉÅ mytt(rsh) Ó ÄÒÕÇÏÊ ÍÁÛÉÎÙ ÐÏ ÓÅÔÉ. ðÏ ÐÏ×ÏÄÕ ÓÏÈÒÁÎÅÎÉÑ ÉÓÔÏÒÉÉ ÏÂÒÁÝÁÔØÓÑ Ë ×ÏÐÒÏÓÕ link(3.21)(321).
sect(÷ Þ£Í ÒÁÚÌÉÞÉÑ ÍÅÖÄÕ `export' É ÐÁÒÁÍÅÔÒÏÍ tt(ALL_EXPORT) ?)
ïÂÙÞÎÏ, ÞÔÏÂÙ ÜËÓÐÏÒÔÉÒÏ×ÁÔØ ÐÅÒÅÍÅÎÎÕÀ × ÏËÒÕÖÅÎÉÅ ×Ù ÉÓÐÏÌØÚÕÅÔÅ mytt(export var). ëÏÍÁÎÄÁ mytt(setopt allexport) ÜËÓÐÏÒÔÉÒÕÅÔ × ÏËÒÕÖÅÎÉÅ ×ÓÅ ÐÅÒÅÍÅÎÎÙÅ, ËÏÔÏÒÙÅ ×ÐÏÓÌÅÄÓÔ×ÉÉ ÂÕÄÕÔ ÚÁÄÁÎÙ (ÎÅ ×ÓÅ, Á ËÏÔÏÒÙÅ ÓÕÝÅÓÔ×ÕÀÔ ÎÁ ÄÁÎÎÙÊ ÍÏÍÅÎÔ).
üÔÏ ÍÏÖÅÔ ËÁÚÁÔØÓÑ ÐÏÌÅÚÎÏÊ ÓÔÅÎÏÇÒÁÆÉÅÊ, ÎÏ ÎÁ ÐÒÁËÔÉËÅ ÍÏÖÅÔ ÉÍÅÔØ É ÂÅÓÐÏÌÅÚÎÙÅ ÜÆÆÅËÔÙ:
enumerate(
myeit() ó ÔÅÈ ÐÏÒ, ËÁË ËÁÖÄÁÑ ÐÅÒÅÍÅÎÎÁÑ ÜËÓÐÏÒÔÉÒÕÅÔÓÑ × ÏËÒÕÖÅÎÉÅ, ÔÁË ÖÅ ËÁË É ÚÁÐÏÍÎÅÎÎÁÑ ÛÅÌÌÏÍ, ÐÁÍÑÔØ, ËÏÔÏÒÁÑ ÅÊ ÔÒÅÂÕÅÔÓÑ, ÂÕÄÅÔ ×ÙÄÅÌÅÎÁ Ä×ÁÖÄÙ. üÔÏ ÔÁË ÖÅ ÂÏÌØÛÅ ËÁË É ÍÅÄÌÅÎÎÅÅ.
myeit() äÅÊÓÔ×ÉÔÅÌØÎÏ ËÁÖÄÁÑ ÐÅÒÅÍÅÎÎÁÑ ÂÕÄÅÔ ÜËÓÐÏÒÔÉÒÏ×ÁÎÁ, ÄÁÖÅ ÐÅÒÅÍÅÎÎÁÑ × ÃÉËÌÅ mytt(for). üÔÏ ×ÏÚÍÏÖÎÏ ÌÉÛÎÅÅ.
myeit() ðÒÏÉÚ×ÏÌØÎÁÑ ÐÅÒÅÍÅÎÎÁÑ, ÓÏÚÄÁÎÎÁÑ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ÍÏÖÅÔ ÉÍÅÔØ ÓÐÅÃÉÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ ÄÌÑ ËÏÍÁÎÄÙ. ô.Ë ×ÓÅ ÐÅÒÅÍÅÎÎÙÅ ×ÉÄÎÙ ÄÌÑ ËÏÍÁÎÄÙ, ÔÏ ÐÒÏÔÉ× ÜÔÏÇÏ ÎÉËÁËÏÊ ÚÁÝÉÔÙ ÎÅÔ.
)
ðÏ ÜÔÉÍ ÐÒÉÞÉÎÁÍ ÏÂÙÞÎÏ ÌÕÞÛÅ ×ÓÅÇÏ ÉÚÂÅÇÁÔØ tt(ALL_EXPORT), ÅÓÌÉ ÔÏÌØËÏ ÎÅ ÓÐÅÃÉÆÉÞÅÓËÏÅ ÅÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ. ïÄÎÏ ÂÅÚÏÐÁÓÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ - ÜÔÏ ÚÁÄÁÔØ ÅÇÏ ÄÏ ÓÏÚÄÁÎÉÑ ÓÐÉÓËÁ ÐÅÒÅÍÅÎÎÙÈ × ÉÎÉÃÉÁÌÉÚÁÃÉÏÎÎÏÍ ÆÁÊÌÅ, É ÕÄÁÌÉÔØ ÅÇÏ ÓÒÁÚÕ ÐÏÓÌÅ ÜÔÏÇÏ. ôÏÌØËÏ ÜÔÉ ÐÅÒÅÍÅÎÎÙÅ ÂÕÄÕÔ Á×ÔÏÍÁÔÉÞÅÓËÉ ÜËÓÐÏÒÔÉÒÏ×ÁÎÙ.
sect(ëÁË ÍÎÅ ×ÙËÌÀÞÉÔØ ËÏÒÒÅËÃÉÀ ÐÒÁ×ÏÐÉÓÁÎÉÑ/ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÀ ÉͣΠÄÌÑ ÏÄÎÏÊ ËÏÍÁÎÄÙ?)
÷ ÐÅÒ×ÏÍ ÓÌÕÞÁÅ, ×Ù ×ÅÒÏÑÔÎÏ ÚÁÐÉÛÉÔÅ mytt(setopt correctall) × ÉÎÉÃÉÁÌÉÚÁÃÉÏÎÎÙÊ ÆÁÊÌ, ÔÏÇÄÁ zsh ÂÕÄÅÔ ÐÒÏ×ÅÒÑÔØ ÐÒÁ×ÏÐÉÓÁÎÉÅ ËÁÖÄÏÇÏ ÓÌÏ×Á × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ. ÷Ù ×ÏÚÍÏÖÎÏ ÎÅ ÈÏÔÉÔÅ ÔÁËÏÇÏ ÐÏ×ÅÄÅÎÉÑ ÄÌÑ ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ÏÐÅÒÉÒÕÀÔ ÓÏÚÄÁÎÉÅÍ ÆÁÊÌÏ×.
äÌÑ ÜÔÏÇÏ ÎÕÖÎÏ ÄÌÑ ÎÁÒÕÛÅÎÎÏÊ ËÏÍÁÎÄÙ ÓÄÅÌÁÔØ ÐÓÅ×ÄÏÎÉÍ ÓÏ ÓÌÏ×ÏÍ mytt(nocorrect) ÐÅÒÅÄ ÎÅÊ, Ô.Å.
verb(
alias mkdir='nocorrect mkdir'
)
äÌÑ ×ÙËÌÀÞÅÎÉÑ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ, ÒÁÃÉÏÎÁÌØÎÏ ÓÄÅÌÁÔØ ÉÄÅÎÔÉÞÎÏ:
verb(
alias mkdir='noglob mkdir'
)
íÏÖÎÏ ÓÏ×ÍÅÓÔÉÔØ tt(nocorrect) É tt(noglob), ÅÓÌÉ ÈÏÔÉÔÅ, ÎÏ tt(nocorrect) ÄÏÌÖÎÏ ÓÔÏÑÔØ ÐÅÒ×ÙÍ, Ô.Ë. ÏÎÏ ÎÕÖÎÏ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, × ÔÏ ×ÒÅÍÑ ËÁË tt(noglob) ÒÁÓÓÍÁÔÒÉ×ÁÅÔÓÑ ÔÏÌØËÏ ÎÁ ×ÙÐÏÌÎÅÎÉÉ ËÏÍÁÎÄÙ.
úÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ ÛÅÌÌ ÆÕÎËÃÉÉ ÎÅ ÂÕÄÕÔ ÒÁÂÏÔÁÔØ: ÄÉÒÅËÔÉ×Ù ÄÏÌÖÎÙ ÂÙÔØ ÒÁÓÛÉÒÅÎÙ ÐÒÅÖÄÅ, ÞÅÍ ÁÎÁÌÉÚÉÒÕÅÔÓÑ ÏÓÔÁÌØÎÁÑ ÞÁÓÔØ ÓÔÒÏËÉ.
sect(ëÁË ÍÎÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÍÅÔÁ ËÌÁ×ÉÛÁ ÒÁÂÏÔÁÌÁ ÎÁ ÍÏ£Í xterm?)
label(35)
ëÁË ÇÏ×ÏÒÉÔÓÑ × ÒÕËÏ×ÏÄÓÔ×Å, zsh ÎÕÖÎÏ ÓÏÏÂÝÉÔØ Ï ÍÅÔÁ ËÌÁ×ÉÛÅ, ÉÓÐÏÌØÚÕÑ mytt(bindkey -me) ÉÌÉ mytt(bindkey -mv) × ×ÁÛÅÍ .zshrc ÉÌÉ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ. ÷ÁÍ, ×ÏÚÍÏÖÎÏ ÔÁËÖÅ ÎÕÖÎÏ ÓËÁÚÁÔØ ÄÒÁÊ×ÅÒÕ ÔÅÒÍÉÎÁÌÁ, ÞÔÏÂÙ ÏÎ ÐÏÚ×ÏÌÉÌ `meta' ÂÉÔ ÓÉÍ×ÏÌÁ ÞÅÒÅÚ: mytt(stty pass8). ðÒÉÍÅÒ ÉÚ .zshrc:
verb(
[[ $TERM = "xterm" ]] && stty pass8 && bindkey -me
)
ÉÌÉ ÎÁ SYSVR4-ish ÓÉÓÔÅÍÁÈ ÂÅÚ pass8,
verb(
[[ $TERM = "xterm" ]] && stty -parenb -istrip cs8 && bindkey -me
)
(×ÙËÌÀÞÅÎÉÅ ËÏÎÔÒÏÌÑ ÞÅÔÎÏÓÔÉ ÎÅ ÌÉÛÉÔ ×ÙÓÛÅÇÏ ÂÉÔÁ, ÉÓÐÏÌØÚÕÊÔÅ ×ÏÓØÍÉÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ).
õÂÅÄÉÔÅÓØ, ÞÔÏ ÜÔÏ ÎÁÐÉÓÁÎÏ myem(äï) ÌÀÂÏÇÏ ÏÐÒÅÄÅÌÅÎÉÑ bindkey × ×ÁÛÅÍ .zshrc, ËÏÔÏÒÙÊ ÐÅÒÅÏÐÒÅÄÅÌÑÅÔ ËÌÁ×ÉÛÉ, ÎÏÒÍÁÌØÎÏ ÏÐÒÅÄÅÌÅÎÎÙÅ × ÒÁÓËÌÁÄËÅ emacs/vi. ÷ÁÍ ÔÁËÖÅ ÎÕÖÎÏ ÚÁÄÁÔØ tt(ÐÏÌÎÙÊ ×ÏÓØÍÉÂÉÔÎÙÊ ×Ù×ÏÄ) × ÆÁÊÌÅ tt(~/.Xdefaults), ÈÏÔÑ ÏÎ ×ËÌÀÞÅÎ ÐÏ ÕÍÏÌÞÁÎÉÀ É ÍÁÌÏ×ÅÒÏÑÔÎÏ, ÞÔÏ ËÔÏ-ÎÉÂÕÄØ Ó ÜÔÉÍ ÓÔÏÌËÎÅÔÓÑ.
÷ÁÍ ÎÅ ÎÕÖÎÁ ËÏÍÁÎÄÁ mytt(bindkey), ÞÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ Ó×ÏÀ ÓÏÂÓÔ×ÅÎÎÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÍÅÔÁ ËÌÁ×ÉÛÉ, ÈÏÔÑ ×ÁÍ ×Å ÒÁ×ÎÏ ÎÕÖÎÁ ËÏÍÁÎÄÁ mytt(stty).
sect(ëÁË ÍÎÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÔÅËÕÝÁÑ ÄÉÒÅËÔÏÒÉÑ Á×ÔÏÍÁÔÉÞÅÓËÉ ×Ù×ÏÄÉÌÁÓØ × ÚÁÇÏÌÏ×ËÅ xterm?)
÷ÁÍ ÓÌÅÄÕÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÕÀ ÆÕÎËÃÉÀ mytt(chpwd), ËÏÔÏÒÁÑ ×ÙÚÙ×ÁÅÔÓÑ, ËÏÇÄÁ ÍÅÎÑÅÔÓÑ ÔÅËÕÝÁÑ ÄÉÒÅËÔÏÒÉÑ. óÌÅÄÕÀÝÉÊ ÓÃÅÎÁÒÉÊ ÐÒÏ×ÅÒÑÅÔ, Ñ×ÌÑÅÔÓÑ ÌÉ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ ÔÅÒÍÉÎÁÌÏÍ, ÔÏÇÄÁ × ÚÁÇÏÌÏ×ÏË ÐÉÛÅÔÓÑ ÔÅËÕÝÁÑ ÄÉÒÅËÔÏÒÉÑ, ÅÓÌÉ ÔÅÒÍÉÎÁÌ tt(xterm) ÉÌÉ ÄÒÕÇÏÊ ÏÔÎÏÓÉÔÅÌØÎÏ ÂÌÉÚËÉÊ, ÉÌÉ tt(sun-cmd).
verb(
chpwd() {
[[ -t 1 ]] || return
case $TERM in
sun-cmd) print -Pn "\e]l%~\e\\"
;;
*xterm*|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a"
;;
esac
}
)
éÚÍÅÎÉÔÅ mytt(%~), ÅÓÌÉ ÈÏÔÉÔÅ, ÞÔÏÂÙ ÓÏÏÂÝÅÎÉÑ ÂÙÌÉ ÒÁÚÌÉÞÎÙÍÉ. (ðÁÒÁÍÅÔÒ mytt(-P) ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ ÔÁËÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÁË × ÐÒÉÇÌÁÛÅÎÉÉ, × ÜÔÏÍ ÓÌÕÞÁÅ ×ÙÚÙ×ÁÅÔ ÔÅËÕÝÕÀ ÄÉÒÅËÔÏÒÉÀ; ×Ù ËÏÎÅÞÎÏ ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÚÄÅÓØ mytt($PWD), ÎÏ ÏÎÁ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÏÔÁÃÉÀ mytt(~), ËÏÔÏÒÕÀ Ñ ÓÞÉÔÁÀ ÞÉÝÅ.) ÷ÏÚÍÏÖÎÏ ×Ù ÚÁÈÏÔÉÔÅ ×ÙÚ×ÁÔØ tt(chpwd) ÐÒÑÍÏ, ËÏÇÄÁ tt(xterm) ÚÁÐÕÓËÁÅÔÓÑ: ×ÁÍ ÎÕÖÎÏ ÔÏÌØËÏ ÐÏÍÅÓÔÉÔØ mytt(chpwd) × tt(.zshrc) ÐÏÓÌŠţ ÏÐÒÅÄÅÌÅÎÉÑ ÉÌÉ Á×ÔÏÚÁÇÒÕÚËÉ.
sect(ëÁË ÍÎÅ ÓÄÅÌÁÔØ, ÞÔÏÂÙ ÌÉÓÔ ÚÁ×ÅÒÛÅÎÉÑ ËÏÍÁÎÄ ÉÓÐÏÌØÚÏ×ÁÌ 8-ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ?)
åÓÌÉ ×Ù Õ×ÅÒÅÎÙ, ÞÔÏ ×ÁÛ ÔÅÒÍÉÎÁÌ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÉÈ, ÓÁÍÙÊ Ì£ÇËÉÊ ÐÕÔØ, ÎÁÞÉÎÁÑ Ó ×ÅÒÓÉÊ 3.0.6 É 3.1 ÛÅÌÌÁ, ÜÔÏ ÚÁÄÁÔØ ÐÁÒÁÍÅÔÒ tt(PRINT_EIGHT_BIT). ÷ ÐÒÉÎÃÉÐÅ, ÜÔÏ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ Á×ÔÏÍÁÔÉÞÅÓËÉ, ÅÓÌÉ ×ÁÛ ËÏÍÐØÀÔÅÒ ÉÓÐÏÌØÚÕÅÔ ÓÉÓÔÅÍÕ `locale' É ÐÅÒÅÍÅÎÎÙÅ ÌÏËÁÌÉ ÚÁÄÁÎÙ ÐÒÁ×ÉÌØÎÏ, zsh ÐÏÊÍ£Ô ÉÈ. ôÅÍ ÎÅ ÍÅÎÅÅ, ÅÓÌÉ ÌÏËÁÌØ ÎÅ ÎÁÓÔÒÏÅÎÁ, ÂÕÄÅÔ ÎÁÍÎÏÇÏ ÐÒÏÝÅ ÚÁÄÁÔØ ÐÁÒÁÍÅÔÒ. äÌÑ ÒÁÎÎÉÈ ×ÅÒÓÉÊ zsh 3, ×ÁÍ ÐÒÉÄ£ÔÓÑ ÐÏÎÑÔØ ÌÏËÁÌÉ, ÓÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÙ ÓÐÒÁ×ÏÞÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á tt(setlocale(3)) É tt(zshparam(1)), ÓÁÍÁÑ ÐÒÏÓÔÁÑ ×ÏÚÍÏÖÎÏÓÔØ - ÚÁÄÁÔØ tt(LC_ALL=en_US). äÌÑ ÂÏÌÅÅ ÓÔÁÒÙÈ ×ÅÒÓÉÊ ÌÅÇËÏÇÏ ÓÐÏÓÏÂÁ ÎÅÔ.
sect(ðÏÞÅÍÕ "ÓÔÒÅÌËÉ" (ËÌÁ×ÉÛÉ ÕÐÒÁ×ÌÅÎÉÑ ËÕÒÓÏÒÏÍ) ÎÅ ÒÁÂÏÔÁÀÔ?)
ëÕÒÓÏÒÎÙÅ ËÌÁ×ÉÛÉ ÐÏÓÙÌÁÀÔ ÒÁÚÌÉÞÎÙÅ ËÏÄÙ, ÚÁ×ÉÓÑÝÉÅ ÏÔ ÔÅÒÍÉÎÁÌÁ; zsh ÚÎÁÅÔ ÔÏÌØËÏ ÈÏÒÏÛÏ ÉÚ×ÅÓÔÎÙÅ ×ÅÒÓÉÉ. åÓÌÉ ×Ù Õ×ÉÄÉÔÅ ÐÏÄÏÂÎÙÅ ÐÒÏÂÌÅÍÙ, ÔÏÇÄÁ ÐÏÐÙÔÁÊÔÅÓØ ÎÁÐÉÓÁÔØ ÓÌÅÄÕÀÝÅÅ × ×ÁÛ tt(.zshrc):
verb(
bindkey "$(echotc kl)" backward-char
bindkey "$(echotc kr)" forward-char
bindkey "$(echotc ku)" up-line-or-history
bindkey "$(echotc kd)" down-line-or-history
)
åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÒÅÖÉÍ vi, ÔÏÇÄÁ ÐÉÛÉÔÅ × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍ ÍÅÓÔÅ mytt(vi-backward-char) É mytt(vi-forward-char). þÔÏ ËÁÓÁÅÔÓÑ ×ÅÒÓÉÉ 4.0.1, zsh ÐÏÐÙÔÁÅÔÓÑ ÎÁÊÔÉ ÜÔÉ ËÏÄÙ É ÓÄÅÌÁÔØ ÐÒÉ×ÑÚÙ×ÁÎÉÅ (ÏÂÁ, É ÄÌÑ emacs, É ÄÌÑ vi), ÎÏ × ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ ÜÔÏ ÍÏÖÅÔ ÎÅ ÓÒÁÂÏÔÁÔØ.
úÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ ÄÏ ×ÅÒÓÉÉ 3.0 Ó ÐÒÉ×ÑÚÙ×ÁÎÉÅÍ ÐÒÏÉÚ×ÏÌØÎÏÊ ÍÎÏÇÏËÎÏÐÏÞÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÍÏÇÌÉ ÂÙÔØ ÐÒÏÂÌÅÍÙ, ÔÁË ÞÔÏ ÐÒÏ×ÅÒÑÊÔÅ ÓÃÅÎÁÒÉÊ Ó ×ÁÛÉÍÉ ÕÓÔÁÎÏ×ËÁÍ. á Ó ×ÅÒÓÉÉ 3.1.3 ÂÏÌØÛÉÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ ÐÏ ÕÍÏÌÞÁÎÉÀ, Á ÉÍÅÎÎÏ × ÆÏÒÍÅ mytt(<ESC>O) ÓÌÅÄÕÀÝÅÊ ÚÁ mytt(A), mytt(B), mytt(C) ÉÌÉ mytt(D), ÔÁË ÖÅ ËÁË É ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ, ÕÓÔÁÎÏ×ÌÅÎÎÙÅ × ÎÁÞÁÌÅ mytt(<ESC>[), ÔÁË ÞÔÏ ÜÔÏ ÍÏÖÅÔ ÂÙÔØ ÉÚÌÉÛÎÉÍ.
ðÒÁËÔÉÞÅÓËÁÑ ÐÒÏÂÌÅÍÁ, ËÏÔÏÒÁÑ ÉÎÏÇÄÁ ×ÏÚÎÉËÁÅÔ: ÅÓÔØ Ä×Á ÒÁÚÌÉÞÎÙÈ ÒÅÖÉÍÁ "ÓÔÒÅÌÏË", ÎÏÒÍÁÌØÎÙÊ ÒÅÖÉÍ É "ÓÔÒÅÌËÉ" ÎÁ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ËÌÁ×ÉÁÔÕÒÅ, ËÏÔÏÒÙÅ ÐÏÓÙÌÁÀÔ ÒÁÚÌÉÞÎÙÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ. èÏÔÑ ÜÔÏ ÂÏÌØÛÏÊ ÉÓÔÏÒÉÞÅÓËÉÊ ÁÒÔÅÆÁËÔ, ÎÏ ÉÎÏÇÄÁ ÂÙ×ÁÅÔ, ÞÔÏ ×ÁÛ ÔÅÒÍÉÎÁÌ ÐÅÒÅÛ£Ì Ó ÏÄÎÏÇÏ ÒÅÖÉÍÁ ÎÁ ÄÒÕÇÏÊ, ÎÁÐÒÉÍÅÒ, ËÁËÁÑ-ÎÉÂÕÄØ ÐÒÏÇÒÁÍÍÁ ÐÅÒÅÛÌÁ × ÄÒÕÇÏÊ ÒÅÖÉÍ, ÎÏ ÎÅ ÐÅÒÅÛÌÁ ÏÂÒÁÔÎÏ. ôÁËÉÍ ÏÂÒÁÚÏÍ ×Ù ÓÔÏÌËÎÕÌÉÓØ Ó ÜÔÉÍÉ ÜÆÆÅËÔÁÍÉ. ë ÓÞÁÓÔØÀ × ÜÔÏÍ ÓÌÕÞÁÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÎÏÐËÉ "ÓÔÒÅÌËÉ", ×ÅÒÏÑÔÎÏ, ÂÕÄÅÔ ÓÔÁÎÄÁÒÔÎÏÊ, É ×Ù ÌÅÇËÏ ÓÍÏÖÅÔÅ ÚÁÓÔÁ×ÉÔØ ÒÁÂÏÔÁÔØ ÏÂÁ ×ÉÄÁ "ÓÔÒÅÌÏË". óÌÅÄÕÀÝÉÊ ËÏÄ ÄÅÌÁÅÔ ÜÔÏ:
verb(
bindkey '\e[A' up-line-or-history
bindkey '\e[B' down-line-or-history
bindkey '\e[C' forward-char
bindkey '\e[D' backward-char
bindkey '\eOA' up-line-or-history
bindkey '\eOB' down-line-or-history
bindkey '\eOC' forward-char
bindkey '\eOD' backward-char
)
äÌÑ ÂÏÌØÛÉÎÓÔ×Á, ÄÁÖÅ ÓÍÕÔÎÏ VT100-ÓÏ×ÍÅÓÔÉÍÙÈ ÔÅÒÍÉÎÁÌÏ×, ÐÒÉ×ÅÄ£ÎÎÙÅ ×ÏÓÅÍØ ÉÎÓÔÒÕËÃÉÊ ÄÏ×ÏÌØÎÏ ÂÅÚÏÐÁÓÎÙ ÄÌÑ ×ÁÛÅÇÏ tt(.zshrc). ëÏÎÅÞÎÏ ×Ù ÍÏÖÅÔÅ ÚÁÍÅÎÉÔØ ÚÄÅÓØ ÒÁÚÌÉÞÎÙÅ ÆÕÎËÃÉÉ ÄÌÑ ×ÔÏÒÏÇÏ ÁÒÇÕÍÅÎÔÁ.
sect(ðÏÞÅÍÕ ÔÅÒÍÉÎÁÌ × ÎÅËÏÔÏÒÙÈ ÓÌÕÞÁÑÈ ×ÅÄ£Ô ÓÅÂÑ ÓÍÅÛÎÏ?)
åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ OpenWindows cmdtool ËÁË ×ÁÛ ÔÅÒÍÉÎÁÌ, ÌÀÂÁÑ ÜËÒÁÎÉÒÕÅÍÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ (ÎÁÐÒÉÍÅÒ ÐÒÏÉÚ×ÅÄ£ÎÎÁÑ ËÕÒÓÏÒÎÙÍÉ ËÎÏÐËÁÍÉ) ÂÕÄÅÔ ÐÒÏÇÌÏÞÅÎÁ É ÎÉËÏÇÄÁ ÎÅ ÄÏÓÔÉÇÎÕÔÁ zsh. éÌÉ ÉÓÐÏÌØÚÕÊÔÅ ÉÎÓÔÒÕÍÅÎÔÙ ÛÅÌÌÁ ÉÌÉ ÉÚÂÅÇÁÊÔÅ ËÏÍÁÎÄ Ó ÜËÒÁÎÉÒÕÅÍÙÍÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÍÉ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ×ÙËÌÀÞÉÔØ ÐÒÏËÒÕÔËÕ ÉÚ ÍÅÎÀ cmdtool (ËÏÔÏÒÁÑ ÜÆÆÅËÔÉ×ÎÏ ÓÔÁÎÅÔ ÉÎÓÔÒÕÍÅÎÔÏÍ ÛÅÌÌÁ). åÓÌÉ ×ÁÍ ×Ó£-ÔÁËÉ ÎÕÖÎÁ ÐÒÏËÒÕÔËÁ, ÐÏÐÙÔÁÊÔÅÓØ ÉÓÐÏÌØÚÏ×ÁÔØ xterm Ó ÁËÔÉ×ÎÙÍÉ scrollbar'ÁÍÉ.
üÔÏ ÎÅ ÐÒÏÂÌÅÍÁ, ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ stty, ÞÔÏÂÙ ÉÚÍÅÎÉÔØ ËÁËÉÅ-ÎÉÂÕÄØ Ó×ÏÊÓÔ×Á ÔÅÒÍÉÎÁÌÁ, ÕÂÅÄÉÔÅÓØ, ÞÔÏ ×Ù ÎÅ ÐÒÏÓÉÌÉ zsh ÚÁÍÏÒÏÚÉÔØ Ó×ÏÊÓÔ×Á tty:
ÎÁÂÅÒÉÔÅ
verb(
ttyctl -u
)
ÄÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ËÏÍÁÎÄÙ stty.
ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÅÓÌÉ ×Ù ÎÅ ÉÓÐÏÌØÚÕÅÔÅ stty É ×ÁÓ ÅÓÔØ ÐÒÏÂÌÅÍÙ, ×ÁÍ ÎÁÐÒÏÔÉ× ÎÕÖÎÁ: mytt(ttyctl -f), ÚÁÍÏÒÁÖÉ×ÁÀÝÁÑ ÔÅÒÍÉÎÁÌ ÏÔ ÇÌÀËÏ× ÄÒÕÇÉÈ ÐÒÏÇÒÁÍ (kermit ÚÎÁÅÔ, ËÁË ÉÈ ÄÅÌÁÔØ).
üÔÕ ÐÒÏÂÌÅÍÕ Ñ ÎÁÂÌÀÄÁÌ ÎÁ ÌÉÞÎÏÍ ÏÐÙÔÅ (ÎÁ ÒÁÂÏÞÅÊ ÓÔÁÎÃÉÉ AIX 3.2 Ó xterm) - ÄÅÉÎÉÃÉÁÌÉÚÁÃÉÏÎÎÙÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ termcap, ÐÏÓÙÌÁÅÍÙÅ ÕÔÉÌÉÔÏÊ `less', ÂÙÌÉ ÐÒÉÞÉÎÏÊ ÔÏÇÏ, ÞÔÏ automargins ×ÙËÌÀÞÉÌÉÓØ --- ÆÁËÔÉÞÅÓËÉ - ÜÔÏ ÎÅ ÐÒÏÂÌÅÍÁ ÛÅÌÌÁ, ÎÏ ×Ù ×ÏÚÍÏÖÎÏ ÄÕÍÁÌÉ ÉÎÁÞÅ. þÔÏÂÙ ÜÔÏ ÉÓÐÒÁ×ÉÔØ, ÎÕÖÎÏ × ÐÅÒÅÍÅÎÎÏÊ ÏËÒÕÖÅÎÉÑ tt(LESS) ÐÒÉÓ×ÏÉÔØ `tt(X)', ÞÔÏÂÙ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÎÅ ÐÏÓÙÌÁÌÉÓØ. äÒÕÇÉÅ ÐÒÏÇÒÁÍÍÙ ÔÏÖÅ ÍÏÇÕÔ ÐÏÓÙÌÁÔØ ÔÁËÉÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ.
åÓÌÉ myem(ÜÔÏ) ÎÅ ÐÒÏÂÌÅÍÁ, Á Õ ×ÁÓ ÅÓÔØ ÓÌÏÖÎÏÓÔÉ Ó ×ÎÅÛÎÉÍÉ ËÏÍÁÎÄÁÍÉ (ÎÅ Ñ×ÌÑÀÝÉÍÉÓÑ ÞÁÓÔØÀ zsh), É ×Ù ÄÕÍÁÅÔÅ, ÞÔÏ ×ÉÎÏÊ ÔÏÍÕ ÐÁÒÁÍÅÔÒÙ ÔÅÒÍÉÎÁÌÁ (ÎÁÐÒÉÍÅÒ, tt(^V) ÉÎÔÅÒÐÒÅÔÉÒÕÅÔÓÑ ËÁË `ÂÕË×ÁÌØÎÙÊ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ' (`literal next character'), ËÏÇÄÁ ×Ù ÈÏÔÉÔÅ ÓÏ×ÓÅÍ ÐÏ-ÄÒÕÇÏÍÕ), ÐÏÐÒÏÂÕÊÔÅ
verb(
ttyctl -u
STTY='lnext "^-"' commandname
)
(× ÄÁÎÎÏÍ ÐÒÉÍÅÒÅ). ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ zsh ÎÅ ÓÂÒÁÓÙ×ÁÅÔ ÔÅÒÍÉÎÁÌ ÐÏÌÎÏÓÔØÀ: ÔÏÌØËÏ ÒÅÖÉÍÙ, ËÏÔÏÒÙÅ ÅÇÏ ÉÓÐÏÌØÚÕÀÔ, É ÍÎÏÖÅÓÔ×Ï ÓÐÅÃÉÁÌØÎÙÈ ÓÉÍ×ÏÌÏ× ÏÂÒÁÂÏÔËÉ (ÓÍ. tt(stty(1)) ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á).
sect(ðÏÞÅÍÕ zsh ÎÅ ÒÁÂÏÔÁÅÔ ÂÏÌØÛÅ × ÒÅÖÉÍÅ Emacs?)
(üÔÁ ÉÎÆÏÒÍÁÃÉÑ ÐÏÓÔÕÐÉÌÁ ÏÔ Bart Schaefer É ÄÒÕÇÉÈ ÒÁÚÒÁÂÏÔÞÉËÏ×.)
Emacs 19.29 ÉÌÉ ÂÌÉÚËÉÅ Ë ÎÅÍÕ ÐÅÒÅÓÔÁÀÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÉÐ ÔÅÒÍÉÎÁÌÁ "emacs" × ÂÕÆÅÒÁÈ ÛÅÌÌÁ É ×ÚÁÍÅÎ ÅÇÏ ÓÔÁ×ÑÔ "dumb". Zsh ÐÒÏ×ÏÄÉÔ ÏÂÒÁÂÏÔËÕ emacs, ÔÏÌØËÏ ËÏÇÄÁ ÔÉÐ ÔÅÒÍÉÎÁÌÁ "emacs".
÷ÏÚÍÏÖÎÏ ÓÁÍÙÊ ÎÁÄ£ÖÎÙÊ ÓÐÏÓÏ ÒÅÛÉÔØ ÜÔÏ - ×ÚÇÌÑÎÕÔØ ÎÁ ÐÅÒÅÍÅÎÎÕÀ ÏËÒÕÖÅÎÉÑ mytt($EMACS), ËÏÔÏÒÁÑ ÉÍÅÅÔ ÚÎÁÞÅÎÉÅ mytt(t) × ÒÅÖÉÍÅ Emacs. îÁÐÉÓÁÔØ
verb(
[[ $EMACS = t ]] && unsetopt zle
)
× ×ÁÛ .zshrc, ÜÔÏÇÏ ÄÏÌÖÎÏ ÂÙÔØ ÄÏÓÔÁÔÏÞÎÏ.
äÒÕÇÏÊ ÍÅÔÏÄ - ÜÔÏ ÎÁÐÉÓÁÔØ
verb(
#!/bin/sh
TERM=emacs exec zsh
)
× ÆÁÊÌ ~/bin/eshell, ÚÁÔÅÍ mytt(chmod +x ~/bin/eshell), É ÕËÁÚÁÔØ emacs, ÞÔÏ ÂÙ ÏÎ ÉÓÐÏÌØÚÏ×ÁÌ ÅÇÏ ËÁË ÛÅÌÌ, ÄÏÂÁ×É×
verb(
(setenv "ESHELL" (expand-file-name "~/bin/eshell"))
)
× ~/.emacs.
3.11: ðÏÞÅÍÕ ÍÏÉ Á×ÔÏÚÁÇÒÕÖÁÅÍÙÅ ÆÕÎËÃÉÉ ÎÅ ÚÁÇÒÕÖÁÀÔÓÑ?
ðÒÏÂÌÅÍÁ ×ÏÚÎÉËÁÅÔ ÉÚ-ÚÁ ÔÏÇÏ, ÞÔÏ ÅÓÔØ Ä×Á ÐÕÔÉ Á×ÔÏÚÁÇÒÕÚËÉ ÆÕÎËÃÉÊ (ÓÍÏÔÒÉÔÅ ÓÅËÃÉÀ AUTOLOADING FUNCTIONS ÒÕËÏ×ÏÄÓÔ×Á zsh, ÓÔÒÁÎÉÃÕ zshmisc, ÄÌÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÉ):
enumerate(
myeit() æÁÊÌ ÓÏÄÅÒÖÉÔ ÔÏÌØËÏ ÔÅÌÏ ÆÕÎËÃÉÉ, Ô.Å. ÎÅÔ ÚÁÇÏÌÏ×ËÁ ÆÕÎËÃÉÉ mytt(function foo {) ÉÌÉ mytt(foo () {), É ÓÌÅÄÏ×ÁÔÅÌØÎÏ ÎÅÔ ÚÁ×ÅÒÛÅÎÉÑ mytt(}) × ËÏÎÃÅ. üÔÏ ÔÒÁÄÉÃÉÏÎÎÙÊ ÍÅÔÏÄ zsh. ðÒÅÉÍÕÝÅÓÔ×Ï × ÔÏÍ, ÞÔÏ ÆÁÊÌ ÎÁÚÙ×ÁÅÔÓÑ ÔÏÞÎÏ ÔÁËÖÅ, ËÁË É ÓÃÅÎÁÒÉÊ. þÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ ÆÕÎËÃÉÀ mytt(xhead () { print -n "\033]2;$*\a"; }), ÆÁÊÌ ÄÏÌÖÅÎ ÔÏÌØËÏ ÓÏÄÅÒÖÁÔØ mytt(print -n "\033]2;$*\a").
myeit() æÁÊÌ ÓÏÄÅÒÖÉÔ ÐÏÌÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÆÕÎËÃÉÉ, É ÍÏÖÅÔ ÄÁÖÅ ÄÒÕÇÏÊ ËÏÄ: ÏÎ ÚÁÐÕÓËÁÅÔÓÑ, ËÏÇÄÁ ÆÕÎËÃÉÀ ÎÕÖÎÏ ÚÁÇÒÕÚÉÔØ, ÔÏÇÄÁ ÆÕÎËÃÉÑ ÓÁÍÁ ÚÁÐÕÓËÁÅÔÓÑ. üÔÏ ÍÅÔÏÄ ksh. þÔÏÂÙ ÏÐÒÅÄÅÌÉÔØ ÔÁËÕÀ ÖÅ ÆÕÎËÃÉÀ mytt(xhead), ×Ó£ ÏÂÙÞÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÓÌÅÄÕÅÔ ÐÏÍÅÓÔÉÔØ × ÆÁÊÌ.
)
÷ ÓÔÁÒÙÈ ×ÅÒÓÉÑÈ zsh, ÄÏ ×ÅÒÓÉÉ 3.0, ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÔÏÌØËÏ ÐÅÒ×ÙÊ ÍÅÔÏÄ, ÕÂÅÄÉÔÅÓØ, ÞÔÏ ÆÁÊÌ, ÓÏÄÅÒÖÁÝÉÊ ÔÅÌÏ ÆÕÎËÃÉÉ, ÎÁÊÄÅÎ. ÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÏÐÒÅÄÅÌÑÔØ ÄÒÕÇÉÅ ÆÕÎËÃÉÉ × ÓÔÁÎÄÁÒÔÎÏÊ ÆÏÒÍÅ ÏÐÒÅÄÅÌÅÎÉÊ, ÈÏÔÑ ÏÎÉ ÂÕÄÕÔ ÐÅÒÅÏÐÒÅÄÅÌÅÎÙ ËÁÖÄÙÊ ÒÁÚ, ËÏÇÄÁ ×Ù ×ÙÚÙ×ÁÅÔÅ ÇÌÁ×ÎÕÀ ÆÕÎËÃÉÀ.
÷ ×ÅÒÓÉÉ 3.0.x ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÔÏÒÏÊ ÍÅÔÏÄ ÏÐÒÅÄÅÌÅÎÉÑ Á×ÔÏÚÁÇÒÕÖÁÅÍÙÈ ÆÕÎËÃÉÊ. ë ÎÅÓÞÁÓÔØÀ, ÜÔÏÔ ÍÅÔÏÄ ÎÅ ÓÏ×ÍÅÓÔÉÍ ÓÏ ÓÔÁÒÙÍ ÐÏ×ÅÄÅÎÉÅÍ zsh, ËÏÔÏÒÏÅ ÐÏÚ×ÏÌÑÌÏ ×ÁÍ ÐÅÒÅÏÐÒÅÄÅÌÑÔØ ÆÕÎËÃÉÀ, ËÏÇÄÁ ×٠ţ ×ÙÚÙ×ÁÅÔÅ.
îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 3.1, ÐÏÑ×ÉÌÓÑ ÐÁÒÁÍÅÔÒ tt(KSH_AUTOLOAD), ÐÏÚ×ÏÌÑÀÝÉÊ ÐÏÌÎÕÀ ksh ÓÏ×ÍÅÓÔÉÍÏÓÔØ, Ô.Å ÆÕÎËÃÉÑ myem(ÄÏÌÖÎÁ) ÂÙÔØ ÎÁÐÉÓÁÎÁ ÐÏ ×ÔÏÒÏÊ ÆÏÒÍÅ, ÐÒÉ×ÅÄ£ÎÎÏÊ ×ÙÛÅ. åÓÌÉ ÜÔÏÔ ÐÁÒÁÍÅÔÒ ÎÅ ÚÁÄÁÎ, zsh ÐÏÐÙÔÁÅÔÓÑ ÕÇÁÄÁÔØ, ËÁËÕÀ ÆÏÒÍÕ ×Ù ÉÓÐÏÌØÚÕÅÔÅ: ÅÓÌÉ ÆÁÊÌ ÓÏÄÅÒÖÉÔ ÔÏÌØËÏ ÐÏÌÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÆÕÎËÃÉÉ ÐÏ ×ÔÏÒÏÊ ÆÏÒÍÅ É ÎÉÞÅÇÏ ÂÏÌØÛÅ, ËÒÏÍÅ ËÏÍÍÅÎÔÁÒÉÅ× É Ó×ÏÂÏÄÎÏÇÏ ÍÅÓÔÁ, ÔÏ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎÁ ÆÕÎËÃÉÑ, ÏÐÒÅÄÅÌ£ÎÎÁÑ × ÆÁÊÌÅ; ÉÎÁÞÅ ÂÕÄÅÔ ÚÁÄÅÊÓÔ×Ï×ÁÎ ÓÔÁÒÙÊ ÍÅÔÏÄ. åÓÌÉ ËÏÎÅÞÎÏ ÕÓÔÁÎÏ×ÌÅÎ ÐÁÒÁÍÅÔÒ mytt(emulate ksh).
(èÏÒÏÛÉÊ ÔÒÀË, ÞÔÏÂÙ ÚÁÇÒÕÚÉÔØ ×ÓÅ ÆÕÎËÃÉÉ × ÄÁÎÎÏÊ ÄÉÒÅËÔÏÒÉÉ, ÜÔÏ ×ËÌÀÞÉÔØ ÓÔÒÏËÕ mytt(autoload ~/fns/*(:t)) × .zshrc; ËÕÓÏË × ËÒÕÇÌÙÈ ÓËÏÂËÁÈ ÕÄÁÌÉÔ ÉÚ ÉͣΠÆÁÊÌÏ× ÄÉÒÅËÔÏÒÉÉ, ÏÓÔÁ×É× ÔÏÌØËÏ ÉÍÅÎÁ ÆÕÎËÃÉÊ.)
sect(ëÁË ÒÁÂÏÔÁÅÔ ÂÁÚÏ×ÁÑ ÁÒÉÆÍÅÔÉËÁ?)
ôÅÐÅÒØ ×ÏÓÐÒÉÎÉÍÁÅÔÓÑ ÓÉÎÔÁËÓÉÓ ksh, Ô.Å.
verb(
let 'foo = 16#ff'
)
ÉÌÉ ÜË×É×ÁÌÅÎÔÎÏ
verb(
(( foo = 16#ff ))
)
ÉÌÉ ÄÁÖÅ
verb(
foo=$((16#ff))
)
ïÒÉÇÉÎÁÌØÎÙÊ ÓÉÎÔÁËÓÉÓ ÂÙÌ
verb(
(( foo = [16]ff ))
)
--- ÜÔÏ ÂÙÌÏ ÏÓÎÏ×ÁÎÏ ÎÁ ÎÅÐÒÁ×ÉÌØÎÏÍ ÐÏÎÉÍÁÎÉÉ ÒÕËÏ×ÏÄÓÔ×Á ksh. ïÎ ×Ó£ ÅÝ£ ÒÁÂÏÔÁÅÔ, ÎÏ ÓÞÉÔÁÅÔÓÑ ÕÓÔÁÒÅ×ÛÉÍ. ôÏÇÄÁ
verb(
echo $foo
)
ÄÁÓÔ ÏÔ×ÅÔ `255'. íÏÖÎÏ ÏÂßÑ×ÉÔØ ÐÅÒÅÍÅÎÎÙÅ Ñ×ÎÏ ÃÅÌÙÍÉ, ÞÅÒÅÚ
verb(
typeset -i foo
)
ËÏÔÏÒÏÅ ÄÁÓÔ ÒÁÚÌÉÞÎÙÅ ÜÆÆÅËÔÙ: Á ÉÍÅÎÎÏ ÏÓÎÏ×ÁÎÉÅ, ÉÓÐÏÌØÚÕÅÍÏÅ × ÐÅÒ×ÏÍ ÐÒÉÓ×ÁÉ×ÁÎÉÉ (ÛÅÓÔÎÁÄÃÁÔÉÒÉÞÎÏÅ × ÐÒÉÍÅÒÅ) × ÐÏÓÌÅÄÓÔ×ÉÉ ÉÓÐÏÌØÚÕÅÔÓÑ ×ÓÑËÉÊ ÒÁÚ, ËÏÇÄÁ `foo' ÏÔÏÂÒÁÖÁÅÔÓÑ (ÈÏÔÑ ×ÎÕÔÒÅÎÎÅ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ ÎÅ ÍÅÎÑÅÔÓÑ). çÁÒÁÎÔÉÒÏ×ÁÔØ, ÞÔÏÂÙ foo ×ÓÅÇÄÁ ÏÔÏÂÒÁÖÁÌÁÓØ × ÄÅÓÑÔÉÞÎÏÊ ÓÉÓÔÅÍÅ, ÎÕÖÎÏ ÏÂßÑ×ÉÔØ ÔÁË
verb(
typeset -i 10 foo
)
ËÏÔÏÒÏÅ ÚÁÐÒÁÛÉ×ÁÅÔ ÄÅÓÑÔÉÞÎÏÅ ÏÓÎÏ×ÁÎÉÅ ÄÌÑ ×Ù×ÏÄÁ. ÷Ù ÍÏÖÅÔÅ ÉÚÍÅÎÉÔØ ÏÓÎÏ×ÁÎÉÅ ×Ù×ÏÄÁ ÓÕÝÅÓÔ×ÕÀÝÅÊ ÐÅÒÅÍÅÎÎÏÊ ÓÌÅÄÕÀÝÉÍ ÓÐÏÓÏÂÏÍ. íÅÔÏÄ mytt($(( ... ))) ÂÕÄÅÔ ×ÓÅÇÄÁ ÏÔÏÂÒÁÖÁÔØ × ÄÅÓÑÔÉÞÎÏÊ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ×ÅÒÓÉÉ 3.1.9, × ËÏÔÏÒÏÊ ÐÏÑ×ÉÌÁÓØ ÎÏ×ÁÑ ×ÏÚÍÏÖÎÏÓÔØ ×ÙÂÏÒÁ ÏÓÎÏ×ÁÎÉÑ ÄÌÑ ×Ù×ÏÄÁ:
verb(
print $(( [#16] 255 ))
)
sect(ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÎÏ×ÕÀ ÓÔÒÏËÕ × ÐÒÉÇÌÁÛÅÎÉÉ?)
label(313)
÷Ù ÍÏÖÅÔÅ ÚÁËÌÀÞÉÔØ ÓÉÍ×ÏÌ ÎÏ×ÏÊ ÓÔÒÏËÉ × ËÁ×ÙÞËÉ, Ô.Å.
verb(
PROMPT="Hi Joe,
what now?%# "
)
åÓÌÉ ×Ù ÚÁÄÁÌÉ ÐÁÒÁÍÅÔÒ cshjunkiequotes, ËÏÔÏÒÙÊ ÔÏÒÍÏÚÉÔ ÜÔÏ ÐÏ×ÅÄÅÎÉÅ, ×Ù ÄÏÌÖÎÙ ÚÁËÌÀÞÉÔØ ÜÔÏ × mytt(unsetopt cshjunkiequotes) É mytt(setopt cshjunkiequotes), ÉÌÉ ÎÁÐÉÓÁÔØ ÜÔÏ × ×ÁÛ tt(.zshrc) ÄÏ ÚÁÄÁÎÉÑ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ.
÷ ÎÅÄÁ×ÎÉÈ ×ÅÒÓÉÑÈ zsh (ÎÅ 3.0), ÅÓÔØ ÆÏÒÍÁ ÚÁÐÉÓÉ, ËÏÔÏÒÁÑ ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÔÉÐÁ `tt(\n)', ÎÏ ÉÎÁÞÅ ÄÅÊÓÔ×ÕÅÔ × ÏÄÉÎÁÒÎÙÈ ËÁ×ÙÞËÁÈ: ÏËÒÕÖÉÔÅ ÓÔÒÏËÕ ÔÁË tt($'...'). óÌÅÄÏ×ÁÔÅÌØÎÏ:
verb(
PROMPT=$'Hi Joe,\nwhat now?%# '
)
ÈÏÒÏÛÉÊ ÓÐÏÓÏ ÓÄÅÌÁÔØ ÔÏ, ÞÔÏ ×ÁÍ ÎÁÄÏ. úÁÍÅÔØÔÅ, ÞÔÏ ÜÔÏ ÎÅ ÒÁÓÛÉÒÅÎÉÅ ÐÒÉÇÌÁÛÅÎÉÑ, ËÏÔÏÒÏÅ ÜËÒÁÎÉÒÕÅÔ `tt(\n)' × ÎÏ×ÕÀ ÓÔÒÏËÕ.
sect(ðÏÞÅÍÕ mytt(bindkey ^a command-name) ÉÌÉ mytt(stty intr ^-) ×ÅÄÕÔ ÓÅÂÑ ËÁË-ÔÏ ÓÍÅÛÎÏ?)
÷ÏÚÍÏÖÎÏ, ×Ù ÚÁÄÁÌÉ ÐÁÒÁÍÅÔÒ extendedglob, × ÜÔÏÍ ÓÌÕÞÁÅ tt(^) É tt(#) - ÍÅÔÁÓÉÍ×ÏÌÙ. tt(^a) - ÏÂÏÚÎÁÞÁÅÔ ÌÀÂÏÊ ÆÁÊÌ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ tt(a), Ô.Þ ÜÔÏ ÓÔÒÏËÁ ÉÎÔÅÒÐÒÅÔÉÒÕÅÔÓÑ ËÁË bindkey ÓÏÐÒÏ×ÏÖÄ£ÎÎÏ£ ÓÐÉÓËÏÍ ÆÁÊÌÏ×. üËÒÁÎÉÒÕÊÔÅ tt(^) Ó ÐÏÍÏÝØÀ ÂÜËÓÌÜÛÁ ÉÌÉ ÚÁËÌÀÞÉÔÅ tt(^a) × ËÁ×ÙÞËÉ.
sect(ðÏÞÅÍÕ Ñ ÎÅ ÍÏÇÕ ÂÏÌØÛÅ Ó×ÑÚÁÔØ ÓÏÞÅÔÁÎÉÑ tt(\C-s) É tt(\C-q) ?)
ëÌÁ×ÉÛÉ control-s É control-q ÔÅÐÅÒØ ËÏÎÔÒÏÌÉÒÕÀÔ ÐÏÔÏË ÐÏ ÕÍÏÌÞÁÎÉÀ, ÄÏ ÔÅÈ ÐÏÒ ÐÏËÁ ×Ù ÎÅ ×ÙËÌÀÞÉÔÅ ÅÇÏ Ó ÐÏÍÏÝØÀ mytt(stty -ixon) ÉÌÉ ÐÅÒÅÏÐÒÅÄÅÌÉÔÅ ÕÐÒÁ×ÌÅÎÉÅ Ó ÐÏÍÏÝØÀ mytt(stty start) ÉÌÉ mytt(stty stop). (üÔÏ ÄÅÌÁÅÔÓÑ ÓÉÓÔÅÍÏÊ, ÎÅ zsh; ÛÅÌÌ ÐÒÏÓÔÏ ÐÒÉÎÉÍÁÅÔ ÜÔÉ ÕÓÔÁÎÏ×ËÉ.) äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, tt(\C-s) ÏÓÔÁÎÁ×ÌÉ×ÁÅÔ ×ÅÓØ ×Ù×ÏÄ ÎÁ ÔÅÒÍÉÎÁÌ, × ÔÏ ×ÒÅÍÑ ËÁË tt(\C-q) ×ÏÚÏÂÎÏ×ÌÑÅÔ ÅÇÏ.
åÓÔØ ÐÁÒÁÍÅÔÒ tt(NO_FLOW_CONTROL), ÞÔÏÂÙ ÎÅ ÄÁÔØ zsh ËÏÎÔÒÏÌÉÒÏ×ÁÔØ ÐÏÔÏË É, ÓÌÅÄÏ×ÁÔÅÌØÎÏ, ×ÏÚÏÂÎÏ×ÉÔØ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ËÌÁ×ÉÛ: ÎÁÐÉÛÉÔÅ mytt(setopt noflowcontrol) × ×ÁÛ tt(.zshrc).
sect(ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ mytt(foo) ×ÎÕÔÒÉ ÆÕÎËÃÉÉ foo?)
ëÏÍÁÎÄÁ mytt(command foo) ËÁË ÒÁÚ ÜÔÏ É ÄÅÌÁÅÔ. üÔÏ ÐÒÉÍÅÎÑÅÔÓÑ ÔÏÌØËÏ ÆÕÎËÃÉÑÈ, ÎÏ ÎÅ × ÐÓÅ×ÄÏÎÉÍÁÈ. úÁÍÅÔØÔÅ, ÞÔÏ ÏÛÉÂËÁ ×ÒÏÄÅ
verb(
zsh: job table full or recursion limit exceeded
)
ÐÒÉÚÎÁË ÔÏÇÏ, ÞÔÏ ×Ù ÐÙÔÁÅÔÅÓØ ×ÙÚ×ÁÔØ `foo' × ÆÕÎËÃÉÉ `foo' ÂÅÚ ÉÓÐÏÌØÚÏ×ÁÎÉÑ `command'. åÓÌÉ mytt(foo) ÎÅ ×ÎÅÛÎÑÑ, Á ×ÓÔÒÏÅÎÎÁÑ ËÏÍÁÎÄÁ, ÔÏ ×ÚÁÍÅÎ ÉÓÐÏÌØÚÕÅÔÅ mytt(builtin foo).
sect(ðÏÞÅÍÕ ÐÏÄÓÔÁÎÏ×ËÁ ËÏÍÁÎÄÙ ÉÚ ÉÓÔÏÒÉÉ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ×ÏÓËÌÉÃÁÔÅÌØÎÏÇÏ ÚÎÁËÁ ×ÏÚ×ÒÁÝÁÅÔ ÞÔÏ-ÔÏ ÓÍÅÛÎÏÅ?)
åÓÌÉ Õ ×ÁÓ ÅÓÔØ ËÏÍÁÎÄÁ "tt(echo !-2:$ !$)", ÐÅÒ×ÁÑ ÐÏÄÓÔÁÎÏ×ËÁ ÉÚ ÉÓÔÏÒÉÉ ÚÁÄÁÓÔ ÐÏÄÓÔÁÎÏ×ËÕ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÎÁ ËÏÔÏÒÕÀ ÂÕÄÕÔ ÓÓÙÌÁÔØÓÑ ÓÌÅÄÕÀÝÉÅ ÐÏÄÓÔÁÎÏ×ËÉ Ó ÏÄÎÉÍ ×ÏÓËÌÉÃÁÔÅÌØÎÙÍ ÚÎÁËÏÍ, Ô.Å. !$ ÓÔÁÎÅÔ ÜË×É×ÁÌÅÎÔÎÏ tt(!-2:$). ðÁÒÁÍÅÔÒ tt(CSH_JUNKIE_HISTORY) ÓÄÅÌÁÅÔ, ÞÔÏÂÙ ×ÓÅ ÏÄÉÎÏÞÎÙÅ ×ÏÓËÌÉÃÁÔÅÌØÎÙÅ ÚÎÁËÉ ÓÓÙÌÁÌÉÓØ ÎÁ ÐÏÓÌÅÄÎÀÀ ËÏÍÁÎÄÕ.
sect(ðÏÞÅÍÕ zsh ÕÂÉ×ÁÅÔ ×ÓÅ ÆÏÎÏ×ÙÅ ÐÒÏÃÅÓÓÙ ÐÒÉ ×ÙÈÏÄÅ?)
óÁÍÙÊ ÐÒÏÓÔÏÊ ÏÔ×ÅÔ: ×Ù ÎÅ ÐÒÏÓÉÌÉ Ï ÏÂÒÁÔÎÏÍ. Zsh (× ÏÔÌÉÞÉÅ ÏÔ [t]csh) ÄÁ£Ô ×ÙÂÏÒ: ÕÂÉ×ÁÔØ ÆÏÎÏ×ÙÅ ÚÁÄÁÎÉÑ ÉÌÉ ÎÅÔ: ÓÕÝÅÓÔ×ÕÅÔ ÐÁÒÁÍÅÔÒ mytt(nohup), ÅÓÌÉ ×Ù ÎÅ ÈÏÔÉÔÅ ÉÈ ÕÂÉ×ÁÔØ. úÁÍÅÔØÔÅ, ÞÔÏ ×Ù ×ÓÅÇÄÁ ÓÍÏÖÅÔÅ ÚÁÐÕÓËÁÔØ ÐÒÏÇÒÁÍÍÙ Ó ÐÏÍÏÝØÀ mytt(nohup) ÎÁ ÐÅÒÅÄÎÅÍ ÐÌÁÎÅ, ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, ÚÁÄÁÎ ÐÁÒÁÍÅÔÒ ÉÌÉ ÎÅÔ, ËÏÔÏÒÙÊ ÐÒÅÄÏÔ×ÒÁÔÉÔ ÚÁÄÁÞÕ ÏÔ ÕÂÉÊÓÔ×Á ÐÒÉ ×ÙÈÏÄÅ. (÷ ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ mytt(nohup) ×ÎÅÛÎÑÑ ËÏÍÁÎÄÁ.)
÷ÓÔÒÏÅÎÎÁÑ mytt(disown) - ÏÞÅÎØ ÐÏÌÅÚÎÁ × ÜÔÏÍ ÐÌÁÎÅ: ÅÓÌÉ zsh ÉÎÆÏÒÍÉÒÕÅÔ, ÞÔÏ Õ ×ÁÓ ÅÓÔØ ÆÏÎÏ×ÙÅ ÚÁÄÁÎÉÑ, ËÏÇÄÁ ×Ù ÐÙÔÁÅÔÅÓØ ×ÙÊÔÉ, ×Ù ÍÏÖÅÔÅ mytt(disown) ×ÓÅÈ, ËÏÇÏ ÎÅ ÎÕÖÎÏ ÕÂÉ×ÁÔØ ÐÒÉ ×ÙÈÏÄÅ. üÔÏ ÔÁËÖÅ ÈÏÒÏÛÉÊ ÓÐÏÓÏ ×ÙÐÏÌÎÅÎÉÑ ÒÁÂÏÔ, ËÏÔÏÒÙÍ ÎÅ ÔÒÅÂÕÅÔÓÑ ÛÅÌÌ (ÔÁËÉÅ ËÁË ÓÏÚÄÁÎÉÅ ÏËÎÁ), ÛÅÌÌ ÄÌÑ ÎÉÈ ÎÅ×ÉÄÉÍ. ðÏÄÏÂÎÏ ÜÔÏÍÕ, ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ ÆÏÎÏ×ÕÀ ÚÁÄÁÞÕ Ó ÐÏÍÏÝØÀ mytt(&!) ×ÍÅÓÔÏ mytt(&) ÎÁ ËÏÎÃÅ, ËÏÔÏÒÁÑ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÔÅÒÑÅÔ ÒÏÄÉÔÅÌÑ.
sect(ëÁË ÍÎÅ ÐÒÏÓÍÏÔÒÅÔØ ×Ó£ ÓÏÄÅÒÖÉÍÏÅ ÉÓÔÏÒÉÉ?)
óËÁÚÁÔØ zsh, ÞÔÏÂÙ ÎÁÞÁÌ Ó ÐÅÒ×ÏÇÏ ÜÌÅÍÅÎÔÁ: mytt(history 1). üÌÅÍÅÎÔÙ × ÎÁÞÁÌÅ, ËÏÔÏÒÙÈ ÂÏÌØÛÅ ÎÅÔ × ÐÁÍÑÔÉ, ÂÕÄÕÔ ÏÐÕÝÅÎÙ.
sect(ðÏÞÅÍÕ ÄÒÕÇÏÊ ÓÉÎÔÁËÓÉÓ ÃÉËÌÁ ÔÏÖÅ ÒÁÂÏÔÁÅÔ, ÎÁÐÒÉÍÅÒ mytt(while {...} {...})?)
Zsh ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÁÌØÔÅÒÎÁÔÉ×Õ ÔÒÁÄÉÃÉÏÎÎÏÊ sh-like ÆÏÒÍÅ Ó mytt(do),
verb(
while TEST; do COMMANDS; done
)
ÐÏÚ×ÏÌÑÑ ×ÁÍ ÉÍÅÔØ COMMANDS, ÏÇÒÁÎÉÞÅÎÎÙÅ ÄÒÕÇÉÍÉ ËÏÍÁÎÄÎÙÍÉ ÓÔÒÕËÔÕÒÁÍÉ, ÞÁÓÔÏ mytt({...}). ðÒÁ×ÉÌÁ ÄÏ×ÏÌØÎÏ ÕÓÌÏÖΣÎÎÙÅ É × ÂÏÌØÛÉÎÓÔ×Å ÓÃÅÎÁÒÉÅ×, ×ÏÚÍÏÖÎÏ, ÂÅÚÏÐÁÓÎÅÅ É, ËÏÎÅÞÎÏ, ÂÏÌÅÅ ÓÏ×ÍÅÓÔÉÍÏ - ÐÒÉÄÅÒÖÉ×ÁÔØÓÑ sh-like ÐÒÁ×ÉÌ. åÓÌÉ ×Ù ÕÄÉ×ÌÅÎÙ, Ñ ÐÒÉ×ÅÄÕ ÎÅÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï.
þÔÏÂÙ ÜÔÏ ÒÁÂÏÔÁÌÏ, ×Ù ÄÏÌÖÎÙ ÕÂÅÄÉÔØÓÑ, ÞÔÏ TEST ÔÏÞÎÏ ÏÐÒÅÄÅÌ£Î. îÁÐÒÉÍÅÒ, ×ÏÔ ÜÔÏ ÒÁÂÏÔÁÅÔ:
verb(
while (( i++ < 10 )) { echo i is $i; }
)
ÎÏ ÜÔÏ îå ÂÕÄÅÔ ÒÁÂÏÔÁÔØ:
verb(
while let "i++ < 10"; { echo i is $i; } # îÅ ÐÒÁ×ÉÌØÎÏ!
)
ðÒÉÞÉÎÁ × ÔÏÍ, ÞÔÏ ÐÏÓÌÅ mytt(while), ÌÀÂÏÊ ÓÐÉÓÏË ËÏÍÁÎÄ × ÓÉÌÅ. ô.Å. ÓÀÄÁ ×ËÌÀÞÉÔÓÑ ×ÅÓØ ÓÐÉÓÏË mytt(let "i++ < 10"; { echo i $i; }); ÓÉÎÔÁËÓÉÞÅÓËÉÊ ÁÎÁÌÉÚÁÔÏÒ ÐÒÏÓÔÏ ÎÅ ÚÎÁÅÔ, ËÏÇÄÁ ÅÍÕ ÏÓÔÁÎÏ×ÉÔØÓÑ. ëÒÏÍÅ ÔÏÇÏ, ÐÒÏÐÕÓËÁÔØ ÔÏÞËÕ Ó ÚÁÐÑÔÏÊ - ÎÅÐÒÁ×ÉÌØÎÏ, ËÁË ÜÔÏ ÓÄÅÌÁÎÏ mytt({...}) × ÁÒÇÕÍÅÎÔÅ mytt(let). îÏ×ÁÑ ÓÔÒÏËÁ ×ÅÄ£Ô ÓÅÂÑ ÔÁË ÖÅ, ËÁË É ÔÏÞËÁ Ó ÚÁÐÑÔÏÊ, ÔÁË ÞÔÏ ×Ù ÎÅ ÍÏÖÅÔÅ ÓÔÁ×ÉÔØ ÓËÏÂËÕ ÎÁ ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ ËÁË × C.
ô.Ï., ËÏÇÄÁ ÉÓÐÏÌØÚÕÅÔÅ ÜÔÏÔ ÓÉÎÔÁËÓÉÓ, test, ÓÌÅÄÕÀÝÅÅ ÚÁ mytt(while) ÄÏÌÖÎÏ ÂÙÔØ ÚÁËÌÀÞÅÎÏ × ÓËÏÂËÉ, ÌÀÂÙÅ ÉÚ ÎÉÈ: mytt(((...))), mytt([[...]]), mytt({...}) ÉÌÉ mytt((...)) ÂÕÄÕÔ ÒÁÂÏÔÁÔØ. (ïÎÉ ÉÍÅÀÔ ÉÈ ÏÂÙÞÎÏÅ ÓÉÎÔÁËÓÉÞÅÓËÏÅ ÚÎÁÞÅÎÉÅ ÔÏÖÅ, ËÏÎÅÞÎÏ; ÏÎÉ ÎÅÉÚÍÅÎÎÙ.) úÁÍÅÔØÔÅ, ÞÔÏ ÚÄÅÓØ ÔÏÖÅ ÎÅÐÒÉÍÅÎÉÍÁ ÔÏÞËÁ Ó ÚÁÐÑÔÏÊ, Ô.Ë. ÓÌÕÞÁÊ ÓÔÁÎÏ×ÉÔÓÑ ÉÄÅÎÔÉÞÎÙÊ ÐÒÅÄÙÄÕÝÅÍÕ:
verb(
while (( i++ < 10 )); { echo i is $i; } # îÅ ÐÒÁ×ÉÌØÎÏ!
)
üÔÏ ÖÅ ÓÐÒÁ×ÅÄÌÉ×Ï ÄÌÑ ËÏÎÓÔÒÕËÃÉÊ mytt(if) É mytt(until):
verb(
if { true } { echo yes } else { echo no }
)
ÎÏ Ó mytt(for), ËÏÔÏÒÏÍÕ ÎÕÖÅÎ ÔÏÌØËÏ ÓÐÉÓÏË ÓÌÏ×, ×Ù ÍÏÖÅÔÅ ÉÚÂÅÖÁÔØ ÜÔÏÇÏ:
verb(
for foo in a b; { echo foo is $a; bar=$foo; }
)
ÐÏÓËÏÌØËÕ ÁÎÁÌÉÚÁÔÏÒ ÚÎÁÅÔ, ÞÔÏ ÅÍÕ ÎÕÖÎÏ ×Ó£ ÄÏ ÐÅÒ×ÏÊ ÔÏÞËÉ Ó ÚÁÐÑÔÏÊ. ðÏ ÔÏÊ ÖÅ ÐÒÉÞÉÎÅ ÎÅÔ ÐÒÏÂÌÅÍ É ÄÌÑ ËÏÎÓÔÒÕËÃÉÊ mytt(repeat), mytt(case) ÉÌÉ mytt(select); ÆÁËÔÉÞÅÓËÉ, mytt(repeat) ÄÁÖÅ ÎÅ ÎÕÖÄÁÅÔÓÑ × ÔÏÞËÅ Ó ÚÁÐÑÔÏÊ, ÐÏÓËÏÌØËÕ ÏÎ ÓÞÉÔÁÅÔ ÔÏÌØËÏ ÏÄÎÏ ÓÌÏ×Ï.
üÔÏ ÐÏ×ÅÄÅÎÉÅ ÎÅ ÚÁ×ÉÓÉÔ ÏÔ ÐÁÒÁÍÅÔÒÁ SHORTLOOPS (ÓÍ. ÒÕËÏ×ÏÄÓÔ×Ï), ËÏÔÏÒÙÊ ÓÔÒÏÇÏ ÎÁÓÔÒÏÇÏ ÎÅÌØÚÑ ÉÓÐÏÌØÚÏ×ÁÔØ × ÐÒÏÇÒÁÍÍÁÈ, Ô.Ë. ÏÎ ÍÏÖÅÔ ÓÉÌØÎÏ ÚÁÐÕÔÁÔØ.
sect(ðÏÞÅÍÕ ÍÏÑ ÉÓÔÏÒÉÑ ÎÅ ÓÏÈÒÁÎÉÌÁÓØ?)
label(321)
÷ zsh ×ÁÍ ÎÕÖÎÏ ÚÁÄÁÔØ 3 ÐÅÒÅÍÅÎÎÙÈ, ÞÔÏÂÙ ÉÓÔÏÒÉÑ ÓÏÈÒÁÎÑÌÁÓØ ÐÒÉ ×ÙÈÏÄÅ ÉÚ ÛÅÌÌÁ. îÁÐÒÉÍÅÒ,
verb(
HISTSIZE=200
HISTFILE=~/.zsh_history
SAVEHIST=200
)
tt($HISTSIZE) - ÓËÏÌØËÏ ÓÔÒÏË ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÓÏÈÒÁÎÑÔØ,
tt($HISTFILE) - ËÕÄÁ ÚÁÐÉÓÙ×ÁÔØ ÉÓÔÏÒÉÀ,
tt($SAVEHIST) - ÓËÏÌØËÏ ÓÔÒÏË ÚÁÐÉÓÙ×ÁÔØ. óÁÍÏÅ ÐÒÏÓÔÏÅ - ÞÔÏÂÙ ÏÎÁ ÂÙÌÁ ÒÁ×ÎÁ tt($HISTSIZE), ËÁË ÐÏËÁÚÁÎÏ ×ÙÛÅ. åÓÔØ ÔÁËÖÅ ÅÝ£ ÒÁÚÌÉÞÎÙÅ ÐÁÒÁÍÅÔÒÙ, ×ÌÉÑÀÝÉÅ ÎÁ ÉÓÔÏÒÉÀ; ÓÍÏÔÒÉÔÅ ÒÕËÏ×ÏÄÓÔ×Ï.
sect(ëÁË ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÅÒÅÍÅÎÎÏÊ, ÉÍÑ ËÏÔÏÒÏÊ Ñ×ÌÑÅÔÓÑ ÚÎÁÞÅÎÉÅÍ ÄÒÕÇÏÊ ÐÅÒÅÍÅÎÎÏÊ?)
ðÒÏÂÌÅÍÁ ÔÁËÁÑ - Õ ×ÁÓ ÅÓÔØ ÐÅÒÅÍÅÎÎÁÑ tt($E), ÓÏÄÅÒÖÁÝÁÑ ÓÔÒÏËÕ mytt(EDITOR), É ÐÅÒÅÍÅÎÎÁÑ tt($EDITOR), ÓÏÄÅÒÖÁÝÁÑ ÓÔÒÏËÕ mytt(emacs), ÉÌÉ ÞÔÏ-ÎÉÂÕÄØ ÐÏÄÏÂÎÏÅ. ëÁË ×Ù ÄÏÂÅÒ£ÔÅÓØ ÏÔ tt($E) ÄÏ emacs ÏÄÎÉÍ ÜÔÁÐÏÍ?
óÔÁÎÄÁÒÔÎÏÇÏ ÓÐÏÓÏÂÁ ÎÅÔ, ÞÔÏÂÙ ÜÔÏ ÓÄÅÌÁÔØ. ôÅÍ ÎÅ ÍÅÎÅÅ, × zsh ÅÓÔØ ÉÄÉÏÍÁ (ÄÏÓÔÕÐÎÁ ×Ï ×ÓÅÈ ×ÅÒÓÉÑÈ zsh, ÎÁÞÉÎÁÑ Ó 3.0) ÄÌÑ ÜÔÏÇÏ:
verb(
print ${(e)E:+\$$E}
)
ðÏËÁ ÐÒÏÉÇÎÏÒÉÒÕÊÔÅ mytt((e)). mytt(:+) ÚÎÁÞÉÔ: ÅÓÌÉ ÐÅÒÅÍÅÎÎÁÑ tt($E) ÚÁÄÁÎÁ, ÚÁÍÅÎÉÔØ ÓÌÅÄÕÀÝÉÍ, Ô.Å. mytt(\$$E). üÔÏ ÒÁÓÛÉÒÑÅÔÓÑ ÄÏ mytt($EDITOR) ÐÏ ÏÂÙÞÎÙÍ ÐÒÁ×ÉÌÁÍ. îÁËÏÎÅÃ, mytt((e)) ÏÂÏÚÎÁÞÁÅÔ `ÏÃÅÎÉÔÅ ×ÙÒÁÖÅÎÉÅ, ËÏÔÏÒÏÅ ×Ù ÔÏÌØËÏ ÞÔÏ ÓÄÅÌÁÌÉ'. üÔÏ ÄÁÓÔ mytt(emacs).
þÔÏÂÙ ÓÄÅÌÁÔØ ÜÔÏ ÓÔÁÎÄÁÒÔÎÙÍÉ ÓÒÅÄÓÔ×ÁÍÉ, ×ÏÓÐÏÌØÚÕÊÔÅÓØ mytt(eval):
verb(
eval echo \$$E
)
ÐÒÏÉÚ×ÅÄ£Ô ÔÁËÏÊ ÖÅ ÒÅÚÕÌØÔÁÔ.
÷ÅÒÓÉÉ, ÎÁÞÉÎÁÑ Ó 3.1.6, ÐÏÚ×ÏÌÑÀÔ ×ÁÍ ÄÅÌÁÔØ ÜÔÏ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÞÅÒÅÚ ÎÏ×ÙÅ ÆÌÁÇÉ; mytt(${(P)E}).
éÎÏÇÄÁ ÌÀÄÉ ÚÁÍÅÞÁÀÔ, ÞÔÏ ÓÉÎÔÁËÓÉÓ mytt(${${E}}) ÐÒÁ×ÉÌØÎÙÊ É ÏÖÉÄÁÀÔ, ÞÔÏ Õ ÎÅÇÏ ÅÓÔØ ÜÔÏÔ ÜÆÆÅËÔ. ÷ÏÚÍÏÖÎÏ ÄÏÌÖÅÎ, ÎÏ × ÐÅÒ×ÙÅ ÄÎÉ ÓÕÝÅÓÔ×Ï×ÁÎÉÑ zsh ÂÙÌÏ ÎÁÊÄÅÎÏ ÕÄÏÂÎÙÍ ÄÅÌÁÔØ ÒÁÚÌÉÞÎÙÅ ÚÁÍÅÎÙ ÞÅÒÅÚ ÏÄÉÎÁËÏ×ÙÊ ÐÁÒÁÍÅÔÒ; ÎÁÐÒÉÍÅÒ, mytt(${${file##**/}%.*}) ÕÄÁÌÑÅÔ ×Ó£ ÄÏ ÐÏÓÌÅÄÎÅÇÏ ÓÌÅÛÁ × ÆÁÊÌÅ mytt($file), ÚÁÔÅÍ ×Ó£ ÏÔ ÐÏÓÌÅÄÎÅÊ ÔÏÞËÉ, ×ËÌÀÞÁÑ É Å£(ÐÏÐÒÏÂÕÊÔÅ, ÂÕÄÅÔ ÒÁÂÏÔÁÔØ!). ô.Þ. × mytt(${${E}}), ×ÎÕÔÒÅÎÎÉÅ mytt(${...}) × ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ ÎÉÞÅÇÏ ÎÅ ÄÅÌÁÀÔ.
sect(ëÁË ÐÒÅÄÏÔ×ÒÁÔÉÔØ ÚÁÔÉÒÁÎÉÅ ÓÏÏÂÝÅÎÉÑ, × ËÏÔÏÒÏÍ ÎÅÔ ÓÉÍ×ÏÌÁ ÎÏ×ÏÊ ÓÔÒÏËÉ, ÐÒÉÇÌÁÛÅÎÉÅÍ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ?)
ðÒÏÂÌÅÍÁ ×ÏÔ × Þ£Í:
verb(
% echo -n foo
%
)
É tt(foo) ÐÅÒÅÐÉÓÁÌÁÓØ ÐÒÉÇÌÁÛÅÎÉÅÍ tt(%). üÔÏ ÐÒÏÉÓÈÏÄÉÔ ÐÏÔÏÍÕ, ÞÔÏ ÐÁÒÁÍÅÔÒ tt(PROMPT_CR) ÁËÔÉ×ÅÎ ÐÏ ÕÍÏÌÞÁÎÉÀ, ËÏÔÏÒÙÊ ×ÙÐÏÌÎÑÅÔ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ ÐÅÒÅÄ ÐÒÉÇÌÁÛÅÎÉÅÍ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÒÏ×ÅÒÉÔØ, ÞÔÏ ÒÅÄÁËÔÏÒ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ ÚÎÁÅÔ × ËÁËÏÍ ÏÎ ÓÔÏÌÂÃÅ (ÜÔÏ ÎÕÖÎÏ ÄÌÑ ÐÒÁ×ÉÌØÎÏÇÏ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÑ ÐÒÁ×ÏÓÔÏÒÏÎÎÅÇÏ ÐÒÉÇÌÁÛÅÎÉÑ (mytt($RPROMPT), mytt($RPS1)) É, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÒÁÚÒÕÛÅÎÉÑ ÜËÒÁÎÁ, ËÏÇÄÁ ×ÙÐÏÌÎÑÅÔÓÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ ÓÔÒÏËÉ). åÓÌÉ ×Ù ÄÏÂÁ×ÉÔÅ tt(unsetopt promptcr) × ×ÁÛ tt(.zshrc), ×Ù Õ×ÉÄÉÔÅ ÌÀÂÏÊ ÞÁÓÔÉÞÎÙÊ ×Ù×ÏÄ, ÎÏ ×ÁÛ ÜËÒÁÎ ÍÏÖÅÔ ×ÙÇÌÑÄÅÔØ ÓÔÒÁÎÎÏ ÐÏÓÌÅ ÎÁÖÁÔÉÑ "Enter" ÉÌÉ ÏÂÎÏ×ÌÅÎÉÑ ÜËÒÁÎÁ.
äÒÕÇÏÅ ÒÅÛÅÎÉÅ ÄÌÑ ÍÎÏÇÉÈ ÔÅÒÍÉÎÁÌÏ× - ÜÔÏ ÏÐÒÅÄÅÌÉÔØ ÆÕÎËÃÉÀ precmd, ËÏÔÏÒÁÑ ×Ù×ÏÄÉÔ ÛÉÒÉÎÕ ÜËÒÁÎÎÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á, ×ÏÔ ÔÁË:
verb(
function precmd {
echo -n ${(l:$COLUMNS:::):-}
}
)
(ïÂßÑÓÎÅÎÉÅ: ÐÕÓÔÏÊ ÐÁÒÁÍÅÔÒ ÒÁÓÛÉÒÑÅÔ ËÏÌÉÞÅÓÔ×Ï ÚÁÐÏÌÎÅÎÎÙÈ ËÏÌÏÎÏË ÎÁ ÜËÒÁÎÅ.) æÕÎËÃÉÑ precmd ÂÕÄÅÔ ÔÏÌØËÏ ÏÐÕÓËÁÔØ ÜËÒÁÎ ÎÁ ÎÏ×ÕÀ ÓÔÒÏËÕ, ÅÓÌÉ ×Ù×ÏÄ ÂÙÌ × ÓÔÒÏËÅ ÐÒÉÇÌÁÛÅÎÉÑ, ÉÎÁÞÅ ÄÏÐÏÌÎÉÔÅÌØÎÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÕÄÅÔ ÕÄÁÌÅÎÏ ÄÅÊÓÔ×ÉÅÍ tt(PROMPT_CR). èÏÔÑ ÜÔÏ ÏÂÙÞÎÏ ×ÙÇÌÑÄÉÔ ÐÒÅËÒÁÓÎÏ, ÒÅÚÕÌØÔÁÔ ÐÒÅÄÙÄÕÝÅÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÂÕÄÅÔ ×ËÌÀÞ£Î, ËÏÇÄÁ ×Ù ×ÙÄÅÌÑÅÔÅ ÔÅËÓÔ ÍÙÛØÀ.
ïÄÎÁ ÐÏÓÌÅÄÎÑÑ ÁÌØÔÅÒÎÁÔÉ×Á - ÐÏÓÔÁ×ÉÔØ ÐÅÒÅ×ÏÄ ÓÔÒÏËÉ × ÐÒÉÇÌÁÛÅÎÉÉ -- ÓÍÏÔÒÉÔÅ ×ÏÐÒÏÓ link(3.13)(313) ÄÌÑ ÜÔÏÇÏ.
sect(þÔÏ ÓÌÕÞÉÌÏÓØ Ó ÏÐÅÒÁÃÉÑÍÉ ËÏÐÉÒÏ×ÁÎÉÑ É ×ÙÒÅÚÁÎÉÑ × xterm?)
÷ ÂÏÌØÛÉÎÓÔ×Å ÓÏ×ÒÅÍÅÎÎÙÈ UNIX ÓÉÓÔÅÍÁÈ, ×ÙÒÅÚÁÎÉÅ ÔÅËÓÔÁ ÉÚ ÏÄÎÏÇÏ ÏËÎÁ É ×ÓÔÁ×ËÁ × ÄÒÕÇÏÅ ÄÏÌÖÎÙ ÒÁÂÏÔÁÔØ ÏÔÌÉÞÎÏ. ôÅÍ ÎÅ ÍÅÎÅÅ, ÎÅ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ ÅÓÔØ ÐÒÏÂÌÅÍÙ, Ó×ÑÚÁÎÎÙÅ Ó ÔÅÍ, ËÁË ÏÐÅÒÉÒÏ×ÁÔØ ÔÅÒÍÉÎÁÌÏÍ: ÂÏÌØÛÉÎÓÔ×Ï ÐÒÏÇÒÁÍÍ ÏÖÉÄÁÀÔ, ÞÔÏ ÔÅÒÍÉÎÁÌ × ÒÅÖÉÍÅ `canonical input mode', ÜÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÐÒÏÇÒÁÍÍÁ ÐÅÒÅÄÁ£Ô ×ÓÀ ÓÔÒÏËÕ ÎÁ ××ÏÄ ÚÁ ÏÄÉÎ ÒÁÚ, × ÔÏ ÖÅ ×ÒÅÍÑ, ÄÌÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÛÅÌÌÕ ÎÕÖÅÎ ÓÉÍ×ÏÌ ÚÁ ÏÄÉÎ ÒÁÚ É ÏÎ ÄÏÌÖÅÎ ÂÙÔØ × ÒÅÖÉÍÅ `non-canonical input mode'. ÷ ÓÉÓÔÅÍÁÈ, Ï ËÏÔÏÒÙÈ ÉÄ£Ô ÒÅÞØ, ××ÏÄ ÍÏÖÅÔ ÂÙÔØ ÐÏÔÅÒÑÎ ÉÌÉ ÐÅÒÅÕÐÏÒÑÄÏÞÅÎ, ËÏÇÄÁ ÉÚÍÅÎÑÀÔÓÑ ÒÅÖÉÍÙ. ÷ ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ ÓÕÝÅÓÔ×ÕÀÔ Ä×Å ÒÁÚÌÉÞÎÙÅ ÐÒÏÂÌÅÍÙ:
enumerate(
myeit() ëÏÇÄÁ ×Ù ×ÓÔÁ×ÌÑÅÔÅ ÞÔÏ-ÎÉÂÕÄØ × ÔÏ ×ÒÅÍÑ, ËÏÇÄÁ ÐÒÏÇÒÁÍÍÁ ÚÁÐÕÝÅÎÁ, ÛÅÌÌ ÉÚ×ÌÅÞ£Ô ÜÔÏ ÐÏÚÖÅ. ïÂÙÞÎÏ, ÂÙÌ ÔÅÓÔ, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÔÏÌØËÏ ÎÁ ÓÉÓÔÅÍÁÈ, ÇÄÅ ÐÒÏÂÌÅÍÁ ÔÏÞÎÏ ÓÕÝÅÓÔ×ÕÅÔ, Ô.Þ. ÜÔÏ ×ÏÚÍÏÖÎÏ ÎÁ ÓÉÓÔÅÍÁÈ, ËÏÔÏÒÙÅ ÎÅ ÐÒÏÛÌÉ ÜÔÏÔ ÔÅÓÔ (ÎÁÐÒÉÍÅÒ, ÎÁ ÏÐÒÅÄÅÌ£ÎÎÙÈ ×ÅÒÓÉÑÈ IRIX, ËÁË ×ÙÑÓÎÉÌÏÓØ); ÐÒÏÄÏÌÖÅÎÉÑ ÓÔÒÏË ÔÁËÖÅ ÎÅ ÂÙÌÉ ÏÂÒÁÂÏÔÁÎÙ ÐÒÁ×ÉÌØÎÏ. âÏÌÅÅ ÎÁÄ£ÖÎÙÊ ÍÅÔÏÄ ÐÏÑ×ÉÌÓÑ Ó ×ÅÒÓÉÊ 3.0.6 É 3.1.6.
myeit() ëÏÇÄÁ ÛÅÌÌ ÖÄ£Ô ××ÏÄÁ, Á ×Ù ×ÓÔÁ×ÌÑÅÔÅ ËÕÓÏË ÔÅËÓÔÁ, ÓÏÄÅÒÖÁÝÉÊ ÂÏÌÅÅ ÏÄÎÏÊ ÚÁ×ÅÒÛ£ÎÎÏÊ ËÏÍÁÎÄÙ. ë ÎÅÓÞÁÓÔØÀ, ÜÔÏ ÂÏÌÅÅ ÔÒÕÄÎÁÑ ÐÒÏÂÌÅÍÁ: ÒÅÄÁËÔÏÒ ÕÖÅ ÓÔÁÌ ÁËÔÉ×ÎÙÍ, ÎÏ ÅÇÏ ÎÕÖÎÏ ×ÙËÌÀÞÉÔØ, ËÏÇÄÁ ÐÅÒ×ÁÑ ËÏÍÁÎÄÁ ×ÙÐÏÌÎÑÅÔÓÑ. ûÅÌÌ ÒÏ×ÎÙÍ ÓÞ£ÔÏÍ ÎÅ ÚÎÁÅÔ: ÏÓÔÁ×ÛÉÊÓÑ ÔÅËÓÔ - ÜÔÏ ÐÁÒÁÍÅÔÒÙ ËÏÍÁÎÄÙ ÉÌÉ ÄÒÕÇÉÅ ËÏÍÁÎÄÙ ÛÅÌÌÁ, Ô.Å. ÐÒÏÓÔÏ ÎÉÞÅÇÏ ÎÅ ÍÏÖÅÔ ÓÄÅÌÁÔØ. ôÅÍ ÎÅ ÍÅÎÅÅ, ÅÓÔØ ÏÄÎÁ ÈÉÔÒÏÓÔØ: ÐÏÓÔÁ×ØÔÅ `tt({)' ÎÁ ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ, ÚÁÔÅÍ ×ÓÔÁ×ØÔÅ ÔÅËÓÔ ÄÌÑ ××ÏÄÁ, Á ÐÏÔÏÍ, ÔÁËÖÅ ÎÁ ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ, ÎÁÐÉÛÉÔÅ `tt(})'. ûÅÌÌ ÎÅ ÂÕÄÅÔ ÎÉÞÅÇÏ ×ÙÐÏÌÎÑÔØ ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ÎÅ ÓÞÉÔÁÅÔ ÚÁËÒÙ×ÁÀÝÕÀÓÑ ÓËÏÂËÕ; ×ÅÓØ ××ÏÄ ÞÉÔÁÅÔÓÑ ÐÏÓÔÒÏÞÎÏ (ÄÌÑ ÎÁÄ£ÖÎÏÓÔÉ ÍÏÇÕÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÉÓÐÒÁ×ÌÅÎÉÑ, ÕÐÏÍÑÎÕÔÙÅ ×ÙÛÅ).
)
sect(ëÁË ÍÎÅ ÒÁÚÕËÒÁÓÉÔØ ÐÒÉÇÌÁÛÅÎÉÅ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ × Ã×ÅÔÎÏÍ xterm?)
(éÌÉ `color xterm', ÅÓÌÉ ×Ù ÞÉÔÁÅÔÅ × Þ£ÒÎÏ-ÂÅÌÏÍ.) ÷ÁÍ ÎÕÖÎÏ ÎÁÊÔÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ, ËÏÔÏÒÁÑ ÇÅÎÅÒÉÒÕÅÔ ÒÁÚÌÉÞÎÙÅ Ã×ÅÔÁ, ÉÚ ÒÕËÏ×ÏÄÓÔ×Á Ë ×ÁÛÅÍÕ ÜÍÕÌÑÔÏÒÕ ÔÅÒÍÉÎÁÌÁ; ÅÓÔØ ANSI ÓÔÁÎÄÁÒÔ Ï Ã×ÅÔÁÈ. ÷ ÎÅÄÁ×ÎÉÈ (3.1.6) ÄÉÓÔÒÉÂÕÔÉ×ÁÈ zsh ÐÏÑ×ÉÌÁÓØ ÓÉÓÔÅÍÁ ÔÅÍ ÄÌÑ Ã×ÅÔÏ×ÏÊ ÏÂÒÁÂÏÔËÉ; ÄÁÖÅ ÅÓÌÉ ×Ù ÜÔÏÇÏ ÎÅ ×ÉÄÉÔÅ, ÕÓÔÁÎÏ×ÌÅÎÎÁÑ ÆÕÎËÃÉÑ `mytt(colors)' (ÏÂÏÚÎÁÞÁÅÔ `colours', ÅÓÌÉ ×Ù ÞÉÔÁÅÔÅ ÜÔÏ × Þ£ÒÎÏ-ÂÅÌÏÍ) ÄÁ£Ô ÜËÒÁÎÉÒÏ×ÁÎÎÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. ÷Ù ÄÏÌÖÎÙ ÎÁÐÉÓÁÔØ ËÏÄ ÐÒÉÍÅÒÎÏ ÔÁË (ÚÁÉÍÓÔ×Ï×ÁÎÏ ÏÔ Oliver Kiddle):
verb(
PS1=$'%{\e[1;31m%}<úÄÅÓØ ×ÁÛÅ ÐÒÉÇÌÁÛÅÎÉÅ>%{\e[0m%}'
)
mytt($') ×ÎÅ ËÁ×ÙÞÅË ×ÅÒÎ£Ô `mytt(\e)' × ÎÁÓÔÏÑÝÉÊ ÜËÒÁÎÉÒÏ×ÁÎÎÙÊ ÓÉÍ×ÏÌ; ÜÔÏ ÒÁÂÏÔÁÅÔ ÔÏÌØËÏ Ó ×ÅÒÓÉÉ 3.1.4, Ô.Å. ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ 3.0.x, ×ÁÍ ÎÕÖÎÏ ÞÔÏ-ÎÉÂÕÄØ ÐÏÈÏÖÅÅ ÎÁ
verb(
PS1="$(print '%{\e[1;31m%}<ðÒÉÇÌÁÛÅÎÉÅ ÚÄÅÓØ>%{\e[0m%}')"
)
`mytt(%{...%})' ÉÓÐÏÌØÚÕÅÔÓÑ × ÐÒÉÇÌÁÛÅÎÉÑÈ ÄÌÑ ÓÔÒÏË, ËÏÔÏÒÙÅ ÎÅ ÐÏËÁÚÙ×ÁÀÔÓÑ ËÁË ÓÉÍ×ÏÌÙ, Ô.Þ. ËÏÄ ÐÒÉÇÌÁÛÅÎÉÑ ÎÅ ÂÕÄÅÔ ÐÒÏÓÞÉÔÙ×ÁÔØ ÄÌÉÎÕ ÐÒÉÇÌÁÛÅÎÉÑ, Ô.Ë. ÜÔÏ ÍÏÖÅÔ ÐÌÏÈÏ ÓËÁÚÁÔØÓÑ ÎÁ ÒÅÄÁËÔÉÒÏ×ÁÎÉÉ. òÅÚÕÌØÔÁÔ ËÏÄÁ `mytt(<ESC>[1;31m)' ÓÄÅÌÁÅÔ ÐÒÉÇÌÁÛÅÎÉÅ ËÒÁÓÎÙÍ, Á `mytt(<ESC>[0m)' ×ÅÒÎ£Ô ×Ó£ ÎÁ ÍÅÓÔÏ, Ô.Þ. ÏÓÔÁÌØÎÁÑ ÞÁÓÔØ ÓÔÒÏËÉ ÎÅ ÉÚÍÅÎÉÔÓÑ.
sect(ðÏÞÅÍÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ËÏÍÁÎÄÙ `tt(foo 2>&1 >foo.out | bar)' ×Ù×ÏÄ ÄÕÂÌÉÒÕÅÔÓÑ?)
üÔÏ ÎÅÍÎÏÇÏ ÎÅÏÖÉÄÁÎÎÙÊ ÜÆÆÅËÔ ÐÁÒÁÍÅÔÒÁ tt(MULTIOS), ËÏÔÏÒÙÊ ÚÁÄÁÎ ÐÏ ÕÍÏÌÞÁÎÉÀ. äÁ×ÁÊÔÅ ×ÚÇÌÑÎÅÍ ÂÌÉÖÅ:
verb(
foo 2>&1 >foo.out | bar
)
÷Ù ×ÏÚÍÏÖÎÏ ÏÖÉÄÁÅÔÅ, ÞÔÏ ËÏÍÁÎÄÁ mytt(foo) ÐÅÒÅÎÁÐÒÁ×ÉÔ Ó×ÏÊ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ × ÐÏÔÏË ××ÏÄÁ ËÏÍÁÎÄÙ mytt(bar), × ÔÏ ÖÅ ×ÒÅÍÑ Ó×ÏÉ ÏÛÉÂËÉ ÂÕÄÕÔ × ÆÁÊÌÅ mytt(foo.out). ÷ ÄÅÊÓÔ×ÉÔÅÌØÎÏÓÔÉ, ×Ù ×ÉÄÉÔÅ, ÞÔÏ ×Ù×ÏÄ ÉÄ£Ô × ÆÁÊÌ É × ÐÏÔÏË. þÔÏ ÂÙ ÓÔÁÌÏ ÑÓÎÅÅ, ×ÏÔ ÔÁËÏÊ ÖÅ ÐÒÉÍÅÒ Ó ÒÅÁÌØÎÙÍÉ ËÏÍÁÎÄÁÍÉ:
verb(
% { print output; print error >&2 } 2>&1 >foo.out | sed 's/error/erratic'
erratic
output
% cat foo.out
output
)
É ×Ù ×ÉÄÉÔÅ, ËÁË `tt(output)' ÐÏÑ×ÌÑÅÔÓÑ Ä×ÁÖÄÙ.
óÔÁÎÅÔ ÅÝ£ ÑÓÎÅÅ, ÞÔÏ ÐÒÏÉÓÈÏÄÉÔ, ÅÓÌÉ ÍÙ ÎÁÐÉÛÅÍ:
verb(
% print output >foo1.out >foo2.out
% cat foo1.out
output
% cat foo2.out
output
)
÷Ù ÎÁ×ÅÒÎÏÅ ÕÚÎÁÌÉ, ÞÔÏ ÜÔÏ ÓÔÁÎÄÁÒÔÎÁÑ ×ÏÚÍÏÖÎÏÓÔØ zsh, ÎÁÚÙ×ÁÅÍÁÑ `tt(multios)' É ËÏÎÔÒÏÌÉÒÕÅÍÁÑ ÐÁÒÁÍÅÔÒÏÍ Ó ÔÁËÉÍ ÖÅ ÉÍÅÎÅÍ, ÐÏÓÒÅÄÓÔ×ÏÍ Å£, ×Ù×ÏÄ ËÏÐÉÒÕÅÔÓÑ × ÏÂÁ ÆÁÊÌÁ, ËÏÇÄÁ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ ÐÏÑ×ÌÑÅÔÓÑ Ä×ÁÖÄÙ. ÷ ÐÅÒ×ÏÍ ÐÒÉÍÅÒÅ ÐÒÏÉÓÈÏÄÉÔ ÔÏ ÖÅ ÓÁÍÏÅ, ÔÅÍ ÎÅ ÍÅÎÅÅ ×ÔÏÒÏÅ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ ÚÁÍÁÓËÉÒÏ×ÁÎÏ ËÁË ÐÏÔÏË. åÓÌÉ ×Ù ÈÏÔÉÔÅ ÕÂÒÁÔØ ÔÁËÏÊ ÜÆÆÅËÔ, ×ÁÍ ÎÕÖÎÏ ÓÂÒÏÓÉÔØ ÐÁÒÁÍÅÔÒ mytt(MULTIOS).
chapter(óÅËÒÅÔÙ ÚÁ×ÅÒÛÅÎÉÑ)
ðÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ ÉÓÐÏÌØÚÕÅÔ ËÏÍÁÎÄÕ `compctl' - ÜÔÏ ÏÄÎÁ ÉÚ ÎÁÉÂÏÌÅÅ ÍÏÝÎÙÈ, Á ÔÁËÖÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÚÁÐÕÔÙ×ÁÀÝÉÈ, ÏÓÏÂÅÎÎÏÓÔÅÊ zsh; ÚÄÅÓØ Ñ ÐÒÉ×ÏÖÕ ÎÅÂÏÌØÛÏÅ ××ÅÄÅÎÉÅ. îÁÂÏÒ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÚÁ×ÅÒÛÅÎÉÊ Ó ÐÒÉÍÅÒÁÍÉ ÉÄ£Ô Ó ÉÓÈÏÄÎÉËÏÍ × ÆÁÊÌÅ Misc/compctl-examples; ÚÁ×ÅÒÛÅÎÉÑ ÄÌÑ ÍÎÏÇÉÈ ÉÚ ÎÁÉÂÏÌÅÅ ÕÐÏÔÒÅÂÉÍÙÈ ËÏÍÁÎÄ ÍÏÇÕÔ ÂÙÔØ ÎÁÊÄÅÎÙ ÔÁÍ ÖÅ.
åÓÌÉ ÜÔÏ ÎÅ ÕÓÔÒÁÉ×ÁÅÔ ×ÁÓ, ×Ù ÍÏÖÅÔÅ ×ÙÂÒÁÔØ ÎÏ×ÕÀ, ÂÏÌÅÅ ÉÚÑÝÎÕÀ ÓÉÓÔÅÍÕ ÚÁ×ÅÒÛÅÎÉÑ, ËÏÔÏÒÁÑ ÐÏÑ×ÉÌÁÓØ × ×ÅÒÓÉÉ 3.1.6. ïÎÁ ÏÓÎÏ×ÁÎÁ ÎÁ ÆÕÎËÃÉÑÈ, ×ÙÚÙ×ÁÅÍÙÈ Á×ÔÏÍÁÔÉÞÅÓËÉ ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ × ËÏÎËÒÅÔÎÏÍ ËÏÎÔÅËÓÔÅ (ÎÁÐÒÉÍÅÒ, ÆÕÎËÃÉÑ tt(_cd) ÏÐÅÒÉÒÕÅÔ ÚÁ×ÅÒÛÅÎÉÅÍ ÄÌÑ ËÏÍÁÎÄÙ tt(cd)) É ÕÓÔÁÎÏ×ÌÅÎÎÙÈ Á×ÔÏÍÁÔÉÞÅÓËÉ Ó ÛÅÌÌÏÍ, Ô.Å. ×Ó£ ÞÔÏ ×ÁÍ ÎÕÖÎÏ ÓÄÅÌÁÔØ, × ÐÒÉÎÃÉÐÅ, ÜÔÏ ÒÁÚÍÅÓÔÉÔØ ÉÈ ÄÌÑ ÚÁÇÒÕÚËÉ. äÏÓÔÁÔÏÞÎÏ ÄÏÐÉÓÁÔØ `tt(autoload -U compinit; compinit)' × ÆÁÊÌ tt(.zshrc). ïÓÔÁÌØÎÁÑ ÓÅËÃÉÑ ÒÁÓÓËÁÚÙ×ÁÅÔ Ï ÓÔÁÒÏÊ ÓÉÓÔÅÍÅ ÚÁ×ÅÒÛÅÎÉÑ.
sect(þÔÏ ÔÁËÏÅ ÚÁ×ÅÒÛÅÎÉÅ?)
`úÁ×ÅÒÛÅÎÉÅ' (`Completion') - ÜÔÏ ËÏÇÄÁ ×Ù ÎÁÖÉÍÁÅÔÅ ËÏÍÁÎÄÎÕÀ ËÌÁ×ÉÛÕ (TAB ÐÏ ÕÍÏÌÞÁÎÉÀ) É ÛÅÌÌ ÐÙÔÁÅÔÓÑ ÕÇÁÄÁÔØ ÓÌÏ×Ï, ËÏÔÏÒÏÅ ×Ù ××ÏÄÉÔÅ, É ÚÁËÏÎÞÉÔØ ÅÇÏ --- ÏÓÏÂÅÎÎÏ ÃÅÎÎÏ ÄÌÑ ÄÌÉÎÎÙÈ ÉͣΠÆÁÊÌÏ× × ÞÁÓÔÎÏÓÔÉ, ÎÏ × zsh ÎÁÍÎÏÇÏ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ.
åÓÔØ ÅÝ£ ÏÄÉÎ Ó×ÑÚÁÎÎÙÊ ÐÒÏÃÅÓÓ, `ÒÁÓÛÉÒÅÎÉÅ' (`expansion'), ËÏÇÄÁ ÛÅÌÌ ×ÉÄÉÔ, ÞÔÏ ×Ù ××ÅÌÉ ÞÔÏ-ÔÏ, ÞÔÏ ÍÏÖÎÏ ÐÒÅÏÂÒÁÚÏ×ÁÔØ ×Ï ÞÔÏ-ÔÏ ÅÝ£, ÔÁË ÎÁÐÒÉÍÅÒ ÐÅÒÅÍÅÎÎÁÑ ÐÒÅÏÂÒÁÚÕÅÔÓÑ × Å£ ÚÎÁÞÅÎÉÅ ($PWD ÓÔÁÎÅÔ /home/users/mydir) ÉÌÉ ÓÓÙÌËÁ ÎÁ ÉÓÔÏÒÉÀ (!! ÓÔÁÎÅÔ ×ÓÅÍ ÎÁ ÐÏÓÌÅÄÎÅÊ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ). ÷ zsh, ËÏÇÄÁ ×Ù ÎÁÖÉÍÁÅÔÅ TAB, ÛÅÌÌ ÓÍÏÔÒÉÔ, ÍÏÖÎÏ ÌÉ ÓÄÅÌÁÔØ ÒÁÓÛÉÒÅÎÉÅ; ÅÓÌÉ ÄÁ, ÔÏ ÏÎÏ ×ÙÐÏÌÎÑÅÔÓÑ, ÉÎÁÞÅ ÏÎ ÐÙÔÁÅÔÓÑ ×ÙÐÏÌÎÉÔØ ÚÁ×ÅÒÛÅÎÉÅ. (÷Ù ÍÏÖÅÔÅ ÐÏÓÍÏÔÒÅÔØ, ÂÕÄÅÔ ÌÉ ÓÌÏ×Ï ÒÁÓÛÉÒÅÎÏ --- ÎÅ ÚÁ×ÅÒÛÅÎÏ --- ÞÅÒÅÚ TAB, ÎÁÂÒÁ× mytt(\C-x g), ÏÔÏÂÒÁÚÉÔÓÑ ÓÐÉÓÏË ÒÁÓÛÉÒÅÎÉÊ.) òÁÓÛÉÒÅÎÉÅ ÏÂÙÞÎÏ ÄÏ×ÏÌØÎÏ ÉÎÔÕÉÔÉ×ÎÏ É ÎÅ ËÏÎÔÒÏÌÉÒÕÅÔÓÑ ÐÏÌØÚÏ×ÁÔÅÌÅÍ; ÏÓÔÁ×ÛÕÀÓÑ ÇÌÁ×Õ Ñ ÂÕÄÕ ÏÂÓÕÖÄÁÔØ ÔÏÌØËÏ ÚÁ×ÅÒÛÅÎÉÅ.
sect(þÔÏ ÍÏÖÅÔ ÂÙÔØ ÚÁ×ÅÒÛÅÎÏ?)
label(42)
óÁÍÙÊ ÐÒÏÓÔÏÊ ×ÉÄ - ÚÁ×ÅÒÛÅÎÉÅ ÉͣΠÆÁÊÌÏ×, ÏÂÓÕÖÄÁ×ÛÅÅÓÑ ×ÙÛÅ. äÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ×Ù ÎÅ ÓÄÅÌÁÅÔÅ ÓÐÅÃÉÁÌØÎÏÅ ÒÁÚÍÅÝÅÎÉÅ, ËÁË ÏÐÉÓÁÎÏ ×ÙÛÅ, ËÏÇÄÁ ×Ù ÎÁÂÅÒ£ÔÅ ÉÍÑ ËÏÍÁÎÄÙ, ×Ó£ ÏÓÔÁÌØÎÏÅ ÂÕÄÅÔ ÐÏÄÒÁÚÕÍÅ×ÁÔØÓÑ ÓÉÓÔÅÍÏÊ ÚÁ×ÅÒÛÅÎÉÑ ËÁË ÉÍÅÎÁ ÆÁÊÌÏ×. åÓÌÉ ×Ù ××ÅÌÉ ÞÁÓÔØ ÓÌÏ×Á É ÎÁÖÁÌÉ TAB, zsh ÐÏÓÍÏÔÒÉÔ, ÅÓÔØ ÌÉ ÓÏ×ÐÁÄÅÎÉÑ ÐÅÒ×ÏÊ ÞÁÓÔÉ ÆÁÊÌÏ×ÏÇÏ ÉÍÅÎÉ É Á×ÔÏÍÁÔÉÞÅÓËÉ ×ÓÔÁ×ÉÔ ÏÓÔÁ×ÛÅÀÓÑ.
äÒÕÇÏÊ ÐÒÏÓÔÏÊ ÔÉÐ - ÚÁ×ÅÒÛÅÎÉÅ ËÏÍÁÎÄ, ËÏÔÏÒÏÅ ÐÒÉÍÅÎÑÅÔÓÑ (ÅÓÔÅÓÔ×ÅÎÎÏ) Ë ÐÅÒ×ÏÍÕ ÓÌÏ×Õ × ÓÔÒÏËÅ. ÷ ÜÔÏÍ ÓÌÕÞÁÅ, zsh ÓÞÉÔÁÅÔ ÓÌÏ×Ï ÎÅËÏÔÏÒÏÊ ×ÙÐÏÌÎÑÅÍÏÊ ËÏÍÁÎÄÏÊ, ÌÅÖÁÝÅÊ × ×ÁÛÅÊ $PATH (ÉÌÉ ÞÅÍ-ÌÉÂÏ ÅÝ£, ÞÔÏ ÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ, ÔÉÐÁ ×ÓÔÒÏÅÎÎÏÊ ËÏÍÁÎÄÙ, ÆÕÎËÃÉÉ ÉÌÉ ÐÓÅ×ÄÏÎÉÍÁ) É ÐÙÔÁÅÔÓÑ ÚÁ×ÅÒÛÉÔØ ÅÇÏ.
äÒÕÇÉÅ ÆÏÒÍÙ ÚÁ×ÅÒÛÅÎÉÑ ÔÒÅÂÕÀÔ ÓÐÅÃÉÁÌØÎÏÇÏ ÒÁÚÍÅÝÅÎÉÑ. ðÏÓÍÏÔÒÉÔÅ ÓÅËÃÉÀ ÒÕËÏ×ÏÄÓÔ×Á ÄÌÑ compctl, ÞÔÏÂÙ ÐÏÌÕÞÉÔØ ×ÅÓØ ÓÐÉÓÏË ÆÌÁÇÏ×: ×Ù ÍÏÖÅÔÅ ÓÄÅÌÁÔØ ËÏÍÁÎÄÙ ÚÁ×ÅÒÛÅÎÉÑ ÉͣΠÐÅÒÅÍÅÎÎÙÈ, ÉͣΠÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÚÁÄÁÞ, É Ô.Ä., É Ô.Ð.
îÁÐÒÉÍÅÒ, ÏÂÙÞÎÏÅ ÉÓÐÏÌØÚÏ×ÁÎÉÅ - Õ ×ÁÓ ÅÓÔØ ÍÁÓÓÉ× tt($hosts), ËÏÔÏÒÙÊ ÓÏÄÅÒÖÉÔ ÉÍÅÎÁ ÄÒÕÇÉÈ ÍÁÛÉÎ, ËÏÔÏÒÙÅ ×Ù ÞÁÓÔÏ ÉÓÐÏÌØÚÕÅÔÅ × ÓÅÔÉ:
verb(
hosts=(fred.ph.ku.ac.uk snuggles.floppy-bunnies.com here.there.edu)
)
ÔÏÇÄÁ ×Ù ÍÏÖÅÔÅ ÕËÁÚÁÔØ zsh, ÞÔÏ ËÏÇÄÁ ×Ù ÉÓÐÏÌØÚÕÅÔÅ telnet (ÉÌÉ ftp, ÉÌÉ ...), ÁÒÇÕÍÅÎÔÏÍ ÂÕÄÅÔ ÏÄÎÏ ÉÚ ÜÔÉÈ ÉÍ£Î:
verb(
compctl -k hosts telnet ftp ...
)
Ô.Å. ÅÓÌÉ ×Ù ÎÁÂÅÒ£ÔÅ mytt(telnet fr) É ÎÁÖÍ£ÔÅ TAB, ÏÓÔÁÌØÎÁÑ ÞÁÓÔØ ÉÍÅÎÉ ÐÏÑ×ÉÔÓÑ ÓÁÍÁ.
åÝ£ ÂÏÌÅÅ ÍÏÝÎÙÊ ÐÁÒÁÍÅÔÒ tt(compctl) (tt(-g)) - ÕËÁÚÁÔØ zsh, ÞÔÏ ÔÏÌØËÏ ÏÐÒÅÄÅÌ£ÎÎÙÅ ÉÍÅÎÁ ÆÁÊÌÏ× ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ. áÒÇÕÍÅÎÔ tt(-g) - ÜÔÏ ÔÏÞÎÏ ÔÁË ÖÅ, ËÁË É ÕÎÉ×ÅÒÓÁÌØÎÙÊ ÏÂÒÁÚÅÃ Ó ÏÂÙÞÎÙÍÉ ÓÐÅÃÉÁÌØÎÙÍÉ ÓÉÍ×ÏÌÁÍÉ mytt(*), mytt(?), É Ô.Ä. ÷ ÏÐÅÒÁÔÏÒÅ compctl ÉÈ ÎÕÖÎÏ ÚÁËÌÀÞÁÔØ × ËÁ×ÙÞËÉ, ÞÔÏÂÙ ÉÚÂÅÖÁÔØ ÔÒÁËÔÏ×ÁÎÉÑ ËÁË ÉͣΠÆÁÊÌÏ×. îÁÐÒÉÍÁÒ,
verb(
compctl -g '*.(ps|eps)' ghostview
)
ÕËÁÚÙ×ÁÅÔ zsh, ÞÔÏ ÅÓÌÉ ×Ù ÎÁÖÍ£ÔÅ TAB ÎÁ ÁÒÇÕÍÅÎÔÅ ÐÏÓÌÅ ËÏÍÁÎÄÙ ghostview, ÔÏÌØËÏ ÆÁÊÌÙ, ÏËÁÎÞÉ×ÁÀÝÉÅÓÑ ÎÁ mytt(.ps) ÉÌÉ mytt(.eps) ÂÕÄÕÔ ÒÁÓÓÍÁÔÒÉ×ÁÔØÓÑ ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ.
ðÏÌÅÚÎÏÅ ÄÏÐÏÌÎÅÎÉÅ ÄÌÑ zsh ÐÏÑ×ÉÌÏÓØ × ×ÅÒÓÉÉ 3.1 - ÚÁ×ÅÒÛÅÎÉÅ ÄÉÒÅËÔÏÒÉÊ:
verb(
compctl -/ cd
)
ðÅÒÅÄ ÔÅÍ, ËÁË ÉÓÐÏÌØÚÏ×ÁÔØ tt(-g): ÄÁÎÎÁÑ ËÏÍÁÎÄÁ ÚÁÂÏÔÉÔÓÑ Ï ÔÁËÉÈ ×ÅÝÁÈ, ËÁË ÉÇÎÏÒÉÒÏ×ÁÎÉÅ ÄÉÒÅËÔÏÒÉÊ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÔÏÞËÉ, ÐÏËÁ ×Ù ÓÁÍÉ ÎÅ ÐÏÓÔÁ×ÉÔÅ ÔÏÞËÕ, É ×ÓÅ ÐÕÔÉ ÄÉÒÅËÔÏÒÉÉ ÐÏÎÑÔÎÙ.
ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ ÆÌÁÇÉ ÍÏÖÎÏ ÏÂßÅÄÉÎÑÔØ; ÅÓÌÉ Õ ×ÁÓ ÂÏÌØÛÅ ÏÄÎÏÇÏ, ×ÓÅ ×ÏÚÍÏÖÎÙÅ ÚÁ×ÅÒÛÅÎÉÑ ÄÌÑ ×ÓÅÈ ÐÏÍÅÝÁÀÔÓÑ × ÔÏÔ ÖÅ ÓÐÉÓÏË, ×ÓÅ ÉÚ ÎÉÈ ÂÕÄÕÔ ×ÏÚÍÏÖÎÙÍÉ ÚÁ×ÅÒÛÅÎÉÑÍÉ. ô.Å.
verb(
compctl -k hosts -f rcp
)
ÓÏÏÂÝÁÅÔ zsh, ÞÔÏ rcp ÍÏÖÅÔ ÉÍÅÔØ ËÁË ÉÍÑ ÆÁÊÌÁ, ÔÁË É ÉÍÑ ÍÁÛÉÎÙ ÐÏÓÌÅ ÓÅÂÑ. (÷ÁÍ ÎÕÖÎÏ ÕÍÅÔØ ÏÂÒÁÂÁÔÙ×ÁÔØ host:file, ÜÔÏ ×ÈÏÄÉÔ × ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ, ÓÍÏÔÒÉÔÅ ÐÕÎËÔ link(4.5)(45).) ôÁËÖÅ, Ó ×ÅÒÓÉÉ 3.1 ×Ù ×ÓÅÇÄÁ ÍÏÖÅÔÅ ÏÐÅÒÉÒÏ×ÁÔØ ÄÉÒÅËÔÏÒÉÑÍÉ × ÔÏ ÖÅ ×ÒÅÍÑ ËÁË É ÆÁÊÌÁÍÉ, ÐÒÏÓÔÏ ÄÏÂÁ×É× tt(-/) × ÓÐÉÓÏË.
sect(ëÁË zsh ÐÏÓÔÕÐÁÅÔ Ó ÎÅÏÐÒÅÄÅÌ£ÎÎÙÍÉ ÚÁ×ÅÒÛÅÎÉÑÍÉ?)
þÁÓÔÏ ÓÕÝÅÓÔ×ÕÅÔ ÂÏÌÅÅ ÏÄÎÏÇÏ ×ÏÚÍÏÖÎÏÇÏ ÚÁ×ÅÒÛÅÎÉÑ: ÎÁÐÒÉÍÅÒ, Ä×Á ÆÁÊÌÁ, ÎÁÞÉÎÁÀÝÉÅÓÑ Ó ÏÄÎÏÇÏ É ÔÏÇÏ ÖÅ ÓÉÍ×ÏÌÁ. Zsh ÏÂÌÁÄÁÅÔ ÂÏÌØÛÏÊ ÇÉÂËÏÓÔØÀ × ÜÔÏÊ ÓÉÔÕÁÃÉÉ ÞÅÒÅÚ ÅÇÏ ÐÁÒÁÍÅÔÒÙ. ðÏ ÕÍÏÌÞÁÎÉÀ - beep É ÚÁ×ÅÒÛÅÎÉÅ ÏÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÄÏ ÔÏÇÏ, ÐÏËÁ ×Ù ÎÅ ××ÅÄ£ÔÅ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ. ÷Ù ÍÏÖÅÔÅ ÎÁÖÁÔØ tt(\C-D), ÞÔÏÂÙ Õ×ÉÄÅÔØ ×ÓÅ ×ÏÚÍÏÖÎÙÅ ÚÁ×ÅÒÛÅÎÉÑ. (ðÒÅÄÐÏÌÁÇÁÅÔÓÑ, ÞÔÏ ×Ù ÎÁÈÏÄÉÔÅÓØ × ËÏÎÃÅ ÓÔÒÏËÉ, ÉÎÁÞÅ tt(\C-D) ÕÄÁÌÉÔ ÓÌÅÄÕÀÝÉÊ ÓÉÍ×ÏÌ É ×Ù ÄÏÌÖÎÙ ÂÕÄÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ tt(ESC-\C-D).) üÔÏ ÍÏÖÎÏ ÉÚÍÅÎÉÔØ ÓÌÅÄÕÀÝÉÍÉ ÐÁÒÁÍÅÔÒÁÍÉ:
itemize(
it() tt(NO_BEEP) - ÂÅÚ ÒÁÚÄÒÁÖÁÀÝÅÇÏ beep
it() tt(NO_LIST_BEEP) - beeping ×ÙËÌÀÞÁÅÔÓÑ ÔÏÌØËÏ ÄÌÑ ÎÅÑ×ÎÙÈ ÚÁ×ÅÒÛÅÎÉÊ
it() tt(AUTO_LIST) - ËÏÇÄÁ ÚÁ×ÅÒÛÅÎÉÅ ÎÅ Ñ×ÎÏÅ - ×Ù ÐÏÌÕÞÁÅÔÅ ÓÐÉÓÏË ÂÅÚ ÎÁÖÁÔÉÑ ÎÁ tt(\C-D)
it() tt(BASH_AUTO_LIST) - ÓÐÉÓÏË ÐÏËÁÚÙ×ÁÅÔÓÑ ÐÏÓÌÅ ×ÔÏÒÏÇÏ ÎÁÖÁÔÉÑ ÎÁ tab ÐÒÉ ÎÁÑÓÎÏÍ ÚÁ×ÅÒÛÅÎÉÉ
it() tt(LIST_AMBIGUOUS) - ÓÐÉÓÏË ÎÅ ÏÔÏÂÒÁÖÁÅÔÓÑ, ÅÓÌÉ ÅÓÔØ Ñ×ÎÙÊ ÓÕÆÆÉËÓ ÉÌÉ ÐÒÅÆÉËÓ ÄÌÑ ×ÓÔÁ×ËÉ --- ÐÁÒÁÍÅÔÒ ÍÏÖÅÔ ÓÏÞÅÔÁÔØÓÑ Ó tt(BASH_AUTO_LIST), ÔÁË ÞÔÏ, ÅÓÌÉ ÏÂÁ ÐÁÒÁÍÅÔÒÁ ÐÒÉÍÅÎÉÍÙ, ×ÁÍ ÎÕÖÎÏ ÔÒÉ ÒÁÚÁ ÎÁÖÁÔØ ÎÁ tab ÄÌÑ ÓÐÉÓËÁ.
it() tt(MENU_COMPLETE) - ÏÄÎÏ ÚÁ×ÅÒÛÅÎÉÅ ×ÓÅÇÄÁ ×ÓÔÁ×ÌÑÅÔÓÑ ÐÏÌÎÏÓÔØÀ, ÚÁÔÅÍ, ËÏÇÄÁ ×Ù ÎÁÖÉÍÁÅÔÅ TAB, ÏÎÏ ÓÍÅÎÑÅÔÓÑ ÎÁ ÓÌÅÄÕÀÝÅÅ, É ÔÁË ÄÁÌÅÅ, ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ×Ù ÎÅ ÎÁÞΣÔÅ ÓÎÁÞÁÌÁ
it() tt(AUTO_MENU) - ×Ù ÐÏÌÕÞÁÅÔÅ ÔÏÌØËÏ ÒÅÖÉÍ ÍÅÎÀ, ËÏÇÄÁ ÓÎÏ×Á ÎÁÖÉÍÁÅÔÅ ÎÁ TAB ÐÒÉ ÎÅÑ×ÎÏÍ ÚÁ×ÅÒÛÅÎÉÉ.
it() îÁËÏÎÅÃ, ÈÏÔÑ ÏÎ É ÄÅÊÓÔ×ÕÅÔ ÎÁ ×ÓÅ ÌÉÓÔÙ ÚÁ×ÅÒÛÅÎÉÑ, ×ËÌÀÞÁÑ Ñ×ÎÏ ÚÁÐÒÁÛÉ×ÁÅÍÙÅ, ÐÁÒÁÍÅÔÒ tt(ALWAYS_LAST_PROMPT), ËÏÔÏÒÙÊ ×ÏÚ×ÒÁÝÁÅÔ ËÕÒÓÏÒ ÎÁ ÒÅÄÁËÔÉÒÕÅÍÕÀ ÌÉÎÉÀ ÐÏÓÌÅ ÏÔÏÂÒÁÖÅÎÉÑ ÌÉÓÔÁ ÚÁ×ÅÒÛÅÎÉÑ, ÐÒÉ ÕÓÌÏ×ÉÉ, ÞÔÏ ÏÎ ÄÏÓÔÁÔÏÞÎÏ ËÏÒÏÔËÉÊ.
)
ôÁË ÖÅ ×ÏÚÍÏÖÎÙ ÉÈ ÓÏÞÅÔÁÎÉÑ; ÎÁÐÒÉÍÅÒ, tt(AUTO_LIST) É tt(AUTO_MENU) ×ÍÅÓÔÅ ÄÁÀÔ ÉÎÔÕÉÔÉ×ÎÕÀ ËÏÍÂÉÎÁÃÉÀ. îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 3.1 ÐÁÒÁÍÅÔÒ tt(LIST_AMBIGUOUS) ÚÁÄÁÎ ÐÏ ÕÍÏÌÞÁÎÉÀ; ÅÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ autolist, ÔÏ ÌÕÞÛÅ ÓÄÅÌÁÔØ `unsetopt listambiguous'.
sect(ëÁË ÍÎÅ ÚÁ×ÅÒÛÉÔØ × ÓÅÒÅÄÉÎÅ ÓÌÏ×Á / ÄÏ ËÕÒÓÏÒÁ?)
éÎÏÇÄÁ Õ ×ÁÓ ÅÓÔØ ÓÌÏ×Ï × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ (ÄÁ×ÁÊÔÅ ÐÒÉÄÅÒÖÉ×ÁÔØÓÑ ÉͣΠÆÁÊÌÏ×), ËÏÔÏÒÏÅ ÎÅ ÚÁ×ÅÒÛÅÎÏ × ÓÅÒÅÄÉÎÅ. ïÂÙÞÎÏ, ÅÓÌÉ ×Ù ÎÁÖÍ£ÔÅ tab × zsh, ÏÎ ÐÒÏÓÔÏ ÐÅÒÅÊÄ£Ô × ËÏÎÅà ÓÌÏ×Á É ÐÏÐÙÔÁÅÔÓÑ ÚÁ×ÅÒÛÉÔØ ÅÇÏ. ôÅÍ ÎÅ ÍÅÎÅÅ, ÅÓÔØ Ä×Á ÓÐÏÓÏÂÁ ÉÚÍÅÎÉÔØ ÜÔÏ.
÷Ï-ÐÅÒ×ÙÈ, ÓÕÝÅÓÔ×ÕÅÔ ÐÁÒÁÍÅÔÒ COMPLETE_IN_WORD. ëÏÇÄÁ ÏÎ ÚÁÄÁÎ, ÛÅÌÌ ÐÏÐÙÔÁÅÔÓÑ ÚÁËÏÎÞÉÔØ ÓÌÏ×Ï ÏÔ ËÕÒÓÏÒÁ. îÁÐÒÉÍÅÒ, ÅÓÌÉ ÔÅËÕÝÁÑ ÄÉÒÅËÔÏÒÉÑ ÓÏÄÅÒÖÉÔ mytt(foobar), ÔÏÇÄÁ Ó ÚÁÄÁÎÎÙÍ ÐÁÒÁÍÅÔÒÏÍ, ×Ù ÍÏÖÅÔÅ ÚÁ×ÅÒÛÉÔØ mytt(fbar) ÄÏ mytt(foobar), ÐÅÒÅÍÅÓÔÉ× ËÕÒÓÏÒ Ë mytt(b) É ÎÁÖÁ× tab.
üÔÏ ÅÝ£ ÎÅ ×Ó£. éÎÏÇÄÁ ×ÁÍ ÎÕÖÎÏ ÚÁ×ÅÒÛÉÔØ ÞÁÓÔØ ÓÌÏ×Á ÄÏ ËÕÒÓÏÒÁ. îÁÐÒÉÍÅÒ, ÓÌÏ×Ï mytt(/usr/loc/b) ÎÕÖÎÏ ÚÁ×ÅÒÛÉÔØ ÄÏ mytt(/usr/local/bin). ïÂÙÞÎÏ zsh ÎÅ ÓÍÏÖÅÔ ÓÄÅÌÁÔØ ÜÔÏÇÏ ÚÁ ÏÄÉÎ ÒÁÚ, Ô.Ë. ÚÄÅÓØ ÐÒÏÐÕÝÅÎÙ Ä×Å ÞÁÓÔÉ (ÎÏ ÓÍÏÔÒÉÔÅ ÎÉÖÅ!), Ô.Å. ×ÁÍ ÎÕÖÎÏ ÚÁ×ÅÒÛÉÔØ mytt(/usr/loc) ÓÎÁÞÁÌÁ. äÌÑ ÜÔÏÇÏ ×ÁÍ ÎÕÖÎÁ ÆÕÎËÃÉÑ tt(expand-or-complete-prefix): ÏÎÁ ÒÁÂÏÔÁÅÔ ËÁË ÏÂÙÞÎÁÑ ÆÕÎËÃÉÑ, Ó×ÑÚÁÎÎÁÑ Ó tab, ÎÏ ÏÎÁ ÉÇÎÏÒÉÒÕÅÔ ×Ó£, ÞÔÏ ÎÁÈÏÄÉÔÓÑ ÓÐÒÁ×Á ÏÔ ËÕÒÓÏÒÁ. åÓÌÉ ×ÁÍ ÎÕÖÎÏ ÔÁËÏÅ ÐÏ×ÅÄÅÎÉÅ (ÎÅËÏÔÏÒÙÅ ÄÒÕÇÉÅ ÛÅÌÌÙ ÔÏ ÖÅ ÄÅÌÁÀÔ ÔÁË), Ó×ÑÖÉÔŠţ Ó tab; ÉÌÉ ÓÄÅÌÁÊÔÅ ÄÒÕÇÕÀ ÐÒÉ×ÑÚËÕ, ÎÁÐÒÉÍÅÒ mytt(^X TAB) × tt(~/.zshrc):
verb(
bindkey "^X^I" expand-or-complete-prefix
)
ÔÏÇÄÁ, × ÎÁÛÅÍ ÐÒÉÍÅÒÅ, ×Ù ÍÏÖÅÔÅ ÐÅÒÅÍÅÓÔÉÔØÓÑ ÚÁ mytt(/usr/loc), ÎÁÖÁÔØ ËÌÁ×ÉÛÕ, ËÏÔÏÒÕÀ ×Ù ÔÏÌØËÏ ÞÔÏ Ó×ÑÚÁÌÉ Ó ÆÕÎËÃÉÅÊ, ÐÅÒÅÍÅÓÔÉÔØÓÑ × ËÏÎÅÃ É ÎÁÖÁÔØ tab. (úÁÍÅÔØÔÅ, ÞÔÏ ÚÄÅÓØ ÐÒÉÍÅÎÉÍ ÒÅÖÉÍ tt(AUTO_REMOVE_SLASH), ÓÍÏÔÒÉÔÅ ÒÕËÏ×ÏÄÓÔ×Ï.)
äÁÖÅ ÜÔÏ ÎÅ ÉÓÞÅÒÐÙ×ÁÅÔ ×ÏÚÍÏÖÎÏÓÔÉ. ÷ËÌÀÞ£ÎÎÙÊ × ÉÓÈÏÄÎÙÊ ÄÉÓÔÒÉÂÕÔÉ× ÆÁÊÌ tt(Functions/multicomp) - ÜÔÏ ÆÕÎËÃÉÑ, ËÏÔÏÒÕÀ ×Ù ÍÏÖÅÔÅ ÐÒÉ×ÑÚÁÔØ ËÁË ÁÌØÔÅÒÎÁÔÉ×ÎÕÀ ÆÏÒÍÕ ÚÁ×ÅÒÛÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ (ÓÍÏÔÒÉÔÅ ÎÉÖÅ ÏÐÉÓÁÎÉÅ ÁÌØÔÅÒÎÁÔÉ×ÎÏÇÏ ÚÁ×ÅÒÛÅÎÉÑ), ÎÁÐÒÉÍÅÒ
verb(
compctl -D -f + -U -Q -K multicomp
)
É ×ÓÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÄÉÒÅËÔÏÒÉÊ, ÔÁËÁÑ ËÁË mytt(/usr/loc/b) ÉÌÉ ÄÁÖÅ mytt(/u/l/b) ÍÏÖÅÔ ÂÙÔØ ÚÁ×ÅÒÛÅÎÁ ÚÁ ÏÄÉÎ ÒÁÚ. üÔÏ ÏÔÌÉÞÎÏ ÒÁÂÏÔÁÅÔ Ó menucompletion, ÅÓÌÉ ÒÅÚÕÌØÔÁÔ ÎÅÑ×ÎÙÊ.
sect(ëÁË ÍÎÅ ÎÁÞÁÔØ Ó ÐÒÏÇÒÁÍÍÉÒÕÅÍÙÍ ÚÁ×ÅÒÛÅÎÉÅÍ?)
label(45)
îÁËÏÎÅÃ, ÓÁÍÁÑ ÓÌÏÖÎÁÑ ÞÁÓÔØ ÚÁ×ÅÒÛÅÎÉÑ. ÷ÏÚÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË, ÞÔÏÂÙ zsh ÒÁÓÓÍÁÔÒÉ×ÁÌ ÒÁÚÌÉÞÎÙÅ ÚÁ×ÅÒÛÅÎÉÑ ÎÅ ÔÏÌØËÏ ÄÌÑ ÒÁÚÌÉÞÎÙÈ ËÏÍÁÎÄ, ÎÏ É ÄÌÑ ÒÁÚÌÉÞÎÙÈ ÓÌÏ× ÏÄÎÏÊ É ÔÏÊ ÖÅ ËÏÍÁÎÄÙ, ÉÌÉ ÄÁÖÅ ÒÁÓÓÍÁÔÒÉ×ÁÌ ÄÒÕÇÉÅ ÓÌÏ×Á ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ (ÎÁÐÒÉÍÅÒ, ÅÓÌÉ ÐÏÓÌÅÄÎÅÅ ÓÌÏ×Ï ÂÙÌÏ ÓÐÅÃÉÁÌØÎÙÍ ÆÌÁÇÏÍ) É ÚÁÔÅÍ ÒÅÛÁÌ, ËÁË ÚÁ×ÅÒÛÁÔØ.
åÓÔØ Ä×Å ×ÅÝÉ, Ï ËÏÔÏÒÙÈ ÓÌÅÄÕÅÔ ÂÅÓÐÏËÏÉÔØÓÑ. óÁÍÏÅ ÐÒÏÓÔÏÅ - ÁÌØÔÅÒÎÁÔÉ×ÎÏÅ ÚÁ×ÅÒÛÅÎÉÅ: ÜÔÏ ÚÎÁÞÉÔ, ÞÔÏ zsh ÓÎÁÞÁÌÁ ÐÏÐÒÏÂÕÅÔ ÏÄÎÕ ÁÌØÔÅÒÎÁÔÉ×Õ É, ÅÓÌÉ ÎÅ ÂÕÄÅÔ ×ÏÚÍÏÖÎÙÈ ÚÁ×ÅÒÛÅÎÉÊ, ÔÏ ÐÏÐÒÏÂÕÅÔ ÓÌÅÄÕÀÝÕÀ. îÁÐÒÉÍÅÒ
verb(
compctl -g '*.ps' + -f lpr
)
ÓÏÏÂÝÁÅÔ, ÞÔÏ ÐÏÓÌÅ lpr ×Ù ÐÒÅÄÐÏÞÉÔÁÅÔÅ ÎÁÊÔÉ ÔÏÌØËÏ ÆÁÊÌÙ mytt(.ps), Ô.Å. ÅÓÌÉ ÏÎÉ ÅÓÔØ, ÔÏ ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÏÎÉ, Á ÉÎÁÞÅ - ÌÀÂÙÅ. õ ×ÁÓ ÔÁËÖÅ ÍÏÖÅÔ ÂÙÔØ tt(+) ÂÅÚ ÆÌÁÇÏ× ÐÏÓÌÅ ÎÅÇÏ, ËÏÔÏÒÙÊ ÕËÁÚÙ×ÁÅÔ zsh, ÞÔÏ, ÅÓÌÉ ÎÉÞÅÇÏ ÎÅ ÎÁÊÄÅÎÏ, ÔÒÁËÔÏ×ÁÔØ ËÏÍÁÎÄÕ ËÁË ÌÀÂÕÀ ÄÒÕÇÕÀ. üÔÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÐÏÌÅÚÎÏ, ÅÓÌÉ ÐÏ ÕÍÏÌÞÁÎÉÀ ÚÁ×ÅÒÛÅÎÉÅ ÚÁÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÏ, Ô.Å. ×Ù ÓÄÅÌÁÌÉ ÞÔÏ-ÔÏ Ó mytt(compctl -D), ÞÔÏÂÙ ÓÏÏÂÝÉÔØ zsh ËÁË ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÓÐÅÃÉÁÌØÎÏ ÎÅ ÚÁÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÙ, ÄÏÌÖÎÙ ÚÁ×ÅÒÛÉÔØ ÉÈ ÁÒÇÕÍÅÎÔÙ.
÷ÔÏÒÏÊ ×ÉÄ. ðÏÓÌÅ ÐÁÒÁÍÅÔÒÁ mytt(-x) zsh ÏÖÉÄÁÅÔ, ÞÔÏ ÄÁÌÅÅ ÂÕÄÅÔ ËÁËÏÊ-ÔÏ ËÏÄ ÚÁ×ÅÒÛÅÎÉÑ, ËÏÔÏÒÙÊ Ñ×ÌÑÅÔÓÑ ÂÕË×ÏÊ É ÓÌÅÄÕÅÔ ÚÁ ÁÒÇÕÍÅÎÔÏÍ × Ë×ÁÄÒÁÔÎÙÈ ÓËÏÂËÁÈ. îÁÐÒÉÍÅÒ, mytt(p[1]): mytt(p) - ÄÌÑ ÐÏÚÉÃÉÉ, É ÁÒÇÕÍÅÎÔ ÕËÁÚÙ×ÁÅÔ ÎÁ ÐÏÚÉÃÉÀ 1; ÚÁ×ÅÒÛÅÎÉÅ ÐÒÉÍÅÎÉÍÏ ÔÏÌØËÏ Ë ÓÌÏ×Õ, ÓÌÅÄÕÀÝÅÍÕ ÓÒÁÚÕ ÚÁ ËÏÍÁÎÄÏÊ. ÷Ù ÍÏÖÅÔÅ ÔÁËÖÅ ÎÁÐÉÓÁÔØ mytt(p[1,3]), ÔÅÐÅÒØ ÚÁ×ÅÒÛÅÎÉÅ ÐÒÉÍÅÎÉÍÏ Ë ÓÌÏ×Õ, ÅÓÌÉ ÏÎÏ ÎÁÈÏÄÉÔÓÑ ÍÅÖÄÕ ÐÅÒ×ÙÍ É ÔÒÅÔÉÍ ÓÌÏ×ÁÍÉ ÐÏÓÌÅ ËÏÍÁÎÄÙ ×ËÌÀÞÉÔÅÌØÎÏ, É Ô.Ä. óÍÏÔÒÉÔÅ ÓÐÉÓÏË × ÓÅËÃÉÉ mytt(compctl) ÒÕËÏ×ÏÄÓÔ×Á: ÎÅËÏÔÏÒÙÅ ÕÓÌÏ×ÉÑ ÂÅÒÕÔ ÏÄÉÎ ÁÒÇÕÍÅÎÔ × Ë×ÁÄÒÁÔÎÙÅ ÓËÏÂËÉ, ÎÅËÏÔÏÒÙÅ Ä×Á. ïÂÙÞÎÏ, ÏÔÒÉÃÁÔÅÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ ÓÞÉÔÁÀÔÓÑ ÏÂÒÁÔÎÏ Ó ËÏÎÃÁ (ÎÁÐÒÉÍÅÒ, mytt(p[-1]) ÐÒÉÍÅÎÑÅÔÓÑ Ë ÐÏÓÌÅÄÎÅÍÕ ÓÌÏ×Õ × ÓÔÒÏËÅ).
(úÁÍÅÔØÔÅ ÒÁÚÎÉÃÕ ÍÅÖÄÕ mytt(+) É mytt(-x). úÁ×ÅÒÛÅÎÉÅ ÄÌÑ mytt(+) ÓÎÁÞÁÌÁ ×ÓÅÇÄÁ ÐÏÐÙÔÁÅÔÓÑ ÎÁÊÔÉ ÚÁ×ÅÒÛÅÎÉÑ ÄÌÑ ÔÏÇÏ, ÞÔÏ ÄÏ mytt(+); ÅÓÌÉ ÚÁ×ÅÒÛÅÎÉÅ ÎÅ ÎÁÊÄÅÎÏ - ÂÕÄÅÔ ×Ù×ÅÄÅÎ ÓÐÉÓÏË. ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ, ÄÌÑ mytt(-x), ÐÏÄÈÏÄÑÝÅÅ ÍÎÏÖÅÓÔ×Ï ÚÁ×ÅÒÛÅÎÉÊ ×ÓÅÇÄÁ ÉÓÐÏÌØÚÕÅÔÓÑ, ÄÁÖÅ ÅÓÌÉ ÓÐÉÓÏË ÚÁ×ÅÒÛÅÎÉÊ ÐÕÓÔÏÊ.)
õÓÌÏ×ÉÑ, ËÏÔÏÒÙÅ ÓÌÅÄÕÀÔ ÚÁ ÆÌÁÇÁÍÉ, ËÁË ÏÂÙÞÎÏ É ÄÒÕÇÉÅ ÕÓÌÏ×ÉÑ/ÆÌÁÇÉ ÚÁÄÁÀÔÓÑ (ËÁË × link(4.2)(42)), ÓÌÅÄÕÑ ÚÁ ÏÄÉÎÁÒÎÙÍ - ; ×ÓÅ ÏÎÉ ÚÁËÁÎÞÉ×ÁÀÔÓÑ Ä×ÏÊÎÙÍÉ --, ÄÏ ÉÍÅÎÉ ËÏÍÁÎÄÙ. äÒÕÇÉÍÉ ÓÌÏ×ÁÍÉ, ËÁÖÄÁÑ ÒÁÓÛÉÒÅÎÎÁÑ ÓÅËÃÉÑ ÚÁ×ÅÒÛÅÎÉÑ ×ÙÇÌÑÄÉÔ ÐÒÉÍÅÒÎÏ ÔÁË:
verb(
-x <ÏÂÒÁÚÅÃ> <ÆÌÁÇÉ>... [ - <ÏÂÒÁÚÅÃ> <ÆÌÁÇÉ>... ...] --
)
äÁ×ÁÊÔÅ ÏÐÑÔØ ×ÚÇÌÑÎÅÍ ÎÁ rcp: ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ, ÞÔÏ ×Ù ÚÁÄÁÌÉ tt($hosts) ÔÁË ÖÅ ËÁË ×ÙÛÅ. âÕÄÅÍ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÌÁÇ mytt(n[<n>,<string>]), ËÏÔÏÒÙÊ ÕËÁÚÙ×ÁÅÔ zsh - ÉÓËÁÔØ tt(<n>)'ÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÏ×ÐÁÄÅÎÉÊ ÓÔÒÏËÉ <string> × ÓÌÏ×Å É ÉÇÎÏÒÉÒÏ×ÁÔØ ×Ó£, ÞÔÏ ÎÁÊÄÅÎÏ. íÙ ÉÓÐÏÌØÚÕÅÍ ÜÔÏ ÄÌÑ ÚÁ×ÅÒÛÅÎÉÑ ÂÉÔÏ× ËÏÍÂÉÎÁÃÉÉ rcp mytt(user@host:file). (ëÏÎÅÞÎÏ, file - ÉÍÑ ÆÁÊÌÁ ÎÁ ÌÏËÁÌØÎÏÊ ÍÁÛÉÎÅ, ÎÅ ÎÁ mytt(host), ÎÏ ÄÁ×ÁÊÔÅ ÐÒÏÉÇÎÏÒÉÒÕÅÍ ÜÔÏ; ÜÔÏ ×Ó£ ÅÝ£ ÍÏÖÅÔ ÂÙÔØ ÐÏÌÅÚÎÙÍ.)
verb(
compctl -k hosts -S ':' + -f -x 'n[1,:]' -f - \
'n[1,@]' -k hosts -S ':' -- rcp
)
üÔÏ ÏÚÎÁÞÁÅÔ: (1) ÐÏÐÙÔÁÔØÓÑ ÚÁ×ÅÒÛÉÔØ ÉÍÑ ÈÏÓÔÁ (ÓÉÍ×ÏÌ ÄÏ mytt(+)), ÅÓÌÉ ÕÓÐÅÛÎÏ, ÔÏ ÄÏÂÁ×ÉÔØ mytt(:) (tt(-S) ÄÌÑ ÓÕÆÆÉËÓÁ); (2) ÅÓÌÉ ÎÅÕÄÁÞÎÏ, ÔÏ ÐÏÐÙÔÁÅÍÓÑ ×ÙÐÏÌÎÉÔØ ËÏÄ ÐÏÓÌÅ mytt(+): ÓÍÏÔÒÉÍ, ÅÓÔØ ÌÉ × ÓÌÏ×Å mytt(:) (ÐÁÒÁÍÅÔÒ mytt(n[1,:])); ÅÓÌÉ ÄÁ, ÔÏ ÚÁ×ÅÒÛÁÅÍ ÉÍÑ ÆÁÊÌÁ (tt(-f)) ÐÏÓÌÅ ÐÅÒ×ÏÇÏ ÉÚ ÎÉÈ; (3) ÉÎÁÞÅ ÉÝÅÍ mytt(@) É ÚÁ×ÅÒÛÁÅÍ ÉÍÑ ÈÏÓÔÁ ÐÏÓÌÅ ÐÅÒ×ÏÊ ÉÈ ÎÉÈ (ÐÁÒÁÍÅÔÒ mytt(n[1,@])), ÅÓÌÉ ÕÓÐÅÛÎÏ, ÔÏ ÄÏÂÁ×ÌÑÅÍ mytt(:); (4) ÅÓÌÉ ÎÉÞÅÇÏ ÎÅ ×ÙÐÏÌÎÉÌÏÓØ, ÔÏ ÉÓÐÏÌØÚÕÅÍ mytt(-f) ÐÅÒÅÄ mytt(-x) É ÐÙÔÁÅÍÓÑ ÚÁ×ÅÒÛÉÔØ ÉÍÑ ÆÁÊÌÁ.
éÔÁË, ×ÏÔ ÐÒÁ×ÉÌÁ: (1) ÐÒÅÖÄÅ ×ÓÅÇÏ ÐÏÐÙÔÁÔØÓÑ ÓÄÅÌÁÔØ ×Ó£, ÞÔÏ ÄÏ mytt(+) (2) ÐÙÔÁÔØÓÑ ×ÙÐÏÌÎÉÔØ ÕÓÌÏ×ÉÑ ÐÏÓÌÅ tt(-x) ÄÏ ÔÏÇÏ, ÐÏËÁ ÈÏÔÑ ÂÙ ÏÄÎÏ ÎÅ ×ÙÐÏÌÎÉÔÓÑ (3) ÅÓÌÉ ÎÉÞÅÇÏ ÎÅ ×ÙÐÏÌÎÉÌÏÓØ, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÌÁÇÉ ÐÏ ÕÍÏÌÞÁÎÉÀ.
òÁÚÎÙÅ ÕÓÌÏ×ÉÑ ÔÁËÖÅ ÍÏÖÎÏ ÏÂßÅÄÉÎÑÔØ. ÷ÏÔ ÔÒÉ ÕÒÏ×ÎÑ ÏÂßÅÄÉÎÅÎÉÑ (× ÐÏÒÑÄËÅ ÕÍÅÎØÛÅÎÉÑ):
enumerate(
myeit() ÍÎÏÇÏÞÉÓÌÅÎÎÙÅ Ë×ÁÄÒÁÔÎÙÅ ÓËÏÂËÉ ÐÏÓÌÅ ÏÄÎÏÇÏ ÕÓÌÏ×ÉÑ ÄÁÀÔ ÁÌØÔÅÒÎÁÔÉ×Õ: ÎÁÐÒÉÍÅÒ, mytt(s[foo][bar]) ÕËÁÚÙ×ÁÅÔ, ÞÔÏ ÚÁ×ÅÒÛÅÎÉÅ ÐÒÉÍÅÎÉÍÏ Ë ÓÌÏ×ÁÍ, ÎÁÞÉÎÁÀÝÉÍÓÑ Ó mytt(foo) ÉÌÉ mytt(bar),
myeit() ÐÒÏÂÅÌÙ ÍÅÖÄÕ ÕÓÌÏ×ÉÑÍÉ ÏÚÎÁÞÁÀÔ, ÞÔÏ ÏÂÁ ÄÏÌÖÎÙ ×ÙÐÏÌÎÑÔØÓÑ: ÎÁÐÒÉÍÅÒ, mytt(p[1] s[-]) ÕËÁÚÙ×ÁÅÔ, ÞÔÏ ÚÁ×ÅÒÛÅÎÉÅ ÐÒÉÍÅÎÉÍÏ ÔÏÌØËÏ Ë ÐÅÒ×ÏÍÕ ÓÌÏ×Õ ÐÏÓÌÅ ËÏÍÁÎÄÙ, ÅÓÌÉ ÏÎÏ ÎÁÞÉÎÁÅÔÓÑ Ó mytt(-),
myeit() ÚÁÐÑÔÙÅ ÍÅÖÄÕ ÕÓÌÏ×ÉÑÍÉ ÏÚÎÁÞÁÀÔ, ÞÔÏ ÌÀÂÏÅ ÄÏÌÖÎÏ ×ÙÐÏÌÎÉÔØÓÑ: ÎÁÐÒÉÍÅÒ, mytt(c[-1,-f], s[-f]) ÏÚÎÁÞÁÅÔ, ÞÔÏ ÌÀÂÏÅ ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï (-1 ÏÔÎÏÓÉÔÅÌØÎÏ ÔÅËÕÝÅÇÏ) ÜÔÏ tt(-f), ÉÌÉ ÔÅËÕÝÅÅ ÓÌÏ×Ï ÎÁÞÉÎÁÅÔÓÑ Ó tt(-f) --- ÐÏÌÅÚÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÁËÏÅ ÖÅ ÚÁ×ÅÒÛÅÎÉÅ - ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ tt(-f) ÉÍÅÅÔ ÐÒÏÂÅÌ ÐÏÓÌÅ ÓÅÂÑ.
)
÷Ù ÄÏÌÖÎÙ ÐÏÍÎÉÔØ, ÞÔÏ ×Ó£ ×ÙÒÁÖÅÎÉÅ ÄÏÌÖÎÏ ÂÙÔØ × ËÁ×ÙÞËÁÈ, ÞÔÏÂÙ ÄÌÑ tt(compctl) ÏÎÏ Ñ×ÌÑÌÏÓØ ÏÄÎÉÍ ÁÒÇÕÍÅÎÔÏÍ.
÷ÏÔ ÎÅÎÕÖÎÙÊ ÐÒÉÍÅÒ (ÐÒÏÓÔÏ ÞÔÏÂÙ ÐÏËÁÚÁÔØ ÏÂÙÞÎÏÅ mytt(-x) ÚÁ×ÅÒÛÅÎÉÅ).
verb(
compctl -f -x 'c[-1,-u][-1,-U] p[2], s[-u]' -u - \
'c[-1,-j]' -P % -j -- foobar
)
ëÁË ÜÔÏ ÐÒÏÞÉÔÁÔØ: ÄÌÑ ËÏÍÁÎÄÙ mytt(foobar), ÐÏÓÍÏÔÒÅÔØ ÅÓÌÉ (((ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï tt(-u)) ÉÌÉ (ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï tt(-U))) É (ÔÅËÕÝÅÅ ÓÌÏ×Ï 2)) ÉÌÉ (ÔÅËÕÝÅÅ ÓÌÏ×Ï ÎÁÞÉÎÁÅÔÓÑ Ó tt(-u)); ÅÓÌÉ ÔÁË, ÔÏ ÐÏÐÙÔÁÔØÓÑ ÚÁ×ÅÒÛÉÔØ ÉÍÅÎÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ. åÓÌÉ ÐÒÅÄÙÄÕÝÅÅ ÓÌÏ×Ï tt(-j), ×ÓÔÁ×ÉÔØ ÐÅÒÅÄ ÔÅËÕÝÉÍ ÓÌÏ×ÏÍ ÐÒÅÆÉËÓ mytt(%), ÅÓÌÉ ÅÇÏ ÔÁÍ ÎÅÔ, É ÚÁ×ÅÒÛÉÔØ ÉÍÅÎÁ ÚÁÄÁÞ. éÎÁÞÅ ÐÒÏÓÔÏ ÚÁ×ÅÒÛÉÔØ ÉÍÅÎÁ ÆÁÊÌÏ×.
4.6: äÏÓÔÁÔÏÞÎÏ ÌÉ ÐÏÌÅÚÎÏ ÐÒÏÇÒÁÍÍÉÒÕÅÍÏÅ ÚÁ×ÅÒÛÅÎÉÅ?
...ÔÏÇÄÁ ×ÁÛÁ ÐÏÓÌÅÄÎÑÑ ÎÁÄÅÖÄÁ - ÎÁÐÉÓÁÔØ ÛÅÌÌ-ÆÕÎËÃÉÀ É ÎÁÓÔÒÏÉÔØ ×Ó£ ÐÏÄ ÓÅÂÑ. ïÂßÅÄÉÎÑÑ ÆÌÁÇÉ mytt(-U) É mytt(-K func), ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ ÐÏÞÔÉ ÎÅÏÇÒÁÎÉÞÅÎÎÕÀ ÍÏÝØ. mytt(-U) - ÕËÁÚÙ×ÁÅÔ zsh, ÞÔÏ ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÓÅ ÚÁ×ÅÒÛÅÎÉÑ, ÄÁÖÅ ÎÅ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÔÏÍÕ, ÞÔÏ ÕÖÅ ÅÓÔØ (ÔÁË, ÞÔÏ ÎÁÐÉÓÁÎÎÏÅ ÂÕÄÅÔ ÕÄÁÌÅÎÏ, ËÏÇÄÁ ÚÁ×ÅÒÛÅÎÉÅ ÂÕÄÅÔ ×ÓÔÁ×ÌÅÎÏ). mytt(-K func) - ÕËÁÚÙ×ÁÅÔ zsh ÉÍÑ ÆÕÎËÃÉÉ. æÕÎËÃÉÑ ÐÒÏÈÏÄÉÔ ÞÅÒÅÚ ÞÁÓÔØ ÓÌÏ×Á, ËÏÔÏÒÏÅ ÕÖÅ ××ÅÄÅÎÏ, É ÍÏÖÅÔ ÓÞÉÔÁÔØ ÏÓÔÁÔÏË ÓÔÒÏËÉ Ó ÐÏÍÏÝØÀ mytt(read -c). ïÎÁ ÍÏÖÅÔ ×ÅÒÎÕÔØ ÍÎÏÖÅÓÔ×Ï ÚÁ×ÅÒÛÅÎÉÊ ÞÅÒÅÚ ÍÁÓÓÉ× mytt(reply), É ÏÎÏ ÓÔÁÎÅÔ ÍÎÏÖÅÓÔ×ÏÍ ×ÏÚÍÏÖÎÙÈ ÚÁ×ÅÒÛÅÎÉÊ. þÔÏÂÙ ÌÕÞÛÅ ×ÓÅÇÏ ÐÏÎÑÔØ ÜÔÏ, ÎÕÖÎÏ ×ÚÇÌÑÎÕÔØ ÎÁ mytt(multicomp) É ÄÒÕÇÉÅ ÆÕÎËÃÉÉ, ÐÏÓÔÁ×ÌÑÅÍÙÅ Ó ÄÉÓÔÒÉÂÕÔÉ×ÏÍ zsh. îÅÓÏÍÎÅÎÎÏ, ÄÌÑ ÞÅÇÏ-ÎÉÂÕÄØ ÓÌÏÖÎÏÇÏ ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÏ×ÕÀ ÓÉÓÔÅÍÕ ÚÁ×ÅÒÛÅÎÉÑ. ÷ ÂÕÄÕÝÅÍ ÎÅ ÐÌÁÎÉÒÕÅÔÓÑ ÏÂÎÏ×ÌÅÎÉÊ ÄÌÑ ÓÔÁÒÏÊ ÓÉÓÔÅÍÙ ÚÁ×ÅÒÛÅÎÉÑ.
chapter(âÕÄÕÝÅÅ zsh)
sect(ëÁËÉÅ ÏÛÉÂËÉ ÉÚ×ÅÓÔÎÙ É ÎÅÉÓÐÒÁ×ÌÅÎÙ? (á ÔÁËÖÅ ÎÅÄÁ×ÎÉÅ ×ÁÖÎÙÅ ÉÚÍÅÎÅÎÉÑ))
label(51)
÷ÏÔ ÎÅÓËÏÌØËÏ ÉÚ ÍÎÏÇÉÈ ÈÏÒÏÛÏ ÉÚ×ÅÓÔÎÙÈ × ÐÏÒÑÄËÅ ÕÍÅÎØÛÅÎÉÑ ×ÁÖÎÏÓÔÉ. íÎÏÇÉÅ ÉÚ ÎÉÈ ÍÏÇÕÔ ÔÁËÖÅ ÓÞÉÔÁÔØÓÑ ÏÔÌÉÞÉÑÍÉ ÏÔ ksh × ×ÏÐÒÏÓÅ link(2.1)(21); ÚÁÍÅÔØÔÅ, ÞÔÏ ÜÔÏ ÏÔÎÏÓÉÔÓÑ Ë ÐÏÓÌÅÄÎÅÊ ÂÅÔÁ ×ÅÒÓÉÉ É ÞÔÏ ÐÒÏÓÔÙÅ ÏÛÉÂËÉ ÞÁÓÔÏ ÉÓÐÒÁ×ÌÑÀÔÓÑ ÏÞÅÎØ ÂÙÓÔÒÏ. ÷ ÆÁÊÌÅ Etc/BUGS × ÉÓÈÏÄÎÏÍ ÄÉÓÔÒÉÂÕÔÉ×Å ÂÏÌØÛÅ ÐÏÄÒÏÂÎÏÓÔÅÊ.
itemize(
it() òÁÓÛÉÒÅÎÉÅ ÐÁÒÁÍÅÔÒÏ×, ÉÓÐÏÌØÚÕÅÍÏÅ × ÆÏÒÍÁÈ tt(${param+word}) É tt(${param-word}) ÍÏÖÅÔ ÎÅ ÒÁÂÏÔÁÔØ × ÒÅÖÉÍÅ Bourne-shell ÓÏ×ÍÅÓÔÉÍÏÓÔÉ, ËÏÇÄÁ ÚÁÄÁÎ ÐÁÒÁÍÅÔÒ tt(SH_WORD_SPLIT) É word ÓÏÄÅÒÖÉÔ ÐÒÏÂÅÌÙ.
it() mytt(time) ÉÇÎÏÒÉÒÕÅÔÓÑ ËÏÍÁÎÄÏÊ builtin É ÎÅ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÁ Ó mytt({...}).
it() mytt(set -x) (mytt(setopt xtrace)) ÐÏ ÐÒÅÖÎÅÍÕ ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ÇÌÀËÏ×; ÂÏÌØÛÉÎÓÔ×Ï ÉÚ ÎÉÈ ÉÓÐÒÁ×ÌÅÎÏ × ×ÅÒÓÉÉ 3.1.6.
it() ðÏÎÑÔÉÅ Zsh Ï ÎÏÍÅÒÅ ÔÅËÕÝÅÊ ÓÔÒÏËÉ (ÞÅÒÅÚ tt($LINENO)) ÉÎÏÇÄÁ ÎÅ ÏÐÒÅÄÅÌÑÅÔÓÑ, ÏÓÏÂÅÎÎÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÆÕÎËÃÉÊ É ÐÒÅÒÙ×ÁÎÉÊ. üÔÏ ÔÏÞÎÏ ÄÏÌÖÎÏ ÒÁÂÏÔÁÔØ Ó ×ÅÒÓÉÊ 3.0.6 É 3.1.6.
it() ÷ ÒÅÖÉÍÅ vi, mytt(u) ÍÏÖÅÔ ×ÅÒÎÕÔØ Ë ÐÅÒ×ÏÎÁÞÁÌØÎÏÊ ÔÏÞËÅ ÍÏÄÉÆÉËÁÃÉÉ.
it() ðÁÒÁÍÅÔÒ singlelinezle ËÏÎÆÌÉËÔÕÅÔ Ó ÐÒÉÇÌÁÛÅÎÉÑÍÉ, ÓÏÄÅÒÖÁÝÉÍÉ ÜËÒÁÎÉÒÕÅÍÙÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ.
it() ëÏÍÁÎÄÁ mytt(r) ÎÅ ÒÁÂÏÔÁÅÔ ×ÎÕÔÒÉ mytt($(...)) ÉÌÉ mytt(`...`). üÔÏ ÉÓÐÒÁ×ÌÅÎÏ × ×ÅÒÓÉÉ 3.1.
it() éÓÐÏÌØÚÏ×ÁÔØ mytt(typeset) - ÎÅ ÏÐÔÉÍÁÌØÎÏ, ÏÓÏÂÅÎÎÏ Ó ÆÌÁÇÁÍÉ, É ksh-ÎÅÓÏ×ÍÅÓÔÉÍÏ. ÷ ×ÅÒÓÉÉ 3.1.6 ÜÔÏ ÂÙÌÏ ÉÓÐÒÁ×ÌÅÎÏ, ÎÏ ÏÓÔÁ×ÛÉÅÓÑ ÇÌÀËÉ ÏÖÉÄÁÀÔÓÑ.
it() ÷ÌÏÖÅÎÎÙÅ ÚÁËÒÙÔÉÑ × ÒÁÓÛÉÒÅÎÎÏÊ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ ÉÍ£Î É × ÆÏÒÍÅ ÏÂÒÁÚÃÏ×, ÔÁËÉÈ ËÁË
verb(
[[ fofo = (fo#)# ]]
)
ÎÅ ËÏÒÒÅËÔÎÏ ÔÒÁËÔÏ×ÁÌÏÓØ, É ÂÙÌÉ ÐÒÏÂÌÅÍÙ Ó ÕÓÌÏÖΣÎÎÙÍÉ ÉÓËÌÀÞÅÎÉÑÍÉ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ mytt(^) ÉÌÉ mytt(~). üÔÏ ÉÓÐÒÁ×ÌÅÎÏ Ó ×ÅÒÓÉÉ 3.1.3.
)
it() ôÒÁËÔÏ×ÁÎÉÅ mytt(:q) É mytt(:x) Ó ÐÏÄÓÔÁÎÏ×ËÏÊ ÐÁÒÁÍÅÔÒÁ ×ÅÄ£Ô ÓÅÂÑ ÓÔÒÁÎÎÏ: ÎÉ ÏÄÉÎ ÉÚ ÎÉÈ ÎÅ ÒÁÂÏÔÁÅÔ × ÌÀÂÏÊ ×ÅÒÓÉÉ 3.0, Á tt(:x) ÎÅ ÒÁÂÏÔÁÅÔ É ÐÏÓÌÅ.
îÅÓËÏÌØËÏ ÎÅÄÁ×ÎÉÈ ÉÚÍÅÎÅÎÉÊ ÐÏËÁÚÙ×ÁÀÔ ÎÅÓÏ×ÍÅÓÔÉÍÏÓÔÉ (ÜÔÏ ÎÅ ÏÛÉÂËÉ):
éÚÍÅÎÅÎÉÑ ÐÏÓÌÅ zsh 3.0:
itemize(
it() ðÁÒÁÍÅÔÒÙ tt(ALWAYS_LAST_PROMPT) (×ÏÚ×ÒÁÝÁÅÔ ÎÁ ÓÔÒÏËÕ, ËÏÔÏÒÕÀ ×Ù ÒÅÄÁËÔÉÒÕÅÔÅ, ÐÏÓÌÅ ÏÔÏÂÒÁÖÅÎÉÑ ÌÉÓÔÁ ÚÁ×ÅÒÛÅÎÉÑ) É tt(LIST_AMBIGUOUS) (ÎÅ ÄÅÌÁÊÔÅ tt(AUTO_LIST), ÅÓÌÉ ÂÙÌ Ñ×ÎÙÊ ÐÒÅÆÉËÓ, ËÏÔÏÒÙÊ ÄÏÌÖÅÎ ÂÙÔØ ×ÓÔÁ×ÌÅÎ, Ô.Å. ×Ù×ÏÄÉÔÅ ÓÐÉÓÏË, ÅÓÌÉ ÎÅÑÓÎÏ, ÞÔÏ ×ÓÔÁ×ÌÑÔØ ÄÁÌØÛÅ) ÔÅÐÅÒØ ÚÁÄÁÎÙ ÐÏ ÕÍÏÌÞÁÎÉÀ. üÔÏ ÂÙÌÏ ÓÄÅÌÁÎÏ × ÏÔ×ÅÔ ÎÁ ÖÁÌÏÂÙ, ÞÔÏ ÂÏÌØÛÉÎÓÔ×Ï ×ÏÚÍÏÖÎÏÓÔÅÊ zsh ÎÅ ÚÁÍÅÞÁÀÔÓÑ ÍÎÏÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ. þÔÏ ÂÙ ×ÙËÌÀÞÉÔØ ÉÈ, ÎÕÖÎÏ ÐÒÏÐÉÓÁÔØ mytt(unsetopt alwayslastprompt listambiguous) × ÆÁÊÌ tt(.zshrc).
it() ÷ 3.1.5 tt(history-search-{forward,backward}) ÎÁÈÏÄÉÔ ÔÏÌØËÏ ÐÒÅÄÙÄÕÝÉÅ ÓÔÒÏËÉ, ÇÄÅ ÐÅÒ×ÏÅ ÓÌÏ×Ï ÔÁËÏÅ ÖÅ ËÁË É ÔÅËÕÝÉÉ. îÁÐÒÉÍÅÒ,
verb(
comp<ESC>p
)
ÎÁÊÄ£Ô ÓÔÒÏËÉ × ÉÓÔÏÒÉÉ ÐÏÈÏÖÉÅ ÎÁ mytt(comp -edit emacs), ÎÏ ÎÅ mytt(compress file). ðÏ ÜÔÏÊ ÐÒÉÞÉÎÅ, mytt(\M-n) É mytt(\M-p) ÉÓÐÏÌØÚÕÅÔ tt(history-beginning-search-{forward,backward}), ËÏÔÏÒÙÊ ÉÝÅÔ ÓÔÒÏËÕ Ó ÔÁËÉÍ ÖÅ ÐÒÅÆÉËÓÏÍ ÄÏ ËÕÒÓÏÒÁ. ÷ ×ÅÒÓÉÉ 3.1.6 ÐÏÑ×ÉÌÁÓØ ÄÒÕÇÁÑ ÒÅÁÌÉÚÁÃÉÑ, ËÏÔÏÒÁÑ ÂÌÉÖÅ (ÎÏ ÎÅ ÉÄÅÎÔÉÞÎÁ) Ë ÓÔÁÒÏÍÕ ÐÏ×ÅÄÅÎÉÀ, É ÔÒÁÄÉÃÉÏÎÎÙÅ Ó×ÑÚÉ ×ÏÓÓÔÁÎÏ×ÌÅÎÙ. óÉÔÕÁÃÉÑ Ó ËÏÍÁÎÄÁÍÉ tt({up,down}-line-or-search ÁÎÁÌÏÇÉÞÎÁ).
it() ÷ ÒÅÖÉÍÅ ×ÓÔÁ×ËÉ vi, ËÌÁ×ÉÛÉ ÐÅÒÅÄ×ÉÖÅÎÉÑ ËÕÒÓÏÒÁ ÂÏÌØÛÅ ÎÅ ÒÁÂÏÔÁÀÔ. óÌÅÄÕÀÝÁÑ ËÏÍÁÎÄÁ ÐÒÉ×ÑÚÙ×ÁÅÔ ÉÈ:
COMMENT(-- note space after backslash --)
verb(
bindkey -M viins '^[[D' vi-backward-char '^[[C' vi-forward-char '^[[A' up-line-or-history '^[[B' down-line-or-history
)
(ÐÏËÁ ×ÁÛ ÔÅÒÍÉÎÁÌ ÎÅ ÔÒÅÂÕÅÔ mytt(^[O) ×ÍÅÓÔÏ mytt(^[[)). ïÓÎÏ×ÎÁÑ ÐÒÉÞÉÎÁ × ÔÏÍ, ÞÔÏ ÔÅÐÅÒØ ÒÁÓËÌÁÄËÉ ÄÌÑ ËÌÁ×ÉÛ Ó ÐÒÅÆÉËÓÁÍÉ × ÒÅÖÉÍÅ ×ÓÔÁ×ËÉ É × ËÏÍÁÎÄÎÏÍ ÒÅÖÉÍÅ - ÒÁÚÌÉÞÎÙ.
)
éÚÍÅÎÅÎÉÑ ÐÏÓÌÅ zsh 2.5:
itemize(
it() ìÅ×ÁÑ ÞÁÓÔØ ÐÒÉÓ×ÁÉ×ÁÎÉÑ ÂÏÌØÛÅ ÎÅ ÐÏÄÓÔÁ×ÌÑÅÔÓÑ. óÌÅÄÏ×ÁÔÅÌØÎÏ, mytt($1=$2) - ÎÅ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÞÔÏ-ÎÉÂÕÄØ ÐÏÈÏÖÅÅ ÎÁ mytt(eval "$1=\$2"), ÞÔÏ ÂÕÄÅÔ ÉÄÅÎÔÉÞÎÏ.
it() ðÒÅÒÙ×ÁÎÉÑ ÕÓÔÁÎÁ×ÌÉ×ÁÀÔÓÑ Ó ÐÏÍÏÝØÀ ×ÓÔÒÏÅÎÎÏÊ ËÏÍÁÎÄÙ `trap', ËÏÔÏÒÁÑ ÔÅÐÅÒØ ×ÙÚÙ×ÁÅÔÓÑ Ó ÏËÒÕÖÅÎÉÅÍ ×ÙÚ×Á×ÛÅÇÏ Å£, ËÁË × ksh, ×ÍÅÓÔÏ ÎÏ×ÏÇÏ ÕÒÏ×ÎÑ ÆÕÎËÃÉÉ. ðÒÅÒÙ×ÁÎÉÑ, ÕÓÔÁÎÏ×ÌÅÎÎÙÅ ËÁË ÆÕÎËÃÉÉ, (Ô.Å. mytt(TRAPINT() {...})) ÒÁÂÏÔÁÀÔ ËÁË É ÒÁÎØÛÅ.
it() ðÁÒÁÍÅÔÒ tt(NO_CLOBBER) - ÔÅÐÅÒØ ÎÁÚÙ×ÁÅÔÓÑ -C É tt(PRINT_EXIT_VALUE) -1; ÒÁÎØÛÅ ÂÙÌÏ ÎÁÏÂÏÒÏÔ. (éÓÐÏÌØÚÏ×ÁÎÉÅ ÉͣΠÐÒÅÄÐÏÞÔÉÔÅÌØÎÅÅ, ÞÅÍ ÂÕË×.)
it() mytt([[) - ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÏÅ ÓÌÏ×Ï, ÓÌÅÄÏ×ÁÔÅÌØÎÏ, ÄÏÌÖÎÏ ÂÙÔØ ÏÔÄÅÌÅÎÏ ÏÔ ÄÒÕÇÉÈ ÓÉÍ×ÏÌÏ× Ó×ÏÂÏÄÎÙÍ ÍÅÓÔÏÍ; mytt({) É mytt(}) ÔÁËÖÅ ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÎÎÙÅ ÓÌÏ×Á, ÅÓÌÉ ÚÁÄÁÎ ÐÁÒÁÍÅÔÒ tt(IGNORE_BRACES).
it() õÄẠ́ΠÐÁÒÁÍÅÔÒ tt(CSH_JUNKIE_PAREN): csh-like ËÏÄ ÔÅÐÅÒØ ×ÓÅÇÄÁ ×ÙÐÏÌÎÑÅÔ ÔÏ, ÞÔÏ ÏÎ ÄÏÌÖÅÎ ×ÙÐÏÌÎÑÔØ, Ô.Å. mytt(if ( ... ) ...) ×ÙÐÏÌÎÑÅÔ ËÏÄ ×ÎÕÔÒÉ ÓËÏÂÏË ×ÙÐÏÌÎÑÅÔÓÑ × ÏÔÄÅÌØÎÏÍ ÐÒÏÃÅÓÓÅ. þÔÏÂÙ ÜÔÏ ÍÏÖÎÏ ÂÙÌÏ ÉÓÐÏÌØÚÏ×ÁÔØ, ÓÉÎÔÁËÓÉÓ ÐÏÓÌÅ mytt(if) ÍÅÎÅÅ ÓÔÒÏÇ, ÞÅÍ × ÄÒÕÇÉÈ ÛÅÌÌÁÈ.
it() mytt(foo=*) - ÎÅ ÓÒÁÚÕ ×ÙÐÏÌÎÑÅÔ ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÀ ÉÍ£Î × ÐÒÁ×ÏÊ ÞÁÓÔÉ ÐÒÉÓ×ÁÉ×ÁÎÉÑ; ÓÔÁÒÏÅ ÐÏ×ÅÄÅÎÉÅ ÔÅÐÅÒØ ÔÒÅÂÕÅÔ ÐÁÒÁÍÅÔÒÁ tt(GLOB_ASSIGN). (mytt(foo=(*)) - ÞÔÏÂÙ ÐÒÉÎÕÄÉÔÅÌØÎÏ Å£ ×ÙÐÏÌÎÉÔØ.)
it() tt(<>) ×ÙÐÏÌÎÑÅÔ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ ××ÏÄÁ É ×Ù×ÏÄÁ × ÕÓÔÁÎÏ×ÌÅÎÎÙÊ ÆÁÊÌ. äÌÑ ÃÉÆÒÏ×ÏÇÏ ÏÂÏÚÎÁÞÅÎÉÑ ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ tt(<->).
it() ëÌÁÓÓÉÆÉËÁÔÏÒÙ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ, ÔÁËÉÅ ËÁË tt(exec), tt(noglob), tt(command), - ÔÅÐÅÒØ ÔÒÁËÔÕÀÔÓÑ ÂÏÌØÛÅ ËÁË ×ÓÔÒÏÅÎÎÙÅ ËÏÍÁÎÄÙ: ÐÅÒ×ÏÎÁÞÁÌØÎÏ Õ ÎÉÈ ÂÙÌ ÏÓÏÂÅÎÎÙÊ ÓÉÎÔÁËÓÉÓ. üÔÏ ÄÏÌÖÎÏ ÏÂÌÅÇÞÉÔØ ×ÙÐÏÌÎÅÎÉÅ ÒÁÚÌÉÞÎÙÈ ÈÉÔÒÏÓÔÅÊ (×ÙËÌÀÞÅÎÉÅ, ÓËÒÙÔÉÅ × ÐÁÒÁÍÅÔÒÁÈ É Ô.Ð.).
it() ÷ÓÔÒÏÅÎÎÁÑ ËÏÍÁÎÄÁ pushd ÂÙÌÁ ÐÅÒÅÐÉÓÁÎÁ ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ Ó ÄÒÕÇÉÍÉ ÛÅÌÌÁÍÉ. óÔÁÒÏÅ ÐÏ×ÅÄÅÎÉÅ ÍÏÖÎÏ ÐÏÌÕÞÉÔØ ÛÅÌÌ ÆÕÎËÃÉÅÊ.
it() ôÅËÕÝÁÑ ×ÅÒÓÉÑ ÉÓÐÏÌØÚÕÅÔ tt(~) ÄÌÑ ÐÏÄÓÔÁÎÏ×ËÉ ÓÔÅËÁ ÄÉÒÅËÔÏÒÉÉ ×ÍÅÓÔÏ tt(=). üÔÏ ÄÌÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ: ×ÓÅ ÏÓÔÁÌØÎÙÅ ÐÏÄÓÔÁÎÏ×ËÉ ÄÉÒÅËÔÏÒÉÉ (tt(~user), tt(~name), tt(~+), ...) ÉÓÐÏÌØÚÕÀÔ ÔÉÌØÄÕ, Ô.Ë. tt(=<number>) ×ÙÚÙ×ÁÌÏ ÐÒÏÂÌÅÍÙ Ó ÐÏÄÓÔÁÎÏ×ËÏÊ tt(=program).
it() ðÁÒÁÍÅÔÒ tt(HISTLIT) ÂÙÌ ÐÏÌÏÍÁÎ ÒÁÚÌÉÞÎÙÍÉ ÓÐÏÓÏÂÁÍÉ É ÚÁÔÅÍ ÕÄÁÌ£Î: ÐÅÒÅÐÉÓÁÎÎÙÊ ÍÅÈÁÎÉÚÍ ÉÓÔÏÒÉÉ ÎÉÞÅÇÏ ÎÅ ÉÚÍÅÎÉÌ, ÎÏ ÄÁÎÎÙÊ ÐÁÒÁÍÅÔÒ ÓÔÁÌ ÎÅÎÕÖÎÙÍ.
it() òÁÓÛÉÒÅÎÉÅ ÉÓÔÏÒÉÉ ×ÙËÌÀÞÅÎÏ × ÓÔÒÏËÁÈ, ÚÁËÌÀÞ£ÎÎÙÈ × ÏÄÉÎÁÒÎÙÅ ËÁ×ÙÞËÉ, ËÁË É × ÄÒÕÇÉÈ ÆÏÒÍÁÈ ÒÁÓÛÉÒÅÎÉÑ, ÓÌÅÄÏ×ÁÔÅÌØÎÏ, ×ÏÓËÌÉÃÁÔÅÌØÎÙÅ ÚÎÁËÉ ÎÅ ÎÕÖÎÏ ÜËÒÁÎÉÒÏ×ÁÔØ.
it() ðÅÒÅÍÅÎÎÁÑ mytt($HISTCHARS) ÔÅÐÅÒØ ÓÔÁÌÁ mytt($histchars). ÷ ÄÁÎÎÙÊ ÍÏÍÅÎÔ ÏÎÉ ÏÂÅ ÄÏÓÔÕÐÎÙ ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ.
it() ðÁÒÁÍÅÔÒ tt(PROMPT_SUBST) ÔÅÐÅÒØ ×ÙÐÏÌÎÑÅÔ backquote expansion -- hence you should quote these in prompts. (ËÁË ÒÅÚÕÌØÔÁÔ, SPROMPT ÔÏÖÅ ÉÚÍÅÎÉÌÓÑ.)
it() Quoting in prompts has changed: close parentheses inside ternary expressions should be quoted with a tt(%); history is now tt(%!), not tt(!). Backslashes are no longer special.
)
sect(çÄÅ ÍÎÅ ÄÏÌÏÖÉÔØ Ï ÏÛÉÂËÁÈ, ÐÏÌÕÞÉÔØ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ / ËÔÏ ÒÁÂÏÔÁÅÔ ÎÁÄ zsh?)
label(52)
ûÅÌÌ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÒÁÚÌÉÞÎÙÍÉ (entirely self-appointed) ÐÏÄÐÉÓÞÉËÁÍÉ ÌÉÓÔÁ ÒÁÓÓÙÌËÉ,
verb(
zsh-workers@xxxxxxxxxx
)
Ô.Þ. ÐÉÛÉÔÅ ÐÏ ÌÀÂÙÍ ×ÏÐÒÏÓÁÍ (ÓÏÏÂÝÅÎÉÑ Ï ÏÛÉÂËÁÈ, ÐÒÅÄÌÏÖÅÎÉÑ, ÖÁÌÏÂÙ...), Ó×ÑÚÁÎÎÙÍ Ó ÒÁÚÒÁÂÏÔËÏÊ ÛÅÌÌÁ. åÓÌÉ ×Ù ÈÏÔÉÔÅ, ÞÔÏÂÙ ËÔÏ-ÎÉÂÕÄØ ÎÁÐÉÓÁÌ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ×ÁÍ - ÔÁË É ÓËÁÖÉÔÅ. âÏÌØÛÉÎÓÔ×Ï ÚÁÐÌÁÔÏË ÐÏÑ×ÌÑÀÔÓÑ ÓÎÁÞÁÌÁ ÚÄÅÓØ.
ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ ÜÔÏ ÍÅÓÔÏÐÏÌÏÖÅÎÉÅ ÎÅÄÁ×ÎÏ ÉÚÍÅÎÉÌÏÓØ (ñÎ×ÁÒØ 1999), É ÉÎÓÔÒÕËÃÉÉ ÓÌÅÇËÁ ÒÁÚÌÉÞÎÙ --- × ÞÁÓÔÎÏÓÔÉ, ÅÓÌÉ ×Ù ÕÖÅ ÐÏÄÐÉÓÁÎÙ, ÔÏ ÉÎÓÔÒÕËÃÉÉ Ï ÔÏÍ, ËÁË ÏÔÐÉÓÁÔØÓÑ ÂÕÄÕÔ ÒÁÚÌÉÞÁÔØÓÑ.
ðÏÖÁÌÕÊÓÔÁ, ÚÁÍÅÔØÔÅ ÔÁËÖÅ, ÞÔÏ ÎÅËÏÔÏÒÙÅ ÏÛÉÂËÉ ÓÕÝÅÓÔ×ÕÀÔ ÔÏÌØËÏ ÎÁ ÏÐÒÅÄÅÌ£ÎÎÙÈ ÁÒÈÉÔÅËÔÕÒÁÈ, Ë ËÏÔÏÒÙÍ ÒÁÚÒÁÂÏÔÞÉËÉ ÍÏÇÕÔ ÎÅ ÉÍÅÔØ ÄÏÓÔÕÐÁ. ÷ ÜÔÏÍ ÓÌÕÞÁÅ ÏÔÌÁÄÏÞÎÁÑ ÉÎÆÏÒÍÁÃÉÑ ÏÓÏÂÅÎÎÏ ÎÕÖÎÁ É, ÐÏ ×ÏÚÍÏÖÎÏÓÔÉ, ËÁË ÍÏÖÎÏ ÄÅÔÁÌØÎÅÊ.
åÓÔØ ÅÝ£ Ä×Á ÎÅÂÏÌØÛÉÈ ÐÒÏÇÒÅÓÓÉ×ÎÙÈ ÌÉÓÔÁ, ÏÄÉÎ Ó ÓÏÏÂÝÅÎÉÑÍÉ, ËÁÓÁÀÝÉÈÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ,
verb(
zsh-users@xxxxxxxxxx
)
Á ÄÒÕÇÏÊ ÓÏÄÅÒÖÉÔ ÏÂßÑ×ÌÅÎÉÑ: Ï ×ÅÒÓÉÑÈ, Ï ÇÌÁ×ÎÙÈ ÉÚÍÅÎÅÎÉÑÈ × ÛÅÌÌÅ, ÉÌÉ, ÎÁÐÒÉÍÅÒ, Ï ÜÔÏÍ FAQ,
verb(
zsh-announce@xxxxxxxxxx
)
(ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÐÏÓÌÅÄÎÅÇÏ × ÎÁÓÔÏÑÝÅÅ ×ÒÅÍÑ ÏÇÒÁÎÉÞÅÎÏ).
÷Ù ÍÏÖÅÔÅ ÐÒÉÓÏÅÄÉÎÉÔØÓÑ ÔÏÌØËÏ Ë ÏÄÎÏÊ ÒÁÓÓÙÌËÅ: zsh-workers ÐÏÌÕÞÁÀÔ ×ÓÅ ÒÁÓÓÙÌËÉ, Á zsh-users ÂÕÄÕÔ ÐÏÌÕÞÁÔØ ÏÂßÑ×ÌÅÎÉÑ.
éÎÓÔÒÕËÃÉÉ ÄÌÑ zsh-announce É zsh-users ÔÁËÉÅ ÖÅ, ËÁË É ÄÌÑ zsh-workers: ÐÒÏÓÔÏ ÉÚÍÅÎÉÔÅ zsh-workers ÎÁ ÔÏ, ÞÔÏ ÎÕÖÎÏ.
þÔÏÂÙ ÐÒÉÓÏÅÄÉÎÉÔØÓÑ Ë zsh-workers, ÎÕÖÎÏ ÐÏÓÌÁÔØ ÐÉÓØÍÏ ÎÁ
verb(
zsh-workers-subscribe@xxxxxxxxxx
)
(ÆÁËÔÉÞÅÓËÏÅ ÓÏÄÅÒÖÁÎÉÅ ÎÅ ×ÁÖÎÏ). úÁÍÅÎÉÔÅ tt(subscribe) ÎÁ tt(unsubscribe), ÞÔÏÂÙ ÏÔÐÉÓÁÔØÓÑ. ðÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ (tt(ezml)) ÉÍÅÅÔ ÒÁÚÎÙÅ ÇÌÀËÉ, Ô.Å. ÅÓÌÉ ÞÔÏ, ÔÏ ×Ù ÍÏÖÅÔÅ ×ÏÓÓÔÁÎÏ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÉÚ ÁÒÈÉ×Á. äÌÑ ÂÏÌÅÅ ÄÅÔÁÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÐÉÛÉÔÅ ÎÁ email(zsh-workers-help@xxxxxxxxxx). áÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÅ ×ÏÐÒÏÓÙ ÌÕÞÛÅ ÓÌÁÔØ ÎÁ email(zsh-workers-owner@xxxxxxxxxx). òÁÓÓÙÌËÕ ÏÂÓÌÕÖÉ×ÁÅÔ email(Karsten Thygesen <karthy@xxxxxxxxxx>).
áÒÈÉ× ÒÁÓÓÙÌËÉ ÚÁ ÐÏÓÌÅÄÎÉÅ ÎÅÓËÏÌØËÏ ÌÅÔ ÎÁÈÏÄÉÔÓÑ ÚÄÅÓØ
url(http://www.zsh.org/mla/)(http://www.zsh.org/mla/)
× ÇÌÁ×ÎÏÍ ÁÒÈÉ×Å zsh × á×ÓÔÒÁÌÉÉ.
ëÏÎÅÞÎÏ, ×Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÚÁÄÁ×ÁÔØ ×ÏÐÒÏÓÙ × Usenet ÇÒÕÐÐÕ comp.unix.shell; ÅÓÌÉ ÎÉÞÅÇÏ ÎÅ ÐÏÍÏÇÌÏ, ÔÏ ×Ù ÍÏÖÅÔÅ ÎÁÐÉÓÁÔØ ÄÁÖÅ ÍÎÅ.
sect(ëÁË ÎÁÓÞ£Ô ÓÐÉÓËÁ ÐÏÖÅÌÁÎÉÊ?)
ðÏÓÌÅ ×ÅÒÓÉÉ 3, ËÏÄ ÓÔÁÌ ÚÎÁÞÉÔÅÌØÎÏ ÞÉÝÅ, ÞÅÍ ÒÁÎØÛÅ, ÎÏ ×Ó£ ÅÝ£ ÉÍÅÅÔ ÐÒÉÚÎÁËÉ ×ÏÚÒÁÓÔÁ É ÍÎÏÇÏ ×ÅÝÅÊ ÍÏÇÌÉ ÂÙ ÂÙÔØ ÓÄÅÌÁÎÙ ÌÕÞÝÅ, ÂÕÄØ ÏÎÉ ÎÁÐÉÓÁÎÙ ÚÁÎÏ×Ï. âÏÌÅÅ ÜÆÆÅËÔÉ×ÎÙÊ ËÏÄ ÄÌÑ ÌÅËÓÉËÉ/ÓÉÎÔÁËÓÉÓÁ/×ÙÐÏÌÎÅÎÉÑ ÂÙÌ ÂÙ ÐÒÅÄÐÏÞÔÉÔÅÌØÎÅÅ. äÏÂÒÏ×ÏÌØÃÙ ÏÓÏÂÅÎÎÏ ÐÒÉ×ÅÔÓÔ×ÕÀÔÓÑ ÄÌÑ ÜÔÉÈ ÚÁÄÁÞ.
÷ÏÔ ÐÏÓÌÅÄÎÉÅ ÉÚÍÅÎÅÎÉÑ, ËÏÔÏÒÙÅ ÐÏÑ×ÉÌÉÓØ × zsh 3.1.6.
itemize(
it() åÝ£ ÂÏÌÅÅ ÍÏÝÎÁÑ ÓÉÓÔÅÍÁ ÚÁ×ÅÒÛÅÎÉÑ, ÏÓÎÏ×ÁÎÎÁÑ ÎÁ ÛÅÌÌ-ÆÕÎËÃÉÑÈ, ÐÏÚ×ÏÌÑÅÔ ÂÏÌÅÅ ÄÅÔÁÌØÎÏ ËÏÎÔÒÏÌÉÒÏ×ÁÔØ ÓÏÐÏÓÔÁ×ÌÅÎÉÅ ÚÁ×ÅÒÛÅÎÉÊ É ÉÈ ×ÓÔÁ×ËÕ É ÏÔÏÂÒÁÖÅÎÉÅ. æÕÎËÃÉÉ, ÒÁÂÏÔÁÀÝÉÅ `ÉÚ ËÏÒÏÂËÉ' ÂÕÄÕÔ ÄÏÓÔÕÐÎÙ, ×ËÌÀÞÁÑ ÍÎÏÇÏ ÆÕÎËÃÉÊ ÄÌÑ ×ÎÅÛÎÉÈ ËÏÍÁÎÄ: ÆÁÊÌÙ × tar-ÁÒÈÉ×ÁÈ ÍÏÇÕÔ ÂÙÔØ ÕËÁÚÁÎÙ ÄÌÑ ÉÚ×ÌÅÞÅÎÉÑ, ËÁË ÂÕÄÔÏ ÏÎÉ ÒÅÁÌØÎÙÅ ÆÁÊÌÙ; GNU ËÏÍÁÎÄÙ, ËÏÔÏÒÙÅ ÐÒÉÎÉÍÁÀÔ ÐÁÒÁÍÅÔÒ mytt(--help), ÍÏÇÕÔ ÓÇÅÎÅÒÉÒÏ×ÁÔØ ÌÉÓÔ ÚÁ×ÅÒÛÅÎÉÊ ÄÌÑ ÎÉÈ ÓÁÍÉÈ ÎÁ ÌÅÔÕ, É Ô.Ä, É Ô.Ð. ÷Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÒÙÊ ÓÔÉÌØ ÚÁ×ÅÒÛÅÎÉÑ, ÏÓÎÏ×ÁÎÎÙÊ ÎÁ tt(compctl), ÄÌÑ ÎÅËÏÔÏÒÙÈ ËÏÍÁÎÄ É ÎÏ×ÙÊ ÓÔÉÌØ ÄÌÑ ÄÒÕÇÉÈ; ×Ù ÍÏÖÅÔÅ ÐÒÉ×ÑÚÁÔØ ÓÐÅÃÉÆÉÞÅÓËÏÅ ÚÁ×ÅÒÛÅÎÉÅ ËÏÍÁÎÄÙ ×ÁÛÅÇÏ ÓÏÂÓÔ×ÅÎÎÏÇÏ ÏÐÒÅÄÅÌÅÎÉÑ ÎÁÖÁÔÉÑ ËÌÁ×ÉÛÉ.
it() äÒÕÇÉÅ ÒÁÓÛÉÒÅÎÉÑ ÚÁ×ÅÒÛÅÎÉÑ: ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÙÊ ËÏÎÔÒÏÌØ, ÐÏÚ×ÏÌÑÀÝÉÊ ÎÅÞÕ×ÓÔ×ÉÔÅÌØÎÙÅ Ë ÒÅÇÉÓÔÒÕ ÓÏÐÏÓÔÁ×ÌÅÎÉÑ É ÓÐÅÃÉÁÌØÎÙÅ ÓÉÍ×ÏÌÙ, ÎÁÐÒÉÍÅÒ mytt(z_t<TAB>) ÐÏÚ×ÏÌÑÅÔ ÓÐÅÃÉÁÌØÎÙÊ ÓÉÍ×ÏÌ ÄÏ mytt(_) Ô.Å. ÒÁÓÛÉÒÉÔÓÑ ÄÏ mytt(zle_tricky.c) --- ×Ó£ ÐÏÄ ËÏÎÔÒÏÌÅÍ ÐÏÌØÚÏ×ÁÔÅÌÑ; ÚÁ×ÅÒÛÅÎÉÑ ÍÏÇÕÔ ÂÙÔØ ÓÇÒÕÐÐÉÒÏ×ÁÎÙ; ÎÏ×ÁÑ ËÏÍÁÎÄÁ ÚÁ×ÅÒÛÅÎÉÑ, menu-select, ÐÏÚ×ÏÌÑÅÔ ÒÅÁÌØÎÏ ×ÙÂÒÁÔØ ÉÚ ÍÅÎÀ --- ×Ù ÍÏÖÅÔÅ ÐÅÒÅÄ×ÉÇÁÔØ ËÕÒÓÏÒ, ÞÔÏÂÙ ×ÙÂÒÁÔØ ÚÁ×ÅÒÛÅÎÉÅ.
it() îÅÞÕ×ÓÔ×ÉÔÅÌØÎÙÅ Ë ÒÅÇÉÓÔÒÕ É ÐÒÉÂÌÉÖ£ÎÎÙÅ ÓÏÐÏÓÔÁ×ÌÅÎÉÑ × ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ ËÏÄÁ: ÎÁÐÒÉÍÅÒ, menu((#ia2)readme' ÓÏÓÔÁ×ÉÔ ÓÔÒÏËÕ `readme), ÎÅ ×ÚÉÒÁÑ ÎÁ ÒÅÇÉÓÔÒ É ÄÏÐÕÓËÁÑ Ä×Å ÏÛÉÂËÉ, ÔÁËÉÅ ËÁË tt(README), tt(READ.ME), tt(_README_), tt(Read!Me!). îÏ×ÁÑ ÓÉÓÔÅÍÁ ÚÁ×ÅÒÛÅÎÉÑ ÚÎÁÅÔ Ï ÜÔÏÍ, ÐÏÚ×ÏÌÑÑ ÉÓÐÒÁ×ÉÔØ ÚÁ×ÅÒÛÅÎÉÅ, Ô.Å. mytt(mkaef<TAB>) ÍÏÖÅÔ ÂÙÔØ ÚÁ×ÅÒÛÅÎÏ ÄÏ mytt(Makefile).
it() áÓÓÏÃÉÁÔÉ×ÎÙÅ ÍÁÓÓÉ×Ù, ÏÂßÑ×ÌÅÎÎÙÅ Ó ÐÏÍÏÝØÀ mytt(typeset -A aname); ÓÉÎÔÁËÓÉÓ ÄÌÑ ÓÏÚÄÁÎÉÑ, ÄÏÓÔÕÐÁ É ÕÄÁÌÅÎÉÑ ÜÌÅÍÅÎÔÏ× ÉÚ ÎÉÈ.
it() ðÏÌØÚÏ×ÁÔÅÌÉ ÍÏÇÕÔ ÓÁÍÉ ÓÏÚÄÁ×ÁÔØ ÉÈ ÓÏÂÓÔ×ÅÎÎÙÅ tt(foopath)/tt(FOOPATH) array/path ËÏÍÂÉÎÁÃÉÉ, ÔÁËÉÅ ËÁË tt(path) É tt(PATH).
it() äÉÎÁÍÉÞÅÓËÉ ÚÁÇÒÕÖÁÅÍÁÑ ÂÉÂÌÉÏÔÅËÁ ÄÌÑ FTP, ÚÁ×ÅÒÛÁÅÔ ÎÁÂÏÒ ÆÕÎËÃÉÊ ÄÌÑ ÐÒÏÓÔÏÔÙ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÛÅÌÌÁ. üÔÏ ÐÏÚ×ÏÌÉÔ ×ÁÍ ÉÓÐÏÌØÚÏ×ÁÔØ ×ÏÚÍÏÖÎÏÓÔÉ ÛÅÌÌÁ ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÓÃÅÎÁÒÉÅ×, ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ, ÚÁ×ÅÒÛÅÎÉÑ, ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÑ, ÐÒÏÓÍÏÔÒÁ ÄÉÒÅËÔÏÒÉÊ É Ô.Ä. ÂÅÚ FTP-ÓÅÓÓÉÉ.
)
äÒÕÇÉÅ ÂÕÄÕÝÉÅ ×ÏÚÍÏÖÎÏÓÔÉ, ËÏÔÏÒÙÅ ÂÙÌÉ ÐÒÅÄÌÏÖÅÎÙ:
itemize(
it() ëÏÄ ÐÁÒÁÍÅÔÒÏ× ÍÏÖÅÔ ÂÙÔØ ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÙÍ, ÂÙÔØ ÍÏÖÅÔ ÄÁÖÅ Ó ÂÏÌØÛÉÍÉ ×ÏÚÍÏÖÎÏÓÔÑÍÉ ÉÚ ksh93.
it() ëÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÆÁÊÌÙ zsh ÓÏÚÄÁ×ÁÔØ Ó ÐÏÍÏÝØÀ Dotfile Generator.
it() äÁÌØÎÅÊÛÉÅ ÕÓÏ×ÅÒÛÅÎÓÔ×Ï×ÁÎÉÑ ÉÎÔÅÇÒÉÒÏ×ÁÎÉÑ ÒÅÄÁËÔÏÒÁ Ó ÆÕÎËÃÉÑÍÉ ÛÅÌÌÁ.
it() Ksh ÓÏ×ÍÅÓÔÉÍÏÓÔØ ÄÏÌÖÎÁ ÂÙÔØ ÕÌÕÞÛÅÎÁ.
it() ðÁÒÁÍÅÔÒ ÄÌÑ ÓÐÅÃÉÆÉËÁÔÏÒÏ× ÕÎÉ×ÅÒÓÁÌÉÚÁÃÉÉ, ÞÔÏÂÙ ÓÌÅÄÏ×ÁÔØ ÚÁ ÓÉÎÔÁËÓÉÓÏÍ perl (ÔÒÁÄÉÃÉÏÎÎÙÊ ÐÕÎËÔ).
)
sect(éÍÅÅÔ ÌÉ zsh ÐÒÏÂÌÅÍÙ × 2000 ÇÏÄÕ?)
ñ ÎÅ ÓÌÙÛÁÌ ÜÔÏÇÏ; ÒÅÛÁÔØ ×ÁÍ, ÂÙÔØ ÏÓÔÏÒÏÖÎÙÍ Ó ÄÁÔÁÍÉ ÉÌÉ ÎÅÔ, ÇÄÅ ÇÏÄ ÉÚ Ä×ÕÈ ÃÉÆÒ, ÈÏÔÑ, ÏÎÉ ÐÏÌÕÞÅÎÙ ÜËÒÁÎÉÒÏ×ÁÎÎÙÍÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÍÉ mytt(%W) É mytt(%D), É ÔÁËÖÅ ËÏÍÁÎÄÏÊ `tt(print -P)'. õ ÒÁÎÎÉÈ ×ÅÒÓÉÊ zsh ÚÄÅÓØ ÍÏÇÕÔ ÂÙÔØ ÐÒÏÂÌÅÍÙ.
nsect(âÌÁÇÏÄÁÒÎÏÓÔÉ:)
óÐÁÓÉÂÏ ÌÉÓÔÕ ÒÁÓÓÙÌËÉ zsh, × ÞÁÓÔÎÏÓÔÉ Bart Schaefer, ÚÁ ÓÏ×ÅÔÙ, ËÁÓÁÀÝÉÅÓÑ ÜÔÏÇÏ ÄÏËÕÍÅÎÔÁ. Zsh ÂÙÌ Õ ÁÒÈÉ×ÁÒÉÕÓÏ× Jim Mattson, Bas de Bakker, Richard Coleman, Zoltan Hidvegi É Andrew Main, Á ÌÉÓÔ ÒÁÓÓÙÌËÉ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ Peter Gray, Rick Ohnemus, Richard Coleman É Karsten Thygesen, ×ÓÅ ÏÎÉ ÔÁËÖÅ ÚÁÓÌÕÖÉ×ÁÀÔ ÂÌÁÇÏÄÁÒÎÏÓÔÉ. íÉÒ ×ÅÞÎÏ × ÄÏÌÇÕ ÐÅÒÅÄ Paul Falstad ÚÁ ÉÚÏÂÒÅÔÅÎÉÅ zsh ÎÁ ÐÅÒ×ÏÍ ÍÅÓÔÅ (ÈÏÔÑ ÄÏÂÁ×ÉÌ ÚÁ×ÅÒÛÅÎÉÅ Sven Wischnowsky).
nsect(á×ÔÏÒÓËÁÑ ÉÎÆÏÒÍÁÃÉÑ:)
á×ÔÏÒ ÄÏËÕÍÅÎÔÁ (C) - P.W. Stephenson, 1995, 1996, 1997, 1998, 1999, 2000. üÔÏÔ ÔÅËÓÔ ÂÙÌ ÓÏÚÄÁÎ × ÷ÅÌÉËÏÂÒÉÔÁÎÉÉ É Á×ÔÏÒ ÕÔ×ÅÒÄÉÌ Ó×ÏÉ ÍÏÒÁÌØÎÙÅ ÐÒÁ×Á ÐÏÄ Á×ÔÏÒÓËÉÍÉ ÐÒÁ×ÁÍÉ, ÐÒÏÅËÔÁÍÉ É ÐÁÔÅÎÔÁÍÉ, 1988.
òÁÚÒÅÛÅÎÉÅ ÔÅÍ ÓÁÍÙÍ ÐÒÅÄÏÓÔÁ×ÌÑÅÔÓÑ, ÂÅÚ ÐÉÓØÍÅÎÎÏÇÏ ÓÏÇÌÁÛÅÎÉÑ É ÂÅÚ ìÉÃÅÎÚÉÉ ÉÌÉ ÐÌÁÔÙ, ÞÔÏÂÙ ÉÓÐÏÌØÚÏ×ÁÔØ, ËÏÐÉÒÏ×ÁÔØ, ÉÚÍÅÎÑÔØ, É ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÜÔÏÔ ÄÏËÕÍÅÎÔ ÄÌÑ ÌÀÂÏÊ ÃÅÌÉ, ÐÒÉ ÕÓÌÏ×ÉÉ, ÞÔÏ ×ÙÛÅÕÐÏÍÑÎÕÔÏÅ Á×ÔÏÒÓËÏÅ ÐÒÁ×Ï ÐÏÑ×ÌÑÅÔÓÑ ×Ï ×ÓÅÈ ËÏÐÉÑÈ ÜÔÏÊ ÄÏËÕÍÅÎÔÁÃÉÉ. ðÏÍÎÉÔÅ, ÞÔÏ ÜÔÏÔ ÄÏËÕÍÅÎÔ ÉÚÍÅÎÑÅÔÓÑ ÅÖÅÍÅÓÑÞÎÏ É ÂÕÄÅÔ ÂÏÌÅÅ ÐÏÌÅÚÎÏ ÐÒÅÄÏÓÔÁ×ÉÔØ ÓÓÙÌËÕ ÎÁ ÐÏÌÎÙÊ ÔÅËÓÔ. âÏÌÅÅ ÉÌÉ ÍÅÎÅÅ ÐÒÉÇÏÄÎÁÑ ÓÓÙÌËÁ - "information on the Z-shell can be obtained on the World
Wide Web at URL http://sunsite.dk/zsh/".
Messages sorted by:
Reverse Date,
Date,
Thread,
Author