close

Вход

Забыли?

вход по аккаунту

?

Ричард Столмен - Руководство по GNU Emacs - 1999

код для вставкиСкачать
rUKOWODSTWO PO GNU Emacs
rUKOWODSTWO PO GNU Emacs
tRINADCATAQ REDAKCIQ,OBNOWLENO DLQ Emacs WERSII 20.7
rI^ARD sTOLMEN
Permission is granted to make and distribute verbatim copies of this manual provided the
copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modiпЂЊed versions of this manual under the con-
ditions for verbatim copying,provided also that the sections entitled\The GNU Manifesto",
\Distribution"and\GNU General Public License"are included exactly as in the original,and
provided that the entire resulting derived work is distributed under the terms of a permission
notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language,
under the above conditions for modiпЂЊed versions,except that the sections entitled\The GNU
Manifesto",\Distribution"and\GNU General Public License"may be included in a translation
approved by the Free Software Foundation instead of in the original English.
tRINADCATAQ REDAKCIQ
OBNOWLENO DLQ Emacs WERSII 20.7,I@LX 1999
cFree Software Foundation,Inc.,1985-1987,1993-1999
cpEREWOD.n.`.iWANOWA,1993
cpEREWOD.a.q.oTT,o.s.tIHONOW,1999
ISBN 5-85593-133-1
rI^ARD sTOLMEN
"rUKOWODSTWO PO GNU Emacs"
iZDANO ano"ilkIrl"
lICENZIQ lr N 066121 OT 22.09.1998G.
pODPISANO K PE^ATI 25.11.1999G.
fORMAT 70H100 1/16
tIRAV 1000\KZ.tIP.ZAK.
oao"astra semx"
mOSKWA,fILIPPOWSKIJ PER.,13
pREDISLOWIE 3pREDISLOWIE
|TO RUKOWODSTWO OPISYWAET ISPOLXZOWANIE I PROSTU@ NASTROJKU REDAKTORA Emacs.oT
^ITATELQ NE TREBUETSQ BYTX PROGRAMMISTOM;DLQ PROSTOJ NASTROJKI NE NADO OBLADATX
NAWYKAMI W PROGRAMMIROWANII.tE POLXZOWATELI,KOTORYE NE INTERESU@TSQ NASTROJKOJ,
MOGUT PROPUSKATX RASSYPANNYE PO TEKSTU KRATKIE SOWETY PO NEJ.
|TO,GLAWNYM OBRAZOM,SPRAWO^NOE RUKOWODSTWO,NO EGO TAKVE MOVNO ISPOLXZOWATX W KA-
^ESTWE U^EBNIKA.dLQ TEH,KTO E]E SOWSEM NE ZNAKOM S Emacs,NEPLOHOJ IDEEJ BUDET NA^ATX
S OBU^A@]EJ DIALOGOWOJ PROGRAMMY.~TOBY WYZWATX EE,ZAPUSTITE Emacs I NABERITE C-h
t.tOGDA WY SMOVETE IZU^ITX Emacs,ISPOLXZUQ EGO W SPECIALXNO RAZRABOTANNOM FAJLE,KO-
TORYJ OPISYWAET KOMANDY,GOWORIT,KOGDA IH ISPOLXZOWATX,A ZATEM OB_QSNQET POLU^ENNYE
S POMO]X@\TIH KOMAND REZULXTATY.
pRI PERWOM ^TENII PROSTO BEGLO PROSMOTRITE PERWU@ I WTORU@ GLAWY,W KOTORYH OPI-
SANA PRINQTAQ W\TOM RUKOWODSTWE SISTEMA OBOZNA^ENIJ I OB]IJ WID\KRANA W Emacs.oBRA-
TITE WNIMANIE,NA KAKIE WOPROSY ESTX OTWETY W\TIH GLAWAH,^TOBY WY MOGLI WERNUTXSQ
K NIM POZVE.pOSLE PRO^TENIQ ^ETWERTOJ GLAWY WY DOLVNY POPRAKTIKOWATXSQ S RASSMOT-
RENNYMI W NEJ KOMANDAMI.sLEDU@]IE NESKOLXKO GLAW OPISYWA@T ^ASTO ISPOLXZUEMYE
FUNDAMENTALXNYE METODY I PONQTIQ.wAM NUVNO PONQTX IH DO KONCA,\KSPERIMENTIRUQ S
NIMI,ESLI\TO NEOBHODIMO.
gLAWY S ^ETYRNADCATOJ PO DEWQTNADCATU@ OPISYWA@T SREDSTWA SREDNEGO UROWNQ,POLEZ-
NYE W L@BYH WIDAH REDAKTIROWANIQ.gLAWA 20 I POSLEDU@]IE OPISYWA@T WOZMOVNOSTI,
KOTORYE WY MOVETE ZAHOTETX ISPOLXZOWATX,A MOVETE I NE ZAHOTETX;PRI^ITAJTE\TI GLAWY,
KOGDA\TI WOZMOVNOSTI WAM PONADOBQTSQ.
eSLI WAM KAVETSQ,^TO Emacs RABOTAET NEPRAWILXNO,PRO^TITE GLAWU O RE[ENII PRO-
BLEM.oNA OB_QSNQET,KAK SPRAWITXSQ S NEKOTORYMI ^ASTO WOZNIKA@]IMI TRUDNOSTQMI
(SM.rAZDEL 32.2 [nEPOLADKI],S.372),A TAKVE KOGDA I KAK NUVNO SOOB]ATX OB O[IBKAH W
Emacs (SM.rAZDEL 32.3 [o[IBKI W Emacs],S.375).
~TOBY OTYSKATX DOKUMENTACI@ NA OTDELXNU@ KOMANDU,ZAGLQNITE W IMENNOJ UKAZATELX.
kL@^I (LITERALXNYE KOMANDY) I IMENA KOMAND PERE^ISLENY W OTDELXNYH IMENNYH UKAZA-
TELQH.tAKVE IMEETSQ SLOWARX S PEREKRESTNYMI SSYLKAMI NA KAVDYJ TERMIN.
dANNOE RUKOWODSTWO DOSTUPNO W PE^ATNOJ FORME I W WIDE Info-FAJLA.Info-FAJL SLU-
VIT DLQ DIALOGOWOGO ^TENIQ S PROGRAMMOJ Info;\TO BUDET PERWI^NYM SPOSOBOM PROSMOTRA
INTERAKTIWNOJ DOKUMENTACII W SISTEME GNU.i\TOT Info-FAJL,I SAMA PROGRAMMA Info RAS-
PROSTRANQ@TSQ WMESTE S GNU Emacs.pE^ATNAQ KNIGA I Info-FAJL SODERVAT PO SUTI ODIN
TOT VE TEKST I SOZDA@TSQ IZ OB]EGO ISHODNOGO FAJLA,KOTORYJ TAKVE RASPROSTRANQETSQ
WMESTE S GNU Emacs.
GNU Emacs | ^LEN SEMEJSTWA Emacs-REDAKTOROW,NAS^ITYWA@]EGO BOLX[OE ^ISLO RE-
DAKTOROW,POSTROENNYH NA OB]IH ORGANIZACIONNYH PRINCIPAH.~TOBY PO^ITATX O FILOSO-
FII,LEVA]EJ W OSNOWE Emacs,I UROKAH,POLU^ENNYH IZ EGO RAZWITIQ,WYPI[ITE KOPI@ AI
memo 519a"Emacs,the Extensible,customizable Self-Documenting Display Editor",W Publica-
tion Department,ArtiпЂЊcial Intelligence Lab,545 Tech Square,Cambridge,MA 02139,USA.pO
POSLEDNIM SOOB]ENIQM ONI STOILI $2.25 ZA KOPI@.dRUGAQ POLEZNAQ PUBLIKACIQ |\TO LCS
TM-165,"A Cookbook for an Emacs",Craig Finseth,DOSTUPNAQ IZ Publication Department,
Laboratory for Computer Seince,543 Tech Square,Cambridge,MA 02139,USA.sEGODNQ[NQQ
CENA $3.
|TA REDAKCIQ RUKOWODSTWA PREDNAZNA^ENA DLQ ISPOLXZOWANIQ S GNU Emacs,USTANOWLEN-
NOM W SISTEMAH GNU I Unix.GNU Emacs TAKVE MOVNO ISPOLXZOWATX W SISTEMAH VMS,
MS-DOS (INA^E NAZYWAEMOJ MS-DOG),Windows NT I Windows 95.|TI SISTEMY PRIDER-
VIWA@TSQ DRUGOGO SINTAKSISA IMEN FAJLOW;KROME TOGO,VMS I MS-DOS NE PODDERVIWA@T
WSEH WOZMOVNOSTEJ GNU Emacs.w\TOM RUKOWODSTWE MY NE PYTAEMSQ OPISATX PRIMENENIE
Emacs W SISTEME VMS.dLQ POLU^ENIQ INFORMACII OB ISPOLXZOWANII Emacs W MS-DOS
SMOTRITE pRILOVENIE C [MS-DOS],S.403.
4 rUKOWODSTWO PO GNU Emacs
rASPROSTRANENIE 5rASPROSTRANENIE
GNU Emacs |SWOBODNAQ PROGRAMMA;\TO ZNA^IT,^TO WSQKIJ MOVET SWOBODNO ISPOLXZO-
WATX I POWTORNO RASPROSTRANQTX EGO PRI SOBL@DENII OPREDELENNYH USLOWIJ.GNU Emacs
NE QWLQETSQ OB]ESTWENNYM DOSTOQNIEM;NA NEGO DEJSTWU@T AWTORSKIE PRAWA,I NA EGO RAS-
PROSTRANENIE ESTX OGRANI^ENIQ,NO\TI OGRANI^ENIQ RAZRABOTANY TAK,^TOBY POZWOLITX
WSE,^TO MOVET ZAHOTETX HORO[IJ BLAGONAMERENNYJ GRAVDANIN.~TO NE RAZRE[AETSQ,TAK
\TO PYTATXSQ ME[ATX DRUGIM I DALEE SOWMESTNO POLXZOWATXSQ L@BOJ WERSIEJ GNU Emacs,
KOTORU@ ONI MOGLI BY OT WAS POLU^ITX.tO^NYE USLOWIQ NAHODQTSQ W uNIWERSALXNOJ oB-
]ESTWENNOJ lICENZII GNU,KOTORAQ POSTAWLQETSQ S Emacs I TAKVE IDET W SLEDU@]EM
RAZDELE.
oDIN IZ SPOSOBOW POLU^ITX KOPI@ GNU Emacs | WZQTX EE KOGO-TO,U KOGO Emacs UVE
ESTX.wAM NE NUVNO PROSITX NA[EGO RAZRE[ENIQ LIBO ^TO-TO E]E,PROSTO SKOPIRUJTE EE.
eSLI WY IMEETE DOSTUP K Internet,WY MOVETE POLU^ITX POSLEDN@@ WERSI@ DISTRIBUTIWA
GNU Emacs PO ANONIMNOMU FTP;PODROBNOSTI SMOTRITE W FAJLE`etc/FTP'W POSTAWKE
Emacs.
wY MOVETE TAKVE POLU^ITX GNU Emacs,KOGDA POKUPAETE KOMPX@TER.pROIZWODITELI
KOMPX@TEROW MOGUT RASPROSTRANQTX KOPII NA TEH VE SAMYH USLOWIQH,^TO I WSE OSTALXNYE.
|TI USLOWIQ TREBU@T OT NIH DATX WAM POLNYE ISHODNYE TEKSTY,WKL@^AQ L@BYE IZMENE-
NIQ,SDELANNYE IMI,I RAZRE[ITX WAM RASPROSTRANQTX POLU^ENNYJ OT NIH GNU Emacs
SOGLASNO OBY^NYM USLOWIQM uNIWERSALXNOJ oB]ESTWENNOJ lICENZII.dRUGIMI SLOWAMI,
\TA PROGRAMMA DOLVNA BYTX SWOBODNOJ DLQ WAS,KOGDA WY EE POLU^AETE,A NE TOLXKO SWO-
BODNOJ DLQ PROIZWODITELEJ.
wY TAKVE MOVETE ZAKAZATX KOPII GNU Emacs U fONDA sWOBODNOGO po NA KOMPAKT-
DISKE.|TO UDOBNYJ I NADEVNYJ SPOSOB POLU^ITX KOPI@;\TO TAKVE HORO[IJ SPOSOB
POMO^X SREDSTWAMI NA[EJ RABOTE.(fOND WSEGDA POLU^AL BOLX[U@ ^ASTX SREDSTW TAKIM
SPOSOBOM.) fORMA ZAKAZA WKL@^ENA W FAJL`etc/ORDERS'W POSTAWKE Emacs,ONA ESTX I NA
NA[EM Web-SAJTEhttp://www.gnu.org/order/order.html.dLQ POLU^ENIQ DOPOLNITELX-
NOJ INFORMACII PI[ITE PO ADRESU
Free Software Foundation
59 Temple Place,Suite 330
Boston,MA 02111-1307 USA
USA
dOHOD OT PLATY ZA RASPROSTRANENIE IDET NA PODDERVKU CELEJ FONDA:RAZRABOTKI NO-
WOGO SWOBODNOGO PROGRAMMNOGO OBESPE^ENIQ I RAZWITIQ NA[IH SU]ESTWU@]IH PROGRAMM,
WKL@^AQ GNU Emacs.
eSLI WY NAHODITE GNU Emacs POLEZNYM,POVALUJSTA PRI[LITE WZNOS W fOND sWOBOD-
NOGO PROGRAMMNOGO OBESPE^ENIQ,^TOBY PODDERVATX NA[U RABOTU.pOVERTWOWANIQ W fOND
sWOBODNOGO po W s{a OBLADA@T NALOGOWOJ SKIDKOJ.eSLI WY ISPOLXZUETE GNU Emacs
NA RABOTE,POVALUJSTA,PREDLOVITE WA[EJ KOMPANII SDELATX WZNOS.eSLI POLITIKA KOM-
PANII NEDRUVEL@BNO OTNOSITSQ K IDEE POVERTWOWANIQ BLAGOTWORITELXNOJ ORGANIZACII,WY
MOVETE WMESTO\TOGO PREDLOVITX WREMQ OT WREMENI ZAKAZYWATX U fONDA sWOBODNOGO po
KOMPAKT-DISKI ILI PODPISATXSQ NA REGULQRNYE OBNOWLENIQ.
w RAZRABOTKE GNU Emacs PRINIMALI U^ASTIE pER aBRAHAMSEN,dVEJ k.aDAMS,dVO
aRSENO,bOAZ bEN-cWI,dVIM bL\NDI,d\WID m.bRAUN,tERENS m.bRENON,pITER bRETON,
fR\NK bREC,kEWIN bRODI,wINSENT bROMAN,nEJL w.wAN dAJK,mORTEN wELINDER,uLXRIK
wIET,mAJK wILXQMS,rODNI wITBI,fELIKS s.t.wU,sTIWEN a.wUD,bARRI wORSO,dVO-
AN wROMANS,tOM wURGLER,kEJT gABRI\LXSKI,kEWIN gALAHER,kEWIN gALLO,dUG gWIN,
gOWARD gEJL,aNRI gIJOM,d\WID gILLESPI,sTIWEN gILXDI,bOB gLIKSTAJN,bORIS gOL-
DOWSKI,mIKELANDVELO gRIGNI,mAJKL g[WIND,mATXE dEWIN,mAJKL dEkORTE,gARI dELP,
kAJL dVONS,mAJKL k.dVONSON,|RIK dING,kARSTEN dOMINIK,sKOTT dREJWS,wIKTOR
6 rUKOWODSTWO PO GNU EmacsdUHOWNI,dVEMI zAWINSKI,|LI zARECKIJ,nIL zIRING,wILXQM zOMMERFELXD,lARS iN-
GEBRIGTSEN,|NDR@ iNNES,dVON iTON,tOMODZI kAGATANI,gOWARD kAJE,mAJKL kAJFER,
bR@STER kALE,bILL kARPENTER,dUG kATING,dAWID kAUFMAN,gENRI kAUC,dVEF k<NING,
rI^ARD kING,dVEJMS kLARK,mAJK kLARKSON,gLIN kLEMENTS,d\WID kOGEDAL,lARRI k.
kOLODNI,rOBERT kRAWIC,sEBASTIAN kREMER,|NDR@ kSILAG,dANIELX lAlIBERT,aARON
lARSON,dVEJMS r.lARUS,fREDERIK lEPXE,lARS lINDBERG,|RIK lUDLAM,rOLAND mAK-
gRAT,bILL mANN,kEN mANHAJMER,bRAJAN mARIK,bENGT mARTENSON,~ARLI mARTIN,
sAJMON mAR[ALL,d\WID mEGGINSON,tOMAS mEJ,nEJL m.mEJGER,wEJN mESARD,rI^ARD
mLINARIK,kEJT mUR,|RIK nAGGUM,`RGEN nIKELXSEN,tOMAS nOJMAN,dVEFF nORDEN,
|NDR@ nORMAN,mAJK nX@TON,dVEFF pEK,dAMON aNTON pERMEZELX,tOM pERRIN,jENS
pETERSEN,kRISTIAN pLONT,fRAN^ESKO pOTORTI,mAJKL d.pRANDV,d\NIEL pFAJFER,
fRED pXERESTEGAJ,|[WIN rAM,pOL rEJLI,|RIK s.rEJMOND,|DWARD m.rEJNGOLXD,rOB
rIPEL,rOLAND b.rOBERTS,dVON rOBINSON,gILERMO h.rOZAS,wILXQM rOZENBLAT,dEN-
NI rOZENDALX,iWAR rUMMELHOF,wOLXFGANG rUPREHT,mASAHIKO sATO,mANU\LX sERRANO,
|SPEN sKOGLUND,rIK sLADKI,lINN sLEJTER,d\WID sMIT,kRIS sMIT,pOL d.sMIT,
mAJKL sTATS,aKE sTENHOFF,pITER sTEFENSON,dVONATAN sTIGELXMAN,sTIW sTRASSMAN,
dVEJMS b.s\LEM,jENS t.bERGER tI\LXMAN,sPENSER tOMAS,dVIM tOMPSON,|D uILKIN-
SON,mASANOBU uMEDA,dEJL r.uORLI,dVOZEF bRAJAN u\LLS,fREDERIK fERNBAK,fRED
fI[,kARL fOGELX,dVEFRI fOLXKER,gARI fOSTER,nOJ fRIDMEN,dVON hAJDEMAN,kE-
NI^I hANDA,k.{EJN hARTMAN,mARKUS hERI^,mANABU hIGASIDA,kARL hOJER,aNDERS
hOLST,kURT hORNIK,tOM hULDER,kRIS h\NSON,rETO cIMMERMAN,qN t.cIMMERMAN,
sTANISLAW {ALUNOW,mARK {APIRO,r\NDEL {WARC,wILXQM {ELTER,rI^ARD {ERMAN,
oLIN {IWERS,rALXF {LAJHER,gREGOR {MID,mAJKL {MIDT,rONALXD s.{NELX,fILIPP
{NOBELEN,sTEFAN {O\F,sEMA {TEJNGOLXD,gANS ~ALUPSKI,bOB ~ASSEL,rOLXF |BERT,
sTIWEN |GLEN,tORBXORN |JNARSON,cUGUTOMO |NAMI,gANS gENRIK |RIKSEN,mAJKL |RNST
I aTA |TEMADI.
GNU GENERAL PUBLIC LICENSE 7GNU GENERAL PUBLIC LICENSE
Version 2,June 1991
Copyright c1989,1991 Free Software Foundation,Inc.
59 Temple Place,Suite 330,Boston,MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document,but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change
it.By contrast,the GNU General Public License is intended to guarantee your freedom to share
and change free software|to make sure the software is free for all its users.This General Public
License applies to most of the Free Software Foundation's software and to any other program
whose authors commit to using it.(Some other Free Software Foundation software is covered
by the GNU Library General Public License instead.) You can apply it to your programs,too.
When we speak of free software,we are referring to freedom,not price.Our General Public
Licenses are designed to make sure that you have the freedom to distribute copies of free
software (and charge for this service if you wish),that you receive source code or can get it if
you want it,that you can change the software or use pieces of it in new free programs;and that
you know you can do these things.
To protect your rights,we need to make restrictions that forbid anyone to deny you these
rights or to ask you to surrender the rights.These restrictions translate to certain responsibili-
ties for you if you distribute copies of the software,or if you modify it.
For example,if you distribute copies of such a program,whether gratis or for a fee,you must
give the recipients all the rights that you have.You must make sure that they,too,receive or
can get the source code.And you must show them these terms so they know their rights.
We protect your rights with two steps:(1) copyright the software,and (2) oпЂ‹er you this
license which gives you legal permission to copy,distribute and/or modify the software.
Also,for each author's protection and ours,we want to make certain that everyone under-
stands that there is no warranty for this free software.If the software is modiпЂЊed by someone
else and passed on,we want its recipients to know that what they have is not the original,so
that any problems introduced by others will not reect on the original authors'reputations.
Finally,any free program is threatened constantly by software patents.We wish to avoid the
danger that redistributors of a free program will individually obtain patent licenses,in eпЂ‹ect
making the program proprietary.To prevent this,we have made it clear that any patent must
be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying,distribution and modiпЂЊcation follow.
TERMS AND CONDITIONS FOR COPYING,
DISTRIBUTION AND MODIFICATION
0.This License applies to any program or other work which contains a notice placed by
the copyright holder saying it may be distributed under the terms of this General Public
License.The\Program",below,refers to any such program or work,and a\work based
on the Program"means either the Program or any derivative work under copyright law:
that is to say,a work containing the Program or a portion of it,either verbatim or with
modiпЂЊcations and/or translated into another language.(Hereinafter,translation is included
without limitation in the term\modiпЂЊcation".) Each licensee is addressed as\you".
8 rUKOWODSTWO PO GNU EmacsActivities other than copying,distribution and modiпЂЊcation are not covered by this License;
they are outside its scope.The act of running the Program is not restricted,and the output
from the Program is covered only if its contents constitute a work based on the Program
(independent of having been made by running the Program).Whether that is true depends
on what the Program does.
1.You may copy and distribute verbatim copies of the Program's source code as you receive
it,in any medium,provided that you conspicuously and appropriately publish on each copy
an appropriate copyright notice and disclaimer of warranty;keep intact all the notices that
refer to this License and to the absence of any warranty;and give any other recipients of
the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy,and you may at your
option oпЂ‹er warranty protection in exchange for a fee.
2.You may modify your copy or copies of the Program or any portion of it,thus forming a
work based on the Program,and copy and distribute such modiпЂЊcations or work under the
terms of Section 1 above,provided that you also meet all of these conditions:
a.You must cause the modiпЂЊed пЂЊles to carry prominent notices stating that you changed
the пЂЊles and the date of any change.
b.You must cause any work that you distribute or publish,that in whole or in part
contains or is derived from the Program or any part thereof,to be licensed as a whole
at no charge to all third parties under the terms of this License.
c.If the modiпЂЊed program normally reads commands interactively when run,you must
cause it,when started running for such interactive use in the most ordinary way,to
print or display an announcement including an appropriate copyright notice and a
notice that there is no warranty (or else,saying that you provide a warranty) and that
users may redistribute the program under these conditions,and telling the user how
to view a copy of this License.(Exception:if the Program itself is interactive but does
not normally print such an announcement,your work based on the Program is not
required to print an announcement.)
These requirements apply to the modiпЂЊed work as a whole.If identiпЂЊable sections of that
work are not derived from the Program,and can be reasonably considered independent
and separate works in themselves,then this License,and its terms,do not apply to those
sections when you distribute them as separate works.But when you distribute the same
sections as part of a whole which is a work based on the Program,the distribution of the
whole must be on the terms of this License,whose permissions for other licensees extend
to the entire whole,and thus to each and every part regardless of who wrote it.
Thus,it is not the intent of this section to claim rights or contest your rights to work
written entirely by you;rather,the intent is to exercise the right to control the distribution
of derivative or collective works based on the Program.
In addition,mere aggregation of another work not based on the Program with the Program
(or with a work based on the Program) on a volume of a storage or distribution medium
does not bring the other work under the scope of this License.
3.You may copy and distribute the Program (or a work based on it,under Section 2) in
object code or executable form under the terms of Sections 1 and 2 above provided that
you also do one of the following:
a.Accompany it with the complete corresponding machine-readable source code,which
must be distributed under the terms of Sections 1 and 2 above on a medium custom-
arily used for software interchange;or,
b.Accompany it with a written oпЂ‹er,valid for at least three years,to give any third
party,for a charge no more than your cost of physically performing source distribution,
a complete machine-readable copy of the corresponding source code,to be distributed
GNU GENERAL PUBLIC LICENSE 9under the terms of Sections 1 and 2 above on a medium customarily used for software
interchange;or,
c.Accompany it with the information you received as to the oпЂ‹er to distribute corre-
sponding source code.(This alternative is allowed only for noncommercial distribution
and only if you received the program in object code or executable form with such an
oпЂ‹er,in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modiпЂЊcations
to it.For an executable work,complete source code means all the source code for all
modules it contains,plus any associated interface deпЂЊnition пЂЊles,plus the scripts used to
control compilation and installation of the executable.However,as a special exception,the
source code distributed need not include anything that is normally distributed (in either
source or binary form) with the major components (compiler,kernel,and so on) of the
operating system on which the executable runs,unless that component itself accompanies
the executable.
If distribution of executable or object code is made by oпЂ‹ering access to copy from a
designated place,then oпЂ‹ering equivalent access to copy the source code from the same
place counts as distribution of the source code,even though third parties are not compelled
to copy the source along with the object code.
4.You may not copy,modify,sublicense,or distribute the Program except as expressly pro-
vided under this License.Any attempt otherwise to copy,modify,sublicense or distribute
the Program is void,and will automatically terminate your rights under this License.How-
ever,parties who have received copies,or rights,from you under this License will not have
their licenses terminated so long as such parties remain in full compliance.
5.You are not required to accept this License,since you have not signed it.However,nothing
else grants you permission to modify or distribute the Program or its derivative works.
These actions are prohibited by law if you do not accept this License.Therefore,by
modifying or distributing the Program (or any work based on the Program),you indicate
your acceptance of this License to do so,and all its terms and conditions for copying,
distributing or modifying the Program or works based on it.
6.Each time you redistribute the Program (or any work based on the Program),the recipient
automatically receives a license from the original licensor to copy,distribute or modify
the Program subject to these terms and conditions.You may not impose any further
restrictions on the recipients'exercise of the rights granted herein.You are not responsible
for enforcing compliance by third parties to this License.
7.If,as a consequence of a court judgment or allegation of patent infringement or for any
other reason (not limited to patent issues),conditions are imposed on you (whether by
court order,agreement or otherwise) that contradict the conditions of this License,they do
not excuse you from the conditions of this License.If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent obligations,
then as a consequence you may not distribute the Program at all.For example,if a patent
license would not permit royalty-free redistribution of the Program by all those who receive
copies directly or indirectly through you,then the only way you could satisfy both it and
this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circum-
stance,the balance of the section is intended to apply and the section as a whole is intended
to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property
right claims or to contest validity of any such claims;this section has the sole purpose of
protecting the integrity of the free software distribution system,which is implemented by
public license practices.Many people have made generous contributions to the wide range
of software distributed through that system in reliance on consistent application of that
10 rUKOWODSTWO PO GNU Emacssystem;it is up to the author/donor to decide if he or she is willing to distribute software
through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of
the rest of this License.
8.If the distribution and/or use of the Program is restricted in certain countries either by
patents or by copyrighted interfaces,the original copyright holder who places the Program
under this License may add an explicit geographical distribution limitation excluding those
countries,so that distribution is permitted only in or among countries not thus excluded.
In such case,this License incorporates the limitation as if written in the body of this
License.
9.The Free Software Foundation may publish revised and/or new versions of the General
Public License from time to time.Such new versions will be similar in spirit to the present
version,but may diпЂ‹er in detail to address new problems or concerns.
Each version is given a distinguishing version number.If the Program speciпЂЊes a version
number of this License which applies to it and\any later version",you have the option of
following the terms and conditions either of that version or of any later version published
by the Free Software Foundation.If the Program does not specify a version number of this
License,you may choose any version ever published by the Free Software Foundation.
10.If you wish to incorporate parts of the Program into other free programs whose distribution
conditions are diпЂ‹erent,write to the author to ask for permission.For software which
is copyrighted by the Free Software Foundation,write to the Free Software Foundation;
we sometimes make exceptions for this.Our decision will be guided by the two goals of
preserving the free status of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
11.BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,THERE IS NO WAR-
RANTY FOR THE PROGRAM,TO THE EXTENT PERMITTED BY APPLICABLE
LAW.EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM\AS IS"WITH-
OUT WARRANTY OF ANY KIND,EITHER EXPRESSEDOR IMPLIED,INCLUDING,
BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE.THE ENTIRE RISK AS TO THE
QUALITY AND PERFORMANCE OF THE PROGRAMIS WITH YOU.SHOULD THE
PROGRAM PROVE DEFECTIVE,YOU ASSUME THE COST OF ALL NECESSARY
SERVICING,REPAIR OR CORRECTION.
12.IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER,OR ANY OTHER PARTY WHO MAY
MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE,BE
LIABLE TO YOU FOR DAMAGES,INCLUDING ANY GENERAL,SPECIAL,INCI-
DENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR IN-
ABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS
OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED
BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
WITH ANY OTHER PROGRAMS),EVEN IF SUCH HOLDER OR OTHER PARTY
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
GNU GENERAL PUBLIC LICENSE 11How to Apply These Terms to Your New Programs
If you develop a new program,and you want it to be of the greatest possible use to the
public,the best way to achieve this is to make it free software which everyone can redistribute
and change under these terms.
To do so,attach the following notices to the program.It is safest to attach them to the start
of each source пЂЊle to most eпЂ‹ectively convey the exclusion of warranty;and each пЂЊle should
have at least the\copyright"line and a pointer to where the full notice is found.
one line to give the program's name and an idea of what it does.
Copyright (C) 19yy name of author
This program is free software;you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation;either version 2
of the License,or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY;without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program;if not,write to the Free Software Foundation,Inc.,
59 Temple Place,Suite 330,Boston,MA 02111-1307,USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive,make it output a short notice like this when it starts in an
interactive mode:
Gnomovision version 69,Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY;for details
type`show w'.This is free software,and you are welcome
to redistribute it under certain conditions;type`show c'
for details.
The hypothetical commands`show w'and`show c'should show the appropriate parts of the
General Public License.Of course,the commands you use may be called something other than
`show w'and`show c';they could even be mouse-clicks or menu items|whatever suits your
program.
You should also get your employer (if you work as a programmer) or your school,if any,to
sign a\copyright disclaimer"for the program,if necessary.Here is a sample;alter the names:
Yoyodyne,Inc.,hereby disclaims all copyright
interest in the program`Gnomovision'
(which makes passes at compilers) written
by James Hacker.
signature of Ty Coon,1 April 1989
Ty Coon,President of Vice
This General Public License does not permit incorporating your program into proprietary
programs.If your program is a subroutine library,you may consider it more useful to permit
linking proprietary applications with the library.If this is what you want to do,use the GNU
Library General Public License instead of this License.
12 rUKOWODSTWO PO GNU Emacs
uniwersalxnaq ob}estwennaq licenziq GNU 13uniwersalxnaq ob}estwennaq
licenziq GNU
wERSIQ 2,I@NX 1991
Copyright c1989,1991 Free Software Foundation,Inc.
59 Temple Place,Suite 330,Boston,MA 02111-1307 USA
c
pEREWOD.o.w.kUZINA,w.m.`FA,1993
cpEREWOD.o.s.tIHONOW,1998
|TOT DOKUMENT MOVNO KOPIROWATX,A TAKVE RASPROSTRANQTX EGO
DOSLOWNYE KOPII,ODNAKO WNOSITX W NEGO IZMENENIQ ZAPRE]ENO.
pREAMBULA
lICENZII NA BOLX[U@ ^ASTX PROGRAMMNOGO OBESPE^ENIQ (po) SOSTAWLENY TAK,^TOBY
LI[ITX WAS SWOBODY SOWMESTNO ISPOLXZOWATX I IZMENQTX EGO.w PROTIWOPOLOVNOSTX\TOMU,
PREDNAZNA^ENIE uNIWERSALXNOJ oB]ESTWENNOJ lICENZII GNU SOSTOIT W TOM,^TOBY GARAN-
TIROWATX WA[U SWOBODU SOWMESTNO ISPOLXZOWATX I IZMENQTX SWOBODNOE po,T.E.OBESPE^ITX
SWOBODU po DLQ WSEH EGO POLXZOWATELEJ.dANNAQ uNIWERSALXNAQ oB]ESTWENNAQ lICENZIQ
PRIMENIMA K BOLX[EJ ^ASTI po fONDA sWOBODNOGO po I KO WSEM DRUGIM PROGRAMMAM,^XI
AWTORY PRINIMA@T NA SEBQ OBQZATELXSTWO EE ISPOLXZOWATX.(dLQ NEKOTORYH PROGRAMM fON-
DA sWOBODNOGO po WMESTO NEE PRIMENQETSQ uNIWERSALXNAQ oB]ESTWENNAQ lICENZIQ GNU
DLQ BIBLIOTEK.) wY TOVE MOVETE PRIMENITX EE K SWOIM PROGRAMMAM.
kOGDA MY GOWORIM O SWOBODNOM po,MY IMEEM W WIDU SWOBODU,A NE BESPLATNOSTX.nA[I
uNIWERSALXNYE oB]ESTWENNYE lICENZII RAZRABATYWALISX DLQ TOGO,^TOBY GARANTIROWATX,
^TO WY POLXZUETESX SWOBODOJ RASPROSTRANQTX KOPII SWOBODNOGO po (I PRI VELANII POLU-
^ATX ZA\TO WOZNAGRAVDENIE);^TO WY POLU^AETE ISHODNYJ KOD ILI MOVETE POLU^ITX EGO,
ESLI ZAHOTITE;^TO WY MOVETE IZMENQTX po ILI ISPOLXZOWATX EGO ^ASTI W NOWYH SWOBODNYH
PROGRAMMAH;I ^TO WY ZNAETE OBO WSEH\TIH PRAWAH.
~TOBY ZA]ITITX WA[I PRAWA,NAM NUVNO WWESTI NEKOTORYE OGRANI^ENIQ,KOTORYE ZAPRE-
TQT KOMU BY TO NI BYLO OTKAZYWATX WAM W\TIH PRAWAH ILI POTREBOWATX OT WAS OTKAZATXSQ
OT\TIH PRAW.|TI OGRANI^ENIQ NAKLADYWA@T NA WAS NEKOTORYE OBQZATELXSTWA,ESLI WY
RASPROSTRANQETE KOPII po ILI IZMENQETE EGO.
nAPRIMER,ESLI WY RASPROSTRANQETE KOPII TAKOJ PROGRAMMY BESPLATNO ILI ZA WOZ-
NAGRAVDENIE,WY DOLVNY PREDOSTAWITX POLU^ATELQM WSE PRAWA,KOTORYMI OBLADAETE WY
SAMI.wY DOLVNY GARANTIROWATX,^TO ONI TOVE POLU^AT ILI SMOGUT POLU^ITX ISHODNYJ
KOD.nAKONEC,WY DOLVNY POKAZATX IM TEKST DANNYH USLOWIJ,^TOBY ONI ZNALI O SWOIH
PRAWAH.
mY ZA]I]AEM WA[I PRAWA W DWA\TAPA:(1) SOHRANQEM AWTORSKIE PRAWA NA po I (2) PRED-
LAGAEM WAM\TU LICENZI@,KOTORAQ DAET WAM ZAKONNOE PRAWO KOPIROWATX,RASPROSTRANQTX
I/ILI MODIFICIROWATX po.
kROME TOGO,W CELQH ZA]ITY KAK KAVDOGO AWTORA,TAK I NAS,MY HOTIM UDOSTOWERITXSQ,
^TO KAVDYJ PONIMAET,^TO GARANTIJ NA\TO SWOBODNOE po NET.eSLI po MODIFICIRUETSQ I
PEREDAETSQ KEM-TO E]E,MY HOTIM,^TOBY POLU^ATELI po ZNALI,^TO TO,^TO U NIH ESTX,|
\TO NE ORIGINAL,^TOBY L@BYE PROBLEMY,SOZDANNYE DRUGIMI,NE OTRAZILISX NA REPUTACII
PERWONA^ALXNYH AWTOROW.
i NAKONEC,KAVDOJ SWOBODNOJ PROGRAMME POSTOQNNO UGROVA@T PATENTY NA po.mY
HOTIM IZBEVATX TOJ OPASNOSTI,^TO POWTORNYE RASPROSTRANITELI SWOBODNOJ PROGRAMMY
SAMOSTOQTELXNO POLU^AT PATENTY,DELAQ PROGRAMMU TAKIM OBRAZOM ^ASTNOJ SOBSTWENNO-
STX@.~TOBY PREDOTWRATITX\TO,MY SO WSEJ OPREDELENNOSTX@ ZAQWLQEM,^TO L@BOJ PATENT
DOLVEN BYTX LIBO PREDOSTAWLEN WSEM DLQ SWOBODNOGO ISPOLXZOWANIQ,LIBO NE PREDOSTAWLEN
NIKOMU.
14 rUKOWODSTWO PO GNU EmacsnIVE SLEDU@T TO^NYE OPREDELENIQ I USLOWIQ DLQ KOPIROWANIQ,RASPROSTRANENIQ I MO-
DIFIKACII.
opredeleniq i uslowiq dlq kopirowaniq,
rasprostraneniq i modifikacii
0.|TA lICENZIQ PRIMENIMA K L@BOJ PROGRAMME ILI DRUGOMU PROIZWEDENI@,SODERVA]E-
MU UWEDOMLENIE,POME]ENNOE DERVATELEM AWTORSKIH PRAW I SOOB]A@]EE O TOM,^TO
ONO MOVET RASPROSTRANQTXSQ PRI USLOWIQH,OGOWORENNYH W DANNOJ uNIWERSALXNOJ oB-
]ESTWENNOJ lICENZII.w DALXNEJ[EM TERMIN\pROGRAMMA"OTNOSITSQ K L@BOJ TA-
KOJ PROGRAMME ILI PROIZWEDENI@,A TERMIN\PROIZWEDENIE,OSNOWANNOE NA pROGRAMME"
OZNA^AET pROGRAMMU ILI L@BOE PROIZWEDENIE,SODERVA]EE pROGRAMMU ILI EE ^ASTX,
DOSLOWNU@,ILI MODIFICIROWANNU@,I/ILI PEREWEDENNU@ NA DRUGOJ QZYK.(zDESX I
DALEE PEREWOD WKL@^AETSQ BEZ OGRANI^ENIJ W PONQTIE\MODIFIKACIQ".) kAVDYJ OBLA-
DATELX LICENZII ADRESUETSQ KAK\WY".
wIDY DEQTELXNOSTI,NE QWLQ@]IESQ KOPIROWANIEM,RASPROSTRANENIEM ILI MODIFIKA-
CIEJ,NE OHWATYWA@TSQ DANNOJ lICENZIEJ;ONI LEVAT ZA PREDELAMI EE WLIQNIQ.iS-
POLXZOWANIE pROGRAMMY PO EE FUNKCIONALXNOMU NAZNA^ENI@ NE OGRANI^ENO,A WYHOD-
NYE DANNYE pROGRAMMY OHWATYWA@TSQ\TOJ lICENZIEJ,TOLXKO ESLI IH SODERVANIE
QWLQETSQ PROIZWEDENIEM,OSNOWANNYM NA pROGRAMME (WNE ZAWISIMOSTI OT TOGO,BYLI
LI ONI POLU^ENY W PROCESSE ISPOLXZOWANIQ pROGRAMMY).qWLQ@TSQ LI ONI TAKOWYMI,
ZAWISIT OT TOGO,^TO IMENNO DELAET pROGRAMMA.
1.wY MOVETE KOPIROWATX I RASPROSTRANQTX DOSLOWNYE KOPII ISHODNOGO KODA pROGRAMMY
PO EGO POLU^ENII NA L@BOM NOSITELE,PRI USLOWII ^TO WY SOOTWETSTWU@]IM OBRA-
ZOM POME]AETE NA WIDNOM MESTE W KAVDOJ KOPII SOOTWETSTWU@]EE UWEDOMLENIE OB
AWTORSKIH PRAWAH I OTKAZ OT PREDOSTAWLENIQ GARANTIJ;OSTAWLQETE NETRONUTYMI WSE
UWEDOMLENIQ,OTNOSQ]IESQ K DANNOJ lICENZII I K OTSUTSTWI@ KAKIH-LIBO GARANTIJ;
I PEREDAETE WSEM DRUGIM POLU^ATELQM pROGRAMMY KOPI@ DANNOJ lICENZII WMESTE S
pROGRAMMOJ.
wY MOVETE NAZNA^ITX PLATU ZA FIZI^ESKIJ AKT PEREDA^I KOPII I MOVETE PO SWOEMU
USMOTRENI@ PREDOSTAWLQTX GARANTII ZA WOZNAGRAVDENIE.
2.wY MOVETE IZMENQTX SWO@ KOPI@ ILI KOPII pROGRAMMY ILI L@BOJ EE ^ASTI,SOZDAWAQ
TAKIM OBRAZOM PROIZWEDENIE,OSNOWANNOE NA pROGRAMME,I KOPIROWATX I RASPROSTRA-
NQTX\TI MODIFIKACII ILI PROIZWEDENIE W SOOTWETSTWII S rAZDELOM 1,PRIWEDENNYM
WY[E,PRI USLOWII,^TO WY WYPOLNITE WSE NIVESLEDU@]IE USLOWIQ:
a.wY OBQZANY SNABDITX MODIFICIROWANNYE FAJLY ZAMETNYMI UWEDOMLENIQMI,SO-
DERVA]IMI UKAZANIQ NA TO,^TO WY IZMENILI FAJLY,I DATU KAVDOGO IZMENENIQ.
b.wY OBQZANY PREDOSTAWITX WSEM TRETXIM LICAM LICENZI@ NA BESPLATNOE ISPOLXZO-
WANIE KAVDOGO PROIZWEDENIQ,KOTOROE WY RASPROSTRANQETE ILI PUBLIKUETE,CELI-
KOM,I KOTOROE POLNOSTX@ ILI ^ASTI^NO SODERVIT pROGRAMMU ILI KAKU@-LIBO EE
^ASTX,NA USLOWIQH,OGOWORENNYH W DANNOJ lICENZII.
c.eSLI MODIFICIROWANNAQ PROGRAMMA OBY^NO ^ITAET KOMANDY W INTERAKTIWNOM RE-
VIME RABOTY,WY DOLVNY SDELATX TAK,^TOBY PRI ZAPUSKE DLQ RABOTY W TAKOM
INTERAKTIWNOM REVIME OBY^NYM DLQ NEE SPOSOBOM ONA PE^ATALA ILI WYWODILA NA
\KRAN OB_QWLENIE,SODERVA]EE SOOTWETSTWU@]EE UWEDOMLENIE OB AWTORSKIH PRAWAH
I UWEDOMLENIE O TOM,^TO GARANTIJ NET (ILI,NAOBOROT,SOOB]A@]EE O TOM,^TO WY
OBESPE^IWAETE GARANTII),I ^TO POLXZOWATELI MOGUT POWTORNO RASPROSTRANQTX PRO-
GRAMMU PRI\TIH USLOWIQH,I UKAZYWA@]EE POLXZOWATEL@,KAK PROSMOTRETX KOPI@
DANNOJ lICENZII.(iSKL@^ENIE:ESLI SAMA pROGRAMMA RABOTAET W INTERAKTIW-
NOM REVIME,NO OBY^NO NE WYWODIT PODOBNYH SOOB]ENIJ,TO WA[E PROIZWEDENIE,
OSNOWANNOE NA pROGRAMME,NE OBQZANO WYWODITX OB_QWLENIE.)
uniwersalxnaq ob}estwennaq licenziq GNU 15|TI TREBOWANIQ PRIMENQ@TSQ K MODIFICIROWANNOMU PROIZWEDENI@ W CELOM.eSLI IZ-
WESTNYE ^ASTI\TOGO PROIZWEDENIQ NE BYLI OSNOWANY NA pROGRAMME I MOGUT OBOSNOWAN-
NO S^ITATXSQ NEZAWISIMYMI I SAMOSTOQTELXNYMI PROIZWEDENIQMI,TO\TA lICENZIQ I
EE USLOWIQ NE RASPROSTRANQ@TSQ NA\TI ^ASTI,ESLI WY RASPROSTRANQETE IH KAK OTDELX-
NYE PROIZWEDENIQ.nO ESLI WY RASPROSTRANQETE\TI ^ASTI KAK ^ASTX CELOGO PROIZWEDE-
NIQ,OSNOWANNOGO NA pROGRAMME,TO WY OBQZANY DELATX\TO W SOOTWETSTWII S USLOWIQMI
DANNOJ lICENZII,RASPROSTRANQQ PRAWA POLU^ATELEJ LICENZII NA WSE PROIZWEDENIE I,
TAKIM OBRAZOM,NA KAVDU@ ^ASTX,WNE ZAWISIMOSTI OT TOGO,KTO EE NAPISAL.
tAKIM OBRAZOM,SODERVANIE\TOGO RAZDELA NE IMEET CELI PRETENDOWATX NA WA[I PRAWA
NA PROIZWEDENIE,NAPISANNOE POLNOSTX@ WAMI,ILI OSPARIWATX IH;CELX SKOREE W TOM,
^TOBY REALIZOWATX PRAWO UPRAWLQTX RASPROSTRANENIEM PROIZWODNYH ILI KOLLEKTIW-
NYH PROIZWEDENIJ,OSNOWANNYH NA pROGRAMME.
kROME TOGO,PROSTOE NAHOVDENIE DRUGOGO PROIZWEDENIQ,NE OSNOWANNOGO NA\TOJ pRO-
GRAMME,SOWMESTNO S pROGRAMMOJ (ILI S PROIZWEDENIEM,OSNOWANNYM NA\TOJ pROGRAM-
ME) NA ODNOM NOSITELE DLQ POSTOQNNOGO HRANENIQ ILI RASPROSTRANQEMOM NOSITELE NE
RASPROSTRANQET DEJSTWIE\TOJ lICENZII NA DRUGOE PROIZWEDENIE.
3.wY MOVETE KOPIROWATX I RASPROSTRANQTX pROGRAMMU (ILI PROIZWEDENIE,OSNOWANNOE
NA NEJ) SOGLASNO rAZDELU 2) W OB_EKTNOM KODE ILI W WYPOLNIMOM WIDE W SOOTWETSTWII
S rAZDELAMI 1 I 2,PRIWEDENNYMI WY[E,PRI USLOWII,^TO WY TAKVE WYPOLNITE ODNO
IZ SLEDU@]IH TREBOWANIJ:
a.sOPROWODITE EE POLNYM SOOTWETSTWU@]IM MA[INO^ITAEMYM ISHODNYM KODOM,KO-
TORYJ DOLVEN RASPROSTRANQTXSQ W SOOTWETSTWII S rAZDELAMI 1 I 2,PRIWEDENNYMI
WY[E,NA NOSITELE,KOTORYJ OBY^NO ISPOLXZUETSQ DLQ OBMENA po;ILI,
b.sOPROWODITE EE PISXMENNYM PREDLOVENIEM,DEJSTWITELXNYM PO KRAJNEJ MERE W
TE^ENIE TREH LET,PREDOSTAWITX L@BOMU TRETXEMU LICU ZA WOZNAGRAVDENIE,NE PRE-
WY[A@]EE STOIMOSTX FIZI^ESKOGO AKTA IZGOTOWLENIQ KOPII,POLNU@ MA[INO^I-
TAEMU@ KOPI@ SOOTWETSTWU@]EGO ISHODNOGO KODA,PODLEVA]U@ RASPROSTRANENI@
W SOOTWETSTWII S rAZDELAMI 1 I 2,PRIWEDENNYMI WY[E;ILI
c.sOPROWODITE EE INFORMACIEJ,POLU^ENNOJ WAMI W KA^ESTWE PREDLOVENIQ RASPRO-
STRANITX SOOTWETSTWU@]IJ ISHODNYJ KOD.(|TA WOZMOVNOSTX DOPUSTIMA TOLXKO
DLQ NEKOMMER^ESKOGO RASPROSTRANENIQ,I TOLXKO ESLI WY POLU^ILI PROGRAMMU W
OB_EKTNOM KODE ILI W ISPOLNQEMOM WIDE S PREDLOVENIEM W SOOTWETSTWII S pUNKTOM
b) WY[E.)
iSHODNYJ KOD DLQ PROIZWEDENIQ OZNA^AET EGO WID,PREDPO^TITELXNYJ DLQ WYPOLNENIQ
W NEM MODIFIKACIJ.dLQ ISPOLNQEMOGO PROIZWEDENIQ POLNYJ ISHODNYJ KOD OZNA^A-
ET WSE ISHODNYE KODY DLQ WSEH MODULEJ,KOTORYE ON SODERVIT,PL@S L@BYE SWQZAN-
NYE S PROIZWEDENIEM FAJLY OPREDELENIQ INTERFEJSA,PL@S SCENARII,ISPOLXZUEMYE
DLQ UPRAWLENIQ KOMPILQCIEJ I USTANOWKOJ ISPOLNQEMOGO PROIZWEDENIQ.oDNAKO,W WI-
DE OSOBOGO ISKL@^ENIQ RASPROSTRANQEMYJ ISHODNYJ KOD NE OBQZAN WKL@^ATX TO,^TO
OBY^NO PREDOSTAWLQETSQ (KAK W OB_EKTNYH,TAK I W ISHODNYH KODAH) S OSNOWNYMI KOM-
PONENTAMI (KOMPILQTOR,QDRO I TAK DALEE) OPERACIONNOJ SISTEMY,POD UPRAWLENIEM
KOTOROJ RABOTAET ISPOLNQEMOE PROIZWEDENIE,ZA ISKL@^ENIEM SLU^AQ,KOGDA SAM KOM-
PONENT SOPROWOVDAET ISPOLNQEMOE PROIZWEDENIE.
eSLI RASPROSTRANENIE ISPOLNQEMOGO PROIZWEDENIQ ILI OB_EKTNOGO KODA PROISHODIT
PUTEM PREDOSTAWLENIQ DOSTUPA DLQ KOPIROWANIQ S OBOZNA^ENNOGO MESTA,TO PREDOSTAW-
LENIE DOSTUPA DLQ KOPIROWANIQ ISHODNOGO KODA S TOGO VE MESTA S^ITAETSQ RASPRO-
STRANENIEM ISHODNOGO KODA,DAVE ESLI TRETXI LICA NE PRINUVDA@TSQ K KOPIROWANI@
ISHODNOGO KODA WMESTE S OB_EKTNYM KODOM.
4.wY NE MOVETE KOPIROWATX,IZMENQTX,POWTORNO LICENZIROWATX,ILI RASPROSTRANQTX
pROGRAMMU NIKAKIM INYM SPOSOBOM,KROME QWNO PREDUSMOTRENNYH DANNOJ lICENZI-
EJ.l@BAQ POPYTKA KOPIROWATX,IZMENQTX ILI RASPROSTRANQTX pROGRAMMU KAKIM-LIBO
16 rUKOWODSTWO PO GNU EmacsDRUGIM SPOSOBOM ILI S IZMENENNOJ LICENZIEJ NEPRAWOMERNA I AWTOMATI^ESKI PREKRA-
]AET WA[I PRAWA,DANNYE WAM\TOJ lICENZIEJ.oDNAKO LICENZII LIC,POLU^IW[IH
OT WAS KOPII ILI PRAWA SOGLASNO DANNOJ uNIWERSALXNOJ oB]ESTWENNOJ lICENZII,NE
PREKRA]A@T SWOEGO DEJSTWIQ,ESLI\TI LICA POLNOSTX@ SOBL@DA@T USLOWIQ.
5.wY NE OBQZANY SOGLA[ATXSQ S\TOJ lICENZIEJ,TAK KAK WY NE PODPISYWALI EE.oDNA-
KO,NI^TO,KROME\TOJ lICENZII,NE DAET WAM PRAWO IZMENQTX ILI RASPROSTRANQTX\TU
pROGRAMMU ILI OSNOWANNYE NA NEJ PROIZWEDENIQ.|TI DEJSTWIQ ZAPRE]ENY ZAKONOM,
ESLI WY NE PRINIMAETE K SOBL@DENI@\TU lICENZI@.a ZNA^IT,IZMENQQ ILI RASPRO-
STRANQQ pROGRAMMU (ILI PROIZWEDENIE,OSNOWANNOE NA pROGRAMME),WY IZ_QWLQETE SWOE
SOGLASIE S\TOJ lICENZIEJ I WSEMI EE USLOWIQMI O KOPIROWANII,RASPROSTRANENII ILI
MODIFIKACII pROGRAMMY ILI OSNOWANNYH NA NEJ PROIZWEDENIJ.
6.kAVDYJ RAZ,KOGDA WY POWTORNO RASPROSTRANQETE pROGRAMMU (ILI L@BOE PROIZWEDE-
NIE,OSNOWANNOE NA pROGRAMME),POLU^ATELX\TOGO PROIZWEDENIQ AWTOMATI^ESKI POLU-
^AET OT PERWONA^ALXNOGO WYDAW[EGO LICENZI@ LICA SWO@ LICENZI@ NA KOPIROWANIE,
RASPROSTRANENIE ILI MODIFIKACI@ pROGRAMMY,OBSUVDAEMU@ W\TIH OPREDELENIQH I
USLOWIQH.wY NE MOVETE NALAGATX KAKIH-LIBO DOPOLNITELXNYH OGRANI^ENIJ NA OSU-
]ESTWLENIE POLU^ATELEM PRAW,PREDOSTAWLENNYH DANNYM DOKUMENTOM.wY NE NESETE
OTWETSTWENNOSTI ZA SOBL@DENIE TRETXIMI LICAMI USLOWIJ\TOJ lICENZII.
7.eSLI W REZULXTATE SUDEBNOGO RAZBIRATELXSTWA,ILI OBWINENIQ W NARU[ENII PATENTA
ILI PO L@BOJ DRUGOJ PRI^INE (NE OBQZATELXNO SWQZANNOJ S PATENTAMI),WAM NAWQZANY
USLOWIQ,PROTIWORE^A]IE DANNOJ lICENZII (PO POSTANOWLENI@ SUDA,PO SOGLA[ENI@
ILI INYM SPOSOBOM),\TO NE OSWOBOVDAET WAS OT SOBL@DENIQ lICENZII.eSLI WY NE
MOVETE ZANIMATXSQ RASPROSTRANENIEM TAK,^TOBY ODNOWREMENNO UDOWLETWORITX TREBO-
WANIQM I\TOJ lICENZII,I WSEM DRUGIM TREBOWANIQM,TO WY NE DOLVNY ZANIMATXSQ
RASPROSTRANENIEM pROGRAMMY.nAPRIMER,ESLI PATENT NE POZWOLQET BEZWOZMEZDNOE PO-
WTORNOE RASPROSTRANENIE pROGRAMMY WSEM,KTO POLU^IL KOPII OT WAS NEPOSREDSTWENNO
ILI ^EREZ POSREDNIKOW,TO EDINSTWENNYM SPOSOBOM UDOWLETWORITX I PATENTU,I\TOJ
lICENZII BUDET WA[ POLNYJ OTKAZ OT RASPROSTRANENIQ pROGRAMMY.
eSLI KAKAQ-LIBO ^ASTX\TOGO RAZDELA NE IMEET SILY ILI NE MOVET BYTX ISPOLNENA PRI
NEKOTORYH KONKRETNYH OBSTOQTELXSTWAH,TO PODRAZUMEWAETSQ,^TO IMEET SILU OSTALX-
NAQ ^ASTX RAZDELA,A PRI DRUGIH OBSTOQTELXSTWAH IMEET SILU WESX rAZDEL.
cELX\TOGO RAZDELA |NE POBUDITX WAS DELATX ZAQWLENIQ O NARU[ENIQH PRAW NA PATENT,
ILI ZAQWLQTX O DRUGIH PRETENZIQH NA PRAWO SOBSTWENNOSTI ILI OSPARIWATX PRAWILX-
NOSTX PODOBNYH PRETENZIJ;EDINSTWENNAQ CELX\TOGO RAZDELA | ZA]ITA CELOSTNOSTI
SISTEMY RASPROSTRANENIQ SWOBODNOGO po,KOTORAQ REALIZUETSQ ISPOLXZOWANIEM OB]E-
STWENNYH LICENZIJ.mNOGIE L@DI WNESLI ]EDRYJ WKLAD W [IROKIJ SPEKTR po,RAS-
PROSTRANQEMOGO PO\TOJ SISTEME,POLAGAQSX NA EE SOGLASOWANNOE PRIMENENIE;TOLXKO
AWTORU PRINADLEVIT PRAWO RE[ATX,HO^ET LI ON ILI ONA RASPROSTRANQTX po W\TOJ
SISTEME ILI W KAKOJ-TO DRUGOJ,I POLU^ATELX LICENZII NE MOVET WLIQTX NA PRINQTIE
\TOGO RE[ENIQ.
|TOT RAZDEL PREDNAZNA^EN DLQ TOGO,^TOBY T]ATELXNO PROQSNITX,^TO POLAGAETSQ SLED-
STWIEM IZ OSTALXNOJ ^ASTI DANNOJ lICENZII.
8.eSLI RASPROSTRANENIE I/ILI PRIMENENIE pROGRAMMY OGRANI^ENO W RQDE STRAN LIBO
PATENTAMI,LIBO AWTORSKIMI PRAWAMI NA INTERFEJSY,PERWONA^ALXNYJ OBLADATELX
AWTORSKIH PRAW,WYPUSKA@]IJ pROGRAMMU S\TOJ lICENZIEJ,MOVET DOBAWITX QWNOE
OGRANI^ENIE NA GEOGRAFI^ESKOE RASPROSTRANENIE,ISKL@^IW TAKIE STRANY,TAK ^TO
RASPROSTRANENIE RAZRE[AETSQ TOLXKO W TEH STRANAH,KOTORYE NE BYLI ISKL@^ENY.w
\TOM SLU^AE DANNAQ lICENZIQ WKL@^AET W SEBQ\TO OGRANI^ENIE,KAK ESLI BY ONO BYLO
NAPISANO W TEKSTE DANNOJ lICENZII.
9.fOND sWOBODNOGO po MOVET WREMQ OT WREMENI PUBLIKOWATX PERESMOTRENNYE I/ILI
NOWYE WERSII uNIWERSALXNOJ oB]ESTWENNOJ lICENZII.tAKIE NOWYE WERSII BUDUT
uniwersalxnaq ob}estwennaq licenziq GNU 17SHODNY PO DUHU S NASTOQ]EJ WERSIEJ,NO MOGUT OTLI^ATXSQ W DETALQH,NAPRAWLENNYH
NA NOWYE PROBLEMY ILI OBSTOQTELXSTWA.
kAVDOJ WERSII PRIDAETSQ OTLI^ITELXNYJ NOMER.eSLI W pROGRAMME UKAZYWAETSQ,
^TO K NEJ OTNOSITSQ NEKOTORYJ NOMER WERSII DANNOJ lICENZII I\L@BAQ POSLEDU@]AQ
WERSIQ",WY MOVETE PO WYBORU SLEDOWATX OPREDELENIQM I USLOWIQM LIBO DANNOJ WER-
SII,LIBO L@BOJ POSLEDU@]EJ WERSII,OPUBLIKOWANNOJ fONDOM sWOBODNOGO po.eSLI
W pROGRAMME NE UKAZAN NOMER WERSII DANNOJ lICENZII,WY MOVETE WYBRATX L@BU@
WERSI@,KOGDA-LIBO OPUBLIKOWANNU@ fONDOM sWOBODNOGO po.
10.eSLI WY HOTITE WSTROITX ^ASTI pROGRAMMY W DRUGIE SWOBODNYE PROGRAMMY S INY-
MI USLOWIQMI RASPROSTRANENIQ,NAPI[ITE AWTORU S PROSXBOJ O RAZRE[ENII.dLQ po,
KOTOROE OHRANQETSQ AWTORSKIMI PRAWAMI fONDA sWOBODNOGO po,NAPI[ITE W fOND
sWOBODNOGO po;MY INOGDA DELAEM TAKIE ISKL@^ENIQ.nA[E RE[ENIE BUDET RUKOWOD-
STWOWATXSQ DWUMQ CELQMI:SOHRANENIQ SWOBODNOGO STATUSA WSEH PROIZWODNYH NA[EGO
SWOBODNOGO po I SODEJSTWIQ SOWMESTNOMU I POWTORNOMU ISPOLXZOWANI@ po WOOB]E.
nikakih garantij
11.poskolxku programma predostawlqetsq besplatno,na program-
mu net garantij w toj mere,kakaq dopustima primenimym za-
konom.za iskl`~eniem teh slu~aew,kogda obratnoe zaqwle-
no w pisxmennoj forme,dervateli awtorskih praw i/ili dru-
gie storony postawlq`t programmu"kak ona estx"bez kakogo-
libo wida garantij,wyravennyh qwno ili podrazumewaemyh,
wkl`~aq,no ne ograni~iwaqsx imi,podrazumewaemye garan-
tii kommer~eskoj cennosti i prigodnosti dlq konkretnoj ce-
li.wesx risk w otno{enii ka~estwa i proizwoditelxnosti pro-
grammy ostaetsq pri was.esli programma okavetsq defekt-
noj,wy prinimaete na sebq stoimostx wsego neobhodimogo ob-
sluviwaniq,wosstanowleniq ili isprawleniq.
12.ni w koem slu~ae,esli ne trebuetsq sootwetstwu`}im zako-
nom,ili ne uslowleno w pisxmennoj forme,ni odin dervatelx
awtorskih praw i ni odnodrugoe lico,kotoroe movet izmenqtx
i/ili powtorno rasprostranqtx programmu,kak bylo razre{e-
no wy{e,ne otwetstwenny pered wami za ubytki,wkl`~aq l`-
bye ob}ie,specialxnye,slu~ajnye ili posledowaw{ie ubyt-
ki,proisteka`}ie iz ispolxzowaniq ili newozmovnosti is-
polxzowaniq programmy (wkl`~aq,no ne ograni~iwaqsx pote-
rej dannyh,ili dannymi,staw{imi neprawilxnymi,ili pote-
rqmi,ponesennymi iz-za was ili tretxih lic,ili otkazom pro-
grammy rabotatx sowmestno s l`bymi drugimi programmami),
dave esli takoj dervatelx ili drugoe lico byli izwe}eny o
wozmovnosti takih ubytkow.
konec opredelenij i uslowij
18 rUKOWODSTWO PO GNU EmacskAK PRIMENQTX\TI USLOWIQ K WA[IM NOWYM PROGRAMMAM
eSLI WY RAZRABATYWAETE NOWU@ PROGRAMMU I HOTITE,^TOBY ONA PRINESLA MAKSIMALXNO
WOZMOVNU@ POLXZU OB]ESTWU,LU^[IJ SPOSOB DOSTI^X\TOGO |WKL@^ITX EE W SWOBODNOE po,
KOTOROE KAVDYJ MOVET POWTORNO RASPROSTRANQTX I IZMENQTX SOGLASNO DANNYM USLOWIQM.
~TOBY SDELATX\TO,DOBAWXTE W PROGRAMMU SLEDU@]IE UWEDOMLENIQ.nADEVNEE WSEGO
BUDET DOBAWITX IH W NA^ALO KAVDOGO ISHODNOGO FAJLA,^TOBY NAIBOLEE\FFEKTIWNO PE-
REDATX SOOB]ENIE OB OTSUTSTWII GARANTIJ;KAVDYJ FAJL DOLVEN SODERVATX PO MENX[EJ
MERE STROKU,SODERVA]U@ ZNAK OHRANY AWTORSKOGO PRAWA I UKAZANIE NA TO,GDE NAHODITSQ
POLNOE UWEDOMLENIE.
ODNA STROKA,SODERVA]AQ NAZWANIE PROGRAMMY I KRATKOE
OPISANIE TOGO,^TO ONA DELAET.
(C) NAIMENOWANIE (IMQ) AWTORA 19GG
|TO SWOBODNAQ PROGRAMMA;WY MOVETE POWTORNO RASPROSTRANQTX EE I/ILI
MODIFICIROWATX EE W SOOTWETSTWII S uNIWERSALXNOJ oB]ESTWENNOJ
lICENZIEJ GNU,OPUBLIKOWANNOJ fONDOM sWOBODNOGO po;LIBO WERSII 2,
LIBO (PO WA[EMU WYBORU) L@BOJ BOLEE POZDNEJ WERSII.
|TA PROGRAMMA RASPROSTRANQETSQ W NADEVDE,^TO ONA BUDET POLEZNOJ,
NO bez kakih-libo garantij;DAVE BEZ PODRAZUMEWAEMYH GARANTIJ
kommer~eskoj cennosti ILI prigodnosti dlq konkretnoj celi.dLQ
POLU^ENIQ PODROBNYH SWEDENIJ SMOTRITE uNIWERSALXNU@ oB]ESTWENNU@
lICENZI@ GNU.
wY DOLVNY BYLI POLU^ITX KOPI@ uNIWERSALXNOJ oB]ESTWENNOJ lICENZII
GNU WMESTE S\TOJ PROGRAMMOJ;ESLI NET,NAPI[ITE PO ADRESU:Free
Software Foundation,Inc.,59 Temple Place,Suite 330,Boston,MA
02111-1307 USA
dOBAWXTE TAKVE SWEDENIQ O TOM,KAK SWQZATXSQ S WAMI PO\LEKTRONNOJ I OBY^NOJ PO^TE.
eSLI PROGRAMMA INTERAKTIWNAQ,SDELAJTE TAK,^TOBY PRI ZAPUSKE W INTERAKTIWNOM
REVIME ONA WYDAWALA KRATKOE UWEDOMLENIE WRODE SLEDU@]EGO:
gNOMOWIZOR,WERSIQ 69,(C) IMQ AWTORA 19GG
gNOMOWIZOR POSTAWLQETSQ absol`tno bez kakih-libo garantij;
DLQ POLU^ENIQ PODROBNOSTEJ NAPE^ATAJTE'show w'.|TO SWOBODNAQ
PROGRAMMA,I WY PRIGLA[AETESX POWTORNO RASPROSTRANQTX EE PRI
OPREDELENNYH USLOWIQH;DLQ POLU^ENIQ PODROBNOSTEJ WWEDITE'show c'.
gIPOTETI^ESKIE KOMANDY`show w'I`show c'DOLVNY POKAZYWATX SOOTWETSTWU@]IE ^A-
STI uNIWERSALXNOJ oB]ESTWENNOJ lICENZII.kONE^NO,ISPOLXZUEMYE WAMI KOMANDY MOGUT
NAZYWATXSQ KAK-NIBUDX INA^E,NEVELI`show w'I`show c';ONI DAVE MOGUT WYBIRATXSQ S
POMO]X@ MY[I ILI BYTX PUNKTAMI MEN@ |KAK BOLX[E PODHODIT DLQ WA[EJ PROGRAMMY.
wY TAKVE DOLVNY DOBITXSQ TOGO,^TOBY WA[ RABOTODATELX (ESLI WY RABOTAETE PROGRAM-
MISTOM) ILI WA[E U^EBNOE ZAWEDENIE,ESLI TAKOWOE IMEETSQ,PODPISALI W SLU^AE NEOBHODI-
MOSTI\OTKAZ OT IMU]ESTWENNYH PRAW"NA\TU PROGRAMMU.wOT OBRAZEC;ZAMENITE FAMILII:
kOMPANIQbRATXQ ><DINYNASTOQ]IM OTKAZYWAETSQ OT WSEH
IMU]ESTWENNYH PRAW NA PROGRAMMU'gNOMOWIZOR'(KOTORAQ DELAET
PASSY W STORONU KOMPILQTOROW),NAPISANNU@ aBSTRAKTNYM k.i.
PODPISX mAGA nATA,1 APRELQ 1989 G
mAG nAT,pREZIDENT FIRMY wICE.
uniwersalxnaq ob}estwennaq licenziq GNU 19dANNAQ uNIWERSALXNAQ oB]ESTWENNAQ lICENZIQ NE POZWOLQET WAM WKL@^ATX WA[U PRO-
GRAMMU W PROGRAMMY,QWLQ@]IESQ ^ASTNOJ SOBSTWENNOSTX@.eSLI WA[A PROGRAMMA |\TO
BIBLIOTEKA PROCEDUR,WAM STOIT PODUMATX,NE BUDET LI LU^[E RAZRE[ITX PROGRAMMAM,QW-
LQ@]IMSQ ^ASTNOJ SOBSTWENNOSTX@,SWQZYWATXSQ S WA[EJ BIBLIOTEKOJ.eSLI\TO TO,^EGO
WY HOTITE,ISPOLXZUJTE WMESTO\TOJ lICENZII uNIWERSALXNU@ oB]ESTWENNU@ lICENZI@
GNU DLQ BIBLIOTEK.
20 rUKOWODSTWO PO GNU Emacs
wWEDENIE 21wWEDENIE
wY ^ITAETE O GNU Emacs,GNU-INKARNACII RAZWITOGO,SAMODOKUMENTIROWANNOGO,NA-
STRAIWAEMOGO,RAS[IRQEMOGO\KRANNOGO REDAKTORA REALXNOGO WREMENI Emacs.(`G'W`GNU'
^ITAETSQ.)
mY GOWORIM,^TO Emacs |\TO\KRANNYJ REDAKTOR,TAK KAK REDAKTIRUEMYJ TEKST OBY^-
NO WIDEN NA\KRANE I AWTOMATI^ESKI OBNOWLQETSQ,KOGDA WY WWODITE KOMANDY.sM.gLAWA 1
[|KRAN],S.23.
mY NAZYWAEM EGO REDAKTOROM REALXNOGO WREMENI,TAK KAK\KRAN OBNOWLQETSQ O^ENX ^A-
STO,OBY^NO POSLE KAVDOGO NABRANNOGO WAMI ZNAKA ILI PARY ZNAKOW.|TO UMENX[AET KOLI-
^ESTWO INFORMACII,KOTORU@ WY DOLVNY UDERVIWATX W PAMQTI,KOGDA REDAKTIRUETE.sM.gLAWA 4 [oSNOWY REDAKTIROWANIQ],S.35.
mY NAZYWAEM Emacs RAZWITYM,TAK KAK ON PREDOSTAWLQET SREDSTWA,KOTORYE DA@T NE^TO
BOLX[EE,^EM PROSTAQ WSTAWKA ILI UDALENIE:UPRAWLENIE PODPROCESSAMI,AWTOMATI^ESKOE
SOZDANIE OTSTUPOW W PROGRAMMAH,PROSMOTR DWUH ILI BOLEE FAJLOW SRAZU,REDAKTIROWA-
NIE FORMATIROWANNOGO TEKSTA I DEJSTWIQ W TERMINAH SIMWOLOW,SLOW,STROK,PREDLOVENIJ,
ABZACEW I STRANIC,A TAKVE WYRAVENIJ I KOMMENTARIEW W NESKOLXKIH RAZNYH QZYKAH PRO-
GRAMMIROWANIQ.
sAMODOKUMENTIROWANNOSTX OZNA^AET,^TO W L@BOE WREMQ WY MOVETE NABRATX SPECIALX-
NYJ SIMWOL,Control-h,^TOBY UZNATX,^TO WY MOVETE SDELATX.wY TAKVE MOVETE ISPOLX-
ZOWATX EGO,^TOBY WYQSNITX,^TO DELAET PROIZWOLXNAQ KOMANDA,ILI NAJTI WSE KOMANDY,
IME@]IE OTNO[ENIE K KAKOJ-LIBO TEME.sM.gLAWA 7 [sPRAWKA],S.55.
nASTRAIWAEMOSTX OZNA^AET,^TO WY MOVETE LEGKO IZMENITX OPREDELENIQ KOMAND Emacs.
nAPRIMER,ESLI WY ISPOLXZUETE QZYK PROGRAMMIROWANIQ,W KOTOROM KOMMENTARII NA^INA-
@TSQ S`<**'I KON^A@TSQ NA`**>',WY MOVETE WELETX KOMANDAM Emacs DLQ RABOTY S KOM-
MENTARIQMI ISPOLXZOWATX IMENNO TAKIE STROKI (SM.rAZDEL 22.7 [kOMMENTARII],S.219).
dRUGOJ WID NASTROJKI |\TO PERERASPOLOVENIE USTANOWLENNYH KOMAND.nAPRIMER,ESLI WY
PREDPO^ITAETE,^TOBY ^ETYRE OSNOWNYE KOMANDY DWIVENIQ KURSORA (WWERH,WNIZ,WPRAWO,
WLEWO) NAHODILISX NA KLAWI[AH,RASPOLOVENNYH KRESTOOBRAZNO NA KLAWIATURE,WY MOVETE
PEREPRIWQZATX\TI KLAWI[I.sM.gLAWA 31 [nASTROJKA],S.341.
rAS[IRQEMOSTX OZNA^AET,^TO WY MOVETE POJTI DALX[E PROSTOJ NASTROJKI I NAPISATX
SOWER[ENNO NOWYE KOMANDY,PROGRAMMY NA QZYKE lISP,PREDNAZNA^ENNYE DLQ ZAPUSKA W
SOBSTWENNOM lISP-INTERPRETATORE Emacs.Emacs QWLQETSQ\INTERAKTIWNO RAS[IRQEMOJ"
SISTEMOJ,^TO ZNA^IT,^TO ON DELITSQ NA MNOGO FUNKCIJ,KOTORYE WYZYWA@T DRUG DRU-
GA;KAVDAQ IZ NIH MOVET BYTX PEREOPREDELENA WO WREMQ SEANSA REDAKTIROWANIQ.pO^TI
L@BAQ ^ASTX Emacs MOVET BYTX ZAMENENA BEZ KOPIROWANIQ WSEGO Emacs.bOLX[INSTWO
KOMAND REDAKTIROWANIQ Emacs UVE NAPISANY NA lISPE;NESKOLXKO ISKL@^ENIJ MOGLI BY
BYTX NAPISANY NA lISPE,NO NAPISANY NA sI DLQ\FFEKTIWNOSTI.hOTQ TOLXKO PROGRAM-
MIST MOVET NAPISATX RAS[IRENIE,L@BOJ MOVET ISPOLXZOWATX EGO POSLE.eSLI WY HOTITE
NAU^ITXSQ PROGRAMMIROWANI@ NA Emacs Lisp,MY REKOMENDUEM WAM KNIGU Introduction to
Emacs Lisp,NAPISANNU@ rOBERTOM dV.~ASSELOM,TAKVE OPUBLIKOWANNU@ fONDOM sWOBOD-
NOGO pROGRAMMNOGO oBESPE^ENIQ.
kOGDA Emacs ZAPU]EN POD SISTEMOJ X Windows,ON PREDOSTAWLQET SOBSTWENNYE MEN@ I
UDOBNYE PRIWQZKI DLQ KNOPOK MY[I.nO Emacs MOVET DATX MNOGIE PREIMU]ESTWA OKONNOJ
SISTEMY I NA TEKSTOWOM TERMINALE.nAPRIMER,WY MOVETE WIDETX ODNOWREMENNO NESKOLX-
KO FAJLOW,PEREME]ATX TEKST MEVDU FAJLAMI I REDAKTIROWATX WO WREMQ RABOTY KOMAND
OBOLO^KI.
22 rUKOWODSTWO PO GNU Emacs
gLAWA 1:oRGANIZACIQ\KRANA 231 oRGANIZACIQ\KRANA
nA TEKSTOWOM TERMINALE Emacs ZANIMAET WESX\KRAN.w SISTEME X Windows Emacs
SOZDAET DLQ SEBQ SWOI X-OKNA.mY ISPOLXZUEM TERMIN FREJM DLQ OBOZNA^ENIQ WSEGO TEK-
STOWOGO\KRANA ILI WSEGO X-OKNA,ISPOLXZUEMOGO Emacs.oBA WIDA FREJMOW ISPOLXZU@TSQ
W Emacs ODINAKOWO DLQ OTOBRAVENIQ WA[EGO TEKSTA.oBY^NO Emacs ZAPUSKAETSQ TOLXKO
S ODNIM FREJMOM,NO PRI VELANII WY MOVETE SOZDATX DOPOLNITELXNYE.sM.gLAWA 17
[fREJMY],S.147.
kOGDA WY ZAPUSKAETE Emacs,WESX FREJM,ZA ISKL@^ENIEM PERWOJ I POSLEDNEJ STROKI,
OTWODITSQ DLQ REDAKTIRUEMOGO TEKSTA.|TA OBLASTX NAZYWAETSQ OKNOM.pERWAQ STROKA
NAZYWAETSQ POLOSKOJ MEN@,A POSLEDNQQ |\TO OSOBAQ\HO-OBLASTX ILI OKNO MINIBUFERA,
GDE POQWLQ@TSQ ZAPROSY,I KUDA WY MOVETE WWESTI OTWETY.dALXNEJ[IE SWEDENIQ OB\TIH
SPECIALXNYH STROKAH SMOTRITE NIVE.
tEKSTOWOE OKNO MOVET BYTX PODELENO PO GORIZONTALI ILI WERTIKALI NA NESKOLXKO DRU-
GIH OKON,KAVDOE IZ KOTORYH MOVET BYTX ISPOLXZOWANO DLQ OTDELXNOGO FAJLA (SM.gLAWA 16
[oKNA],S.141 ).w DANNOM RUKOWODSTWE SLOWO\OKNO"WSEGDA OBOZNA^AET ^ASTX FREJMA WNUTRI
Emacs.
tO OKNO,W KOTOROM NAHODITSQ KURSOR,NAZYWAETSQ WYBRANNYM OKNOM;W NEM IDET REDAK-
TIROWANIE.bOLX[INSTWO KOMAND Emacs NEQWNO OTNOSQTSQ W TEKSTU W WYBRANNOM OKNE (HOTQ
KOMANDY MY[I KAK PRAWILO DEJSTWU@T W TOM OKNE,W KOTOROM WY ]ELKNULI,WNE ZAWISI-
MOSTI OT TOGO,WYBRANO ONO ILI NET).oSTALXNYE OKNA SU]ESTWU@T PROSTO DLQ SPRAWKI,
POKA WY NE WYBERETE ODNO IZ NIH.eSLI WY ISPOLXZUETE NESKOLXKO FREJMOW W SISTEME X
Windows,TO PEREDA^A FOKUSA WWODA NEKOTOROMU FREJMU WYBIRAET OKNO W\TOM FREJME.
pOSLEDNQQ STROKA KAVDOGO TEKSTOWOGO OKNA NAZYWAETSQ STROKOJ REVIMA,KOTORAQ OPI-
SYWAET PROISHODQ]EE W\TOM OKNE.oNA WYWODITSQ W INWERSNOM WIDE,ESLI TERMINAL
PODDERVIWAET\TO,I SODERVIT TEKST,KOTORYJ NA^INAETSQ PRI STARTE Emacs SO STROKI
`-:- *scratch*'.sTROKA REVIMA POKAZYWAET SWEDENIQ O TEKU]EM SOSTOQNII,NAPRIMER,
KAKOJ BUFER POKAZAN W OKNE NAD NEJ,KAKIE OSNOWNYE I WTOROSTEPENNYE REVIMY W NEM
ISPOLXZU@TSQ,I SODERVIT LI\TOT BUFER NESOHRANENNYE IZMENENIQ.
1.1 tO^KA
kURSOR TERMINALA WNUTRI Emacs POKAZYWAET POZICI@,W KOTOROJ BUDET WYPOLNQTXSQ
KOMANDA REDAKTIROWANIQ.|TO POZICIQ IMENUETSQ TO^KOJ.mNOGIE KOMANDY Emacs PEREME-
]A@T TO^KU PO TEKSTU,TAK ^TO WY IMEETE WOZMOVNOSTX REDAKTIROWATX W L@BOM MESTE.wY
TAKVE MOVETE USTANOWITX TO^KU,]ELKNUW PERWOJ KNOPKOJ MY[I.
kOGDA KURSOR UKAZYWAET NA ZNAK,TO SLEDUET DUMATX,^TO TO^KA NAHODITSQ MEVDU DWUMQ
ZNAKAMI;ONA RASPOLOVENA PERED ZNAKOM,NAD KOTORYM POQWLQETSQ KURSOR.nAPRIMER,ESLI
WA[ TEKST WYGLQDIT KAK`frob',A KURSOR NAHODITSQ NAD`b',TO TO^KA RASPOLOVENA MEVDU
`o'I`b'.eSLI WY WSTAWITE W\TOJ POZICII ZNAK`!',TO POLU^ITE`fro!b',S TO^KOJ MEVDU
`!'I`b'.tAKIM OBRAZOM,KURSOR OSTANETSQ NAD`b',KAK I RANX[E.
iNOGDA GOWORQT\KURSOR",IMEQ W WIDU TO^KU,ILI GOWORQT O KOMANDAH DWIVENIQ TO^KI
KAK O KOMANDAH\DWIVENIQ KURSORA".
tERMINALY IME@T TOLXKO ODIN KURSOR,I KOGDA PROISHODIT PROCESS WYWODA,KURSOR
DOLVEN NAHODITXSQ TAM,GDE IDET NABOR.|TO NE OZNA^AET,^TO TO^KA PEREME]AETSQ.|TO
ZNA^IT LI[X TO,^TO Emacs MOVET POKAZATX WAM POZICI@ TO^KI,TOLXKO KOGDA TERMINAL NE
RABOTAET.
eSLI WY REDAKTIRUETE W Emacs NESKOLXKO FAJLOW,KAVDYJ W SWOEM BUFERE,TO WSQKIJ
BUFER IMEET SWO@ SOBSTWENNU@ POZICI@ TO^KI.bUFER,KOTORYJ NE POKAZYWAETSQ W DANNOE
WREMQ,ZAPOMINAET,GDE NAHODITSQ TO^KA,NA SLU^AJ,ESLI WY SNOWA WYWEDETE EGO NA\KRAN.
24 rUKOWODSTWO PO GNU EmacskOGDA FREJM RAZBIT NA NESKOLXKO OKON,KAVDOE IZ NIH IMEET SWO@ SOBSTWENNU@ POZICI@
TO^KI.kURSOR VE POKAZYWAET POZICI@ TO^KI W WYBRANNOM OKNE.|TIM SPOSOBOM WY TAKVE
MOVETE UZNATX,KOTOROE IZ OKON WYBRANO.eSLI ODIN I TOT VE BUFER POQWLQETSQ BOLEE ^EM
W ODNOM OKNE,TO KAVDOE IZ NIH IMEET SWO@ POZICI@ TO^KI.
eSLI ESTX NESKOLXKO FREJMOW,KAVDYJ IZ NIH MOVET OTOBRAZITX ODIN KURSOR.kURSOR
W WYBRANNOM FREJME ZAPOLNEN CWETOM;KURSOR W DRUGIH FREJMAH |\TO PUSTAQ KLETKA,
KOTORAQ POQWLQETSQ W TOM OKNE,KOTOROE BYLO BY WYBRANNYM,ESLI BY WY PEREDALI FOKUS
WWODA\TOMU FREJMU.
tERMIN`TO^KA'PROISHODIT OT NAZWANIQ ZNAKA`.',KOTORYJ BYL KOMANDOJ TECO (QZYK,
NA KOTOROM BYL NAPISAN PERWONA^ALXNYJ Emacs) DLQ POLU^ENIQ ZNA^ENIQ WELI^INY,NAZY-
WAEMOJ TEPERX`TO^KOJ'.
1.2 |HO-OBLASTX
sTROKA WNIZU FREJMA (POD STROKOJ REVIMA) NAZYWAETSQ\HO-OBLASTX@.oNA ISPOLXZUET-
SQ DLQ POKAZA NEBOLX[IH FRAGMENTOW TEKSTA W NESKOLXKIH CELQH.
|HO OBOZNA^AET OTOBRAVENIE NABIRAEMYH WAMI ZNAKOW.wNE Emacs,OPERACIONNAQ SISTE-
MA OBY^NO OTOBRAVAET WESX WA[ WWOD.Emacs UPRAWLQET\HO INA^E.
Emacs NIKOGDA NE POWTORQET KOMANDY,SOSTOQ]IE IZ ODINO^NOGO ZNAKA,A KOMANDY,SO-
STOQ]IE IZ NESKOLXKIH,POWTORQ@TSQ,TOLXKO ESLI WY OSTANAWLIWAETESX W PROCESSE IH NABO-
RA.kAK TOLXKO WY OSTANAWLIWAETESX BOLEE ^EM NA SEKUNDU W SEREDINE KOMANDY,WSE ZNAKI
\TOJ KOMANDY SRAZU VE OTOBRAVA@TSQ.|TO SLUVIT PODSKAZKOJ DLQ OKON^ANIQ KOMANDY.
kAK TOLXKO WKL@^AETSQ\HO,OKON^ANIE KOMANDY OTOBRAVAETSQ NEMEDLENNO W PROCESSE NA-
BORA.tAKOE POWEDENIE PREDNAZNA^ENO DLQ TOGO,^TOBY UWERENNYJ POLXZOWATELX POLU^AL
BYSTRYJ REZULXTAT,W TO VE WREMQ\TO POZWOLQET NEUWERENNYM POLXZOWATELQM POLU^ITX
MAKSIMUM OBRATNOJ SWQZI.wY MOVETE IZMENITX\TO POWEDENIE,USTANOWIW OSOBU@ PEREMEN-
NU@ (SM.rAZDEL 11.7 [pEREMENNYE IZOBRAVENIQ],S.84).
eSLI KOMANDA NE MOVET BYTX WYPOLNENA,ONA W PE^ATAET\HO-OBLASTI SOOB]ENIE OB
O[IBKE.sOOB]ENIE OB O[IBKE SOPROWOVDAETSQ ZWUKOWYM SIGNALOM ILI MIGANIEM\KRANA.
kROME TOGO,KOGDA PROIZO[LA O[IBKA,L@BOJ NABRANNYJ PERED\TIM WWOD SBRASYWAETSQ.
nEKOTORYE KOMANDY PE^ATA@T W\HO-OBLASTI INFORMACIONNYE SOOB]ENIQ.oNI POHOVI
NA SOOB]ENIQ OB O[IBKAH,NO BEZ ZWUKOWOGO SIGNALA,I NABRANNAQ RANEE INFORMACIQ NE
SBRASYWAETSQ.iNOGDA\TI SOOB]ENIQ GOWORQT WAM,^TO KOMANDA WYPOLNENA,W SLU^AE,ESLI
\TO QWNO NE NABL@DAETSQ PRI PROSMOTRE REDAKTIRUEMOGO TEKSTA.iNOGDA EDINSTWENNOJ CE-
LX@ KOMANDY QWLQETSQ PE^ATX SOOB]ENIQ,DA@]EGO WAM SPECIFI^ESKU@ INFORMACI@.nA-
PRIMER,KOMANDA s-H = ISPOLXZUETSQ,^TOBY NAPE^ATATX SOOB]ENIE,OPISYWA@]EE POZICI@
TO^KI W TEKSTE I EE TEKU]IJ STOLBEC W OKNE.kOMANDY,TREBU@]IE DLQ SWOEGO WYPOLNENIQ
DLITELXNOE WREMQ,^ASTO WYWODQT WO WREMQ RABOTY SOOB]ENIQ,ZAKAN^IWA@]IESQ NA`...',
A W KONCE,KOGDA ONI ZAKON^ILISX,SLOWO`done'.
iNFORMATIWNYE SOOB]ENIQ IZ\HO-OBLASTI SOHRANQ@TSQ W BUFERE,NAZYWAEMOM
`*Messages*'.(mY E]E NE OB_QSNILI,^TO TAKOE BUFER;DLQ POLU^ENIQ BOLX[EJ
INFORMACII O NIH SMOTRITE gLAWA 15 [bUFERY],S.135.) eSLI WY PROPUSTILI SOOB]ENIE,
KOTOROE NEDOLGO OTOBRAVALOSX NA\KRANE,WY MOVETE PEREKL@^ITXSQ W BUFER`*Messages*'
I SNOWA POSMOTRETX EGO.(pOSLEDOWATELXNYE SOOB]ENIQ O PROMEVUTO^NYH REZULXTATAH
^ASTO SWORA^IWA@TSQ W\TOM BUFERE W ODNO.)
rAZMER BUFERA`*Messages*'OGRANI^EN OPREDELENNYM ^ISLOM STROK,\TO ^ISLO ZADAET
PEREMENNAQ message-log-max.kAK TOLXKO BUFER DORASTAET DO\TOGO RAZMERA,KAVDAQ NOWAQ
STROKA UDALQET ODNU STROKU IZ NA^ALA.sM.rAZDEL 31.2 [pEREMENNYE],S.343,^TOBY UZNATX,
KAK USTANOWITX PEREMENNYE,TAKIE KAK message-log-max.
|HO-OBLASTX ISPOLXZUETSQ TAKVE DLQ OTOBRAVENIQ MINIBUFERA:OKNA,KOTOROE ISPOLX-
ZUETSQ DLQ S^ITYWANIQ ARGUMENTOW DLQ KOMAND,NAPRIMER,IMENI FAJLA DLQ REDAKTIROWA-
NIQ.kOGDA ISPOLXZUETSQ MINIBUFER,\HO-OBLASTX NA^INAETSQ SO STROKI PODSKAZKI,KOTORAQ
gLAWA 1:oRGANIZACIQ\KRANA 25OBY^NO KON^AETSQ DWOETO^IEM;KROME TOGO,W\TOJ STROKE POQWLQETSQ KURSOR,TAK KAK ONA
STANOWITSQ WYBRANNYM OKNOM.wY WSEGDA MOVETE WYJTI IZ MINIBUFERA,NABRAW C-g.sM.gLAWA 5 [mINIBUFER],S.45.
1.3 sTROKA REVIMA
pOSLEDNQQ STROKA W KAVDOM OKNE NAZYWAETSQ STROKOJ REVIMA,ONA OPISYWAET PROISHO-
DQ]EE W\TOM OKNE.kOGDA IMEETSQ TOLXKO ODNO TEKSTOWOE OKNO,STROKA REVIMA NAHODITSQ
NEPOSREDSTWENNO NAD\HO-OBLASTX@;\TO PREDPOSLEDNQQ STROKA FREJMA.sTROKA REVIMA PO-
KAZYWAETSQ W INWERSNOM IZOBRAVENII,ESLI TERMINAL PODDERVIWAET\TO,I NA^INAETSQ I
KON^AETSQ DEFISAMI.
oBY^NO STROKA REVIMA WYGLQDIT TAK:
-SK:IZ BUF (OSNOWNOJ WTOROSTEPENNYE)-STR-POZ----
|TO DAET INFORMACI@ O BUFERE,OTOBRAVENNOM W OKNE:EGO IMQ,ISPOLXZUEMYE OSNOWNOJ
I WTOROSTEPENNYJ REVIMY,IZMENQLSQ LI TEKST BUFERA,I KAK DALEKO WNIZ PO BUFERU WY
SEJ^AS NAHODITESX.
IZ SODERVIT DWE ZWEZDO^KI`**',ESLI TEKST W BUFERE REDAKTIROWALSQ (BUFER\IZMENEN"),
ILI`-',ESLI BUFER NE REDAKTIROWALSQ.dLQ BUFEROW,DOSTUPNYH TOLXKO DLQ ^TENIQ,\TO
`%*',ESLI BUFER IZMENEN,I`%%'W PROTIWNOM SLU^AE.
BUF |\TO IMQ BUFERA DANNOGO OKNA.~A]E WSEGO ONO SOWPADAET S IMENEM FAJLA,KOTORYJ
WY REDAKTIRUETE.sM.gLAWA 15 [bUFERY],S.135.
bUFER,NAHODQ]IJSQ W WYBRANNOM OKNE (W TOM OKNE,W KOTOROM NAHODITSQ KURSOR),QWLQ-
ETSQ TAKVE WYBRANNYM BUFEROM Emacs | TEM BUFEROM,GDE PROISHODIT REDAKTIROWANIE.
kOGDA MY GOWORIM,^TO NEKOTORYE KOMANDY WYPOLNQ@TSQ\DLQ BUFERA",MY GOWORIM O
TEKU]EM WYBRANNOM BUFERE.
STR |\TO`L',ZA KOTOROJ SLEDUET TEKU]EJ NOMER STROKI,GDE NAHODITSQ TO^KA.|TOT
NOMER WYWODITSQ,KOGDA WKL@^EN REVIM Line Number (OBY^NO\TO TAK).wY MOVETE PO
VELANI@ POKAZATX TAKVE I NOMER TEKU]EGO STOLBCA,WKL@^IW REVIM Column Number (ON
NE WKL@^AETSQ PO UMOL^ANI@,POTOMU ^TO RABOTAET NESKOLXKO MEDLENNEE).sM.rAZDEL 11.5
[wOZMOVNOSTI STROKI REVIMA],S.83.
POZ GOWORIT WAM,ESTX LI E]E TEKST SWERHU OT NA^ALA LIBO NIVE KONCA OKNA.eSLI
BUFER NEBOLX[OJ I UME]AETSQ W OKNE CELIKOM,TO POZ IMEET ZNA^ENIE`All'.iNA^E ON
IMEET ZNA^ENIE`Top',ESLI WY SMOTRITE NA^ALO FAJLA,`Bot',ESLI KONEC,LIBO`nn%',GDE nn
OZNA^AET KOLI^ESTWO PROCENTOW FAJLA,NAHODQ]EESQ NAD WERHOM OKNA.
OSNOWNOJ | IMQ OSNOWNOGO REVIMA,DEJSTWU@]EGO W\TOM BUFERE.w L@BOJ MOMENT
KAVDYJ BUFER NAHODITSQ W ODNOM I TOLXKO ODNOM IZ WOZMOVNYH OSNOWNYH REVIMOW.sU]E-
STWU@]IE OSNOWNYE REVIMY WKL@^A@T REVIM Fundamental (NAIMENEE SPECIALIZIROWAN-
NYJ),REVIM Text,REVIM Lisp,REVIM s,REVIM Texinfo I MNOGIE DRUGIE.sM.gLAWA 19
[oSNOWNYE REVIMY],S.175,^TOBY PODROBNEE UZNATX O TOM,^EM REVIMY OTLI^A@TSQ,I KAK
WYBRATX ODIN IZ NIH.
nEKOTORYE OSNOWNYE REVIMY POKAZYWA@T POSLE IMENI DOPOLNITELXNYE SWEDENIQ.nA-
PRIMER,BUFERY Rmail POKAZYWA@T NOMER TEKU]EGO SOOB]ENIQ I OB]EE ^ISLO SOOB]ENIJ.
bUFERY Compilation I Shell OTOBRAVA@T SOSTOQNIE PODPROCESSA.
WTOROSTEPENNYE |\TO SPISOK NEKOTORYH WTOROSTEPENNYH REVIMOW,KOTORYE WKL@^ENY
W DANNYJ MOMENT W BUFERE WYBRANNOGO OKNA.nAPRIMER,`Fill'ZNA^IT,^TO WKL@^EN REVIM
Auto пЂЊll.`Abbrev'OZNA^AET,^TO WKL@^EN REVIM Word Abbrev.`Ovwrt'OZNA^AET,^TO
WKL@^EN REVIM Overwrite.sM.rAZDEL 31.1 [wTOROSTEPENNYE REVIMY],S.341,DLQ BOLEE
PODROBNOJ INFORMACII.`Narrow'OZNA^AET,^TO OBLASTX REDAKTIROWANIQ OTOBRAVAEMOGO
BUFERA OGRANI^ENA TOLXKO ^ASTX@ EGO TEKSTA.nA SAMOM DELE\TO NE WTOROSTEPENNYJ REVIM,
NO DEJSTWUET POHOVE.sM.rAZDEL 30.8 [sUVENIE],S.335.`Def'OZNA^AET,^TO SEJ^AS
OPREDELQETSQ MAKROS KLAWIATURY.sM.rAZDEL 31.3 [mAKROSY KLAWIATURY],S.353.
26 rUKOWODSTWO PO GNU EmacskROME TOGO,ESLI W DANNYJ MOMENT Emacs NAHODITSQ WNUTRI UROWNQ REKURSIWNOGO RE-
DAKTIROWANIQ,TO WNUTRI KRUGLYH SKOBOK,KOTORYE OKRUVA@T IMENA REVIMOW,POQWLQ@TSQ
KWADRATNYE SKOBKI (`[...]').eSLI Emacs NAHODITSQ NA NEKOTOROM UROWNE REKURSIWNOGO
REDAKTIROWANIQ WNUTRI DRUGOGO,TO POQWLQ@TSQ DWOJNYE KWADRATNYE SKOBKI,I TAK DALEE.
tAK KAK UROWENX REKURSIWNOGO REDAKTIROWANIQ OTNOSITSQ KO WSEMU Emacs,A NE K KAVDOMU
BUFERU W OTDELXNOSTI,TO KWADRATNYE SKOBKI POQWLQ@TSQ ILI W STROKAH REVIMA WSEH OKON
ILI NI W ODNOJ IZ NIH.sM.rAZDEL 30.12 [rEKURSIWNOE REDAKTIROWANIE],S.338.
nEOKONNYE TERMINALY MOGUT POKAZATX TOLXKO ODIN FREJM Emacs W ODNO WREMQ (SM.gLA-
WA 17 [fREJMY],S.147 ).nA TAKIH TERMINALAH STROKA REVIMA OTOBRAVAET IMQ WYBRANNOGO
FREJMA,POSLE IZ.nA^ALXNYJ FREJM NAZYWAETSQ`F1'.
SK OBOZNA^AET SISTEMU KODIROWANIQ,KOTORAQ ISPOLXZUETSQ W REDAKTIRUEMOM FAJLE.dE-
FIS UKAZYWAET NA SOSTOQNIE,USTANAWLIWAEMOE PO UMOL^ANI@:OTSUTSTWIE PREOBRAZOWANIQ,
ZA ISKL@^ENIEM PREOBRAZOWANIQ KONCA STROKI,ESLI SODERVIMOE FAJLA TREBUET\TOGO.`='
OBOZNA^AET POLNOE OTSUTSTWIE PREOBRAZOWANIJ.nE STOLX PROSTYE PREOBRAZOWANIQ PRED-
STAWLQ@TSQ RAZLI^NYMI BUKWAMI | NAPRIMER,`1'OTNOSITSQ K ISO Latin-1.sM.rAZ-
DEL 18.7 [sISTEMY KODIROWANIQ],S.165,DLQ PODROBNOJ INFORMACII.eSLI WY ISPOLXZUETE
METOD WWODA,K NA^ALU SK DOBAWLQETSQ STROKA W FORME`W>';W IDENTIFICIRUET METOD WWODA.
(nEKOTORYE METODY WWODA POKAZYWA@T WMESTO`>'ZNAK`+'ILI`@'.) sM.rAZDEL 18.4 [mETODY
WWODA],S.163.
kOGDA WY POLXZUETESX TEKSTOWYM TERMINALOM (NE OKONNOJ SISTEMOJ),SK ISPOLXZUET
TRI ZNAKA DLQ OPISANIQ,SOOTWETSTWENNO,SISTEMY KODIROWANIQ DLQ WWODA S KLAWIATURY,
SISTEMY KODIROWANIQ DLQ TERMINALXNOGO WYWODA I SISTEMY KODIROWANIQ,PRIMENQEMOJ W
REDAKTIRUEMOM FAJLE.
kOGDA WYKL@^ENA PODDERVKA MNOGOBAJTNYH ZNAKOW,SK NE POQWLQETSQ SOWSEM.sM.rAZ-
DEL 18.2 [wKL@^ENIE MNOGOBAJTNYH ZNAKOW],S.161.
dWOETO^IE POSLE SK MOVET MENQTXSQ W NEKOTORYH OBSTOQTELXSTWAH NA DRUGOJ ZNAK.Emacs
ISPOLXZUET DLQ RAZDELENIQ STROK W BUFERE PEREWOD STROKI.nEKOTORYE FAJLY ISPOLXZU@T
DRUGOE SOGLA[ENIE O RAZDELENII STROK:WOZWRAT KARETKI I PEREWOD STROKI (SOGLA[ENIE MS-
DOS) ILI PROSTO WOZWRAT KARETKI (SOGLA[ENIE Macintosh).eSLI FAJL W BUFERE ISPOLXZUET
WOZWRAT KARETKI I PEREWOD STROKI,DWOETO^IE ZAMENQETSQ NA OBRATNU@ KOSU@ ^ERTU (`\') ILI
`(DOS)',W ZAWISIMOSTI OT WA[EJ OPERACIONNOJ SISTEMY.eSLI W\TOM FAJLE PRIMENQETSQ
PROSTO WOZWRAT KARETKI,TO DWOETO^IE ZAMENQETSQ NA KOSU@ ^ERTU (`/') ILI`(Mac)'.nA
NEKOTORYH SISTEMAH Emacs POZYWAET WMESTO DWOETO^IQ STROKU`(Unix)',DAVE DLQ FAJLOW,
ISPOLXZU@]IH DLQ RAZDELENIQ STROK PEREWOD STROKI.
wY MOVETE NASTROITX SPOSOB OTOBRAVENIQ W STROKE REVIMA KAVDOGO IZ FORMATOW
RAZDELENIQ STROK,USTANAWLIWAQ PEREMENNYE eol-mnemonic-unix,eol-mnemonic-dos,eol-
mnemonic-mac I eol-mnemonic-undecided RAWNYMI STROKAM,KOTORYE WY NAHODITE POD-
HODQ]IMI.sM.rAZDEL 31.2 [pEREMENNYE],S.343,GDE OB_QSNQETSQ,KAK USTANAWLIWATX
PEREMENNYE.
sM.rAZDEL 11.5 [wOZMOVNOSTI STROKI REVIMA],S.83,PODROBNOSTI O WOZMOVNOSTQH
DOBAWLENIQ W STROKU REVIMA DRUGOJ POLEZNOJ INFORMACII,NAPRIMER NOMERA TEKU]EGO
STOLBCA W TO^KE,TEKU]EGO WREMENI I SOOB]ENIQ O PRIHODE PO^TY.
1.4 pOLOSKA MEN@
kAVDYJ FREJM Emacs OBY^NO IMEET SWERHU POLOSKU MEN@,KOTORU@ WY MOVETE ISPOLX-
ZOWATX DLQ PROIZWEDENIQ OPREDELENNYH DEJSTWIJ.nET NEOBHODIMOSTI PERE^ISLQTX IH ZDESX,
POTOMU ^TO WAM PRO]E POSMOTRETX SAMIM.
kOGDA WY ISPOLXZUETE OKONNU@ SISTEMU,WY MOVETE WYBIRATX KOMANDY IZ POLOSKI MEN@
PRI POMO]I MY[I.nAPRAWLENNAQ WPRAWO STRELKA POSLE PUNKTA MEN@ UKAZYWAET,^TO\TOT
PUNKT WEDET KO WTORI^NOMU MEN@;`...'W KONCE OZNA^AET,^TO DO NA^ALA RABOTY\TA KOMANDA
S^ITAET ARGUMENTY S KLAWIATURY.
gLAWA 1:oRGANIZACIQ\KRANA 27~TOBY PROSMOTRETX POLNOE IMQ KOMANDY I DOKUMENTACI@ K PUNKTU MEN@,NAPE^ATAJTE
C-h k I ZATEM WYBERITE NUVNYJ PUNKT S POMO]X@ MY[I OBY^NYM SPOSOBOM.(SM.rAZ-
DEL 7.1 [sPRAWKA O KL@^AH],S.56 ).
nA TEKSTOWYH TERMINALAH,GDE NET MY[I,WY MOVETE ISPOLXZOWATX MEN@,NAPE^ATAW
M-`ILI
h F10i (ONI ZAPUSKA@T KOMANDU tmm-menubar).|TA KOMANDA WHODIT W REVIM,GDE
WY MOVETE WYBRATX PUNKT MEN@ S POMO]X@ KLAWIATURY.pREDWARITELXNYJ WYBOR POKA-
ZYWAETSQ W\HO-OBLASTI.wY MOVETE ISPOLXZOWATX PRAWU@ I LEWU@ KURSORNYE STRELKI DLQ
DWIVENIQ PO MEN@ K RAZNYM PUNKTAM.kOGDA WY NA[LI NUVNYJ WAM PUNKT,NAPE^ATAJTE
h RETi,^TOBY WYBRATX EGO.
k KAVDOMU PUNKTU MEN@ TAKVE PRIPISYWAETSQ BUKWA ILI CIFRA;OBY^NO\TO PERWAQ
PERWAQ BUKWA KAKOGO-TO SLOWA IZ IMENI PUNKTA.|TA BUKWA ILI CIFRA OTDELQETSQ OT IMENI
ZNA^KOM`=>'.dLQ WYBORA PUNKTA WY MOVETE NAPE^ATATX EGO BUKWU ILI CIFRU.
nEKOTORYE KOMANDY W MEN@ IME@T TAKVE OBY^NYE PRIWQZKI K KL@^U;W TAKOM SLU^AE
POSLE SAMOGO PUNKTA PERE^ISLQETSQ ODIN\KWIWALENTNYJ KL@^ W KRUGLYH SKOBKAH.
28 rUKOWODSTWO PO GNU Emacs
gLAWA 2:zNAKI,KL@^I I KOMANDY 292 zNAKI,KL@^I I KOMANDY
|TA GLAWA RASSKAZYWAET O NABORAH ZNAKOW,ISPOLXZUEMYH W Emacs DLQ WWODA KOMAND I
WNUTRI FAJLOW,A TAKVE OB_QSNQET KONCEPCII KL@^EJ I KOMAND,KOTORYE NEOBHODIMY DLQ
PONIMANIQ TOGO,KAK Emacs WOSPRINIMAET WWOD S KLAWIATURY I MY[I.
2.1 wIDY POLXZOWATELXSKOGO WWODA
GNU Emacs ISPOLXZUET DLQ WWODA S KLAWIATURY RAS[IRENIE NABORA ZNAKOW ASCII;ON
TAKVE WOSPRINIMAET NEZNAKOWYE SOBYTIQ,WKL@^AQ FUNKCIONALXNYE KLAWI[I I DEJSTWIQ
S KLAWI[AMI MY[I.
ASCII SOSTOIT IZ 128 ZNAKOWYH KODOW.nEKOTORYM IZ\TIH KODOW PRIPISANY GRAFI^ESKIE
OBOZNA^ENIQ,TAKIE KAK`A'I`=';OSTALXNYE QWLQ@TSQ UPRAWLQ@]IMI ZNAKAMI,NAPRIMER
COntrol-a (TAKVE IMENUETSQ s-A DLQ KRATKOSTI).C-a POLU^IL SWOE IMQ IZ-ZA TOGO,^TO WY
NABIRAETE EGO,ZAVAW KLAWI[U
hCTRLi I ZATEM NAVAW A.
u NEKOTORYH UPRAWLQ@]IH ZNAKOW ASCII ESTX SPECIALXNYE NAZWANIQ,I BOLX[INSTWO
TERMINALOW IME@T SPECIALXNYE KLAWI[I,S POMO]X@ KOTORYH IH MOVNO NABRATX,NAPRI-
MER:h RETi,hTABi,hDELi I hESCi.zNAK PROBELA OBY^NO OBOZNA^AETSQ NIVE KAK hSPCi,HOTQ
STROGO GOWORQ,ON QWLQETSQ GRAFI^ESKIM ZNAKOM,^XE IZOBRAVENIE DOLVNO BYTX PUSTYM.
nA NEKOTORYH KLAWIATURAH ESTX KLAWI[A\linefeed";\TO DRUGOE NAZWANIE DLQ C-j.
Emacs RAS[IRQET MNOVESTWO ZNAKOW ASCII TYSQ^AMI DRUGIH PE^ATNYH ZNAKOW (SM.gLA-
WA 18 [MULE],S.161 ),DOPOLNITELXNYMI UPRAWLQ@]IMI ZNAKAMI I NESKOLXKIMI MODIFI-
KATORAMI,KOTORYE MOVNO KOMBINIROWATX S L@BYM DRUGIM ZNAKOM.
nA ASCII-TERMINALAH SU]ESTWUET TOLXKO 32 UPRAWLQ@]IH ZNAKA.|TO WARIANTY S MODI-
FIKATOROM control DLQ BUKW I ZNAKOW`@[]\^_'.kROME TOGO,KLAWI[A shift NE IMEET SMYSLA
S UPRAWLQ@]IMI ZNAKAMI:C-a I C-A |\TO ODNO I TO VE,I Emacs NE MOVET IH RAZLI^ITX.
nO WO MNOVESTWE ZNAKOW Emacs ESTX MESTO DLQ WARIANTOW S control DLQ WSEH PE^ATNYH
ZNAKOW I DLQ RAZLI^ENIQ MEVDU C-a I C-A.X Windows POZWOLQET WWESTI WSE\TI ZNAKI.
nAPRIMER,C- (TO ESTX Control-MINUS) I C-5 |DOPUSTIMYE KOMANDY Emacs W SISTEME X.
e]E ODNO RAS[IRENIE MNOVESTWA ZNAKOW Emacs |\TO DOPOLNITELXNYE BITY MODIFIKA-
TOROW.~A]E WSEGO ISPOLXZUETSQ TOLXKO ODIN BIT-MODIFIKATOR,ON NAZYWAETSQ Meta.dLQ
L@BOGO ZNAKA ESTX EGO Meta-WARIANT;PRIMERY WKL@^A@T Meta-A (DLQ KRATKOSTI m-A),m-a
(\TO NE TO VE SAMOE,^TO m-A,NO\TI DWA ZNAKA IME@T OBY^NO ODNO I TO VE ZNA^ENIE W
Emacs),M-
h RETi I M-C-a.pO TRADICII MY OBY^NO PI[EM s-m-A,A NE m-s-A;NO LOGI^NO
GOWORQ,PORQDOK NABORA KLAWI[ hCTRLi I hMETAi NE IMEET ZNA^ENIQ.
nEKOTORYE TERMINALY IME@T KLAWI[U h METAi I POZWOLQ@T NABIRATX Meta-ZNAKI,NAVAW
\TU KLAWI[U.tAKIM OBRAZOM,Meta-A NABIRAETSQ PUTEM ODNOWREMENNOGO NAVATIQ KLAWI[
h METAi I A.kLAWI[A hMETAi RABOTAET O^ENX POHOVE NA hSHIFTi.pODOBNYE KLAWI[I NE WSEGDA
METQTSQ h METAi,TAK KAK\TI FUNKCII ^ASTO PRISWAIWA@TSQ SPECIALXNYMI KLAWI[AM S
KAKIM-TO DRUGIM PERWONA^ALXNYM ZNA^ENIEM.
eSLI U WAS NET KLAWI[I hMETAi,WY WSE VE MOVETE NABRATX Meta-ZNAKI,ISPOLXZUQ POSLE-
DOWATELXNOSTX DWUH ZNAKOW,NA^INA@]U@SQ S hESCi.tAKIM OBRAZOM,^TOBY WWESTI M-A,WY
MOVETE NABRATX h ESCi a.~TOBY WWESTI s-m-A,WY DOLVNY NABRATX hESCi C-a.hESCi RAZRE[E-
NA TAKVE I NA TERMINALAH S KLAWI[AMI h METAi,NA SLU^AJ,ESLI WY PRIWYKLI ISPOLXZOWATX
EE.
X Windows PREDOSTAWLQET NESKOLXKO DRUGIH KLAWI[-MODIFIKATOROW,KOTORYE MOGUT
BYTX PRIMENENY K L@BOMU WWODIMOMU ZNAKU.|TI KLAWI[I NAZYWA@TSQ hSUPERi,hHYPERi
I h ALTi.mY PI[EM`s-',`H-'I`A-',^TOBY SKAZATX,^TO ZNAK ISPOLXZUET\TI MODIFIKA-
TORY.tAKIM OBRAZOM,s-H-C-x |\TO SOKRA]ENIE DLQ Super-Hyper-Control-x.nE WSE
X-TERMINALY W DEJSTWITELXNOSTI PREDOSTAWLQ@T KLAWI[I DLQ\TIH MODIFIKATOROW |
FAKTI^ESKI MNOGIE TERMINALY IME@T KLAWI[U,POME^ENNU@ hALTi,KOTORAQ NA SAMOM DELE
30 rUKOWODSTWO PO GNU EmacsQWLQETSQ KLAWI[EJ hMETAi.sTANDARTNYE PRIWQZKI KL@^EJ Emacs NE SODERVAT KAKIH-LIBO
ZNAKOW S\TIMI MODIFIKATORAMI.nO WY MOVETE PRIDATX IM SWOI ZNA^ENIQ,NASTRAIWAQ
Emacs.
wWOD S KLAWIATURY WKL@^AET KLAWI[I,NE QWLQ@]IE ZNAKAMI:NAPRIMER FUNKCIONALX-
NYE KLAWI[I I KURSORNYE STRELKI.kNOPKI MY[I TAKVE WYPADA@T IZ GAMMY ZNAKOW.wY
MOVETE MODIFICIROWATX\TI SOBYTIQ S POMO]X@ KLAWI[-MODIFIKATOROW
hCTRLi,hMETAi,
h SUPERi,hHYPERi I hALTi TO^NO TAK VE,KAK I ZNAKI KLAWIATURY.
wWODIMYE ZNAKI I NEZNAKOWYJ WWOD WMESTE NAZYWA@TSQ SOBYTIQMI.sM.RAZDEL\Input
Events"W The Emacs Lisp Reference Manual,DLQ DALXNEJ[EJ INFORMACII.eSLI WY NE
PROGRAMMIRUETE NA lISPE,A PROSTO HOTITE PEREOPREDELITX ZNA^ENIQ NEKOTORYH ZNAKOW I
NEZNAKOWYH SOBYTIJ,SMOTRITE gLAWA 31 [nASTROJKA],S.341.
ASCII-TERMINALY W DEJSTWITELXNOSTI NE MOGUT POSYLATX NI^EGO,KROME ZNAKOW ASCII.
tAKIE TERMINALY ISPOLXZU@T DLQ PREDSTAWLENIQ KAVDOJ FUNKCIONALXNOJ KLAWI[I POSLE-
DOWATELXNOSTX ZNAKOW.nO\TO NEWIDIMO DLQ POLXZOWATELQ Emacs,POTOMU ^TO PROCEDURY
OBRABOTKI WWODA S KLAWIATURY RASPOZNA@T\TI OSOBYE POSLEDOWATELXNOSTI I PREOBRAZU@T
IH W SOBYTIQ FUNKCIONALXNYH KLAWI[ DO TOGO,KAK L@BYE DRUGIE ^ASTI Emacs MOGUT IH
UWIDETX.
2.2 kL@^I
pOSLEDOWATELXNOSTX KL@^EJ,(ILI KOROTKO,KL@^) ESTX POSLEDOWATELXNOSTX WWODIMYH
SOBYTIJ,KOTORAQ WOSPRINIMAETSQ KAK CELOE,KAK\EDINAQ KOMANDA".nEKOTORYE KOMANDNYE
POSLEDOWATELXNOSTI Emacs |\TO PROSTO ODINO^NYJ ZNAK ILI ODNO SOBYTIE;NAPRIMER,
PROSTO C-f DOSTATO^NO DLQ PEREME]ENIQ WPERED NA ODIN ZNAK.nO W Emacs TAKVE ESTX
KOMANDY,KOTORYE WYZYWA@TSQ DWUMQ ILI BOLEE SOBYTIQMI.
eSLI POSLEDOWATELXNOSTX SOBYTIJ DOSTATO^NA DLQ WYZOWA KOMANDY,ONA QWLQETSQ ZAKON-
^ENNYM KL@^OM.pRIMEROM ZAKON^ENNYH KL@^EJ MOGUT BYTX C-a,X,
hRETi,hNEXTi (FUNK-
CIONALXNAQ KLAWI[A),h DOWNi (STRELKA),C-x C-f I C-x 4 C-f.eSLI POSLEDOWATELXNOSTX
NEDOSTATO^NA,^TOBY SOSTAWITX ZAKON^ENNYJ KL@^,ONA NAZYWAETSQ PREFIKSNYM KL@^OM.
w PRIMERAH WY[E C-x I C-x 4 QWLQ@TSQ PREFIKSNYMI KL@^AMI.l@BAQ POSLEDOWATELX-
NOSTX KL@^EJ |\TO LIBO ZAKON^ENNYJ,LIBO PREFIKSNYJ KL@^.
bOLX[INSTWO ODINO^NYH ZNAKOW QWLQ@TSQ ZAKON^ENNYMI KL@^AMI W STANDARTNYH PRI-
WQZKAH KOMAND Emacs.nEMNOGIE IZ NIH QWLQ@TSQ PREFIKSNYMI KL@^AMI.pREFIKSNYJ
KL@^ OB_EDINQETSQ SO SLEDU@]IM SOBYTIEM W BOLEE DLINNU@ POSLEDOWATELXNOSTX KL@^EJ,
KOTORAQ SAMA MOVET BYTX ZAKON^ENNOJ ILI PREFIKSNOJ.nAPRIMER,C-x |\TO PREFIKSNYJ
KL@^,PO\TOMU C-x I SLEDU@]EE SOBYTIE OB_EDINQ@TSQ W DWUHZNAKOWU@ POSLEDOWATELX-
NOSTX KL@^EJ.bOLX[INSTWO\TIH POSLEDOWATELXNOSTEJ QWLQ@TSQ ZAKON^ENNYMI KL@^AMI,
W TOM ^ISLE C-x C-f I C-x b.nEKOTORYE,NAPRIMER C-x 4 I C-x r,SAMI QWLQ@TSQ PREFIKS-
NYMI KL@^AMI,PRIWODQ]IMI K TREHZNAKOWYM POSLEDOWATELXNOSTQM KL@^EJ.nET OGRA-
NI^ENIQ NA DLINU POSLEDOWATELXNOSTI KL@^EJ,NO NA PRAKTIKE L@DI REDKO ISPOLXZU@T
POSLEDOWATELXNOSTI DLINNEE ^ETYREH SOBYTIJ.
nAPROTIW,DOBAWITX SOBYTIQ K ZAKON^ENNOMU KL@^U WY NE MOVETE.nAPRIMER,DWUHZNA-
KOWAQ POSLEDOWATELXNOSTX C-f C-k NE QWLQETSQ KL@^OM,TAK KAK C-f QWLQETSQ ZAKON^ENNYM
KL@^OM SAMA PO SEBE.nEWOZMOVNO DATX C-f C-k NEZAWISIMOE ZNA^ENIE KAK KOMANDE.C-f
C-k |\TO DWE KOMANDY,A NE ODNA.
iZ WSEGO SKAZANNOGO SLEDUET,^TO PREFIKSNYMI KL@^AMI W Emacs QWLQ@TSQ C-c,C-h,
C-x,C-x h RETi,C-x @,C-x a,C-x n,C-x r,C-x v,C-x 4,C-x 5,C-x 6,hESCi,M-g I M-j.nO
\TOT SPISOK NE WSTROEN;\TO PROSTO STANDARTNAQ PRIWQZKA KL@^EJ W Emacs.w PROCESSE
NASTROJKI Emacs WY MOVETE SDELATX NOWYE PREFIKSNYE KL@^I ILI UNI^TOVITX\TI.sM.rAZDEL 31.4 [pRIWQZKI KL@^EJ],S.356.
eSLI WY W SAMOM DELE SOZDAETE ILI UDALQETE PREFIKSNYE KL@^I,\TO IZMENQET NABOR
WOZMOVNYH POSLEDOWATELXNOSTEJ KL@^EJ.nAPRIMER,ESLI WY PEREOPREDELQETE C-f KAK
gLAWA 2:zNAKI,KL@^I I KOMANDY 31PREFIKS,C-f C-k AWTOMATI^ESKI STANOWQTSQ KL@^OM (ZAKON^ENNYM,ESLI WY NE OPREDELITE
EGO TOVE KAK PREFIKS).nAOBOROT,ESLI WY UNI^TOVITE OPREDELENIE PREFIKSA C-x 4,TO s-H
4 f (ILI s-H 4 ^TO-NIBUDX) NE BUDET W DALXNEJ[EM KL@^OM.
nAPE^ATAW ZNAK WYZOWA SPRAWKI (C-h ILI
hF1i) POSLE PREFIKSNOGO ZNAKA,WY POLU^ITE
SPISOK KOMAND,NA^INA@]IHSQ S\TOGO PREFIKSA.eSTX NESKOLXKO PREFIKSNYH ZNAKOW,DLQ
KOTORYH C-h NE RABOTAET | PO ISTORI^ESKIM PRI^INAM U NIH ESTX DRUGOE ZNA^ENIE DLQ
C-h,KOTOROE NEPROSTO IZMENITX.nO h F1i DOLVNA RABOTATX DLQ WSEH PREFIKSNYH ZNAKOW.
2.3 kL@^I I KOMANDY
w\TOM RUKOWODSTWE MNOGO OTRYWKOW,KOTORYE GOWORQT WAM,^TO DELA@T OTDELXNYE KL@-
^I.nO Emacs NE OPREDELQET ZNA^ENIE KL@^EJ NEPOSREDSTWENNO.wMESTO\TOGO Emacs
PRISWAIWAET ZNA^ENIE IMENOWANNYM KOMANDAM I ZATEM PRIDAET KL@^AM ZNA^ENIQ PUTEM
PRIWQZKI IH K KOMANDAM.
kAVDAQ KOMANDA IMEET IMQ,WYBRANNOE DLQ NEE PROGRAMMISTOM.oBY^NO\TO IMQ SO-
STAWLQETSQ IZ NESKOLXKIH ANGLIJSKIH SLOW,RAZDELENNYH DEFISAMI;NAPRIMER,next-line
ILI forward-word.u KOMANDY TAKVE ESTX OPREDELENIE,QWLQ@]EESQ PROGRAMMOJ NA lIS-
PE;ONA ZASTAWLQET FUNKCI@ DELATX TO,^TO ONA DELAET.nA SAMOM DELE,KOMANDA W QZYKE
Emacs Lisp |\TO OSOBAQ RAZNOWIDNOSTX LISPOWSKOJ FUNKCII;\TO TAKAQ FUNKCIQ,KOTORAQ
UKAZYWAET,KAK ^ITATX ARGUMENTY PRI INTERAKTIWNOM WYZOWE.dLQ POLU^ENIQ BOLX[EJ IN-
FORMACII O KOMANDAH I FUNKCIQH SMOTRITERAZDEL\What Is a Function"W The Emacs Lisp
Reference Manual.(oPREDELENIE,KOTOROE MY ISPOLXZOWALI W DANNOM RUKOWODSTWE,SLEGKA
UPRO]ENO.)
sWQZX MEVDU KL@^AMI I FUNKCIQMI ZAPISYWAETSQ W RAZLI^NYH TABLICAH,NAZYWAEMYH
TABLICAMI KL@^EJ.sM.rAZDEL 31.4.1 [tABLICY KL@^EJ],S.356.
kOGDA MY GOWORIM,^TO\C-n SDWIGAET WERTIKALXNO WNIZ NA ODNU STROKU",MY ZAMAL^I-
WAEM OTLI^IE,KOTOROE NE OTNOSITSQ K DELU PRI OBY^NOM ISPOLXZOWANII,NO SU]ESTWENNO
DLQ PONIMANIQ TOGO,KAK NASTRAIWAETSQ Emacs.|TO KOMANDA next-line,KOTORAQ ZAPRO-
GRAMMIROWANA NA SDWIG WNIZ.kL@^ C-n IMEET TAKOE DEJSTWIE,TAK KAK ON PRIWQZAN K\TOJ
KOMANDE.eSLI WY PEREPRIWQVETE s-n K KOMANDE forward-word,TO ON BUDET PEREME]ATX NA
ODNO SLOWO WPERED.pEREPRIWQZKA KLAWI[ |OBY^NYJ METOD NASTROJKI.
w OSTALXNOJ ^ASTI\TOGO RUKOWODSTWA MY OBY^NO BUDEM IGNORIROWATX\TU TONKOSTX,
^TOBY SOHRANITX PROSTOTU.~TOBY DATX NEOBHODIMU@ DLQ NASTROJKI INFORMACI@,MY
STAWIM IMQ KOMANDY,KOTORAQ W DEJSTWITELXNOSTI WYPOLNQET RABOTU,W KRUGLYH SKOBKAH
POSLE SSYLKI NA KL@^,KOTORYJ EE ZAPUSKAET.nAPRIMER,MY BUDEM GOWORITX:\kOMANDA s-n
(next-line) PEREDWIGAET TO^KU WNIZ",IMEQ W WIDU,^TO next-line |\TO KOMANDA,KOTORAQ
DWIGAET WNIZ,A s-n |\TO KL@^,KOTORYJ STANDARTNO PRIWQZAN K NEJ.
rAZ UV MY GOWORIM SEJ^AS TOLXKO OB INFORMACII DLQ NASTROJKI,TO\TO PODHODQ]IJ MO-
MENT,^TOBY RASSKAZATX WAM O PEREMENNYH.~ASTO OPISANIE KOMAND BUDET GOWORITX:\~TOBY
IZMENITX\TO,USTANOWITE PEREMENNU@ mumble-foo".pEREMENNAQ |\TO IMQ,ISPOLXZUEMOE
DLQ ZAPOMINANIQ ZNA^ENIQ.mNOGIE OPISANNYE W\TOM RUKOWODSTWE PEREMENNYE SU]ESTWU@T
PROSTO DLQ OBLEG^ENIQ NASTROJKI:NEKOTORAQ KOMANDA ILI DRUGAQ ^ASTX Emacs PROWERQET
PEREMENNU@ I WEDET SEBQ PO-RAZNOMU W ZAWISIMOSTI OT EE ZNA^ENIQ.pOKA WY NE INTERE-
SUETESX NASTROJKOJ,WY MOVETE PROPUSTITX INFORMACI@ O PEREMENNYH.kOGDA WY BUDETE
GOTOWY,^TOBY ZAINTERESOWATXSQ,PRO^ITAJTE BAZOWYE SWEDENIQ O PEREMENNYH,I TOGDA IN-
FORMACIQ OB OTDELXNYH PEREMENNYH BUDET IMETX SMYSL.sM.rAZDEL 31.2 [pEREMENNYE],
S.343.
2.4 nABORY ZNAKOW DLQ TEKSTA
tEKST W BUFERAH Emacs |\TO POSLEDOWATELXNOSTX WOSXMIBITNYH BAJT.kAVDYJ BAJT
MOVET SODERVATX ODIN ZNAK ASCII.dOPUSTIMY KAK UPRAWLQ@]IE ZNAKI ASCII (S WOSXME-
32 rUKOWODSTWO PO GNU EmacsRI^NYMI KODAMI OT 000 DO 037,I 0177),TAK I PE^ATNYE ASCII-ZNAKI (S KODAMI OT 040
DO 0176);ODNAKO,UPRAWLQ@]IE ZNAKI NE IZ ASCII NE MOGUT POQWITXSQ W BUFERE.dRU-
GIE FLAGI-MODIFIKATORY,ISPOLXZUEMYE PRI WWODE S KLAWIATURY,TAKIE KAK Meta,TAKVE
NEDOPUSTIMY W BUFERAH.
nEKOTORYE UPRAWLQ@]IE ZNAKI ASCII SLUVAT W TEKSTE DLQ OSOBYH CELEJ I IME@T OSO-
BYE NAZWANIQ.nAPRIMER,ZNAK NOWOJ STROKI (WOSXMERI^NYJ KOD 012) ISPOLXZUETSQ W BUFERE
DLQ ZAWER[ENIQ STROKI,A SIMWOL TABULQCII (WOSXMERI^NYJ KOD 011) ISPOLXZUETSQ DLQ SO-
ZDANIQ OTSTUPA DO SLEDU@]EJ POZICII TABULQCII (OBY^NO ^EREZ KAVDYE 8 STOLBCOW).sM.rAZDEL 11.6 [oTOBRAVENIE TEKSTA],S.84.
pE^ATNYE ZNAKI,NE WHODQ]IE W ASCII,TAKVE MOGUT POQWLQTXSQ W BUFERAH.kOGDA
WKL@^ENY MNOGOBAJTNYE ZNAKI,WY MOVETE ISPOLXZOWATX L@BYE PE^ATNYE NE-ASCII-ZNAKI,
KOTORYE Emacs PODDERVIWAET.oNI IME@T KODY,NA^INA@]IESQ OT 256,ILI WOSXMERI^NOGO
0400,I KAVDYJ IZ NIH PREDSTAWLQETSQ KAK POSLEDOWATELXNOSTX DWUH ILI BOLEE BAJT.sM.gLAWA 18 [MULE],S.161.
eSLI WY WYKL@^ITE PODDERVKU MNOGOBAJTNYH ZNAKOW,TO SMOVETE ISPOLXZOWATX TOLXKO
ODIN ALFAWIT NE-ASCII-ZNAKOW,KAVDYJ IZ KOTORYH WME]AETSQ W ODIN BAJT.dLQ NIH
ISPOLXZU@TSQ KODY OT 0200 DO 0377.sM.rAZDEL 18.12 [oDNOBAJTNYE EWROPEJSKIE ZNAKI],
S.172.
gLAWA 3:wHOD I WYHOD IZ Emacs 333 wHOD I WYHOD IZ Emacs
oBY^NO DLQ WYZOWA Emacs DOSTATO^NO PROSTO NABRATX`emacs'W OBOLO^KE.Emacs O^I]A-
ET\KRAN I OTOBRAVAET NA^ALXNYE SPRAWO^NYE SWEDENIQ I UWEDOMLENIE OB AWTORSKIH PRA-
WAH.nEKOTORYE OPERACIONNYE SISTEMY SBRASYWA@T WSE NABRANNOE PERED TEM,KAK Emacs
STARTUET;ONI NE DA@T Emacs WOZMOVNOSTI PREDOTWRATITX\TO.pO\TOMU REKOMENDUETSQ
PODOVDATX,POKA Emacs O^ISTIT\KRAN,I TOLXKO POTOM NABRATX WA[U PERWU@ KOMANDU
REDAKTIROWANIQ.
eSLI WY ZAPUSKAETE Emacs IZ OKNA S OBOLO^KOJ W SISTEME X Windows,ZAPUSKAJTE EGO W
FONOWOM REVIME S POMO]X@`emacs&'.tOGDA Emacs NE SWQVET OKNO OBOLO^KI,I WY SMOVETE
WYPOLNQTX DRUGIE KOMANDY,POKA Emacs RABOTAET W SWOIH X-OKNAH.wY MOVETE NA^INATX
PE^ATATX KOMANDY,KAK TOLXKO NAPRAWITE WWOD S KLAWIATURY WO FREJM Emacs.
kOGDA Emacs NA^INAET RABOTU,ON SOZDAET BUFER,NAZYWAEMYJ`*scratch*'.|TO BUFER,
KOTORYJ PREDOSTAWLQETSQ WAM PERWONA^ALXNO.bUFER`*scratch*'ISPOLXZUET REVIM Lisp
Interaction;WY MOVETE NABIRATX W NEM lISP-WYRAVENIQ I WY^ISLQTX IH,LIBO WY MOVETE
PROIGNORIROWATX TAKU@ WOZMOVNOSTX I PROSTO PISATX W NEM ZAMETKI.(wY MOVETE ZA-
DATX DLQ\TOGO BUFERA DRUGOJ OSNOWNOJ REVIM,USTANOWIW W WA[EM FAJLE INICIALIZACII
PEREMENNU@ initial-major-mode.sM.rAZDEL 31.7 [fAJL INICIALIZACII],S.366.)
iZ ARGUMENTOW W KOMANDNOJ STROKE OBOLO^KI MOVNO UKAZATX FAJLY,K KOTORYM WY HO-
TITE OBRATITXSQ,lISP-FAJLY DLQ ZAGRUZKI I FUNKCII,KOTORYE BUDUT WYZWANY.sM.pRI-
LOVENIE A [aRGUMENTY KOMANDNOJ STROKI],S.385.nO MY NE REKOMENDUEM TAK DELATX.|TA
WOZMOVNOSTX SU]ESTWUET PREIMU]ESTWENNO DLQ SOWMESTIMOSTI S DRUGIMI REDAKTORAMI.
mNOGIE REDAKTORY SPROEKTIROWANY TAK,^TO ZAPUSKA@TSQ SNOWA KAVDYJ RAZ,KOGDA WY
HOTITE REDAKTIROWATX.wY REDAKTIRUETE ODIN FAJL I ZATEM WYHODITE IZ REDAKTORA.w
SLEDU@]IJ RAZ,KOGDA WY HOTITE REDAKTIROWATX DRUGOJ FAJL ILI TOT VE SAMYJ,WY DOLV-
NY ZAPUSTITX REDAKTOR SNOWA.s TAKIMI REDAKTORAMI IMEET SMYSL ISPOLXZOWATX ARGUMENT
KOMANDNOJ STROKI,^TOBY SOOB]ITX,KAKOJ FAJL BUDET REDAKTIROWATXSQ.
nO NE IMEET SMYSLA ZAPUSKATX NOWYJ Emacs KAVDYJ RAZ,KOGDA WY HOTITE REDAKTI-
ROWATX DRUGOJ FAJL.s ODNOJ STORONY,\TO BYLO BY RAZDRAVA@]E MEDLENNO.s DRUGOJ
STORONY,PRI\TOM NE ISPOLXZOWALASX BY SPOSOBNOSTX Emacs OBRA]ATXSQ K NESKOLXKIM
FAJLAM ZA ODIN SEANS REDAKTIROWANIQ.i PRI\TOM TERQLISX BY NAKOPLENNYE SWEDENIQ O
KONTEKSTE:REGISTRY,ISTORIQ OTMENY IZMENENIJ,SPISOK POMETOK I DRUGIE.
rEKOMENDUEMYJ SPOSOB ISPOLXZOWANIQ GNU Emacs | ZAPUSKATX EGO TOLXKO ODIN RAZ
SRAZU POSLE WHODA W SISTEMU I DELATX WSE WA[I REDAKCII W ODNOM I TOM VE PROCESSE
Emacs.kAVDYJ RAZ,KOGDA WY HOTITE REDAKTIROWATX DRUGOJ FAJL,WY WYZYWAETE EGO W
UVE SU]ESTWU@]IJ Emacs,KOTORYJ W KONCE KONCOW PREDNAZNA^EN,^TOBY HRANITX MNOGO
FAJLOW,GOTOWYH DLQ REDAKTIROWANIQ.oBY^NO WY NE UNI^TOVAETE Emacs DO TEH POR,POKA
NE RE[ITE WYJTI IZ SISTEMY.sM.gLAWA 14 [fAJLY],S.105,DLQ POLU^ENIQ INFORMACII O
REDAKTIROWANII NESKOLXKIH FAJLOW ODNOWREMENNO.
3.1 wYHOD IZ Emacs
sU]ESTWUET DWE KOMANDY WYHODA IZ Emacs,TAK KAK SU]ESTWUET DWA WIDA WYHODA:PRI-
OSTANOWKA Emacs I UNI^TOVENIE Emacs.
pRIOSTANOWKA OZNA^AET WREMENNU@ OSTANOWKU Emacs I WOZWRAT UPRAWLENIQ EGO RODI-
TELXSKOMU PROCESSU (OBY^NO\TO OBOLO^KA),ONA POZWOLQET WAM POZDNEE WOZOBNOWITX REDAK-
TIROWANIE W TOM VE ZADANII Emacs,S TEMI VE BUFERAMI,S TEM VE SPISKOM UNI^TOVENIJ,
S TOJ VE ISTORIEJ OTMENY I TAK DALEE.|TO OBY^NYJ SPOSOB WYHODA.
uNI^TOVENIE Emacs PODRAZUMEWAET UNI^TOVENIE ZADANIQ Emacs.wY SNOWA MOVETE
ZAPUSTITX Emacs POZDNEE,NO WY POLU^ITE NOWYJ Emacs.nET SPOSOBA WOZOBNOWITX TOT VE
SEANS REDAKTIROWANIQ POSLE EGO UNI^TOVENIQ.
34 rUKOWODSTWO PO GNU EmacsC-z pRIOSTANOWITX Emacs (suspend-emacs) ILI MINIMIZIROWATX TEKU]IJ FREJM
(iconify-or-deiconify-frame).
C-x C-c uNI^TOVITX Emacs (save-buffers-kill-emacs).
~TOBY PRIOSTANOWITX Emacs,NABERITE C-z (suspend-emacs).|TO WERNET WAS OBRATNO
W OBOLO^KU,IZ KOTOROJ WY WYZYWALI Emacs.wY MOVETE WOZOBNOWITX Emacs S POMO]X@
KOMANDY`%Emacs'W BOLX[INSTWE OBY^NYH OBOLO^EK.
w SISTEMAH,KOTORYE NE POZWOLQ@T PROGRAMMAM PRIOSTANAWLIWATXSQ,C-z ZAPUSKAET
POD^INENNU@ OBOLO^KU,KOTORAQ SWQZANA PRQMO S TERMINALOM,I Emacs VDET,POKA WY NE
POKINETE PODOBOLO^KU.(sKOREE WSEGO,WY MOVETE SDELATX\TO S POMO]X@ C-d ILI`exit',NO
\TO ZAWISIT OT ISPOLXZUEMOJ OBOLO^KI.) w\TIH SISTEMAH EDINSTWENNYJ SPOSOB WERNUTXSQ
W OBOLO^KU,IZ KOTOROJ Emacs BYL ZAPU]EN (^TOBY WYJTI IZ SISTEMY,NAPRIMER),|\TO
UNI^TOVITX Emacs.
pRIOSTANOWKA TAKVE NEWOZMOVNA,ESLI WY ZAPUSTILI Emacs IZ OBOLO^KI,NE PODDER-
VIWA@]EJ PRIOSTANOWKU PROGRAMM,DAVE ESLI SISTEMA EE PODDERIWAET.w TAKOM SLU^AE
WY MOVETE USTANOWITX PEREMENNU@ cannot-suspend W OTLI^NOE OT nil ZNA^ENIE,^TOBY
PRINUDITX C-z ZAPUSKATX POD^INENNU@ OBOLO^KU.(mOVNO BYLO BY NAZWATX RODITELXSKU@
OBOLO^KU Emacs TOVE\POD^INENNOJ"ZA NEUMENIE PRAWILXNO UPRAWLQTX ZADANIQMI,NO\TO
WOPROS WKUSA.)
kOGDA Emacs NAPRQMU@ OB]AETSQ S X-SERWEROM I SOZDAET SOBSTWENNYE WYDELENNYE X-
OKNA,C-z IMEET DRUGOJ SMYSL.pRIOSTANOWKA PRILOVENIQ,ISPOLXZUE]EGO SOBSTWENNYE
X-OKNA,BESSMYSLENNA I BESPOLEZNA.wMESTO\TOGO,C-z ZAPUSKAET KOMANDU iconify-or-
deiconify-frame,KOTORAQ WREMENNO ZAKRYWAET WYBRANNYJ FREJM Emacs (SM.gLAWA 17
[fREJMY],S.147 ).sNOWA POLU^ITX DOSTUP K\TOMU FREJMU MOVNO S POMO]X@ PROGRAMMY
UPRAWLENIQ OKNAMI.
~TOBY UNI^TOVITX Emacs,NABERITE C-x C-c (save-buffer-kill-emacs).dWUHZNAKO-
WYJ KL@^ ISPOLXZUETSQ DLQ TOGO,^TOBY EGO BYLO TRUDNEE NABRATX.|TA KOMANDA SNA^ALA
PREDLAGAET SOHRANITX WSE MODIFICIROWANNYE OBRA]A@]IESQ K FAJLAM BUFERY.eSLI WY
NE SOHRANQETE IH WSE,ONA ZAPRA[IWAET NOWOE PODTWERVDENIE S POMO]X@ yes PERED UNI^TO-
VENIEM Emacs,TAK KAK L@BYE NEZAPISANNYE IZMENENIQ BUDUT POTERQNY NAWSEGDA.tAKVE,
ESLI OSTA@TSQ ZAPU]ENNYMI KAKIE-LIBO PODPROCESSY,TO s-H s-S ZAPRA[IWAET PODTWER-
VDENIE I DLQ NIH,TAK KAK UNI^TOVENIE Emacs NEMEDLENNO UNI^TOVIT PODPROCESSY.
nEWOZMOVNO PEREZAPUSTITX SEANS Emacs,KOGDA WY EGO UVE UNI^TOVILI.oDNAKO,WY
MOVETE UKAZATX Emacs ZAPISYWATX OPREDELENNYE SWEDENIQ O SEANSE,NAPRIMER,K KAKIM
FAJLAM OBRA]ALISX,KOGDA Emacs BYL UNI^TOVEN;TOGDA W SLEDU@]IJ RAZ,KOGDA WY PERE-
ZAPUSTITE Emacs,ON POPYTAETSQ OBRATITXSQ K TEM VE FAJLAM.sM.rAZDEL 30.11 [sOHRANE-
NIE SEANSOW Emacs],S.337.
oPERACIONNAQ SISTEMA OBY^NO ULAWLIWAET OPREDELENNYE SPECIALXNYE SIMWOLY,KOTO-
RYE MOGUT MGNOWENNO PRIOSTANAWLIWATX ILI UNI^TOVATX PROGRAMMU.|TO SWOJSTWO OPE-
RACIONNOJ SISTEMY OTKL@^AETSQ W TO WREMQ,KOGDA WY NAHODITESX W Emacs.zNA^ENIQ
C-z I s-S KAK KL@^EJ W Emacs BYLI WDOHNOWLENY STANDARTNYMI ZNA^ENIQMI C-z I s-S W
NEKOTORYH OPERACIONNYH SISTEMAH KAK SIMWOLOW OSTANOWA I UNI^TOVENIQ PROGRAMMY,NO
\TO EDINSTWENNAQ IH SWQZX S\TIMI OPERACIONNYMI SISTEMAMI.wY MOVETE NASTROITX\TI
KL@^I DLQ ZAPUSKA L@BYH KOMAND PO WA[EMU WYBORU (SM.rAZDEL 31.4.1 [tABLICY KL@^EJ],
S.356 ).
gLAWA 4:oSNOWNYE KOMANDY REDAKTIROWANIQ 354 oSNOWNYE KOMANDY REDAKTIROWANIQ
zDESX MY RASSKAZYWAEM OSNOWY O TOM,KAK WWESTI TEKST,SDELATX IZMENENIQ I ZAPISATX
TEKST W FAJL.eSLI\TI SWEDENIQ NOWY DLQ WAS,WY MOVETE IZU^ITX\TO BOLEE LEGKIM SPO-
SOBOM,ZAPUSTIW SAMOU^ITELX PO Emacs.~TOBY SDELATX TAK,ZAPUSTITE Emacs I NABERITE
Control-h t (help-with-tutorial).
~TOBY O^ISTITX\KRAN I PERERISOWATX IZOBRAVENIE,NAPE^ATAJTE C-l (recenter).
4.1 wSTAWKA TEKSTA
~TOBY WSTAWITX PE^ATNYE ZNAKI W REDAKTIRUEMYJ WAMI TEKST,DOSTATO^NO PROSTO NA-
BRATX IH.tAKIM OBRAZOM,WWODIMYE WAMI ZNAKI WSTAWLQ@TSQ W BUFER W POZICII KURSORA
(TO ESTX W TO^KE;SM.rAZDEL 1.1 [tO^KA],S.23).kURSOR DWIGAETSQ WPERED,I WESX TEKST
POSLE KURSORA TOVE SDWIGAETSQ WPERED.eSLI W BUFERE BYL TEKST`FOOBAR',I KURSOR STOQL
PERED`B',TO ESLI WY NABERETE XX,WY POLU^ITE`FOOXXBAR'c KURSOROM,OSTAW[IMSQ PERED
`B'.
~TOBY UDALITX TEKST,KOTORYJ WY TOLXKO ^TO WSTAWILI,ISPOLXZUJTE
hDELi.hDELi UDALQ-
ET ZNAK PERED KURSOROM (A NE ZNAK POD KURSOROM;\TOT ZNAK STOIT POSLE KURSORA).kURSOR
I WSE ZNAKI,STOQ]IE POSLE NEGO,SDWIGA@TSQ NAZAD.pO\TOMU,ESLI WY NABRALI PE^ATNYE
ZNAKI I ZATEM NABIRAETE h DELi,NABRANNOE OTMENQETSQ.
~TOBY ZAKON^ITX STROKU I NA^ATX NABIRATX NOWU@,NAVMITE hRETi.|TO WSTAWIT W
BUFER ZNAK PEREHODA NA NOWU@ STROKU.eSLI TO^KA NAHODITSQ W SEREDINE STROKI,hRETi
RAZBIWAET\TU STROKU.nABOR h DELi,KOGDA KURSOR NAHODITSQ W NA^ALE STROKI,UDALQET
PRED[ESTWU@]IJ SIMWOL NOWOJ STROKI,SOEDINQQ TAKIM OBRAZOM\TU I PRED[ESTWU@]U@
STROKI.
Emacs MOVET RAZBIWATX STROKI AWTOMATI^ESKI,KOGDA ONI STANOWQTSQ SLI[KOM DLINNY-
MI,ESLI WY WKL@^ITE SPECIALXNYJ WTOROSTEPENNYJ REVIM,NAZYWAEMYJ REVIMOM Auto
Fill.sM.rAZDEL 21.5 [zAPOLNENIE],S.185,DLQ INFORMACII OB ISPOLXZOWANII REVIMA Auto
Fill.
eSLI WY PREDPO^ITAETE,^TOBY ZNAKI TEKSTA ZAME]ALI (PEREZAPISYWALI) SU]ESTWU@-
]IJ TEKST,A NE SDWIGALI EGO WPRAWO,WY MOVETE WKL@^ITX WTOROSTEPENNYJ REVIM Over-
write.sM.rAZDEL 31.1 [wTOROSTEPENNYE REVIMY],S.341.
nEPOSREDSTWENNAQ WSTAWKA RABOTAET DLQ PE^ATNYH ZNAKOW I
hSPCi,NO DRUGIE ZNAKI DEJ-
STWU@T KAK KOMANDY REDAKTIROWANIQ I NE WSTAWLQ@T SAMI SEBQ.eSLI WAM TREBUETSQ
WSTAWITX UPRAWLQ@]IJ ZNAK ILI ZNAK,KOD KOTOROGO PREWY[AET WOSXMIRI^NOE 200,WY
DOLVNY OTMENITX IH OSOBYJ SMYSL,NABRAW PERED NIMI Control-q (quoted-insert).(nA-
ZWANIE\TOGO ZNAKA OBY^NO ZAPISYWAETSQ KAK C-q DLQ KRATKOSTI.) sU]ESTWUET DWA SPOSOBA
ISPOLXZOWANIQ C-q:
пЂЏ C-q,ZA KOTORYM SLEDUET L@BOJ NEGRAFI^ESKIJ ZNAK (DAVE C-g),WSTAWLQET\TOT ZNAK.
пЂЏ C-q,ZA KOTORYM IDET POSLEDOWATELXNOSTX WOSXMIRI^NYH CIFR,WSTAWLQET ZNAK S ZA-
DANNYM ZNAKOWYM KODOM.wY MOVETE ISPOLXZOWATX L@BOE ^ISLO WOSXMIRI^NYH CIFR;
L@BOJ ZNAK,NE QWLQ@]IJSQ CIFROJ,OBRYWAET POSLEDOWATELXNOSTX.eSLI ZAWER[A@-
]IJ ZNAK |\TO
h RETi,ON SLUVIT TOLXKO DLQ ZAWER[ENIQ POSLEDOWATELXNOSTI;L@BOJ
DRUGOJ NECIFROWOJ ZNAK SAM ISPOLXZUETSQ W KA^ESTWE WWODA POSLE ZAWER[ENIQ POSLEDO-
WATELXNOSTI.(iSPOLXZOWANIE WOSXMIRI^NYH POSLEDOWATELXNOSTEJ ZAPRE]ENO W OBY^-
NOM NEDWOI^NOM REVIME Overwrite,^TOBY DATX WAM UDOBNYJ SPOSOB WSTAWITX CIFRU
WMESTO ZAME]ENIQ EJ.)
kOGDA WKL@^ENA PODDERVKA MNOGOBAJTNYH ZNAKOW,WOSXMIRI^NYE KODY OT 0200 DO 0377 NE
QWLQ@TSQ WERNYMI ZNAKAMI;ESLI WY ZADAETE KOD IZ\TOGO PROMEVUTKA,C-q S^ITAET,^TO WY
SOBIRAETESX ISPOLXZOWATX KAKOJ-TO IZ NABOROW ZNAKOW ISO Latin-n,I PREOBRAZUET ZADANNYJ
KOD K SOOTWETSTWU@]EMU KODU ZNAKOW Emacs.sM.rAZDEL 18.2 [wKL@^ENIE MNOGOBAJTNYH
36 rUKOWODSTWO PO GNU EmacsZNAKOW],S.161.kAKOJ IMENNO NABOR ZNAKOW ISO Latin SLEDUET ISPOLXZOWATX,OPREDELQETSQ
WYBRANNOJ WAMI QZYKOWOJ SREDOJ (SM.rAZDEL 18.3 [qZYKOWYE SREDY],S.162).
~TOBY ISPOLXZOWATX WMESTO WOSXMIRI^NYH CIFR DESQTI^NYE ILI [ESTNADCATIRI^NYE,
USTANOWITE PEREMENNU@ read-quoted-char-radix RAWNOJ 10 ILI 16.eSLI OSNOWANIE BOLX-
[E DESQTI,NEKOTORYE BUKWY,NA^INAQ S a,SLUVAT ^ASTX@ ZNAKOWOGO KODA,TAK VE,KAK I
CIFRY.
~ISLOWOJ ARGUMENT DLQ C-q UKAZYWAET,SKOLXKO KOPIJ ZNAKOW S OTMENENNYM OSOBYM
SMYSLOM NEOBHODIMO WSTAWITX (SM.rAZDEL 4.10 [aRGUMENTY],S.42).
iNFORMACIQ DLQ NASTROJKI:
h DELi W BOLX[INSTWE REVIMOW ZAPUSKAET KOMANDU delete-
backward-char;h RETi ZAPUSKAET KOMANDU newline,A SAMOWSTAWLQ@]IESQ PE^ATNYE ZNAKI
ZAPUSKA@T KOMANDU self-insert,KOTORAQ WSTAWLQET TOT ZNAK,KOTORYJ BYL NABRAN PRI EE
WYZOWE.nEKOTORYE OSNOWNYE REVIMY PEREPRIWQZYWA@T hDELi K DRUGIM KOMANDAM.
4.2 iZMENENIE POLOVENIQ TO^KI
~TOBY SDELATX ^TO-TO BOLX[EE,^EM PROSTO WSTAWKA ZNAKOW,WY DOLVNY ZNATX,KAK DWI-
GAETSQ TO^KA (SM.rAZDEL 1.1 [tO^KA],S.23).pROSTEJ[IJ SPOSOB PEREMESTITX TO^KU |
WOSPOLXZOWATXSQ KURSORNYMI STRELKAMI ILI ]ELKNUTX LEWOJ KNOPKOJ MY[I W TOM MESTE,
KUDA WY HOTITE PEREDWINUTX TO^KU.
eSTX TAKVE Control- I Meta-ZNAKI DLQ PEREME]ENIQ KURSORA.nEKOTORYE IZ NIH\KWIWA-
LENTNY KURSORNYM STRELKAM (ONI BYLI PRIDUMANY W TE DNI,KOGDA U TERMINALOW E]E NE
BYLO KURSORNYH STRELOK,IH MOVNO ISPOLXZOWATX NA TAKIH TERMINALAH).dRUGIE DELA@T
BOLEE SLOVNYE WE]I.
C-a pEREDWINUTXSQ W NA^ALO STROKI (beginning-of-line).
C-e pEREDWINUTXSQ W KONEC STROKI (end-of-line).
C-f sDWINUTXSQ NA ODIN ZNAK WPERED (forward-char).
C-b sDWINUTXSQ NA ODIN ZNAK NAZAD (backward-char).
M-f sDWINUTXSQ NA ODNO SLOWO WPERED (forward-word).
M-b sDWINUTXSQ NA ODNO SLOWO NAZAD (backward-word).
C-n sDWINUTXSQ WERTIKALXNO WNIZ NA ODNU STROKU (next-line).|TA KOMANDA STA-
RAETSQ OSTAWITX GORIZONTALXNU@ POZICI@ NEIZMENNOJ,^TOBY ESLI WNA^ALE WY
NAHODILISX W SEREDINE ODNOJ STROKI,TO W KONCE OKAZALISX BY W SEREDINE SLEDU-
@]EJ.w SLU^AE,ESLI WY NAHODITESX NA POSLEDNEJ STROKE TEKSTA,C-n SOZDAET
NOWU@ STROKU I PEREDWIGAETSQ NA NEE.
C-p sDWINUTXSQ WERTIKALXNO WWERH NA ODNU STROKU (previous-line).
M-r sDWINUTX TO^KU K LEWOMU KRA@ NA STROKU W SEREDINE OKNA (move-to-window-
line).tEKST PRI\TOM NE PEREME]AETSQ PO\KRANU.
~ISLOWOJ ARGUMENT GOWORIT,NA KAKOJ STROKE\KRANA POMESTITX TO^KU.oN OT-
S^ITYWAET\KRANNYE STROKI OT WERHA OKNA (NULX DLQ SAMOJ WERHNEJ).oTRICA-
TELXNYJ ARGUMENT OTS^ITYWAET STROKI SNIZU (пЂЂ1 DLQ NIVNEJ STROKI).
M-< pEREJTI NA NA^ALO BUFERA (beginning-of-buffer).pRI ARGUMENTE,RAWNOM n,
DWIGAET NA n/10 OT NA^ALA.sM.rAZDEL 4.10 [aRGUMENTY],S.42,DLQ BOLEE
PODROBNOJ INFORMACII O ^ISLOWYH ARGUMENTAH.
M-> pEREJTI W KONEC BUFERA (end-of-buffer).
M-x goto-char
s^ITYWAET ^ISLO n I SDWIGAET TO^KU K POZICII n W BUFERE.pOZICIQ 1 |\TO
NA^ALO BUFERA.
gLAWA 4:oSNOWNYE KOMANDY REDAKTIROWANIQ 37M-x goto-line
s^ITYWAET ^ISLO n I SDWIGAET TO^KU K STROKE S NOMEROM n.sTROKA 1 |\TO
NA^ALO BUFERA.
C-x C-n wELIT ISPOLXZOWATX TEKU]IJ STOLBEC,W KOTOROM NAHODITSQ TO^KA,W KA^ESTWE
POLUPOSTOQNNOGO CELEWOGO STOLBCA DLQ C-n I C-p (set-goal-column).w DALX-
NEJ[EM\TI KOMANDY WSEGDA PEREHODQT NA\TOT STOLBEC W KAVDOJ STROKE,K
KOTOROJ WY PEREDWIGAETESX,ILI KAK MOVNO BLIVE K NEMU PRI DANNOM SODERVI-
MOM STROKI.|TOT CELEWOJ STOLBEC OSTAETSQ W SILE,POKA EGO NE OTMENQT.
C-u C-x C-n
oTMENITX CELEWOJ STOLBEC.w DALXNEJ[EM C-n I C-p SNOWA,KAK OBY^NO,PYTA-
@TSQ IZBEVATX IZMENENIQ GORIZONTALXNOJ POZICII.
eSLI WY USTANOWITE PEREMENNU@ track-eol NE RAWNOJ nil,TO ESLI TO^KA NAHODITSQ K
KONCE STROKI,C-n I C-p PEREDWIGA@T W KONEC DRUGOJ STROKI.oBY^NO track-eol RAWNA
nil.sM.rAZDEL 31.2 [pEREMENNYE],S.343,^TOBY UZNATX,KAK USTANOWITX PEREMENNYE
WRODE track-eol.
oBY^NO C-n,WYZWANNAQ NA POSLEDNEJ STROKE BUFERA,DOBAWLQET K BUFERU NOWU@ STROKU.
eSLI PEREMENNAQ next-line-add-newlines RAWNA nil,TO C-n WMESTO\TOGO WYDAET O[IBKU
(KAK C-p NA PERWOJ STROKE).
4.3 sTIRANIE TEKSTA
h DELi uDALITX ZNAK PERED TO^KOJ (delete-backward-char).
C-d uDALITX ZNAK POSLE TO^KI (delete-char).
C-k uNI^TOVITX WSE DO KONCA STROKI (kill-line).
M-d uNI^TOVITX WSE ZNAKI WPERED DO KONCA SLEDU@]EGO SLOWA (kill-word).
M-h DELi uNI^TOVITX WSE ZNAKI W OBRATNOM NAPRAWLENII WPLOTX DO NA^ALA PREDYDU]EGO
SLOWA (backward-kill-word).
wY UVE ZNAETE O KLAWI[E hDELi,KOTORAQ UDALQET ZNAK PERED TO^KOJ (TO ESTX PERED
KURSOROM).dRUGOJ KL@^,Control-d (C-d DLQ KRATKOSTI),UDALQET ZNAK POSLE TO^KI (TOT
ZNAK,NA KOTOROM KURSOR).|TO SDWIGAET OSTALXNOJ TEKST NA STROKE WLEWO.eSLI WY NAVMETE
C-d W KONCE STROKI,TO\TA STROKA I SLEDU@]AQ ZA NEJ SOEDINQ@TSQ.
~TOBY STERETX BOLX[IJ KUSOK TEKSTA,ISPOLXZUJTE KL@^ C-k,KOTORYJ UDALQET CELU@
STROKU.eSLI WY NAVMETE C-k W NA^ALE ILI W SEREDINE STROKI,TO ON UNI^TOVAET WESX TEKST
WPLOTX DO KONCA\TOJ STROKI.eSLI WY NABERETE C-k W KONCE STROKI,TO ON OB_EDINQET\TU
STROKU SO SLEDU@]EJ.
sM.rAZDEL 9.1 [uNI^TOVENIE],S.69,DLQ POLU^ENIQ INFORMACII O BOLEE GIBKIH SPOSO-
BAH UNI^TOVENIQ TEKSTA.
4.4 oTMENA SDELANNYH IZMENENIJ
wY MOVETE UDALITX WSE NEDAWNIE IZMENENIQ W TEKSTE BUFERA WPLOTX DO OPREDELENNOGO
PREDELA.kAVDYJ BUFER ZAPISYWAET IZMENENIQ OTDELXNO,I KOMANDA OTMENY WSEGDA OT-
NOSITSQ K TEKU]EMU BUFERU.oBY^NO KAVDAQ KOMANDA REDAKTIROWANIQ SOZDAET OTDELXNOE
WHOVDENIE W ZAPISI OTMENY,NO NEKOTORYE KOMANDY,KAK NAPRIMER query-replace,SOZDA-
@T NESKOLXKO WHOVDENIJ,A O^ENX PROSTYE KOMANDY,NAPRIMER SAMOWSTAWLQ@]IESQ ZNAKI,
^ASTO OB_EDINQ@TSQ,^TOBY SDELATX PROCESS OTMENY MENEE UTOMITELXNYM.
C-x u oTMENITX ODNU GRUPPU IZMENENIJ |OBY^NO ODNU STOQ]U@ KOMANDU (undo).
38 rUKOWODSTWO PO GNU EmacsC-_ tO VE SAMOE.
C-u C-x u oTMENITX ODNU GRUPPU IZMENENIJ W OBLASTI.
wY DELAETE OTMENU S POMO]X@ KOMANDY C-x u ILI C-_.kOGDA WY WPERWYE DAETE\TU
KOMANDU,ONA OTMENQET POSLEDNEE SDELANNOE IZMENENIE.tO^KA WOZWRA]AETSQ K TOMU MESTU,
GDE ONA BYLA DO KOMANDY,SDELAW[EJ IZMENENIE.
pOSLEDOWATELXNOE POWTORENIE C-_ ILI C-x u OTMENQET WSE BOLEE RANNIE IZMENENIQ,
WPLOTX DO PREDELA DOSTUPNOJ INFORMACII OTMENY.eSLI WSE ZAPISANNYE IZMENENIQ UVE
BYLI OTMENENY,KOMANDA OTMENY PE^ATAET SOOB]ENIE OB O[IBKE I NI^EGO NE DELAET.
l@BAQ KOMANDA,OTLI^NAQ OT KOMANDY OTMENY,PRERYWAET POSLEDOWATELXNOSTX KOMAND
OTMENY.nA^INAQ S\TOGO MOMENTA PREDYDU]IE KOMANDY OTMENY RASSMATRIWA@TSQ KAK
PROSTYE IZMENENIQ,KOTORYE MOGUT BYTX OTMENENY.tAKIM OBRAZOM,^TOBY WERNUTX OTME-
NENNYE WAMI IZMENENIQ,NABERITE C-f ILI L@BU@ DRUGU@ KOMANDU,KOTORAQ NE PRI^INQQ
WREDA PRERWET POSLEDOWATELXNOSTX OTMEN,A ZATEM SNOWA NABIRAJTE KOMANDY OTMENY.
oBY^NAQ OTMENA OTNOSITSQ KO WSEM IZMENENIQM,SDELANNYM W TEKU]EM BUFERE.wY
TAKVE MOVETE PROIZWESTI WYBORO^NU@ OTMENU,OGRANI^ENNU@ TEKU]EJ OBLASTX@.~TOBY
SDELATX\TO,ZADAJTE VELAEMU@ OBLASTX,A ZATEM ZAPUSTITE KOMANDU undo S PREFIKSNYM
ARGUMENTOM (ZNA^ENIE NE IGRAET ROLI):C-u C-x u ILI C-u C-_.|TO OTMENQET SAMOE PO-
SLEDNEE IZMENENIE W OBLASTI.~TOBY OTMENITX BOLEE RANNIE IZMENENIQ,POWTORITE KOMANDU
undo (PREFIKSNYJ ARGUMENT NE TREBUETSQ).w REVIME Transient Mark,L@BOE ISPOLXZOWA-
NIE undo,KOGDA ESTX AKTIWNAQ OBLASTX,PROIZWODIT WYBORO^NU@ OTMENU;WAM NE NUVNO
ZADAWATX PREFIKSNYJ ARGUMENT.
eSLI WY ZAMETILI,^TO BUFER BYL IZMENEN SLU^AJNO,PROSTEJ[IJ PUTX WERNUTXSQ W
PERWONA^ALXNOE SOSTOQNIE |\TO NABIRATX C-_ NESKOLXKO RAZ,POKA NE IS^EZNUT ZWEZDO^KI,
STOQ]IE W NA^ALE STROKI REVIMA.w\TOT MOMENT WSE SDELANNYE WAMI IZMENENIQ OTMENENY.
wSQKIJ RAZ,KOGDA KOMANDY OTMENY UBIRA@T ZWEZDO^KI IZ STROKI REVIMA,\TO OZNA^AET,
^TO SODERVIMOE BUFERA STALO TO^NO TAKIM VE,KAKIM ONO BYLO,KOGDA FAJL BYL POSLEDNIJ
RAZ S^ITAN ILI SOHRANEN.
eSLI WY NE POMNITE,NAMERENNO LI WY IZMENILI BUFER,NABERITE C-_ ODIN RAZ.kOGDA
WY UWIDITE POSLEDNEE IZMENENIE,KOTOROE WY SDELALI OTMENENNYM,WY POJMETE,BYLO LI
\TO IZMENENIE UMY[LENNYM.eSLI\TO BYLA SLU^AJNOSTX,OSTAWXTE EGO OTMENENNYM.eSLI
ONO BYLO UMY[LENNYM,WOSSTANOWITE IZMENENIE,KAK OPISANO WY[E.
nE WSE BUFERY ZAPISYWA@T INFORMACI@ DLQ OTMENY.bUFERY,^XI IMENA NA^INA@TSQ
S PROBELA,\TOGO NE DELA@T.oNI ISPOLXZU@TSQ DLQ WNUTRENNIH NUVD Emacs I EGO RAS-
[IRENIJ DLQ HRANENIQ TEKSTA,KOTORYJ OBY^NO NE REDAKTIRUETSQ I NE PROSMATRIWAETSQ
POLXZOWATELQMI.
wY NE MOVETE OTMENITX PROSTOE PEREME]ENIE KURSORA;TOLXKO IZMENENIQ SODERVIMOGO
BUFERA SOHRANQ@T INFORMACI@ DLQ OTMENY.oDNAKO,NEKOTORYE KOMANDY DWIVENIQ KUR-
SORA USTANAWLIWA@T METKU,TAK ^TO ESLI WY WREMQ OT WREMENI ISPOLXZUETE\TI KOMANDY,
WY MOVETE WERNUTXSQ W OKRESTNOSTI,PO KOTORYM WY PEREDWIGALISX,S POMO]X@ SPISKA
POMETOK (SM.rAZDEL 8.5 [sPISOK POMETOK],S.66).
kOGDA INFORMACIQ OTMENY DLQ KAKOGO-TO BUFERA STANOWITSQ SLI[KOM BOLX[OJ,Emacs
WREMQ OT WREMENI (WO WREMQ SBORKI MUSORA) SBRASYWAET SAMYE STARYE SWEDENIQ.wY MOVETE
UKAZATX,SKOLXKO INFORMACII DLQ OTMENY NEOBHODIMO HRANITX,S POMO]X@ DWUH PEREMEN-
NYH:undo-limit I undo-strong-limit.iH ZNA^ENIQ WYRAVA@TSQ W BAJTAH.
pEREMENNAQ undo-limit USTANAWLIWAET GIBKIJ PREDEL:Emacs HRANIT DANNYE DLQ OT-
MENY DOSTATO^NOGO ^ISLA KOMAND,^TOBY OSTAWATXSQ W\TIH GRANICAH I,WOZMOVNO,WYJTI
ZA NIH,NO NE HRANIT DANNYE DLQ BOLEE RANNIH KOMAND SWERH\TOGO PREDELA.eE ZNA^ENIE
PO UMOL^ANI@ RAWNO 20000.pEREMENNAQ undo-strong-limit USTANAWLIWAET BOLEE VESTKIJ
PREDEL:KOMANDA,KOTORAQ UWELI^IWAET RAZMER ZA\TU GRANICU,ZABYWAETSQ SAMA.zNA^ENIE
\TOJ PEREMENNOJ RAWNO PO UMOL^ANI@ 30000.
gLAWA 4:oSNOWNYE KOMANDY REDAKTIROWANIQ 39wNE ZAWISIMOSTI OT ZNA^ENIJ\TIH PEREMENNYH,SAMOE POSLEDNEE IZMENENIE NIKOGDA
NE SBRASYWAETSQ,PO\TOMU NET OPASNOSTI,^TO SBORKA MUSORA,SLU^IW[AQSQ SRAZU POSLE
NEUMY[LENNOGO BOLX[OGO IZMENENIQ,POME[AET WAM OTMENITX EGO.
pRI^INA TOGO,^TO DLQ KOMANDY undo OPREDELENY DWA ZAPUSKA@]IH KL@^A,C-x u I C-_,
SOSTOIT W TOM,^TO\TA KOMANDA STOIT TOGO,^TOBY IMETX ODNOZNAKOWYJ KL@^,NO NA NEKOTO-
RYH KLAWIATURAH NET O^EWIDNOGO SPOSOBA WWESTI C-_.C-x u PREDOSTAWLQET ALXTERNATIWU,
WY MOVETE PRQMO NABRATX EGO NA L@BOM TERMINALE.
4.5 fAJLY
oPISANNYH WY[E KOMAND DOSTATO^NO DLQ SOZDANIQ I IZMENENIQ TEKSTA W BUFERE Emacs;
BOLEE PRODWINUTYE KOMANDY Emacs LI[X POZWOLQ@T DELATX\TO PRO]E.nO DLQ TOGO ^TOBY
SOHRANITX L@BOJ TEKST,WY DOLVNY POMESTITX EGO W FAJL.fAJLY |\TO IMENOWANNYE
EDINICY TEKSTA,KOTORYE HRANQTSQ OPERACIONNOJ SISTEMOJ,^TOBY WY MOGLI POLU^ITX IH
POZVE PO IMENI.~TOBY PROSMOTRETX ILI ISPOLXZOWATX SODERVIMOE FAJLA S L@BOJ CELX@,
WKL@^AQ REDAKTIROWANIE S POMO]X@ Emacs,WY DOLVNY ZADATX EGO IMQ.
rASSMOTRIM FAJL S IMENEM`/usr/rms/foo.c'.dLQ TOGO ^TOBY NA^ATX REDAKTIROWANIE
\TOGO FAJLA W Emacs,NABERITE
C-x C-f/usr/rms/foo.c
hRETi
zDESX IMQ FAJLA DAETSQ KAK ARGUMENT DLQ KOMANDY C-x C-f (find-file).|TA KOMANDA
ISPOLXZUET DLQ S^ITYWANIQ ARGUMENTA MINIBUFER,A ^TOBY ZAWER[ITX ARGUMENT,WY NABI-
RAETE h RETi (SM.gLAWA 5 [mINIBUFER],S.45).
Emacs POD^INQETSQ\TOJ KOMANDE,OBRA]AQSX K UKAZANNOMU FAJLU:SOZDAWAQ BUFER,KO-
PIRUQ W NEGO SODERVIMOE\TOGO FAJLA I ZATEM POKAZYWAQ WAM BUFER DLQ REDAKTIROWANIQ.
eSLI WY IZMENILI\TOT BUFER,WY MOVETE SOHRANITX NOWYJ TEKST W FAJLE,NAPE^ATAW C-x
C-s (save-buffer).|TO DELAET IZMENENIQ POSTOQNNYMI PUTEM KOPIROWANIQ IZMENENNOGO
SODERVIMOGO BUFERA SNOWA W FAJL`/usr/rms/foo.c'.dO\TOGO WA[I IZMENENIQ SU]ESTWU@T
TOLXKO WNUTRI Emacs,A FAJL`foo.c'NE IZMENQETSQ.
~TOBY SOZDATX FAJL,NADO PROSTO OBRATITXSQ K NEMU S POMO]X@ C-x C-f,KAK ESLI BY ON
UVE SU]ESTWOWAL.Emacs SOZDAST PUSTOJ BUFER,KUDA WY MOVETE WSTAWITX TEKST,KOTORYJ
HOTITE ZANESTI W FAJL.rEALXNYJ FAJL SOZDAETSQ,KOGDA WY SOHRANQETE\TOT BUFER S
POMO]X@ C-x C-s.
kONE^NO,OB ISPOLXZOWANII FAJLOW MOVNO UZNATX GORAZDO BOLX[E.sM.gLAWA 14 [fAJ-
LY],S.105.
4.6 sPRAWKA
eSLI WY ZABYLI,^TO DELAET KAKAQ-TO KLAWI[A,WY MOVETE WYQSNITX\TO S POMO]X@
ZNAKA SPRAWKI C-h (ILI hF1i,ANALOGA C-h).nABERITE C-h k,A ZATEM IMQ KL@^A,O KOTOROM
WY HOTITE UZNATX;NAPRIMER,C-h k C-n RASSKAZYWAET WSE O TOM,^TO DELAET C-n.C-h |\TO
PREFIKSNAQ KLAWI[A;C-h k |PROSTO ODNA IZ EE PODKOMAND (A IMENNO,KOMANDA describe-
key).dRUGIE PODKOMANDY C-h PREDOSTAWLQ@T DRUGIE WIDY SPRAWKI.nABERITE C-h DWAVDY,
^TOBY POLU^ITX OPISANIE WSEH WOZMOVNOSTEJ SPRAWKI.sM.gLAWA 7 [sPRAWKA],S.55.
4.7 pUSTYE STROKI
zDESX RASSMATRIWA@TSQ SPECIALXNYE KOMANDY I PRIEMY SOZDANIQ I UDALENIQ PUSTYH
STROK.
C-o wSTAWITX POSLE KURSORA ODNU ILI NESKOLXKO PUSTYH STROK (open-line).
40 rUKOWODSTWO PO GNU EmacsC-x C-o uNI^TOVITX WSE POSLEDOWATELXNYE PUSTYE STROKI,KROME ODNOJ (delete-blank-
lines).
kOGDA WY HOTITE WSTAWITX NOWU@ STROKU TEKSTA PERED UVE SU]ESTWU@]EJ,WY MOVETE
SDELATX\TO,NABRAW NOWU@ STROKU TEKSTA I ZA NEJ
hRETi.oDNAKO,MOVET OKAZATXSQ UDOBNEE
WIDETX TO,^TO WY NABIRAETE,ESLI PERED\TIM SPERWA SOZDATX PUSTU@ STROKU,A ZATEM
WSTAWITX W NEE NUVNYJ TEKST.|TO LEGKO SDELATX,ISPOLXZUQ KLAWI[U C-o (open-line),
KOTORAQ WSTAWLQET NOWU@ STROKU POSLE TO^KI,NO OSTAWLQET TO^KU PERED\TOJ NOWOJ STROKOJ.
pOSLE s-O NABIRAJTE TEKST W NOWU@ STROKU.s-O F O O DAET TOT VE REZULXTAT,^TO I F O O
h RETi,ZA ISKL@^ENIEM KONE^NOJ POZICII TO^KI.
wY MOVETE SOZDATX NESKOLXKO PUSTYH STROK,NABRAW s-O NESKOLXKO RAZ,ILI ZADAW EJ
^ISLOWOJ ARGUMENT,^TOBY SKAZATX EJ,KAKOE KOLI^ESTWO STROK NEOBHODIMO SOZDATX.sM.rAZDEL 4.10 [aRGUMENTY],S.42,^TOBY UZATX,KAK\TO SDELATX.eSLI OPREDELEN PREFIKS
ZAPOLNENIQ,TO KOMANDA C-o,KOGDA WY ISPOLXZUETE EE W NA^ALE STROKI,WSTAWLQET NA NOWOJ
STROKE\TOT PREFIKS ZAPOLNENIQ.sM.rAZDEL 21.5.3 [pREFIKS ZAPOLNENIQ],S.187.
pROSTOJ SPOSOB IZBAWITXSQ OT LI[NIH PUSTYH STROK | WOSPOLXZOWATXSQ KOMANDOJ C-x
C-o (delete-blank-lines).iSPOLXZOWANIE C-x C-o SREDI NESKOLXKIH PUSTYH STROK UDALQET
IH WSE,KROME ODNOJ.C-x C-o NA ODINO^NOJ PUSTOJ STROKE UDALQET\TU STROKU.kOGDA TO^KA
NAHODITSQ NA NEPUSTOJ STROKE,C-x C-o UDALQET WSE PUSTYE STROKI POSLE\TOJ NEPUSTOJ
STROKI.
4.8 sTROKI PRODOLVENIQ
eSLI WY DOBAWLQETE SLI[KOM MNOGO ZNAKOW W ODNU STROKU,NE PRERYWAQ EE NAVATIEM
h RETi,TO\TA STROKA BUDET RASTI I ZAJMET DWE (ILI BOLEE) STROKI NA\KRANE;W KRAJNEJ
PRAWOJ POZICII KAVDOJ IZ ZANQTYH STROK,KROME POSLEDNEJ,BUDET RASPOLOVEN ZNAK`\'.
zNAK`\'GOWORIT,^TO SLEDU@]AQ STROKA\KRANA NE QWLQETSQ OTDELXNOJ STROKOJ W TEKSTE,
^TO\TO TOLXKO PRODOLVENIE STROKI,SLI[KOM DLINNOJ DLQ DANNOGO\KRANA.pRODOLVENIE
TAKVE NAZYWAETSQ PERENOSOM STROK.
iNOGDA UDOBNO,^TOBY Emacs AWTOMATI^ESKI WSTAWLQL ZNAKI PEREWODA STROKI,KOGDA
STROKA STANOWITSQ SLI[KOM DLINNOJ;ISPOLXZUJTE DLQ\TOGO REVIM Auto Fill (SM.rAZ-
DEL 21.5 [zAPOLNENIE],S.185 ).
wMESTO PRODOLVENIQ Emacs MOVET OTOBRAVATX DLINNYE STROKI USE^ENNYMI.|TO ZNA-
^IT,^TO WSE ZNAKI,KOTORYE NE WO[LI W [IRINU\KRANA ILI OKNA,NE OTOBRAVA@TSQ SOWSEM.
oNI OSTA@TSQ W BUFERE,NO WREMENNO NEWIDIMY.w POSLEDNEM STOLBCE STAWITSQ ZNAK`$',A
NE`\',^TOBY INFORMIROWATX O DEJSTWII USE^ENIQ.
uSE^ENIE WMESTO PRODOLVENIQ PROISHODIT,KOGDA ISPOLXZUETSQ GORIZONTALXNAQ PROKRUT-
KA,I,WOZMOVNO,WO WSEH OKNAH,NE ZANIMA@]IH POLNU@ [IRINU FREJMA (SM.gLAWA 16
[oKNA],S.141 ).wY MOVETE WKL@^ITX USE^ENIE DLQ KONKRETNOGO BUFERA,USTANOWIW W NEM
PEREMENNU@ truncate-lines NE RAWNOJ nil.(sM.rAZDEL 31.2 [pEREMENNYE],S.343.) iZ-
MENENIE ZNA^ENIQ truncate-lines DELAET EGO LOKALXNYM DLQ TEKU]EGO BUFERA;DO\TOGO
MOMENTA DEJSTWUET ZNA^ENIE PO UMOL^ANI@.nA^ALXNOE ZNA^ENIE PO UMOL^ANI@ | nil.
sM.rAZDEL 31.2.4 [lOKALXNYE PEREMENNYE],S.350.
sM.rAZDEL 11.7 [pEREMENNYE IZOBRAVENIQ],S.84,O DRUGIH PEREMENNYH,WLIQ@]IH NA
SPOSOB OTOBRAVENIQ TEKSTA.
4.9 iNFORMACIQ O POZICII KURSORA
|TO KOMANDY DLQ POLU^ENIQ INFORMACII O RAZMERE I POZICII ^ASTEJ BUFERA I DLQ
PODS^ETA ^ISLA STROK.
gLAWA 4:oSNOWNYE KOMANDY REDAKTIROWANIQ 41M-x what-page
nAPE^ATATX NOMER STRANICY,NA KOTOROJ NAHODITSQ TO^KA,I NOMER STROKI W
PREDELAH\TOJ STRANICY.
M-x what-line
nAPE^ATATX NOMER STROKI,W KOTOROJ NAHODITSQ TO^KA W BUFERE.
M-x line-number-mode
pEREKL@^ITX REVIM AWTOMATI^ESKOGO OTOBRAVENIQ NOMERA TEKU]EJ STROKI.
M-= nAPE^ATATX KOLI^ESTWO STROK W TEKU]EJ OBLASTI (count-lines-region).sM.gLAWA 8 [pOMETKA],S.63,^TOBY UZNATX,^TO TAKOE OBLASTX.
C-x = nAPE^ATATX KOD ZNAKA POSLE TO^KI,ZNAKOWOE POLOVENIE TO^KI I STOLBEC TO^KI
(what-cursor-position).
eSTX DWE KOMANDY DLQ RABOTY S NOMERAMI STROK.M-x what-line PODS^ITYWAET NOMER
TEKU]EJ STROKI I POKAZYWAET EGO W\HO-OBLASTI.~TOBY PEREJTI K STROKE S ZADANNYM NOME-
ROM,ISPOLXZUJTE M-x goto-line;ONA SPROSIT U WAS NOMER.nOMERA STROK OTS^ITYWA@TSQ
OT EDINICY S NA^ALA BUFERA.
wY TAKVE MOVETE WIDETX NOMER TEKU]EJ STROKI W STROKE REVIMA;sM.rAZDEL 1.3 [sTRO-
KA REVIMA],S.25.eSLI WY SUZILI BUFER,TO NOMER STROKI W STROKE REVIMA OTS^ITYWAETSQ
OTNOSITELXNO DOSTUPNOJ ^ASTI (SM.rAZDEL 30.8 [sUVENIE],S.335).
w PROTIWOPOLOVNOSTX\TOMU,what-page PODS^ITYWAET NOMER STROKI I OTNOSITELXNO
SUVENNOJ OBLASTI,I OTNOSITELXNO WSEGO BUFERA I POKAZYWAET OBA ^ISLA.sM.rAZDEL 21.4
[sTRANICY],S.184.
pO\TOMU POWODU MY MOGLI BY UPOMQNUTX m-= (count-lines-region),KOTORAQ PE^ATAET
^ISLO STROK W OBLASTI (SM.gLAWA 8 [pOMETKA],S.63).sM.rAZDEL 21.4 [sTRANICY],S.184,
DLQ INFORMACII O KOMANDE C-x l,KOTORAQ S^ITAET STROKI NA TEKU]EJ STRANICE.
kOMANDA s-H = (what-cursor-position) MOVET BYTX ISPOLXZOWANA DLQ UZNAWANIQ STOLB-
CA,W KOTOROM NAHODITSQ KURSOR,A TAKVE DRUGOJ RAZNOOBRAZNOJ INFORMACII O TO^KE.oNA
PE^ATAET W\HO-OBLASTI STROKU,KOTORAQ WYGLQDIT SLEDU@]IM OBRAZOM:
Char:c (0143,99,0x63) point=24781 of 31832(78%) column 52
(nA SAMOM DELE,\TO REZULXTAT,POLU^ENNYJ,KOGDA TO^KA BYLA PERED SLOWOM`column'W
SAMOM PRIMERE.)
~ETYRE WELI^INY POSLE`Char:'OPISYWA@T ZNAK,SLEDU@]IJ ZA TO^KOJ;PERWOE POKA-
ZYWAET EGO,A OSTALXNYE DA@T EGO WOSXMIRI^NYJ,DESQTI^NYJ I [ESTNADCATIRI^NYJ KOD.
dLQ MNOGOBAJTNOGO NE-ASCII-ZNAKA POSLE\TIH ^ISEL SLEDUET`ext'I [ESTNADCATIRI^NOE
PREDSTAWLENIE W SISTEME KODIROWANIQ DANNOGO BUFERA,ESLI\TA SISTEMA KODIROWANIQ BEZ-
OPASNO MOVET PREDSTAWITX\TOT ZNAK W ODNOM BAJTE (SM.rAZDEL 18.7 [sISTEMY KODIROWA-
NIQ],S.165 ).eSLI KOD ZNAKA BOLX[E ODNOGO BAJTA,Emacs POKAZYWAET`ext...'.
pOSLE`point='SLEDUET POZICIQ TO^KI,WYRAVENNAQ ^EREZ KOLI^ESTWO ZNAKOW.nA^ALU
BUFERA PRISWAIWAETSQ POZICIQ 1,SLEDU@]EMU ZNAKU 2 I TAK DALEE.sLEDU@]EE,BOLX[EE
^ISLO OZNA^AET OB]EE ^ISLO ZNAKOW W BUFERE.pOTOM W KRUGLYH SKOBKAH NAHODITSQ POZICIQ,
WYRAVENNAQ KAK PROCENT OT OB]EGO RAZMERA.
pOSLE`column'PI[ETSQ GORIZONTALXNAQ POZICIQ TO^KI,W STOLBCAH OT LEWOGO KRAQ OKNA.
eSLI BUFER BYL SUVEN,I NEKOTOROE KOLI^ESTWO TEKSTA W NA^ALE I W KONCE WREMENNO
NEDOSTUPNO,TO s-H = PE^ATAET DOPOLNITELXNYJ TEKST,OPISYWA@]IJ TEKU]IE GRANICY
DOSTUPA.nAPRIMER,KOMANDA MOVET POKAZATX TAKOE:
Char:C (0103,67,0x43) point=252 of 889(28%) <231 - 599> column 0
GDE DWA DOBAWLENNYH ^ISLA DA@T NAIMENX[U@ I NAIBOLX[U@ DOPUSTIMYE DLQ TO^KI POZI-
CII ZNAKOW.dOSTUPNYMI QWLQ@TSQ ZNAKI MEVDU DWUMQ\TIMI POZICIQMI.sM.rAZDEL 30.8
[sUVENIE],S.335.
42 rUKOWODSTWO PO GNU EmacseSLI TO^KA NAHODITSQ W KONCE BUFERA (ILI W KONCE WIDIMOJ ^ASTI),W WYWODE s-H = NE
OPISYWAETSQ ZNAK,STOQ]IJ POSLE TO^KI.wYWOD MOVET WYGLQDETX TAK:
point=26957 of 26956(100%) column 0
C-u C-x = POKAZYWAET WMESTO KOORDINAT I STOLBCA DOPOLNITELXNU@ INFORMACI@ O ZNA-
KE:IMQ NABORA ZNAKOW I KODY DANNOGO ZNAKA W\TOM NABORE;ASCII-ZNAKI IDENTIFICIRU@TSQ
KAK PRINADLEVA]IE NABORU ZNAKOW ASCII.kROME TOGO,POSLE`ext'POKAZYWAETSQ POLNYJ
KOD ZNAKA,DAVE ESLI ON ZANIMAET BOLX[E ODNOGO BAJTA.wOT PRIMER DLQ ZNAKA A S AKCEN-
TOM GRAW IZ Latin-1,W BUFERE S SISTEMOJ KODIROWANIQ iso-2022-7bit
1
:
Char:
пЂ’
A (04300,2240,0x8c0,ext ESC,A @) (latin-iso8859-1 64)
4.10 ~ISLOWYE ARGUMENTY
w MATEMATIKE I KOMPX@TERNOJ PRAKTIKE SLOWO ARGUMENT OZNA^AET\DANNYE,PREDOSTAW-
LQEMYE FUNKCII ILI OPERACII."wY MOVETE PEREDATX L@BOJ KOMANDE Emacs ^ISLOWOJ
ARGUMENT (TAKVE NAZYWAEMYJ PREFIKSNYM ARGUMENTOM).nEKOTORYE KOMANDY INTERPRETI-
RU@T ARGUMENT KAK S^ET^IK POWTORENIJ.nAPRIMER,KOMANDA C-f S ARGUMENTOM,RAWNYM
DESQTI,PEREDWIGAET WPERED NA DESQTX ZNAKOW,A NE NA ODIN.w\TIH KOMANDAH OTSUTSTWIE
ARGUMENTA\KWIWALENTNO ARGUMENTU,RAWNOMU EDINICE.oTRICATELXNYE ARGUMENTY GOWO-
RQT BOLX[INSTWU TAKIH KOMAND,^TO NADO DWIGATXSQ ILI DEJSTWOWATX W PROTIWOPOLOVNOM
NAPRAWLENII.
eSLI NA WA[EJ KLAWIATURE ESTX KLAWI[A
hMETAi,PROSTEJ[IJ SPOSOB USTANOWITX ^ISLO-
WOJ ARGUMENT |NABRATX CIFRY I/ILI ZNAK MINUSA,PRIVAW KLAWI[U META.nAPRIMER,
M-5 C-n
PEREDWINULA BY NA PQTX STROK WNIZ.zNAKI Meta-1,Meta-2,I TAK DALEE,A TAKVE Meta-
DELA@T\TO,TAK KAK\TO KL@^I,PRIWQZANNYE K KOMANDAM (digit-argument I negative-
argument),KOTORYE OPREDELENY KAK PEREDA@]IE ARGUMENT W SLEDU@]U@ KOMANDU.cIFRY
I - S MODIFIKATOROM Control ILI Control I Meta TAKVE ZADA@T ^ISLOWOJ ARGUMENT.
dRUGOJ SPOSOB ZADATX ARGUMENT |\TO ISPOLXZOWATX KOMANDU C-u (universal-argument),
ZA KOTOROJ SLEDU@T CIFRY ARGUMENTA.s POMO]X@ C-u WY MOVETE NABRATX CIFRY ARGU-
MENTA,NE UDERVIWAQ KLAWI[I-MODIFIKATORY;C-u RABOTAET NA WSEH TERMINALAH.~TOBY
NABRATX OTRICATELXNYJ ARGUMENT,WWEDITE POSLE C-u ZNAK MINUS.pROSTO ZNAK MINUSA BEZ
CIFR OBY^NO OBOZNA^AET пЂЂ1.
C-u,ZA KOTOROJ SLEDUET ZNAK,NE QWLQ@]IJSQ NI CIFROJ,NI ZNAKOM MINUS,IMEET SPE-
CIALXNYJ SMYSL,\UMNOVENIE NA ^ETYRE".oNA UMNOVAET ARGUMENT POSLEDU@]EJ KOMANDY
NA ^ETYRE.dWE POSLEDOWATELXNYE C-u UMNOVA@T EGO NA [ESTNADCATX.tAKIM OBRAZOM,C-u
C-u C-f PEREDWIGAET WPERED NA [ESTNADCATX ZNAKOW.|TO UDOBNYJ SPOSOB PEREDWIGATXSQ
WPERED\BYSTRO",TAK KAK ON PEREDWIGAET WPERED PRIMERNO NA 1/5 WSEH STROK,UME]A@]IH-
SQ NA\KRANE OBY^NOGO RAZMERA.dRUGIE POLEZNYE SO^ETANIQ |\TO C-u C-n,C-u C-u C-n
(DWIGAET WNIZ NA BOLX[OJ KUSOK\KRANA),C-u C-u C-o (SOZDAET\MNOGO"PUSTYH STROK) I C-u
C-k (UNI^TOVAET ^ETYRE STROKI).
nEKOTORYM KOMANDAM WAVNO TOLXKO PRISUTSTWIE ILI OTSUTSTWIE ARGUMENTA,NO NE EGO
ZNA^ENIE.nAPRIMER,KOMANDA M-q (fill-paragraph) BEZ ARGUMENTA ZAPOLNQET TEKST,A S
ARGUMENTOM WDOBAWOK WYRAWNIWAET TEKST PO PRAWOJ GRANICE.(sM.rAZDEL 21.5 [zAPOLNE-
NIE],S.185,DLQ BOLEE PODROBNOJ INFORMACII O M-q).pROSTO C-u DAET UDOBNYJ SPOSOB
PREDOSTAWLENIQ ARGUMENTOW DLQ TAKIH KOMAND.
nEKOTORYE KOMANDY ISPOLXZU@T ARGUMENT W KA^ESTWE S^ET^IKA POWTORENIJ,NO IH DEJ-
STWIQ S ARGUMENTOM I BEZ NEGO IME@T NEKOTORYE SPECIFI^ESKIE ^ERTY.nAPRIMER,KOMANDA
C-k (kill-line) S ARGUMENTOM n UNI^TOVAET n STROK,WKL@^AQ OGRANI^IWA@]IE IH ZNAKI1
nA TERMINALAH,KOTORYE PODDERVIWA@T Latin-1,ZNAK POSLE`Char:'OTOBRAVAETSQ KAK NASTOQ]IJ GLIF
DLQ A S AKCENTOM GRAW.
gLAWA 4:oSNOWNYE KOMANDY REDAKTIROWANIQ 43NOWOJ STROKI.nO C-k BEZ ARGUMENTA DEJSTWUET PO-DRUGOMU:ONA UNI^TOVAET TEKST WPLOTX
DO PEREWODA STROKI,ILI,ESLI TO^KA STOIT KAK RAZ W KONCE STROKI,UNI^TOVAET PEREWOD
STROKI.tAKIM OBRAZOM,DWE KOMANDY C-k BEZ ARGUMENTA MOGUT UNI^TOVITX NEPUSTU@
STROKU,ANALOGI^NYE REZULXTATY MOVNO POLU^ITX,NABRAW KOMANDU C-k S ARGUMENTOM,RAW-
NYM EDINICE.(sM.rAZDEL 9.1 [uNI^TOVENIE],S.69,DLQ BOLEE PODROBNOJ INFORMACII O
C-k.)
nESKOLXKO KOMAND TRAKTU@T PROSTU@ C-u NE TAK,KAK OBYKNOWENNYJ ARGUMENT.nEKOTO-
RYE DRUGIE KOMANDY MOGUT RAZLI^ATX ARGUMENT W WIDE PROSTO ZNAKA MINUS I ARGUMENT пЂЂ1.
|TI NEOBY^NYE SLU^AI BUDUT OPISANY,KOGDA PRIDET ^ERED\TIH KOMAND;ONI WOZNIKA@T
WSEGDA PO PRI^INAM UDOBSTWA ISPOLXZOWANIQ OTDELXNYH KOMAND.
wY MOVETE ISPOLXZOWATX ^ISLOWOJ ARGUMENT DLQ WSTAWKI NESKOLXKIH KOPIJ ODNOGO ZNA-
KA.|TO RABOTAET PRQMO,ESLI TOLXKO ZNAK | NE CIFRA;NAPRIMER,C-u 6 4 a WSTAWLQET
64 KOPII ZNAKA`a'.nO\TO NE RABOTAET DLQ WSTAWKI CIFR;C-u 6 4 1 ZADAET ARGUMENT 641,
A NE WSTAWLQET ^TO-LIBO.~TOBY OTDELITX CIFRU OT ARGUMENTA,NABERITE E]E ODIN C-u;
NAPRIMER,C-u 6 4 C-u 1 NA SAMOM DELE WSTAWLQET 64 KOPII ZNAKA`1'.
mY ISPOLXZUEM TERMIN\PREFIKSNYJ ARGUMENT",KAK I\^ISLOWOJ ARGUMENT",^TOBY POD-
^ERKNUTX,^TO WY NABIRAETE\TI ARGUMENTY PERED KOMANDOJ,I ^TOBY OTLI^ITX\TI ARGU-
MENTY OT ARGUMENTOW MINIBUFERA,KOTORYE PI[UTSQ POSLE KOMANDY.
4.11 pOWTORENIE KOMANDY
kOMANDA C-x z (repeat) PREDOSTAWLQET E]E ODIN SPOSOB POWTORITX KOMANDU Emacs
NESKOLXKO RAZ.|TA KOMANDA POWTORQET PREDYDU]U@ KOMANDU Emacs,KAKAQ BY ONA NI
BYLA.pRI POWTORENII KOMANDA ISPOLXZUET TE VE ARGUMENTY,KAKIE U NEE BYLI RANX[E;
ONA NE S^ITYWAET NOWYE ARGUMENTY KAVDYJ RAZ.
~TOBY POWTORITX KOMANDU NESKOLXKO RAZ,NAPE^ATAJTE E]E ZNAKI z:KAVDYJ ZNAK z
POWTORIT\TU KOMANDU E]E ODIN RAZ.pOWTORENIE ZAKAN^IWAETSQ,KOGDA WY WWODITE ZNAK,
OTLI^NYJ OT z,ILI NAVIMAETE KNOPKU MY[I.
pREDPOLOVIM NAPRIMER,^TO WY NAPE^ATALI C-u 2 0 C-d,^TOBY UDALITX 20 ZNAKOW.wY
MOVETE POWTORITX\TU KOMANDU (WMESTE S EE ARGUMENTOM) E]E TRI RAZA,^TOBY UDALITX W
OB]EJ SLOVNOSTI 80 ZNAKOW,NAPE^ATAW C-x z z z.pERWYJ C-x z POWTORQET\TU KOMANDU
ODIN RAZ,A KAVDYJ POSLEDU@]IJ z POWTORQET E]E RAZ.
44 rUKOWODSTWO PO GNU Emacs
gLAWA 5:mINIBUFER 455 mINIBUFER
mINIBUFER ISPOLXZUETSQ KOMANDAMI Emacs DLQ ^TENIQ BOLEE SLOVNYH,^EM PROSTOE
^ISLO,ARGUMENTOW.aRGUMENTAMI MINIBUFERA MOGUT BYTX IMENA FAJLOW,IMENA BUFEROW,
IMENA FUNKCIJ lISPA,IMENA KOMAND Emacs I MNOGO DRUGIH WE]EJ W ZAWISIMOSTI OT S^I-
TYWA@]IH ARGUMENT KOMAND.dLQ REDAKTIROWANIQ ARGUMENTOW W MINIBUFERE MOGUT BYTX
ISPOLXZOWANY OBY^NYE KOMANDY REDAKTIROWANIQ Emacs.
kOGDA WY ISPOLXZUETE MINIBUFER,ON POQWLQETSQ W\HO-OBLASTI,I TUDA PEREDWIGAETSQ
KURSOR TERMINALA.nA^ALO STROKI MINIBUFERA POKAZYWAET PODSKAZKU,KOTORAQ GOWORIT,
KAKOJ WWOD WY DOLVNY DAWATX,I KAK ON BUDET PRIMENEN.~ASTO PODSKAZKA PROISHODIT OT
IMENI KOMANDY,DLQ KOTOROJ NUVEN\TOT ARGUMENT.pODSKAZKA OBY^NO KON^AETSQ DWOETO-
^IEM.
iNOGDA W KRUGLYH SKOBKAH POSLE DWOETO^IQ POQWLQETSQ ARGUMENT PO UMOL^ANI@;ON TO-
VE QWLQETSQ ^ASTX@ PODSKAZKI.zNA^ENIE PO UMOL^ANI@ BUDET ISPOLXZOWANO KAK ZNA^ENIE
ARGUMENTA,ESLI WY WWODITE PUSTOJ ARGUMENT (NAPRIMER,PROSTO NABERETE hRETi).k PRIME-
RU,KOMANDY,S^ITYWA@]IE IMENA BUFEROW,WSEGDA POKAZYWA@T ZNA^ENIE,PRINIMAEMOE PO
UMOL^ANI@;ONO QWLQETSQ IMENEM BUFERA,KOTORYJ BUDET ISPOLXZOWAN W DALXNEJ[EM,ESLI
WY PROSTO NABERETE h RETi.
pROSTEJ[IJ SPOSOB DATX ARGUMENT MINIBUFERU | NABRATX VELAEMYJ TEKST I ZAWER-
[ITX EGO
h RETi,KLAWI[EJ DLQ WYHODA IZ MINIBUFERA.wY MOVETE OTMENITX KOMANDU,
KOTORAQ ZAPRA[IWAET ARGUMENT,I WYJTI IZ MINIBUFERA,NABRAW C-g.
mINIBUFER ISPOLXZUET PROSTRANSTWO\KRANA,OTWEDENNOE POD\HO-OBLASTX,NO\TO MOVET
PROTIWORE^ITX DRUGIM SPOSOBAM ISPOLXZOWANIQ\HO-OBLASTI W Emacs.Emacs OBRABATYWAET
TAKIE KONFLIKTY SLEDU@]IM OBRAZOM:
пЂЏ eSLI KAKAQ-TO KOMANDA POLU^AET O[IBKU,POKA WY NAHODITESX W MINIBUFERE,TO\TO NE
OTMENQET MINIBUFER.oDNAKO,\HO-OBLASTX NUVNA DLQ SOOB]ENIQ OB O[IBKE,I PO\TOMU
SAM MINIBUFER PRQ^ETSQ NA WREMQ.oN WOZWRA]AETSQ ^EREZ NESKOLXKO SEKUND ILI SRAZU
VE,KAK TOLXKO WY NABERETE ^TO-NIBUDX.
пЂЏ eSLI W MINIBUFERE WY ISPOLXZUETE KOMANDU,^XEJ CELX@ QWLQETSQ PE^ATX SOOB]ENIQ
W\HO-OBLASTI,TAKU@ KAK C-x =,TO SOOB]ENIE OTOBRAVAETSQ KAK OBY^NO,A MINIBUFER
PRQ^ETSQ NA WREMQ.oN WOZWRA]AETSQ ^EREZ NESKOLXKO SEKUND,ILI KAK TOLXKO WY
NABERETE ^TO-TO E]E.
пЂЏ kOGDA ISPOLXZUETSQ MINIBUFER,\HO NABIRAEMYH ZNAKOW NE PROIZWODITSQ.
5.1 mINIBUFER DLQ IMEN FAJLOW
iNOGDA MINIBUFER POQWLQETSQ UVE S TEKSTOM.nAPRIMER,KOGDA WAM PREDLAGAETSQ ZA-
DATX IMQ FAJLA,MINIBUFER POQWLQETSQ S SODERVA]IMSQ W NEM KATALOGOM,ZADANNYM PO
UMOL^ANI@,KOTORYJ OKAN^IWAETSQ KOSOJ ^ERTOJ.|TO DELAETSQ,^TOBY PROINFORMIROWATX
WAS O TOM,W KAKOM KATALOGE BUDET NAHODITXSQ FAJL,ESLI WY NE ZADADITE KATALOG.nAPRI-
MER,MINIBUFER MOVET NA^INATXSQ TAK:
Find File:/u2/emacs/src/
GDE`Find File:'SLUVIT PODSKAZKOJ.nAPE^ATAW buffer.c,WY ZADAETE FAJL S
IMENEM`/u2/emacs/buffer.c'.~TOBY NAJTI FAJLY W SOSEDNIH KATALOGAH,ISPOLX-
ZUETSQ..;TAKIM OBRAZOM,ESLI WY NABERETE../lisp/simple.el,TO POLU^ITE FAJL
`/u2/emacs/lisp/simple.el'.iLI WY MOVETE UNI^TOVITX NENUVNOE WAM IMQ KATALOGA S
POMO]X@ M-h DELi (SM.rAZDEL 21.1 [sLOWA],S.181).
eSLI WAM NE NUVNO NI^EGO IZ KATALOGA PO UMOL^ANI@,WY MOVETE UNI^TOVITX EGO S
POMO]X@ C-a C-k.nO W\TOM NET NEOBHODIMOSTI;WY MOVETE PROSTO PROIGNORIROWATX EGO.
wSTAWXTE POSLE KATALOGA PO UMOL^ANI@ ABSOL@TNOE IMQ FAJLA,NA^INA@]EESQ S KOSOJ
^ERTY ILI TILXDY.nAPRIMER,^TOBY ZADATX FAJL`/etc/termcap',PROSTO WSTAWXTE\TO
IMQ,PRI\TOM WY POLU^ITE W MINIBUFERE TAKU@ STROKU:
46 rUKOWODSTWO PO GNU EmacsFind File:/u2/emacs/src//etc/termcap
GNU Emacs PRIDAET DWOJNOJ KOSOJ ^ERTE OSOBOE NAZNA^ENIE (OBY^NO NET SMYSLA PISATX
DWE KOSYE ^ERTY PODRQD):ONI OZNA^A@T\PROPUSTITX WSE PERED WTOROJ KOSOJ ^ERTOJ W
PARE".tAKIM OBRAZOM,`/u2/emacs/src/'W PREDYDU]EM PRIMERE BUDET PROIGNORIROWANO,I
WY POLU^ITE FAJL`/etc/termcap'.
eSLI WY USTANOWITE insert-default-directory RAWNOJ nil,KATALOG PO UMOL^ANI@ NE
POQWLQETSQ W MINIBUFERE.tAKIM OBRAZOM,MINIBUFER POQWLQETSQ PUSTYM.nO NABIRAE-
MOE WAMI IMQ,ESLI ONO OTNOSITELXNO,PO-PREVNEMU INTERPRETIRUETSQ S U^ETOM TOGO VE
KATALOGA PO UMOL^ANI@.
5.2 rEDAKTIROWANIE W MINIBUFERE
mINIBUFER |\TO BUFER Emacs (HOTQ I SWOEOBRAZNYJ),I OBY^NYE KOMANDY Emacs
GODQTSQ DLQ REDAKTIROWANIQ TEKSTA WWODIMYH WAMI ARGUMENTOW.
tAK KAK hRETi W MINIBUFERE OPREDELEN DLQ WYHODA,WY NE MOVETE ISPOLXZOWATX EGO DLQ
WSTAWKI OGRANI^ITELQ NOWOJ STROKI W MINIBUFER.~TOBY WSTAWITX PEREWOD STROKI,WWEDITE
C-o ILI C-q C-j.(nAPOMNIM,^TO OGRANI^ITELX NOWOJ STROKI |\TO NA SAMOM DELE ZNAK
control-J.)
mINIBUFER IMEET SWOE SOBSTWENNOE OKNO,KOTOROE WSEGDA PRISUTSTWUET NA\KRANE,NO
DEJSTWUET TAK,KAK ESLI BY EGO NE BYLO,KOGDA MINIBUFER NE ISPOLXZUETSQ.kOGDA VE
MINIBUFER ISPOLXZUETSQ,EGO NI^EM NE OTLI^AETSQ OT WSEH OSTALXNYH OKON;WY MOVETE
PEREJTI W DRUGOE OKNO S POMO]X@ C-x o,OTREDAKTIROWATX TEKST W DRUGIH OKNAH I MO-
VET BYTX DAVE OBRATITXSQ K NESKOLXKIM FAJLAM PERED WOZWRA]ENIEM W MINIBUFER DLQ
PREDSTAWLENIQ ARGUMENTA.wY MOVETE UNI^TOVITX TEKST W DRUGOM OKNE,WERNUTXSQ W OKNO
MINIBUFERA I ZATEM WOSSTANOWITX\TOT TEKST,^TOBY ISPOLXZOWATX EGO W ARGUMENTE.sM.gLAWA 16 [oKNA],S.141.
oDNAKO SU]ESTWU@T NEKOTORYE OGRANI^ENIQ NA ISPOLXZOWANIE OKNA MINIBUFERA.wY
NE MOVETE PEREKL@^ITX W NEM BUFERY | MINIBUFER I EGO OKNO SWQZANY WMESTE.tO^NO
TAKVE,WY NE MOVETE PODELITX ILI UNI^TOVITX OKNO MINIBUFERA.nO WY MOVETE SDELATX
EGO WY[E OBY^NYM SPOSOBOM S POMO]X@ C-x ^.eSLI WY WKL@^ITE REVIM Resize-MinibuпЂ‹er,
TO OKNO MINIBUFERA PO NEOBHODIMOSTI UWELI^IWAETSQ WERTIKALXNO,^TOBY WMESTITX TEKST,
KOTORYJ WY POMESTILI W MINIBUFER.iSPOLXZUJTE M-x resize-minibuffer-mode,^TOBY
WKL@^ITX ILI WYKL@^ITX\TOT WTOROSTEPENNYJ REVIM (SM.rAZDEL 31.1 [wTOROSTEPENNYE
REVIMY],S.341 ).
pROKRUTKA RABOTAET W OKNE MINIBUFERA OSOBYM OBRAZOM.kOGDA WYSOTA MINIBUFE-
RA RAWNA TOLXKO ODNOJ STROKE,I ON SODERVIT DLINNU@ STROKU TEKSTA,KOTORAQ NE UME-
STILASX BY NE\KRANE,S POMO]X@ PROKRUTKI AWTOMATI^ESKI PODDERVIWAETSQ PEREKRYTIE
ODNOJ STROKI PRODOLVENIQ DRUGOJ NA OPREDELENNOE ^ISLO ZNAKOW.pEREMENNAQ minibuffer-
scroll-overlap UKAZYWAET ^ISLO ZNAKOW,NA KOTOROE NUVNO DELATX PEREKRYTIE;PO UMOL-
^ANI@\TO 20.
eSLI WO WREMQ NAHOVDENIQ W MINIBUFERE WY ZAPUSKAETE KOMANDU,KOTORAQ POKAZYWA-
ET W DRUGOM OKNE SPRAWO^NYJ TEKST L@BOGO WIDA,WY MOVETE ISPOLXZOWATX W MINIBUFERE
KOMANDU C-M-v DLQ PROKRUTKI\TOGO OKNA.|TO SWOJSTWO WSTUPAET W DEJSTWIE,ESLI PO-
PYTKA POLU^ITX ZAWER[ENIE W MINIBUFERE DAET WAM SPISOK WOZMOVNYH WARIANTOW.sM.rAZDEL 16.3 [dRUGIE OKNA],S.142.
Emacs OBY^NO ZAPRE]AET BOLX[INSTWO KOMAND,ISPOLXZU@]IH MINIBUFER,KOGDA MINI-
BUFER AKTIWEN.|TO PRAWILO BYLO WWEDENO,^TOBY REKURSIWNYE MINIBUFERY NE ZAPUTYWALI
NA^INA@]IH POLXZOWATELEJ.eSLI WY HOTITE POLU^ITX WOZMOVNOSTX ISPOLXZOWANIQ TAKIH
KOMAND W MINIBUFERE,USTANOWITE PEREMENNU@ enable-recursive-minibuffers NE RAWNOJ
nil.
gLAWA 5:mINIBUFER 475.3 zAWER[ENIE
dLQ WWODA ZNA^ENIJ NEKOTORYH WIDOW ARGUMENTOW WY MOVETE ISPOLXZOWATX ZAWER[ENIE.
zAWER[ENIE OZNA^AET,^TO WY NABIRAETE ^ASTX ARGUMENTA,A Emacs QWNO DOPOLNQET OSTATOK
POLNOSTX@ ILI NASTOLXKO,NASKOLXKO MOVNO OPREDELITX PO NABRANNOJ WAMI ^ASTI.
kOGDA ZAWER[ENIE DOSTUPNO,OPREDELENNYE KLAWI[I |
hTABi,hRETi I hSPCi |PEREPRIWQ-
ZYWA@TSQ DLQ DOPOLNENIQ PREDSTAWLENNOGO W MINIBUFERE TEKSTA DO BOLEE DLINNOJ STROKI,
KOTORU@\TOT TEKST PREDSTAWLQET,PUTEM SOPOSTAWLENIQ EGO S WARIANTAMI ZAWER[ENIQ,KO-
TORYE PREDOSTAWLQ@TSQ KOMANDOJ,S^ITYWA@]EJ\TOT ARGUMENT.zNAK?OPREDELEN KAK
POKAZYWA@]IJ SPISOK WOZMOVNYH ZAWER[ENIJ TOGO,^TO WY UVE WWELI.
nAPRIMER,KOGDA M-x ISPOLXZUET MINIBUFER DLQ ^TENIQ IMENI KOMANDY,ONA PREDOSTAW-
LQET DLQ ZAWER[ENIQ SPISOK WSEH IME@]IHSQ IMEN KOMAND Emacs.kLAWI[I ZAWER[ENIQ
SOPOSTAWLQ@T TEKST W MINIBUFERE SO WSEMI IMENAMI KOMAND,NAHODQT KAKIE-TO DOPOLNI-
TELXNYE ZNAKI IMENI,KOTORYE PODRAZUMEWA@TSQ UVE PREDSTAWLENNYMI W MINIBUFERE,I
DOBAWLQ@T\TI ZNAKI K TEM,KOTORYE WY DALI.pO\TOMU MOVNO NAPE^ATATX M-x ins hSPCi b
h RETi WMESTO M-x insert-buffer hRETi (NAPRIMER).
rEGISTR OBY^NO IMEET ZNA^ENIE PRI ZAWER[ENII,TAK KAK ON IMEET ZNA^ENIE W BOLX-
[INSTWE IMEN,KOTORYE WY MOVETE ZAWER[ITX (IMENA BUFEROW,FAJLOW,KOMAND).tAKIM
OBRAZOM,`fo'NE ZAWER[ITSQ DO`Foo'.kOGDA WY ZAWER[AETE IMQ,W KOTOROM REGISTR NE
IMEET ZNA^ENIQ,TO PRI ZAWER[ENII REGISTR MOVET BYTX PROIGNORIROWAN.
5.3.1 pRIMER ZAWER[ENIQ
zDESX MOVET POMO^X KONKRETNYJ PRIMER.eSLI WY NABERETE M-x au hTABi,hTABi I]ET
WARIANTY (W DANNOM SLU^AE IMENA KOMAND),KOTORYE NA^INA@TSQ S`au'.iH NESKOLXKO,
WKL@^AQ auto-fill-mode I auto-save-mode,NO WSE ONI ODINAKOWO NA^INA@TSQ NA auto-,
PO\TOMU`au'W MINIBUFERE IZMENQETSQ NA`auto-'.
eSLI WY NEMEDLENNO SNOWA NABERETE h TABi,TO POQWQTSQ NESKOLXKO WOZMOVNOSTEJ DLQ
SLEDU@]IH ZNAKOW |\TO MOVET BYTX L@BOJ IZ`cfilrs',| PO\TOMU BOLX[E NI^EGO NE
DOBAWLQETSQ,NO W DRUGOM OKNE POKAZYWAETSQ SPISOK WSEH WOZMOVNYH ZAWER[ENIJ.
eSLI WY PRODOLVAETE NABIRATX f h TABi,TO\TOT hTABi UWIDIT`auto-f'.eDINSTWENNOE
IMQ KOMANDY,KOTOROE TAK NA^INAETSQ,|\TO auto-fill-mode,TAKIM OBRAZOM ZAWER[ENIE
WSTAWLQET EE OSTATOK.tEPERX WY IMEETE W MINIBUFERE`auto-fill-mode'PROSTO POSLE
NABORA au h TABi f hTABi.zAMETXTE,^TO hTABi OBLADAET W MINIBUFERE TAKIM DEJSTWIEM,
POTOMU ^TO KOGDA WOZMOVNO ZAWER[ENIE,ON PRIWQZAN K KOMANDE minibuffer-complete.
5.3.2 kOMANDY ZAWER[ENIQ
zDESX PREDSTAWLEN SPISOK WSEH KOMAND ZAWER[ENIQ,OPREDELENNYH W MINIBUFERE,KOGDA
ZAWER[ENIE DOSTUPNO.
h TABi zAWER[ITX PREDSTAWLENNYJ W MINIBUFERE TEKST NASKOLXKO\TO WOZMOVNO
(minibuffer-complete).
h SPCi zAWER[ITX TEKST W MINIBUFERE,NO NE PRIBAWLQTX BOLEE ODNOGO SLOWA
(minibuffer-complete-word).
h RETi pREDSTAWITX TEKST W MINIBUFERE KAK ARGUMENT,WOZMOVNO SNA^ALA DOPOLNQQ
EGO,KAK OPISANO NIVE (minibuffer-complete-and-exit).
?nAPE^ATATX SPISOK WSEH WOZMOVNYH ZAWER[ENIJ TEKSTA W MINIBUFERE
(minibuffer-list-completions).
h SPCi ZAWER[AET O^ENX POHOVE NA hTABi,NO NIKOGDA NE IDET DALX[E SLEDU@]EGO DEFI-
SA ILI PROBELA.eSLI W MINIBUFERE ESTX`auto-f',I WY NABERETE hSPCi,ON OBNARUVIT,
48 rUKOWODSTWO PO GNU Emacs^TO ZAWER[ENIE |\TO`auto-fill-mode',NO OSTANOWIT ZAWER[ENIE POSLE`fill-'.|TO DAST
`auto-fill-'.e]E ODIN hSPCi W\TOM MESTE ZAWER[AET POLNOSTX@ DO`auto-fill-mode'.hSPCi
W MINIBUFERE,KOGDA WOZMOVNO ZAWER[ENIE,ZAPUSKAET FUNKCI@ minibuffer-complete-
word.
wOT NESKOLXKO KOMAND,KOTORYE WY MOVETE ISPOLXZOWATX DLQ WYBORA ZAWER[ENIQ W OKNE,
POKAZYWA@]EM PERE^ENX WARIANTOW:
Mouse-2 }EL^OK WTOROJ KNOPKOJ MY[I WYBIRAET ODNO IZ ZAWER[ENIJ IZ PERE^NQ WOZ-
MOVNYH WARIANTOW (mouse-choose-completion).oBY^NO WY ISPOLXZUETE\TU
KOMANDU,KOGDA TO^KA NAHODITSQ W MINIBUFERE;NO WY DOLVNY ]ELKNUTX W PE-
RE^NE ZAWER[ENIJ,A NE SAMOM MINIBUFERE.
h PRIORi
M-v nAVATIE hPRIORi (ILI hPAGE-UPi) ILI M-v,KOGDA WY NAHODITESX W MINIBUFE-
RE,WYBIRAET OKNO,POKAZYWA@]EE BUFER S PERE^NEM ZAWER[ENIJ (switch-to-
completions).|TO PROKLADYWAET PUTX K ISPOLXZOWANI@ KOMAND,PERE^ISLEN-
NYH NIVE.(wYBOR\TO OKNA OBY^NYM SPOSOBOM IMEET TOT VE\FFEKT,NO\TOT
SPOSOB UDOBNEE.)
h RETi nAVATIE hRETi W BUFERE S PERE^NEM ZAWER[ENIJ WYBIRAET ZAWER[ENIE,NA KOTO-
ROM ILI POSLE KOTOROGO NAHODITSQ TO^KA (choose-completion).~TOBY ISPOLX-
ZOWATX\TU KOMANDU,WY DOLVNY SNA^ALA PEREKL@^ITXSQ W OKNO,POKAZYWA@]EE
PERE^ENX ZAWER[ENIJ.
h RIGHTi nAVATIE PRAWOJ KURSORNOJ STRELKI hRIGHTi W BUFERE S PERE^NEM ZAWER[ENIJ
PEREDWIGAET TO^KU K SLEDU@]EMU ZAWER[ENI@ (next-completion).
h LEFTi nAVATIE LEWOJ KURSORNOJ STRELKI hLEFTi W BUFERE S PERE^NEM ZAWER[ENIJ PERE-
DWIGAET TO^KU BLIVE K NA^ALU BUFERA,K PREDYDU]EMU ZAWER[ENI@ (previous-
completion).
5.3.3 sTROGOE ZAWER[ENIE
sU]ESTWUET TRI RAZLI^NYH WARIANTA RABOTY h RETi PRI ZAWER[ENII W MINIBUFERE,ZA-
WISQ]IE OT TOGO,KAK BUDET ISPOLXZOWAN ARGUMENT.
пЂЏ sTROGOE ZAWER[ENIE ISPOLXZUETSQ,KOGDA BESSMYSLENNO DAWATX KAKOJ-LIBO DRUGOJ AR-
GUMENT,KROME ODNOJ IZ IZWESTNYH ALXTERNATIW.nAPRIMER,KOGDA C-x k S^ITYWAET
IMQ BUFERA DLQ UNI^TOVENIQ,TO BESSMYSLENNO DAWATX ^TO LIBO,KROME IMENI SU]E-
STWU@]EGO BUFERA.pRI STROGOM ZAWER[ENII h RETi OTKAZYWAETSQ WYHODITX,ESLI TEKST
W MINIBUFERE NE ZAWER[AETSQ S TO^NYM SOOTWETSTWIEM [ABLONU.
пЂЏ oSTOROVNOE ZAWER[ENIE PODOBNO STROGOMU ZAWER[ENI@ ZA ISKL@^ENIEM TOGO,^TO hRETi
WYHODIT,TOLXKO ESLI TEKST UVE SOWPADAL W TO^NOSTI S [ABLONOM,NE NUVDA@]EMSQ
W ZAWER[ENII.eSLI TEKST | NE TO^NOE SOWPADENIE,h RETi NE WYHODIT,NO DELAET ZA-
WER[ENIE TEKSTA.eSLI\TO ZAWER[AET TEKST DO TO^NOGO SOWPADENIQ,TO WTOROJ hRETi
WYJDET.
oSTOROVNOE ZAWER[ENIE ISPOLXZUETSQ DLQ ^TENIQ IMEN FAJLOW,KOTORYE DOLVNY UVE
SU]ESTWOWATX.
пЂЏ sWOBODNOE ZAWER[ENIE ISPOLXZUETSQ,KOGDA L@BAQ STROKA QWLQETSQ PODHODQ]EJ,I SPI-
SOK ALXTERNATIW ZAWER[ENIQ DAETSQ PROSTO DLQ SPRAWKI.nAPRIMER,KOGDA C-x C-f
S^ITYWAET IMQ FAJLA DLQ OBRA]ENIQ,DOPUSTIMO L@BOE IMQ FAJLA,NA SLU^AJ,ES-
LI WY ZAHOTITE SOZDATX NOWYJ FAJL.pRI SWOBODNOM ZAWER[ENII h RETi BERET TEKST W
MINIBUFERE TO^NO KAK ON DAN,NE ZAWER[AQ EGO.
kOMANDY ZAWER[ENIQ POKAZYWA@T W OKNE SPISOK WSEH WOZMOVNYH WARIANTOW WSQKIJ RAZ,
KOGDA WOZMOVNO BOLEE ^EM ODNO ZAWER[ENIE DLQ SLEDU@]EGO ZNAKA.kROME TOGO,NABOR?QW-
NO ZAPRA[IWAET TAKOJ SPISOK.eSLI PERE^ENX ZAWER[ENIJ DLINNYJ,WY MOVETE PROKRUTITX
EGO S POMO]X@ C-M-v (SM.rAZDEL 16.3 [dRUGIE OKNA],S.142).
gLAWA 5:mINIBUFER 495.3.4 pARAMETRY ZAWER[ENIQ
pRI ZAWER[ENII IMEN FAJLOW OPREDELENNYE IMENA OBY^NO IGNORIRU@TSQ.pEREMENNAQ
completion-ignored-extension SODERVIT SPISOK STROK;FAJL,^XE IMQ KON^AETSQ NA L@-
BU@ IZ\TIH STROK,IGNORIRUETSQ KAK WOZMOVNOE ZAWER[ENIE.sTANDARTNOE ZNA^ENIE\TOJ
PEREMENNOJ IMEET NESKOLXKO\LEMENTOW,WKL@^AQ".O",".elc",".dvi"I"~".dEJSTWIE TA-
KOWO:NAPRIMER,`foo'MOVET ZAWER[ITXSQ DO`foo.c',DAVE ESLI`foo.o'TAKVE SU]ESTWUET.
oDNAKO,ESLI WSE WOZMOVNYE ZAWER[ENIQ KON^A@TSQ NA\IGNORIRUEMYE"STROKI,TOGDA ONI
NE IGNORIRU@TSQ.iGNORIRUEMYE RAS[IRENIQ NE OTNOSQTSQ K SPISKAM ZAWER[ENIJ |\TI
SPISKI WSEGDA UPOMINA@T WSE WOZMOVNYE ZAWER[ENIQ.
oBY^NO KOMANDA ZAWER[ENIQ,KOTORAQ OBNARUVIWAET,^TO SLEDU@]IJ ZNAK NELXZQ OPRE-
DELITX,AWTOMATI^ESKI POKAZYWAET SPISOK WSEH WOZMOVNYH ZAWER[ENIJ.eSLI PEREMENNAQ
completion-auto-help USTANOWLENA W ZNA^ENIE nil,\TOGO NE PROISHODIT,I ^TOBY PROSMOT-
RETX WOZMOVNYE WARIANTY,WY DOLVNY NABRATX?.
bIBLIOTEKA complete REALIZOWYWAET BOLEE MO]NYJ WID ZAWER[ENIQ,KOTORYJ MOVET DO-
POLNQTX NESKOLXKO SLOW ODNOWREMENNO.nAPRIMER,ONA MOVET ZAWER[ITX SOKRA]ENIE IMENI
KOMANDY p-b DO print-buffer,POTOMU ^TO NI ODNA DRUGAQ KOMANDA NE NA^INAETSQ S DWUH
SLOW,^XI PERWYE BUKWY |\TO`p'I`b'.~TOBY ISPOLXZOWATX\TU BIBLIOTEKU,NAPI[I-
TE (load"complete") W WA[EM FAJLE`~/.emacs'(SM.rAZDEL 31.7 [fAJL INICIALIZACII],
S.366 ).
rEVIM Icomplete PREDOSTAWLQET POSTOQNNO OBNOWLQ@]U@SQ INFORMACI@,GOWORQ]U@
WAM,KAKIE ZAWER[ENIQ DOSTUPNY DLQ UVE WWEDENNOGO TEKSTA.|TOT WTOROSTEPENNYJ REVIM
WKL@^AETSQ I WYKL@^AETSQ S POMO]X@ KOMANDY M-x icomplete-mode.
5.4 iSTORIQ MINIBUFERA
wSE WWEDENNYE WAMI W MINIBUFER ARGUMENTY SOHRANQ@TSQ W SPISKE ISTORII MINIBU-
FERA,^TOBY WY MOGLI SNOWA ISPOLXZOWATX IH POZVE W NOWOM ARGUMENTE.tEKST STARYH
ARGUMENTOW WSTAWLQETSQ W MINIBUFER OSOBYMI KOMANDAMI.oNI SBRASYWA@T STAROE SODER-
VIMOE MINIBUFERA,TAK ^TO WY MOVETE DUMATX O NIH KAK O KOMANDAH DWIVENIQ PO SPISKU
PREDYDU]IH ARGUMENTOW.
h UPi
M-p pEREME]AETSQ K PREDYDU]EJ STROKE ARGUMENTA,SOHRANENNOJ W ISTORII MINI-
BUFERA (previous-history-element).
h DOWNi
M-n pEREME]AETSQ K SLEDU@]EJ STROKE ARGUMENTA,SOHRANENNOJ W ISTORII MINIBU-
FERA (next-history-element).
M-r regexp hRETi
pEREME]AETSQ K BOLEE RANNEMU ARGUMENTU W ISTORII MINIBUFERA,W KOTOROM
ESTX SOWPADENIE S regexp (previous-matching-history-element).
M-s regexp h RETi
pEREME]AETSQ K BOLEE POZDNEMU ARGUMENTU W ISTORII MINIBUFERA,W KOTOROM
ESTX SOWPADENIE S regexp (next-matching-history-element).
pROSTEJ[IJ SPOSOB POWTORNO ISPOLXZOWATX SOHRANENNYE ARGUMENTY IZ SPISKA ISTORII
|PEREDWIGATXSQ PO SPISKU ISTORII PO ODNOMU ARGUMENTU.nAHODQSX W MINIBUFERE,ISPOLX-
ZUJTE M-p ILI STRELKU WWERH (previous-history-element) ^TOBY\PEREJTI"K PREDYDU]E-
MU WWODU MINIBUFERA,I M-n ILI STRELKU WNIZ (next-history-element) DLQ\PEREHODA"K
SLEDU@]EMU.
pREDYDU]IJ WWOD,KOTORYJ WY IZWLEKAETE IZ ISTORII,POLNOSTX@ ZAME]AET SODERVI-
MOE MINIBUFERA.~TOBY ISPOLXZOWATX EGO W KA^ESTWE ARGUMENTA,WYJDITE IZ MINIBUFERA
50 rUKOWODSTWO PO GNU EmacsKAK OBY^NO,S POMO]X@ hRETi.wY TAKVE MOVETE OTREDAKTIROWATX TEKST PERED ISPOLXZOWA-
NIEM;\TO NE IZMENQET\LEMENT ISTORII,K KOTOROMU WY\PERE[LI",NO WA[ NOWYJ ARGUMENT
WSTAWLQETSQ W KONEC SPISKA ISTORII KAK OTDELXNYJ\LEMENT.
dLQ MNOGIH ARGUMENTOW MINIBUFERA ESTX ZNA^ENIE\PO UMOL^ANI@".w NEKOTORYH SLU-
^AQH KOMANDY ISTORII ZNA@T ZNA^ENIE PO UMOL^ANI@.tOGDA WY MOVETE WSTAWITX\TO
ZNA^ENIE W MINIBUFER W WIDE TEKSTA,ISPOLXZUQ M-n DLQ PEREHODA\W BUDU]EE"PO ISTORII.
mY NADEEMSQ W KONCE KONCOW SDELATX\TO SWOJSTWO DOSTUPNYM WSEGDA,KOGDA U MINIBUFERA
ESTX ZNA^ENIE PO UMOL^ANI@.
tAKVE ESTX KOMANDY DLQ POISKA WPERED ILI NAZAD PO ISTORII;ONI PROIZWODQT POISK
\LEMENTOW ISTORII,KOTORYE SOOTWETSTWU@T ZADAWAEMOMU WAMI W MINIBUFERE REGULQRNOMU
WYRAVENI@.M-r (previous-matching-history-element) PROIZWODIT POISK BOLEE STARYH
\LEMENTOW ISTORII,TOGDA KAK M-s (next-matching-history-element) PROIZWODIT POISK
BOLEE NOWYH\LEMENTOW.pO OSOBOMU RAZRE[ENI@\TI KOMANDY MOGUT ISPOLXZOWATX MINIBU-
FER DLQ S^ITYWANIQ ARGUMENTOW,HOTQ WY UVE NAHODITESX W MINIBUFERE,KOGDA ZAPUSKAETE
IH.kAK I PRI NARA]IWAEMOM POISKE,ZAGLAWNAQ BUKWA W REGULQRNOM WYRAVENII DELAET
POISK REGISTROZAWISIMYM (SM.rAZDEL 12.6 [pOISK I REGISTR],S.95).
kAVDOE ISPOLXZOWANIE MINIBUFERA ZAPISYWAET WA[ WWOD W SPISOK ISTORII,NO ESTX OT-
DELXNYE SPISKI DLQ RAZLI^NYH WIDOW ARGUMENTOW.nAPRIMER,ESTX SPISOK DLQ IMEN FAJLOW,
ISPOLXZUEMYJ WSEMI KOMANDAMI,S^ITYWA@]IMI IMENA FAJLOW.(u NEGO ESTX OSOBENNOSTX:
\TOT SPISOK ISTORII ZAPISYWAET ABSOL@TNOE IMQ FAJLA,NE BOLX[E I NE MENX[E,DAVE ESLI
WY WWELI EGO INA^E.)
sU]ESTWU@T NESKOLXKO DRUGIH OSOBENNYH SPISKOW ISTORII,WKL@^AQ SPISOK DLQ IMEN
KOMAND,S^ITYWAEMYH KOMANDOJ M-x,SPISOK DLQ IMEN BUFEROW,SPISOK DLQ ARGUMENTOW KO-
MAND WRODE query-replace I SPISOK KOMAND KOMPILQCII,S^ITYWAEMYH KOMANDOJ compile.
i NAKONEC,ESTX SPISOK ISTORII DLQ\RAZNOGO",KOTORYJ ISPOLXZU@T BOLX[INSTWO ARGUMEN-
TOW MINIBUFERA.
pEREMENNAQ history-length ZADAET MAKSIMALXNU@ DLINU SPISKA ISTORII MINIBUFERA;
KAK TOLXKO SPISOK DORASTAET DO\TOJ DLINY,SAMYJ STARYJ\LEMENT UDALQETSQ PRI DOBAW-
LENII NOWOGO.eSLI ZNA^ENIE history-length RAWNO t,TO OGRANI^ENIQ NA DLINU NET,I
\LEMENTY NE UDALQ@TSQ NIKOGDA.
5.5 pOWTOR KOMAND MINIBUFERA
kAVDAQ KOMANDA,KOTORAQ ISPOLXZUET MINIBUFER PO KRAJNEJ MERE ODIN RAZ,ZAPISYWA-
ETSQ W SPECIALXNYJ SPISOK ISTORII WMESTE SO ZNA^ENIEM ARGUMENTOW MINIBUFERA,TAK ^TO
WY MOVETE LEGKO EE POWTORITX.w ^ASTNOSTI,ZAPISYWAETSQ KAVDOE ISPOLXZOWANIE M-x,TAK
KAK M-x ISPOLXZUET MINIBUFER DLQ ^TENIQ IMENI KOMANDY.
C-x h ESCi hESCi
pOWTORNOE WYPOLNENIE POSLEDNEJ KOMANDY MINIBUFERA (repeat-complex-
command).
M-x list-command-history
wYWESTI POLNU@ ISTORI@ WSEH KOMAND,KOTORYE MOVET POWTORITX C-x hESCi
h ESCi,NA^INAQ S BOLEE NOWYH.
C-x
h ESCi hESCi ISPOLXZUETSQ DLQ POWTORNOGO WYPOLNENIQ NEDAWNEJ KOMANDY,ISPOLXZO-
WAW[EJ MINIBUFER.zAPU]ENNAQ BEZ ARGUMENTA,ONA POWTORQET POSLEDN@@ TAKU@ KOMANDU.
~ISLOWOJ ARGUMENT OPREDELQET,KAKU@ KOMANDU POWTORITX;EDINICA OZNA^AET PERWU@ OT
KONCA,A BOLX[IE ^ISLA OPREDELQ@T BOLEE RANNIE KOMANDY.
C-x h ESCi hESCi DEJSTWUET PRI POMO]I PREWRA]ENIQ PREDYDU]EJ KOMANDY W WYRAVENIE
lISPA I POSLEDU@]EGO WHODA W MINIBUFER,INICIALIZIROWANYJ TEKSTOM\TOGO WYRAVENIQ.
eSLI WY NABIRAETE PROSTO hRETi,TO KOMANDA POWTORQETSQ KAK PREVDE.wY MOVETE TAKVE
gLAWA 5:mINIBUFER 51IZMENITX KOMANDU PUTEM REDAKTIROWANIQ LISPOWSKOGO WYRAVENIQ.tO WYRAVENIE,^TO WY W
KONCE KONCOW PREDSTAWITE,I BUDET WYPOLNENO.pOWTORENNAQ KOMANDA DOBAWLQETSQ W NA^ALO
ISTORII KOMAND,ESLI ONA NE IDENTI^NA SAMOJ POSLEDNEJ WYPOLNENNOJ KOMANDE,KOTORAQ
UVE BYLA TAM.
dAVE ESLI WY NE PONIMAETE SINTAKSISA lISPA,WEROQTNEE WSEGO BUDET O^EWIDNO,KAKAQ
KOMANDA OTRAVAETSQ DLQ POWTORENIQ.eSLI WY NE MENQLI TEKST,WY MOVETE BYTX UWERENY,
^TO ON POWTORITSQ TO^NO TAK,KAK PREVDE.
nAHODQSX W MINIBUFERE PO KOMANDE C-x
hESCi hESCi,WY MOVETE ISPOLXZOWATX KOMANDY
ISTORII MINIBUFERA (M-p,M-n,M-r,M-s;SM.rAZDEL 5.4 [iSTORIQ MINIBUFERA],S.49)
DLQ PRODWIVENIQ PO SPISKU SOHRANENNYH POLNOSTX@ KOMAND.pOSLE TOGO,KAK WY NAJDETE
VELAEMU@ PREDYDU]U@ KOMANDU,WY MOVETE KAK OBY^NO OTREDAKTIROWATX EE WYRAVENIE I
ZATEM PREDOSTAWITX EGO SNOWA,NABRAW
h RETi.
pERE^ENX PREDYDU]IH KOMAND,ISPOLXZOWAW[IH MINIBUFER,HRANITSQ KAK LISPOWSKIJ
SPISOK W PEREMENNOJ command-history.kAVDYJ\LEMENT |\TO LISPOWSKOE WYRAVENIE,
KOTOROE OPISYWAET ODNU KOMANDU I EE ARGUMENTY.pROGRAMMY NA lISPE MOGUT POWTORNO
WYPOLNQTX KOMANDY PUTEM PEREDA^I W eval SOOTWETSTWU@]EGO\LEMENTA command-history.
52 rUKOWODSTWO PO GNU Emacs
gLAWA 6:zAPUSK KOMAND PO IMENI 536 zAPUSK KOMAND PO IMENI
kOMANDY Emacs,KOTORYE PRIMENQ@TSQ ^ASTO ILI DOLVNY BYSTRO NABIRATXSQ,PRIWQ-
ZYWA@TSQ K KL@^AM | KOROTKIM POSLEDOWATELXNOSTQM ZNAKOW | DLQ UDOBSTWA ISPOLXZO-
WANIQ.dRUGIE KOMANDY Emacs,NE NUVDA@]IESQ W KRATKOSTI,NE PRIWQZANY K KL@^AM;
^TOBY ZAPUSTITX IH,WY DOLVNY OBRATITXSQ K NIM PO IMENI.
pO SOGLA[ENI@ IMQ KOMANDY SOZDAETSQ IZ ODNOGO ILI BOLEE SLOW,RAZDELENNYH DEFISA-
MI;NAPRIMER,auto-fill-mode ILI manual-entry.iSPOLXZOWANIE ANGLIJSKIH SLOW DELAET
IMENA KOMAND BOLEE LEGKIMI DLQ ZAPOMINANIQ,^EM SOSTAWLENNYE IZ NEPONQTNYH ZNAKOW
KL@^I,DAVE ESLI SLOWA DOLX[E NABIRATX.
~TOBY ZAPUSTITX NA WYPOLNENIE KOMANDU PO IMENI,SNA^ALA NABERITE M-x,ZA NIM IMQ
KOMANDY I ZAKON^ITE NABOROM hRETi.`M-x'ISPOLXZUET MINIBUFER DLQ ^TENIQ IMENI KO-
MANDY.h RETi WYHODIT IZ MINIBUFERA I ZAPUSKAET KOMANDU NA WYPOLNENIE.sTROKA`M-x'
POKAZYWAETSQ W NA^ALE BUFERA KAK PODSKAZKA,^TOBY NAPOMNITX WAM,^TO WY DOLVNY WWESTI
IMQ KOMANDY,KOTORAQ BUDET ZAPU]ENA NA WYPOLNENIE.sM.gLAWA 5 [mINIBUFER],S.45,
DLQ POLNOJ INFORMACII O SWOJSTWAH MINIBUFERA.
pRI WWODE IMENI KOMANDY WY MOVETE ISPOLXZOWATX ZAWER[ENIE.nAPRIMER,KOMANDA
forward-char MOVET BYTX ZAPU]ENA PO IMENI PRI POMO]I
M-x forward-char h RETi
ILI
M-x forw
h TABi c hRETi
zAMETIM,^TO forward-char |\TO TA VE SAMAQ KOMANDA,KOTORU@ WY WYZYWAETE S POMO]X@
KL@^A C-f.l@BAQ KOMANDA Emacs MOVET BYTX WYZWANA PO IMENI S ISPOLXZOWANIEM M-x
NEZAWISIMO OT TOGO,SU]ESTWUET LI SWQZANNYJ S NEJ KL@^.
eSLI WO WREMQ S^ITYWANIQ IMQ KOMANDY WY NABIRAETE C-g,TO WY OTMENQETE KOMANDU
M-x I POKIDAETE MINIBUFER,PO ZAWER[ENII PODNIMAQSX NA WERHNIJ UROWENX.
~TOBY PEREDATX ^ISLOWOJ ARGUMENT KOMANDE,KOTORU@ WY WYZYWAETE S POMO]X@ M-x,
ZADAJTE ^ISLOWOJ ARGUMENT PERED M-x.M-x PEREDAET ARGUMENT KOMANDE,KOTORU@ WYZYWAET.
zNA^ENIE ARGUMENTA POQWLQETSQ W PODSKAZKE W TO WREMQ,KOGDA S^ITYWAETSQ IMQ KOMANDY.
eSLI NABIRAEMAQ WAMI KOMANDA PRIWQZANA K SOBSTWENNOMU KL@^U,Emacs GOWORIT OB
\TOM W\HO-OBLASTI SPUSTQ DWE SEKUNDY POSLE ZAWER[ENIQ KOMANDY (ESLI WY DO\TOGO NI^EGO
NE WWELI).nAPRIMER,ESLI WY NAPE^ATAETE M-x forward-word,WY POLU^ITE SOOB]ENIE,
GOWORQ]EE,^TO\TU VE KOMANDU MOVNO ZAPUSTITX BOLEE PROSTO,WWEDQ M-f.wY MOVETE
OTKL@^ITX\TI SOOB]ENIQ,USTANOWIW suggest-key-bindings W ZNA^ENIE nil.
w\TOM RUKOWODSTWE PRI OPISANII KOMAND,ZAPUSKAEMYH PO IMENI,MY OBY^NO OPUS-
KAEM
h RETi,KOTORYJ NEOBHODIM DLQ OGRANI^ENIQ IMENI.tO ESTX MY ^A]E PI[EM M-x
auto-fill-mode,A NE M-x auto-fill-mode hRETi.mY UPOMINAEM hRETi,TOLXKO KOGDA NEOB-
HODIMO POD^ERKNUTX EGO PRISUTSTWIE,NAPRIMER PRI OPISANII POSLEDOWATELXNOSTI WWODA,
KOTORAQ SODERVIT IMQ KOMANDY I SLEDU@]IE ZA NIM ARGUMENTY.
M-x OPREDELEN NA WYPOLNENIE KOMANDY execute-extended-command,KOTORAQ OTWE^AET ZA
S^ITYWANIE IMENI DRUGOJ KOMANDY I EE ZAPUSK.
54 rUKOWODSTWO PO GNU Emacs
gLAWA 7:sPRAWKA 557 sPRAWKA
Emacs PREDOSTAWLQET [IROKIE WOZMOVNOSTI PREDOSTAWLENIQ SPRAWKI,KOTORYE DOSTUP-
NY ^EREZ ODIN ZNAK,C-h.C-h |\TO PREFIKSNYJ KL@^,KOTORYJ ISPOLXZUETSQ TOLXKO DLQ
KOMAND PE^ATI DOKUMENTACII.zNAKI,KOTORYE WY MOVETE NABRATX POSLE C-h,NAZYWA@T-
SQ PARAMETRAMI SPRAWKI.oDNIM IZ NIH QWLQETSQ C-h;c EGO POMO]X@ WY ZAPRA[IWAETE
INFORMACI@ OB ISPOLXZOWANII C-h.fUNKCIONALXNAQ KLAWI[A hF1i SLUVIT\KWIWALENTOM
C-h.
C-h C-h (help-for-help) PE^ATAET SPISOK WSEH WOZMOVNYH PARAMETROW SPRAWKI S KRAT-
KIM OPISANIEM KAVDOGO IZ NIH.dO NABORA PARAMETRA SPRAWKI WY MOVETE PROLISTATX\TOT
SPISOK S POMO]X@ h SPCi ILI hDELi.
C-h ILI h F1i OZNA^AET\POMO]X"TAKVE I WO MNOGIH DRUGIH KONTEKSTAH.nAPRIMER,W
PROCESSE RABOTY query-replace ONI OPISYWA@T DOSTUPNYE WOZMOVNYE DEJSTWIQ NAD TEKU-
]IM NAJDENNYM SOWPADENIEM.pOSLE PREFIKSNOGO KL@^A ONI WYWODQT PERE^ENX WARIANTOW,
KOTORYE MOGUT SLEDOWATX ZA\TIM PREFIKSNYM KL@^OM.(nEKOTORYE PREFIKSNYE KL@^I
NE PODDERVIWA@T C-h,POTOMU ^TO ONI OPREDELQ@T DLQ NEGO DRUGIE ZNA^ENIQ;NO WSE ONI
PODDERVIWA@T hF1i.)
bOLX[INSTWO SPRAWO^NYH BUFEROW ISPOLXZU@T SPECIALXNYJ OSNOWNOJ REVIM,REVIM
Help,KOTORYJ POZWOLQET WAM UDOBNO DELATX PROKRUTKU S POMO]X@ hSPCi I hDELi.
nIVE PRIWEDEN OBZOR WSEH OPREDELENNYH KOMAND DLQ POLU^ENIQ SPRAWKI.
C-h a regexp h RETi
pOKAZATX SPISOK KOMAND,^XI IMENA SOOTWETSTWU@T REGULQRNOMU WYRAVENI@
regexp (apropos-command).
C-h b pOKAZATX TABLICU WSEH PRIWQZOK KL@^EJ,DEJSTWU@]IH NA DANNYJ MOMENT W
SLEDU@]EM PORQDKE:PRIWQZKI TEKU]IH WTOROSTEPENNYH REVIMOW,PRIWQZKI
OSNOWNOGO REVIMA I GLOBALXNYE PRIWQZKI (describe-bindings).
C-h c KL@^
nAPE^ATATX IMQ KOMANDY,KOTORU@ ZAPUSKAET NA WYPOLNENIE ZADANNYJ KL@^
(describe-key-briefly).zDESX c OZNA^AET`character'(`ZNAK').dLQ POLU^ENIQ
BOLEE PODROBNOJ INFORMACII O KL@^E,ISPOLXZUJTE C-h k.
C-h f FUNKCIQ h RETi
pOKAZATX DOKUMENTACI@ NA LISPOWSKU@ FUNKCI@ S IMENEM FUNKCIQ (describe-
function).tAK KAK KOMANDY QWLQ@TSQ LISPOWSKIMI FUNKCIQMI,WY MOVETE
ISPOLXZOWATX IMQ KOMANDY.
C-h h wYWESTI FAJL`hello',KOTORYJ POKAZYWAET PRIMERY RAZLI^NYH NABOROW ZNA-
KOW.
C-h i zAPUSTITX Info,PROGRAMMU DLQ PROSMOTRA FAJLOW DOKUMENTACII (info).pOL-
NOE RUKOWODSTWO PO Emacs SU]ESTWUET KAK DIALOGOWYJ FAJL W Info.
C-h k KL@^
pOKAZATX IMQ I OPISANIE KOMANDY,KOTORU@ ZAPUSKAET KL@^ (describe-key).
C-h l pOKAZATX OPISANIE POSLEDNIH 100 NABRANNYH WAMI ZNAKOW (view-lossage).
C-h m pOKAZATX OPISANIE TEKU]EGO OSNOWNOGO REVIMA (describe-mode).
C-h n pOKAZATX OPISANIE IZMENENIJ W Emacs,PERWYM SAMOE POSLEDNEE (view-emacs-
news).
C-h p nAJTI PAKET PO KL@^EWOMU SLOWU (finder-by-keyword).
C-h s pOKAZATX TEKU]EE SODERVIMOE SINTAKSI^ESKOJ TABLICY I OB_QSNITX,^TO ONO
OZNA^AET (describe-syntax).sM.rAZDEL 31.6 [sINTAKSIS],S.366.
56 rUKOWODSTWO PO GNU EmacsC-h t wOJTI W INTERAKTIWNYJ SAMOU^ITELX PO Emacs (help-with-tutorial).
C-h v PER hRETi
pOKAZATX OPISANIE LISPOWSKOJ PEREMENNOJ PER (describe-variable).
C-h w KOMANDA hRETi
nAPE^ATATX,KAKIE KL@^I ZAPUSKA@T NA WYPOLNENIE KOMANDU S IMENEM KOMANDA
(where-is).
C-h C KODIROWKA h RETi
wYWESTI OPISANIE SISTEMY KODIROWANIQ S IMENEM KODIROWKA (describe-
coding-system).
C-h C h RETi
oPISATX ISPOLXZUEMU@ W DANNYJ MOMENT SISTEMU KODIROWANIQ.
C-h I METOD hRETi
oPISATX METOD WWODA (describe-input-method).
C-h L QZYKOWAQ-SREDA hRETi
pOKAZATX SWEDENIQ O NABORAH ZNAKOW,SISTEMAH KODIROWANIQ I METODAH WWODA,
ISPOLXZUEMYH W QZYKOWOJ-SREDE (describe-language-environment).
C-h C-c pOKAZATX USLOWIQ KOPIROWANIQ GNU Emacs.
C-h C-d pOKAZATX INFORMACI@ O POLU^ENII NOWYH WERSIJ GNU Emacs.
C-h C-f FUNKCIQ
h RETi
wOJTI W Info I PEREJTI K NODE,OPISYWA@]EJ FUNKCI@ Emacs S IMENEM FUNKCIQ
(Info-goto-emacs-command-node).
C-h C-k KL@^
wOJTI W Info I PEREJTI K NODE,OPISYWA@]EJ ZADANNU@ POSLEDOWATELXNOSTX
KL@^EJ (Info-goto-emacs-key-command-node).
C-h C-p pOKAZATX INFORMACI@ O pROEKTE GNU.
C-h h TABi QZYKOWOJ-SIMWOL hRETi
pOKAZATX DOKUMENTACI@ Info NA QZYKOWOJ-SIMWOL W SOOTWETSTWII S QZYKOM PRO-
GRAMMIROWANIQ,NA KOTOROM WY PI[ITE (info-lookup-symbol).
7.1 oPISANIQ DLQ KL@^EJ
oSNOWNYMI PARAMETRAMI DLQ C-h QWLQ@TSQ C-h c (describe-key-briefly) I C-h k
(describe-key).C-h c KL@^ PE^ATAET W\HO-OBLASTI IMQ KOMANDY,K KOTOROJ PRIWQZAN
KL@^.nAPRIMER,C-h c C-f PE^ATAET`forward-char'.pOSKOLXKU IMENA KOMAND WYBIRA-
@TSQ TAK,^TOBY ONI OPISYWALI DEJSTWIE KOMANDY,\TO UDOBNYJ SPOSOB POLU^ITX O^ENX
KOROTKOE OPISANIE TOGO,^TO DELAET KL@^.
C-h k KL@^ POHOVA NA PREDYDU]U@,NO DAET BOLX[E INFORMACII.oNA POKAZYWAET
STROKU DOKUMENTACII KOMANDY,A TAKVE EE IMQ.|TO SLI[KOM MNOGO DLQ\HO-OBLASTI,
PO\TOMU DLQ POKAZA ISPOLXZUETSQ OKNO.
C-h c I C-h k RABOTA@T DLQ L@BYH WIDOW KL@^EJ,WKL@^AQ FUNKCIONALXNYE KLAWI[I I
SOBYTIQ OT MY[I.
gLAWA 7:sPRAWKA 577.2 sPRAWKA PO IMENI KOMANDY ILI PEREMENNOJ
C-h f (describe-function) ^ITAET IMQ FUNKCII lISPA,ISPOLXZUQ MINIBUFER,ZATEM
POKAZYWAET STROKU DOKUMENTACII\TOJ FUNKCII W OKNE.tAK KAK KOMANDY |\TO LISPOWSKIE
FUNKCII,WY MOVETE POLXZOWATXSQ\TIM DLQ POLU^ENIQ OPISANIQ KOMANDY,IZWESTNOJ PO
IMENI.nAPRIMER,
C-h f auto-fill-mode
hRETi
WYDAET DOKUMENTACI@ DLQ auto-fil-mode.|TO EDINSTWENNYJ SPOSOB UWIDETX DOKUMENTA-
CI@ KOMANDY,KOTORAQ NE PRIWQZANA K KAKOMU-NIBUDX KL@^U (ODNOJ IZ TEH,KOTORYH WY
OBY^NO WYZYWAETE PRI POMO]I M-x).
C-h f TAKVE POLEZNA DLQ LISPOWSKIH FUNKCIJ,KOTORYE WY PLANIRUETE ISPOLXZOWATX
W PROGRAMME NA lISPE.nAPRIMER,ESLI WY PROSTO NAPISALI WYRAVENIE (make-vector
len) I HOTITE BYTX UWERENNYMI W TOM,^TO WY WERNO ISPOLXZOWALI make-vector,NABERITE
C-h f make-vector h RETi.tAK KAK C-h f WOSPRINIMAET IMENA WSEH FUNKCIJ,A NE TOLXKO
IMENA KOMAND,TO WY MOVETE OBNARUVITX,^TO NEKOTORYE IZ WA[IH L@BIMYH SOKRA]ENIJ,
KOTORYE RABOTA@T W M-x,NE RABOTA@T W C-h f.sOKRA]ENIQ MOGUT BYTX UNIKALXNYMI
SREDI IMEN KOMAND I UVE NE BYTX UNIKALXNYMI,KOGDA RASSMATRIWA@TSQ TAKVE I IMENA
DRUGIH FUNKCIJ.
iMQ FUNKCII DLQ C-h f IMEET ZNA^ENIE PO UMOL^ANI@,KOTOROE ISPOLXZUETSQ,ESLI WY
NABERETE
h RETi,OSTAWLQQ MINIBUFER PUSTYM.pO UMOL^ANI@\TO BUDET FUNKCIQ,WYZWANNAQ
SAMYM GLUBOKIM LISPOWSKIM WYRAVENIEM W BUFERE W RAJONE TO^KI,PRI USLOWII,^TO\TO
PRAWILXNOE,OPREDELENNOE IMQ FUNKCII lISPA.nAPRIMER,ESLI TO^KA RASPOLOVENA WSLED ZA
TEKSTOM`(make-vector (car x)',TO SAMYJ GLUBOKIJ SPISOK,SODERVA]IJ TO^KU,\TO TOT,
^TO NA^INAETSQ S`(make-vector';TAKIM OBRAZOM,PO UMOL^ANI@ BUDET OPISANA FUNKCIQ
make-vector.
C-h f ^ASTO POLEZNA PROSTO DLQ PROWERKI PRAWILXNOSTI NAPISANIQ IMENI FUNKCII S
TO^KI ZRENIQ ORFOGRAFII.eSLI C-h f UPOMINAET W PODSKAZKE ZNA^ENIE PO UMOL^ANI@,TO
WY NABRALI IMQ OPREDELENNOJ LISPOWSKOJ FUNKCII.eSLI\TO WSE,^TO WY HOTELI UZNATX,
PROSTO NABERITE C-g,^TOBY OTMENITX KOMANDU C-h f I PRODOLVITX REDAKTIROWANIE.
C-h w KOMANDA hRETi SOOB]AET WAM,KAKIE KL@^I PRIWQZANY K KOMANDE.oNA PE^ATAET
SPISOK KL@^EJ W\HO-OBLASTI.eSLI ONA GOWORIT,^TO KOMANDA NE PRIWQZANA NI K ODNOMU
KL@^U,WY DOLVNY ISPOLXZOWATX DLQ WYZOWA\TOJ KOMANDY M-x.C-h w ZAPUSKAET KOMANDU
where-is.
C-h v (describe-variable) POHOVA NA C-h f,NO OPISYWAET PEREMENNYE lISPA,A NA
FUNKCII.eE ZNA^ENIE PO UMOL^ANI@ |\TO LISPOWSKIJ SIMWOL POBLIZOSTI ILI PERED
TO^KOJ,NO TOLXKO ESLI\TO IMQ IZWESTNOJ LISPOWSKOJ PEREMENNOJ.sM.rAZDEL 31.2 [pERE-
MENNYE],S.343.
7.3 pOISK PO KONTEKSTU
bOLEE SLOVNYJ WID ZAPROSOW |\TO WOPROSY WRODE\kAKIE KOMANDY ISPOLXZU@TSQ DLQ
RABOTY S FAJLAMI?"~TOBY ZADATX TAKOJ WOPROS,NABERITE C-h a file hRETi,KOTORAQ POKA-
VET SPISOK WSEH IMEN KOMAND,KOTORYE SODERVAT`file',TAKIE KAK copy-file,find-file I
TAK DALEE.wMESTE S IMENEM KOMANDY POKAZYWAETSQ KRATKOE OPISANIE TOGO,KAK EE ISPOLX-
ZOWATX,I KAKIE KL@^I EE ZAPUSKA@T.nAPRIMER,WAM SOOB]AT,^TO WY MOVETE ZAPUSTITX
find-file,NABRAW C-x C-f.zDESX A W C-h |\TO SOKRA]ENIE DLQ`Apropos',C-h a ZAPUSKAET
NA WYPOLNENIE FUNKCI@ command-apropos.|TA KOMANDA PROWERQET TOLXKO KOMANDY (IN-
TERAKTIWNYE FUNKCII);ESLI WY ZADADITE PREFIKSNYJ ARGUMENT,ONA PROSMOTRIT TAKVE I
NEINTERAKTIWNYE FUNKCII.
tAK KAK C-h a I]ET TOLXKO FUNKCII,^XI IMENA SODERVAT ZADANNU@ WAMI STROKU,WY
DOLVNY BYTX IZOBRETATELXNY W WYBORE STROK.eSLI WY I]ETE KOMANDY DLQ UNI^TOVENIQ
58 rUKOWODSTWO PO GNU EmacsW OBRATNOM NAPRAWLENII,I C-h a kill-backward hRETi NI^EGO NE POKAZYWAET,NE OT^AIWAJ-
TESX.pOPROBUJTE PROSTO kill,ILI PROSTO backward ILI PROSTO back.bUDXTE NASTOJ^IWY.
pRITWORITESX,^TO WY IGRAETE W Adventure.tAKVE OTMETIM,^TO DLQ BOLX[EJ GIBKOSTI
WY MOVETE ISPOLXZOWATX W KA^ESTWE ARGUMENTA REGULQRNOE WYRAVENIE (SM.rAZDEL 12.5
[rEGULQRNYE WYRAVENIQ],S.91 ).
zDESX PREDSTAWLEN NABOR ARGUMENTOW DLQ PEREDA^I W C-h a,KOTORYJ OHWATYWAET MNO-
VESTWO KLASSOW KOMAND,TAK KAK SU]ESTWU@T STROGIE SOGLA[ENIQ DLQ IMEN STANDARTNYH
KOMAND Emacs.dAWAQ WAM PO^UWSTWOWATX PRINQTYE SOGLA[ENIQ OB IMENOWANII,\TOT NA-
BOR TAKVE DOLVEN SLUVITX WAM POMO]X@ W SOWER[ENSTWOWANII TEHNI^ESKIH PRIEMOW DLQ
PODBORA STROK apropos.
char,line,word,sentence,paragraph,region,page,sexp,list,defun,rect,buпЂ‹er,
frame,window,face,пЂЊle,dir,register,mode,beginning,end,forward,backward,
next,previous,up,down,search,goto,kill,delete,mark,insert,yank,пЂЊll,indent,
case,change,set,what,list,пЂЊnd,view,describe,default.
dLQ POLU^ENIQ PERE^NQ WSEH POLXZOWATELXSKIH PEREMENNYH,KOTORYE SOOTWETSTWU@T RE-
GULQRNOMU WYRAVENI@,ISPOLXZUJTE KOMANDU M-x apropos-variable.|TA KOMANDA POKAZY-
WAET PO UMOL^ANI@ TOLXKO POLXZOWATELXSKIE PEREMENNYE;ESLI WY ZADADITE PREFIKSNYJ
ARGUMENT,ONA PROSMOTRIT WSE PEREMENNYE.
~TOBY PERE^ISLITX WSE LISPOWSKIE SIMWOLY,KOTORYE SODERVAT SOWPADENIE S REGULQR-
NYM WYRAVENIEM,A NE TOLXKO TE,KOTORYE OPREDELENY W KA^ESTWE KOMAND,ISPOLXZUJTE
KOMANDU M-x apropos,A NE C-h a.pO UMOL^ANI@\TA KOMANDA NE PROWERQET PRIWQZKI KL@-
^EJ;ESLI WY HOTITE UZNATX IH,ZADAJTE\TOJ KOMANDE PREFIKSNYJ ARGUMENT.
kOMANDA apropos-documentation POHOVA NA apropos,NO PROIZWODIT POISK SOWPADENIJ
S REGULQRNYM WYRAVENIEM NE TOLXKO W IMENAH SIMWOLOW,NO I W STROKAH OPISANIQ.
kOMANDA apropos-value DEJSTWUET KAK apropos,ZA ISKL@^ENIEM TOGO,^TO I]ET SOW-
PADENIQ S REGULQRNYM WYRAVENIEM W ZNA^ENIQH SIMWOLOW.|TA KOMANDA PO UMOL^ANI@ NE
PROWERQET OPREDELENIQ FUNKCIJ ILI SPISKI SWOJSTW;ZADAJTE EJ ^ISLOWOJ ARGUMENT,ESLI
WY HOTITE PROWERITX I IH.
eSLI PEREMENNAQ apropos-do-all NE RAWNA nil,TO WSE OPISANNYE WY[E KOMANDY WEDUT
SEBQ TAK,KAK-BUDTO IM ZADAN PREFIKSNYJ ARGUMENT.
eSLI WY HOTITE POLU^ITX BOLX[E INFORMACII OB OPREDELENII FUNKCII,O PEREMENNOJ
ILI O SWOJSTWAH SIMWOLA,PERE^ISLENNYH W BUFERE Apropos,WY MOVETE ]ELKNUTX NA NIH
Mouse-2 ILI PEREMESTITXSQ TUDA I NAVATX hRETi.
7.4 pOISK W BIBLIOTEKAH lISPA PO KL@^EWYM SLOWAM
kOMANDA C-h p POZWOLQET WAM PROIZWODITX POISK W STANDARTNYH BIBLIOTEKAH Emacs
Lisp PO TEMATI^ESKIM KL@^EWYM SLOWAM.wOT NEPOLNYJ PERE^ENX KL@^EWYH SLOW,KOTORYE
WY MOVETE ISPOLXZOWATX:
abbrev |UPRAWLENIE SOKRA]ENIQMI,BYSTRYE KLAWI[I,MAKROSY.
bib |PODDERVKA OBRABOT^IKA BIBLIOGRAFIJ bib.
c |PODDERVKA QZYKOW sI I sI++.
calendar |PODDERVKA KALENDARQ I OPERACIJ SO WREMENEM.
comm |KOMMUNIKACII,SETI,UDALENNYJ DOSTUP K FAJLAM.
data |PODDERVKA REDAKTIROWANIQ FAJLOW S DANNYMI.
docs |PODDERVKA DOKUMENTACII Emacs.
emulations |\MULQCIQ DRUGIH REDAKTOROW.
extensions |RAS[IRENIQ QZYKA Emacs Lisp.
faces |PODDERVKA RAZNYH NA^ERTANIJ ([RIFTOW I CWETOW).
frames |PODDERVKA FREJMOW I OKONNYH SISTEM.
games |IGRY,[UTKI I RAZWLE^ENIQ.
gLAWA 7:sPRAWKA 59hardware |PODDERVKA INTERFEJSOW S\KZOTI^ESKOJ APPARATUROJ.
help |PODDERVKA INTERAKTIWNYH SPRAWO^NYH SISTEM.
hypermedia |PODDERVKA DLQ SSYLOK WNUTRI TEKSTA.
i18n |PODDERVKA RAZNYH QZYKOW I ALFAWITOW.
internal |WNUTRENNIJ KOD Emacs,SBORKA,ZNA^ENIQ PO UMOL^ANI@.
languages |SPECIALIZIROWANNYE REVIMY DLQ REDAKTIROWANIQ KODA.
lisp |PODDERVKA ISPOLXZOWANIQ lISPA (WKL@^AQ Emacs Lisp).
local |BIBLIOTEKI,LOKALXNYE DLQ WA[EJ SISTEMY.
maint |SREDSTWA PODDERVKI DLQ GRUPPY RAZRABOT^IKOW Emacs.
mail |REVIMY DLQ RABOTY S\LEKTRONNOJ PO^TOJ.
matching |POISKOWYE PROGRAMMY.
news |PODDERVKA ^TENIQ I OTPRAWKI SETEWYH NOWOSTEJ.
non-text |PODDERVKA DLQ REDAKTIROWANIQ NETEKSTOWYH FAJLOW.
oop |PODDERVKA OB_EKTNO-ORIENTIROWANNOGO PROGRAMMIROWANIQ.
outlines |PROSMOTR IERARHI^ESKOJ STRUKTURY TEKSTA.
processes |PROCESSY,OBOLO^KA,KOMPILQCIQ I UPRAWLENIE ZADA^AMI.
terminals |PODDERVKA RAZNYH TIPOW TERMINALOW.
tex |PODDERVKA DLQ PROGRAMMY KOMPX@TERNOGO NABORA T
E
X.
tools |UTILITY DLQ PROGRAMMIROWANIQ.
unix |INTERFEJSY ILI\MULQTORY WOZMOVNOSTEJ Unix.
vms |PODDERVKA VMS.
wp |OBRABOTKA TEKSTA.
7.5 sPRAWKA O PODDERVKE RAZLI^NYH QZYKOW
dLQ POLU^ENIQ SPRAWKI O PODDERVKE OPREDELENNOJ QZYKOWOJ SREDY ISPOLXZUJTE KOMANDU
C-h L (describe-language-environment).sM.rAZDEL 18.3 [qZYKOWYE SREDY],S.162.|TA
KOMANDA GOWORIT WAM,DLQ KAKIH QZYKOW POLEZNA DANNAQ QZYKOWAQ SREDA,I PERE^ISLQET
NABORY ZNAKOW,SISTEMY KODIROWANIQ I METODY WWODA,KOTORYE ISPOLXZU@TSQ W\TOJ SREDE.
oNA TAKVE POKAZYWAET OBRAZEC TEKSTA DLQ DEMONSTRACII EGO WNE[NEGO WIDA.
kOMANDA C-h h (view-hello-file) OTOBRAVAET FAJL`etc/HELLO',KOTORYJ POKAZYWAET,
KAK SKAZATX\zDRAWSTWUJTE"NA RAZNYH QZYKAH.
kOMANDA C-h I (describe-input-method) OPISYWAET METOD WWODA,LIBO ZADANNYJ QWNO,
LIBO,PO UMOL^ANI@,ISPOLXZUEMYJ W DANNYJ MOMENT.sM.rAZDEL 18.4 [mETODY WWODA],
S.163.
kOMANDA C-h C (describe-coding-system) OPISYWAET SISTEMU KODIROWANIQ,LIBO ZADAN-
NU@ QWNO,LIBO,PO UMOL^ANI@,ISPOLXZUEMYE W DANNYJ MOMENT.sM.rAZDEL 18.7 [sISTEMY
KODIROWANIQ],S.165.
7.6 kOMANDY REVIMA Help
sPRAWO^NYE BUFERY PREDOSTAWLQ@T KOMANDY REVIMA View (SM.rAZDEL 14.10 [fAJLY
rAZNOE],S.132 ) PL@S NESKOLXKO SOBSTWENNYH OSOBYH KOMAND.
h SPCi pROKRU^IWAET WPERED.
h DELi pROKRU^IWAET NAZAD.
h RETi pEREHODIT PO PEREKRESTNOJ SSYLKE W TO^KE.
h TABi pEREME]AET WPERED K SLEDU@]EJ PEREKRESTNOJ SSYLKE.
S-
h TABi pEREME]AET NAZAD K PREDYDU]EJ PEREKRESTNOJ SSYLKE.
Mouse-2 pEREHODIT PO PEREKRESTNOJ SSYLKE,NA KOTOROJ WY ]ELKNULI.
60 rUKOWODSTWO PO GNU EmacskOGDA W OPISANII POQWLQETSQ IMQ KOMANDY (SM.gLAWA 6 [zAPUSK KOMAND PO IMENI],
S.53 ) ILI IMQ PEREMENNOJ (SM.rAZDEL 31.2 [pEREMENNYE],S.343),ONO OBY^NO POKAZYWA-
ETSQ W PARNYH ODINO^NYH KAWY^KAH.wY MOVETE ]ELKNUTX NA IMENI S POMO]X@ Mouse-2
ILI PEREDWINUTX K NEMU TO^KU I NAVATX h RETi,^TOBY PROSMOTRETX DOKUMENTACI@ NA\TU
KOMANDU ILI PEREMENNU@.iSPOLXZUJTE C-c C-b DLQ WOZWRATA.
eSTX UDOBNYE KOMANDY DLQ PEREME]ENIQ TO^KI K PEREKRESTNYM SSYLKAM W TEKSTE SPRAW-
KI.
h TABi (help-next-ref) PEREDWIGAET TO^KU WPERED K SLEDU@]EJ PEREKRESTNOJ SSYLKE.
~TOBY PEREMESTITX TO^KU K PREDYDU]EJ SSYLKE,ISPOLXZUJTE S-hTABi (help-previous-
ref).
7.7 dRUGIE KOMANDY DLQ POLU^ENIQ SPRAWKI
C-h i (info) ZAPUSKAET NA WYPOLNENIE PROGRAMMU Info,KOTORAQ ISPOLXZUETSQ DLQ PRO-
SMOTRA STRUKTURIROWANNYH FAJLOW DOKUMENTACII.wNUTRI Info IMEETSQ POLNOE RUKOWOD-
STWO PO Emacs.w KONCE KONCOW TAM BUDET DOSTUPNA WSQ DOKUMENTACIQ PO SISTEME GNU.
~TOBY ZAPUSTITX SAMOU^ITELX PO ISPOLXZOWANI@ Info,NABERITE h POSLE WHODA W Info.
eSLI WY ZADADITE ^ISLOWOJ ARGUMENT,C-h i ZAPROSIT IMQ FAJLA DOKUMENTACII.tAKIM
OBRAZOM WY SMOVETE PROSMOTRETX FAJL,DLQ KOTOROGO NET WHOVDENIQ W MEN@ Info WERHNEGO
UROWNQ.|TO TAKVE UDOBNO,KOGDA WAM NUVNO POLU^ITX DOKUMENTACI@ BYSTRO,I WY ZNAETE
TO^NOE IMQ\TOGO FAJLA.
sU]ESTWU@T DWE SPECIALXNYE SPRAWO^NYE KOMANDY DLQ POLU^ENIQ DOKUMENTACII PO
Emacs ^EREZ Info.C-h C-f FUNKCIQ h RETi WHODIT W Info I PEREHODIT NEPOSREDSTWENNO K
OPISANI@ FUNKCII Emacs S IMENEM FUNKCIQ.C-h C-k KL@^ WHODIT W Info I PEREHODIT K
OPISANI@ KL@^A.|TI KL@^I ZAPUSKA@T KOMANDY Info-goto-emacs-command-node I Info-
goto-emacs-key-command-node.
pRI REDAKTIROWANII PROGRAMMY,ESLI U WAS ESTX Info-WERSIQ RUKOWODSTWA DLQ\TOGO QZY-
KA PROGRAMMIROWANIQ,WY MOVETE ISPOLXZOWATX KOMANDU C-h C-i DLQ PROSMOTRA OPISANIQ
SIMWOLA (KL@^EWOGO SLOWA,FUNKCII ILI PEREMENNOJ).dETALI RABOTY\TOJ PROGRAMMY
ZAWISQT OT OSNOWNOGO REVIMA.
eSLI PROISHODIT ^TO-TO STRANNOE,I WY NE UWERENY,KAKU@ KOMANDU WY NABRALI,ISPOLX-
ZUJTE C-h l (view-lossage).C-h l PE^ATAET POSLEDNIE 100 NABRANNYH WAMI KOMANDNYH
ZNAKOW.eSLI WY UWIDELI KOMANDY,KOTORYE WAM NE ZNAKOMY,WY MOVETE ISPOLXZOWATX C-h
c,^TOBY OTYSKATX INFORMACI@ O TOM,^TO ONI DELA@T.
Emacs IMEET MNOVESTWO OSNOWNYH REVIMOW,KAVDYJ IZ KOTORYH PEREOPREDELQET
NESKOLXKO KL@^EJ I DELAET NEKOTORYE DRUGIE IZMENENIQ W RABOTE REDAKTORA.C-h m
(describe-mode) PE^ATAET DOKUMENTACI@ O TEKU]EM OSNOWNOM REVIME,W KOTOROJ OBY^NO
OPISANY WSE KOMANDY,IZMENENNYE W\TOM REVIME.
C-h b (describe-bindings) I C-h s (describe-syntax) PREDOSTAWLQ@T DRUGU@ INFOR-
MACI@ O TEKU]EM REVIME Emacs.C-h b POKAZYWAET SPISOK WSEH PRIWQZANNYH KL@^EJ,DEJ-
STWU@]IH W DANNYJ MOMENT;SNA^ALA IDUT LOKALXNYE PRIWQZKI TEKU]IH WTOROSTEPENNYH
REVIMOW,ZA NIMI LOKALXNYE PRIWQZKI TEKU]EGO OSNOWNOGO REVIMA I,NAKONEC,GLOBALX-
NYE PRIWQZKI (SM.rAZDEL 31.4 [pRIWQZKI KL@^EJ],S.356).C-h s POKAZYWAET SODERVIMOE
SINTAKSI^ESKOJ TABLICY S OB_QSNENIEM SINTAKSISA KAVDOGO ZNAKA (SM.rAZDEL 31.6 [sIN-
TAKSIS],S.366 ).
wY MOVETE POLU^ITX PODOBNYJ PERE^ENX DLQ KONKRETNOGO PREFIKSNOGO KL@^A,NABRAW
POSLE NEGO C-h.(eSTX NESKOLXKO PREFIKSNYH KL@^EJ,DLQ KOTORYH\TO NE RABOTAET | ONI
PRIDA@T SWOI PRIWQZKI DLQ C-h.oDIN IZ NIH |\TO hESCi,POTOMU ^TO hESCi C-h NA SAMOM
DELE\KWIWALENTEN C-M-h,KOTORYJ POME^AET OPREDELENIE FUNKCII.)
dRUGIE PARAMETRY C-h POKAZYWA@T RAZNOOBRAZNYE FAJLY S POLEZNOJ INFORMACIEJ.C-h
C-w POKAZYWAET PODROBNOSTI OB OTSUTSTWII GARANTIJ DLQ GNU Emacs.s-h n (view-emacs-
news) POKAZYWAET FAJL`emacs/etc/NEWS',KOTORYJ SODERVIT OPISANIE IZMENENIJ W Emacs,
gLAWA 7:sPRAWKA 61SORTIROWANNOE W HRONOLOGI^ESKOM PORQDKE.C-h F (view-emacs-FAQ) WYWODIT SPISOK ^ASTO
OTWE^AEMYH WOPROSOW O Emacs.C-h t (help-with-tutorial) POKAZYWAET OBU^A@]EE RU-
KOWODSTWO PO Emacs.C-h C-c (describe-copying) POKAZYWAET FAJL`emacs/etc/COPYING',
KOTORYJ OB_QSNQET USLOWIQ,KOTORYE WY DOLVNY WYPOLNITX PRI RASPROSTRANENII KOPIJ
Emacs.C-h C-d (describe-distribution) POKAZYWAET FAJL`emacs/etc/DISTRIB',W KOTO-
ROM RASSKAZYWAETSQ,KAK WY MOVETE ZAKAZATX KOPI@ POSLEDNEJ WERSII Emacs.C-h C-p
(describe-project) WYWODIT OB]U@ INFORMACI@ O pROEKTE GNU.
62 rUKOWODSTWO PO GNU Emacs
gLAWA 8:pOMETKA I OBLASTX 638 pOMETKA I OBLASTX
sU]ESTWUET MNOVESTWO KOMAND Emacs,KOTORYE RABOTA@T S PROIZWOLXNOJ NEPRERYWNOJ
^ASTX@ TEKU]EGO BUFERA.~TOBY ZADATX TEKST,NAD KOTORYM RABOTA@T TAKIE KOMANDY,
WY USTANAWLIWAETE METKU W ODNOM KONCE\TOGO TEKSTA,I PEREDWIGAETE TO^KU W DRUGOJ EGO
KONEC.tEKST,RASPOLOVENNYJ MEVDU TO^KOJ I METKOJ,NAZYWAETSQ OBLASTX@.eSLI WY
ZADEJSTWOWALI REVIM Transient Mark,Emacs WYDELQET OBLASTX CWETOM (SM.rAZDEL 8.2
[Transient Mark],S.64 ).
~TOBY REGULIROWATX GRANICY OBLASTI,WY MOVETE DWIGATX TO^KU ILI METKU.nE IMEET
ZNA^ENIQ,KOTORAQ IZ NIH USTANOWLENA PERWOJ W HRONOLOGI^ESKOM PORQDKE,ILI KAKAQ POQW-
LQETSQ PERWOJ W TEKSTE.kAK TOLXKO METKA USTANOWLENA,ONA OSTAETSQ DO TEH POR,POKA NE
BUDET USTANOWLENA SNOWA W DRUGOM MESTE.kAVDYJ BUFER IMEET SWO@ SOBSTWENNU@ METKU,
TAKIM OBRAZOM,KOGDA WY WOZWRA]AETESX W BUFER,KOTORYJ WYBIRALSQ PREVDE,ON SOHRANQET
TU VE SAMU@ METKU,^TO I PREVDE.
mNOGIE KOMANDY,KOTORYE WSTAWLQ@T TEKST,NAPRIMER C-y (yank) I M-x insert-buffer,
RASPOLAGA@T METKU W ODNOM IZ KONCOW WSTAWLENNOGO TEKSTA,PROTIWOPOLOVNOM TOMU,GDE
POME]AETSQ TO^KA,TAKIM OBRAZOM,OBLASTX SODERVIT TOLXKO ^TO WSTAWLENNYJ TEKST.
pOMIMO OGRANI^ENIQ OBLASTI,POMETKA TAKVE POLEZNA DLQ ZAPOMINANIQ MESTA,K KOTO-
ROMU WY,WOZMOVNO,ZAHOTITE WERNUTXSQ.~TOBY SDELATX\TU WOZMOVNOSTX BOLEE POLEZNOJ,
Emacs ZAPOMINAET 16 PREDYDU]IH POZICIJ METKI W SPISKE POMETOK.
8.1 uSTANOWKA METKI
zDESX PRIWODQTSQ NEKOTORYE KOMANDY DLQ USTANOWKI METKI:
C-
h SPCi uSTANOWITX METKU W TO^KE (set-mark-command).
C-@ tO VE SAMOE.
C-x C-x pOMENQTX MESTAMI METKU I TO^KU (exchange-point-and-mark).
Drag-Mouse-1
uSTANOWITX TO^KU I POMETITX TEKST,PO KOTOROMU WY PROWELI.
Mouse-3 uSTANOWITX METKU W TO^KE I PEREMESTITX TO^KU K POZICII,NA KOTOROJ WY ]ELK-
NULI.(mouse-save-then-kill).
nAPRIMER,ESLI WY HOTITE PREOBRAZOWATX ^ASTX BUFERA TAK,^TOBY ON WESX BYL NABRAN
PROPISNYMI BUKWAMI,WY MOVETE ISPOLXZOWATX KOMANDU C-x C-u (upcase-region),KOTORAQ
OPERIRUET S TEKSTOM W OBLASTI.wY MOVETE SNA^ALA OTPRAWITSQ W NA^ALO TEKSTA,KOTORYJ
DOLVEN BYTX NAPISAN PROPISNYMI BUKWAMI,NABRATX C-
hSPCi,^TOBY USTANOWITX TAM METKU,
PEREDWINUTXSQ W KONEC TEKSTA I ZATEM NABRATX C-x C-u.lIBO WY MOVETE USTANOWITX METKU
W KONCE TEKSTA,SDWINUTXSQ W NA^ALO I ZATEM NABRATX C-x C-u.
nAIBOLEE OB]IJ SPOSOB USTANOWKI METKI | DELATX\TO S POMO]X@ KOMANDY C-hSPCi
(set-mark-command).tAK USTANAWLIWAETSQ POMETKA W POZICII TO^KI.zATEM WY MOVETE
OTODWINUTX TO^KU,OSTAWLQQ METKU NA MESTE.
eSTX DWA SPOSOBA USTANOWITX METKU S POMO]X@ MY[I.wY MOVETE PROWESTI MY[X@
S NAVATOJ PERWOJ KNOPKOJ PO OTREZKU TEKSTA;\TO POMESTIT TO^KU TAM,GDE WY OTPUSTILI
KNOPKU MY[I,I USTANOWIT METKU NA DRUGOM KONCE\TOGO OTREZKA.iLI WY MOVETE ]ELKNUTX
TRETXEJ KNOPKOJ MY[I,^TO USTANAWLIWAET METKU W TO^KE (KAK C-
h SPCi) I ZATEM PEREME]AET
TO^KU (KAK Mouse-1).oBA\TIH SPOSOBA POMIMO USTANOWKI METKI KOPIRU@T OBLASTX W SPISOK
UNI^TOVENIJ;TAKOE POWEDENIE SOOTWETSTWUET POWEDENI@ DRUGIH OKONNYH PRILOVENIJ,NO
ESLI WY NE HOTITE IZMENQTX SPISOK UNI^TOVENIJ,WY DOLVNY ISPOLXZOWATX DLQ USTANOWKI
METKI KOMANDY KLAWIATURY.sM.rAZDEL 17.1 [kOMANDY MY[I],S.147.
64 rUKOWODSTWO PO GNU EmacsnA OBY^NYH TERMINALAH ESTX TOLXKO ODIN KURSOR,TAK ^TO Emacs NE MOVET POKAZATX WAM
MESTONAHOVDENIE METKI.wY DOLVNY EGO POMNITX.oBY^NYJ WYHOD IZ SITUACII |USTANO-
WITX METKU,A ZATEM BYSTRO EE ISPOLXZOWATX DO TOGO,KAK WY ZABUDETE,GDE ONA RASPOLOVENA.
nO WY MOVETE UWIDETX POZICI@ METKI S POMO]X@ KOMANDY C-x C-x (exchange-point-and-
mark),KOTORAQ USTANAWLIWAET METKU TUDA,GDE BYLA TO^KA,A TO^KU TUDA,GDE BYLA METKA.
pOLOVENIE OBLASTI OSTAETSQ NEIZMENNYM,A KURSOR I TO^KA NAHODQTSQ TEPERX W PREDYDU-
]EJ POZICII METKI.w REVIME Transient Mark\TA KOMANDA AKTIWIZIRUET POMETKU.
C-x C-x TAKVE POLEZNA,KOGDA WY UDOWLETWORENY POLOVENIEM TO^KI,NO HOTITE PERE-
DWINUTX DRUGOJ KONEC OBLASTI (GDE NAHODITSQ METKA);SDELAJTE C-x C-x DLQ TOGO,^TOBY
USTANOWITX TO^KU NA MESTO METKI,I ZATEM WY MOVETE DWIGATX METKU.iSPOLXZUQ C-x C-x
WO WTOROJ RAZ,ESLI\TO NEOBHODIMO,WY USTANOWITE METKU W NOWOJ POZICII,A TO^KU WERNETE
W EE PREVN@@ POZICI@.
w ASCII NE SU]ESTWUET ZNAKA C-
hSPCi;KOGDA WY NABIRAETE hSPCi,UDERVIWAQ hCTRLi W
NAVATOM POLOVENII,NA BOLX[INSTWE OBY^NYH TERMINALOW WY POLU^ITE ZNAK C-@.|TO
I ESTX KL@^,FAKTI^ESKI PRIWQZANNYJ K set-mark-command.nO ESLI WY NE NASTOLXKO
NEUDA^LIWY,^TOBY POLU^ITX TERMINAL,GDE NABIRAQ C-h SPCi,WY NE POLU^AETE C-@,WY MO-
VETE DUMATX OB\TOM ZNAKE KAK O C-h SPCi.pOD X,C-hSPCi NA SAMOM DELE QWLQETSQ OTDELXNYM
ZNAKOM,NO PRIWQZAN ON WSE RAWNO K set-mark-command.
8.2 rEVIM Transient Mark
Emacs MOVET PODSWE^IWATX TEKU]U@ OBLASTX,ISPOLXZUQ X Windows.nO OBY^NO ON
\TOGO NE DELAET.pO^EMU?
pODSWETKA OBLASTI OBY^NO NE RABOTAET W Emacs HORO[O,POTOMU ^TO KAK TOLXKO WY
POSTAWILI METKU,WSEGDA ESTX OBLASTX (W\TOM BUFERE).a POSTOQNNAQ PODSWETKA OBLASTI
RAZDRAVALA BY.
wY MOVETE WKL@^ITX PODSWETKU POME^ENNOJ OBLASTI,ZADEJSTWOWAW REVIM Transient
Mark.|TO BOLEE VESTKIJ REVIM DEJSTWIJ,W KOTOROM OBLASTX\SU]ESTWUET"TOLXKO WRE-
MENNO,TAK ^TO WY DOLVNY ZADAWATX OBLASTX DLQ KAVDOJ KOMANDY,KOTORAQ EE ISPOLXZUET.
w REVIME Transient Mark BOLX[U@ ^ASTX WREMENI OBLASTI NET;TAKIM OBRAZOM,PODSWETKA
OBLASTI,KOGDA ONA SU]ESTWUET,UDOBNA.
~TOBY WKL@^ITX REVIM Transient Mark,WYPOLNITE KOMANDU M-x transient-mark-mode.
|TA KOMANDA PEREKL@^AET DANNYJ REVIM,A ZNA^IT WY MOVETE POWTORITX EE DLQ WYKL@^E-
NIQ\TOGO REVIMA.
wOT PODROBNOSTI O REVIME Transient Mark:
пЂЏ ~TOBY USTANOWITX METKU,WWEDITE C-
h SPCi (set-mark-command).|TO SDELAET METKU
AKTIWNOJ;PRI PEREME]ENII TO^KI WY UWIDITE,^TO OBLASTX UWELI^IWAETSQ ILI UMENX-
[AETSQ.
пЂЏ kOMANDY MY[I DLQ ZADANIQ POMETKI TAKVE DELA@T EE AKTIWNOJ.tO VE DELA@T I
KOMANDY KLAWIATURY,^XQ CELX |USTANOWITX OBLASTX,WKL@^AQ M-@,C-M-@,M-h,C-M-h,
C-x C-p I C-x h.
пЂЏ kOGDA METKA AKTIWNA,WY MOVETE WYPOLNQTX KOMANDY,DEJSTWU@]IE NA OBLASTX,TAKIE
KAK UNI^TOVENIE,SOZDANIE OTSTUPA ILI ZAPISX W FAJL.
пЂЏ l@BOE IZMENENIE BUFERA,NAPRIMER WSTAWKA ILI UDALENIE ZNAKA,DEAKTIWIZIRUET PO-
METKU.|TO OZNA^AET,^TO POSLEDU@]IE KOMANDY,DEJSTWU@]IE NA OBLASTX,POLU^AT
O[IBKU I NE SMOGUT RABOTATX.wY MOVETE SDELATX OBLASTX SNOWA AKTIWNOJ,WWEDQ C-x
C-x.
пЂЏ kOMANDY WRODE M-> I C-s,KOTORYE\OSTAWLQ@T METKU"POMIMO KAKOJ-TO DRUGOJ OSNOW-
NOJ CELI,NE AKTIWIZIRU@T NOWU@ METKU.wY MOVETE AKTIWIZIROWATX NOWU@ OBLASTX,
WYPOLNIW C-x C-x (exchange-point-and-mark).
пЂЏ C-s NE IZMENQET METKU,ESLI ONA AKTIWNA.
gLAWA 8:pOMETKA I OBLASTX 65пЂЏ wYHOD S POMO]X@ C-g DEAKTIWIZIRUET METKU.
dLQ PODSWETKI OBLASTI ISPOLXZUETSQ NA^ERTANIE region;WY MOVETE NASTROITX SPOSOB
PODSWETKI OBLASTI,IZMENIW\TO NA^ERTANIE.sM.rAZDEL 31.2.2.3 [nASTROJKA NA^ERTANIJ],
S.347.
kOGDA NESKOLXKO OKON POKAZYWA@T ODIN I TOT VE BUFER,ONI IME@T RAZNYE OBLASTI,
POTOMU ^TO U NIH MOGUT BYTX RAZNYE ZNA^ENIQ TO^KI (HOTQ WSE ONI IME@T ODINAKOWU@
POZICI@ METKI.) oBY^NO TOLXKO WYBRANNOE OKNO PODSWE^IWAET OBLASTX (SM.gLAWA 16
[oKNA],S.141 ).oDNAKO,ESLI PEREMENNAQ highlight-nonselected-windows NE RAWNA nil,
TO KAVDOE OKNO PODSWE^IWAET SWO@ OBLASTX (ESLI WKL@^EN REVIM Transient Mark,I METKA
W BUFERE\TOGO OKNA AKTIWNA).
kOGDA REVIM Transient Mark NE WKL@^EN,KAVDAQ KOMANDA,USTANAWLIWA@]AQ METKU,
TAKVE I AKTIWIZIRUET EE,NO NI^TO NE DEAKTIWIZIRUET METKU.
eSLI W REVIME Transient Mark PEREMENNAQ mark-even-if-inactive NE RAWNA nil,TO
KOMANDY MOGUT ISPOLXZOWATX METKU I OBLASTX,DAVE ESLI ONI NE AKTIWNY.pODSWETKA
OBLASTI POQWLQETSQ I IS^EZAET TAK VE,KAK OBY^NO W REVIME Transient Mark,NO METKA NA
SAMOM DELE NE IS^EZAET,KOGDA IS^EZAET PODSWETKA.
rEVIM Transient Mark TAKVE IZWESTEN KAK\REVIM Zmacs",POTOMU ^TO REDAKTOR Zmacs
NA MIT Lisp Machine OBRA]ALSQ S POMETKOJ POHOVIM OBRAZOM.
8.3 rABOTA S OBLASTX@
kAK TOLXKO WY SOZDALI OBLASTX,I METKA AKTIWNA,WY MOVETE DELATX RAZLI^NYE WE]I S
TEKSTOM\TOJ OBLASTI:
пЂЏ uNI^TOVITX EGO S POMO]X@ C-w (SM.rAZDEL 9.1 [uNI^TOVENIE],S.69).
пЂЏ zAPISATX EGO W REGISTR S POMO]X@ C-x r s (SM.gLAWA 10 [rEGISTRY],S.77).
пЂЏ zAPISATX EGO W BUFER ILI FAJL (SM.rAZDEL 9.3 [nAKOPLENIE TEKSTA],S.73).
пЂЏ pREOBRAZOWATX REGISTR S POMO]X@ C-x C-l ILI C-x C-u (SM.rAZDEL 21.6 [pREOBRAZO-
WANIE REGISTRA BUKW],S.189 ).
пЂЏ sDELATX OTSTUP S POMO]X@ C-x hTABi ILI C-M-\(SM.gLAWA 20 [oTSTUPY],S.177).
пЂЏ zAPOLNITX EGO KAK TEKST S POMO]X@ M-x fill-region (SM.rAZDEL 21.5 [zAPOLNENIE],
S.185 ).
пЂЏ rASPE^ATATX S POMO]X@ M-x print-region (SM.rAZDEL 30.4 [rASPE^ATKA],S.331).
пЂЏ wY^ISLITX EGO KAK lISP-KOD S POMO]X@ M-x eval-region (SM.rAZDEL 23.8 [wY^ISLE-
NIE lISPA],S.254 ).
bOLX[INSTWO KOMAND,KOTORYE OPERIRU@T S TEKSTOM W OBLASTI,W SWOEM IMENI SODERVAT
SLOWO region.
8.4 kOMANDY DLQ POMETKI TEKSTUALXNYH OB_EKTOW
zDESX PREDSTAWLENY KOMANDY DLQ POME]ENIQ TO^KI I METKI WOKRUG TEKSTUALXNYH OB_-
EKTOW,TAKIH KAK SLOWO,SPISOK,ABZAC ILI STRANICA.
M-@ uSTANOWITX METKU POSLE KONCA SLEDU@]EGO SLOWA (mark-word).|TA I SLEDU@-
]AQ KOMANDY NE PEREDWIGA@T TO^KU.
C-M-@ uSTANOWITX METKU POSLE KONCA SLEDU@]EGO lISP-WYRAVENIQ (mark-sexp).
M-h uSTANOWITX OBLASTX WOKRUG ABZACA (mark-paragraph).
C-M-h uSTANOWITX OBLASTX WOKRUG TEKU]EGO OPREDELENIQ FUNKCII lISPA (mark-
defun).
66 rUKOWODSTWO PO GNU EmacsC-x h uSTANOWITX OBLASTX WOKRUG WSEGO TEKU]EGO BUFERA (mark-whole-buffer).
C-x C-p uSTANOWITX OBLASTX WOKRUG TEKU]EJ STRANICY (mark-page).
M-@ (mark-word) USTANAWLIWAET METKU W KONCE SLEDU@]EGO SLOWA,A C-M-@ (mark-sexp)
USTANAWLIWAET EE W KONEC SLEDU@]EGO WYRAVENIQ lISPA.|TI KOMANDY OBRABATYWA@T SWOI
ARGUMENTY TAK VE,KAK M-f I C-M-f.
dRUGIE KOMANDY USTANAWLIWA@T KAK METKU,TAK I TO^KU,^TOBY OGRANI^ITX OB_EKT W
BUFERE.nAPRIMER,M-h (mark-paragraph) PEREDWIGAET TO^KU W NA^ALO ABZACA,KOTORYJ
OKRUVAET TO^KU ILI SLEDUET ZA NEJ,I USTANAWLIWAET METKU W KONCE\TOGO ABZACA (SM.rAZDEL 21.3 [aBZACY],S.183).|TA KOMANDA PODGOTAWLIWAET OBLASTX,^TOBY WY MOGLI
SDELATX OTSTUPY,PEREKL@^ITX REGISTR ILI UNI^TOVITX WESX ABZAC.
C-M-h (mark-defun) TAKVE USTANAWLIWAET TO^KU WPEREDI,A METKU POSLE TEKU]EGO ILI
SLEDU@]EGO OPREDELENIQ FUNKCII (SM.rAZDEL 22.4 [oPREDELENIQ FUNKCIJ],S.208).C-x C-p
(mark-page) USTANAWLIWAET TO^KU PERED TEKU]EJ STRANICEJ,A METKU | W KONCE STRANICY
(SM.rAZDEL 21.4 [sTRANICY],S.184).pOMETKA IDET POSLE OGRANI^ITELQ STRANICY (^TOBY
WKL@^ITX I EGO),TO^KA IDET POSLE OGRANI^ITELQ PREDYDU]EJ STRANICY (^TOBY ISKL@^ITX
EGO).~ISLOWOJ ARGUMENT ZADAET BOLEE POZDN@@ STRANICU (ESLI ARGUMENT POLOVITELEN) ILI
BOLEE RANN@@ (ESLI ON OTRICATELEN) WMESTO TEKU]EJ STRANICY.
nAKONEC,C-x h (mark-whole-buffer) POME^AET WESX BUFER KAK OBLASTX,USTANAWLIWAQ
TO^KU W NA^ALO,A METKU W KONEC.
w REVIME Transient Mark WSE\TI KOMANDY AKTIWIZIRU@T METKU.
8.5 sPISOK POMETOK
pOMIMO OGRANI^ENIQ OBLASTI,POMETKA SLUVIT TAKVE DLQ ZAPOMINANIQ MESTA,W KOTOROE
WY HOTELI BY WERNUTXSQ.~TOBY SDELATX\TU WOZMOVNOSTX BOLEE POLEZNOJ,Emacs ZAPOMI-
NAET 16 PREDYDU]IH POZICIJ METKI W SPISKE POMETOK.bOLX[INSTWO KOMAND,KOTORYE
USTANAWLIWA@T METKU,WSTAWLQ@T STARU@ METKU W\TOT SPISOK.~TOBY WERNUTXSQ K OT-
ME^ENNOJ POZICII,ISPOLXZU@T C-u C-hSPCi (ILI C-u C-@),\TO KOMANDA set-mark-command,
KOTOROJ DAN ^ISLOWOJ ARGUMENT.oNA PEREDWIGAET TO^KU TUDA,GDE BYLA POMETKA,I WOSSTA-
NAWLIWAET METKU IZ SPISKA PREVNIH POMETOK.tAK,POWTORNOE ISPOLXZOWANIE\TOJ KOMANDY
PEREDWIGAET TO^KU KO WSEM STARYM POMETKAM W SPISKE,K ODNOJ ZA DRUGOJ.mETKI,^E-
REZ KOTORYE WY PROHODITE,POPADA@T W KONEC SPISKA,TAKIM OBRAZOM NI ODNA IZ NIH NE
PROPADAET.
kAVDYJ BUFER IMEET SWOJ SOBSTWENNYJ SPISOK POMETOK.wSE KOMANDY REDAKTIROWANIQ
ISPOLXZU@T SPISOK POMETOK TEKU]EGO BUFERA.w ^ASTNOSTI,C-u C-
hSPCi WSEGDA OSTAETSQ W
TOM VE SAMOM BUFERE.
mNOGIE KOMANDY,PEREDWIGA@]IE NA BOLX[IE RASSTOQNIQ,TAKIE,NAPRIMER,KAK M-<
(beginning-of-buffer),NA^INA@T S USTANOWKI METKI I ZAPISI STAROGO ZNA^ENIQ W SPISOK
POMETOK.|TO SDELANO DLQ TOGO,^TOBY WAM BYLO LEG^E WPOSLEDSTWII WERNUTXSQ NAZAD.
pOISKI DELA@T\TO ZA ISKL@^ENIEM TEH SLU^AEW,KOGDA ONI FAKTI^ESKI NE DWIGA@T TO^KU.
wY MOVETE WIDETX,KOGDA KAKAQ-LIBO KOMANDA USTANAWLIWAET METKU,PO TOMU,^TO ONA
PE^ATAET W\HO-OBLASTI SOOB]ENIE`Mark Set'.
eSLI WY HOTITE WOZWRA]ATXSQ K ODNOMU I TOMU VE MESTU SNOWA I SNOWA,SPISOK POMETOK
MOVET OKAZATXSQ NEDOSTATO^NO UDOBNYM.w TAKOM SLU^AE WY MOVETE ZAPISATX POZICI@ W
REGISTR DLQ POSLEDU@]EGO POLU^ENIQ (SM.rAZDEL 10.1 [hRANENIE POZICIJ W REGISTRAH],
S.77 ).
pEREMENNAQ mark-ring-max ZADAET MAKSIMALXNOE ^ISLO\LEMENTOW W SPISKE POMETOK.
eSLI UVE IMEETSQ MAKSIMALXNOE KOLI^ESTWO\LEMENTOW,I ZATALKIWAETSQ E]E ODIN,TO PO-
SLEDNIJ IZ SU]ESTWU@]EGO SPISKA SBRASYWAETSQ.pOWTORENIE C-u C-hSPCi PROKRU^IWAET
SREDI POZICIJ,KOTORYE NAHODQTSQ W DANNYJ MOMENT W SPISKE.
gLAWA 8:pOMETKA I OBLASTX 67pEREMENNAQ mark-ring HRANIT SAM SPISOK POMETOK KAK SPISOK POME^ENNYH OB_EKTOW,
GDE PERWYM IDET ZAPISANNYJ SAMYM POSLEDNIM.dANNAQ PEREMENNAQ QWLQETSQ LOKALXNOJ W
KAVDOM BUFERE.
8.6 gLOBALXNYJ SPISOK POMETOK
kROME OBY^NOGO SPISKA POMETOK,KOTORYJ PRINADLEVIT KAVDOMU BUFERU,W Emacs ESTX
EDINYJ GLOBALXNYJ SPISOK POMETOK.w NEM ZAPISYWAETSQ POSLEDOWATELXNOSTX BUFEROW,W
KOTORYH WY NEDAWNO USTANAWLIWALI METKI,^TOBY WY MOGLI WERNUTXSQ K\TIM BUFERAM.
pRI USTANOWKE METKI WSEGDA SOZDAETSQ WHOVDENIE W SPISKE POMETOK TEKU]EGO BUFERA.
eSLI WY PEREKL@^ALI BUFERY POSLE PREDYDU]EJ USTANOWKI METKI,POZICIQ NOWOJ METKI
WNOSITSQ TAKVE I W GLOBALXNYJ SPISOK POMETOK.w REZULXTATE GLOBALXNYJ SPISOK POMETOK
HRANIT POSLEDOWATELXNOSTX BUFEROW,W KOTORYH WY POBYWALI,I MESTO W KAVDOM IZ NIH,GDE
WY POSTAWILI METKU.
kOMANDA C-x C-hSPCi (pop-global-mark) PEREWODIT K BUFERU I POZICII POSLEDNEGO WHO-
VDENIQ W GLOBALXNOM SPISKE POMETOK.oNA TAKVE PROMATYWAET\TOT SPISOK,^TOBY POSLEDO-
WATELXNOE PRIMENENIE KOMANDY C-x C-hSPCi PEREME]ALO WAS KO WSE BOLEE RANNIM BUFERAM.
68 rUKOWODSTWO PO GNU Emacs
gLAWA 9:uNI^TOVENIE I PEREME]ENIE TEKSTA 699 uNI^TOVENIE I PEREME]ENIE TEKSTA
uNI^TOVENIE OZNA^AET STIRANIE TEKSTA I ZAPISX EGO W SPISOK UNI^TOVENIJ,IZ KOTOROGO
ON MOVET BYTX POLU^EN S POMO]X@ WOSSTANOWLENIQ.nEKOTORYE SISTEMY,STAW[IE NEDAWNO
POPULQRNYMI,ISPOLXZU@T DLQ OBOZNA^ENIQ\TIH OPERACIJ TERMINY\WYREZKA"I\WSTAWKA".
sAMYJ RASPROSTRANENNYJ SPOSOB PERENOSA ILI KOPIROWANIQ TEKSTA W Emacs |SNA^ALA
UNI^TOVITX EGO,A POTOM WOSSTANOWITX W ODNOM ILI NESKOLXKIH MESTAH.|TO O^ENX NADEVNO,
TAK KAK WSE UNI^TOVENNYE ZA POSLEDNEE WREMQ KUSKI TEKSTA ZAPOMINA@TSQ.i\TO UDOBNO,
TAK KAK MNOGO^ISLENNYE KOMANDY DLQ UNI^TOVENIQ SINTAKSI^ESKIH EDINIC MOGUT BYTX
TAKVE ISPOLXZOWANY I DLQ IH PEREME]ENIQ.nO ESTX I DRUGIE SPOSOBY KOPIROWANIQ TEKSTA
DLQ OSOBYH CELEJ.
Emacs HRANIT EDINYJ DLQ WSEH BUFEROW SPISOK UNI^TOVENIJ,TAK ^TO WY MOVETE UNI-
^TOVITX TEKST W ODNOM BUFERE I WOSSTANOWITX EGO W DRUGOM.
9.1 uDALENIE I UNI^TOVENIE
bOLX[INSTWO KOMAND,KOTORYE STIRA@T TEKST IZ BUFERA,SOHRANQ@T EGO W SPISKE UNI-
^TOVENIJ,^TOBY WY MOGLI PERENESTI ILI SKOPIROWATX EGO W DRUGIE ^ASTI BUFERA.|TI
KOMANDY IZWESTNY KAK KOMANDY UNI^TOVENIQ.oSTALXNYE KOMANDY,STIRA@]IE TEKST,NE
ZAPISYWA@T EGO W SPISOK UNI^TOVENIJ;ONI IZWESTNY KAK KOMANDY UDALENIQ.(tAKOE OT-
LI^IE DELAETSQ TOLXKO DLQ STIRANIQ TEKSTA W BUFERE).eSLI WY UNI^TOVILI ILI UDALILI
TEKST PO O[IBKE,WY MOVETE ISPOLXZOWATX KOMANDU C-x u (undo) DLQ OTMENY IZMENENIJ
(SM.rAZDEL 4.4 [oTMENA],S.37).
kOMANDY UDALENIQ WKL@^A@T C-d (delete-char) I hDELi (delete-backward-char),KO-
TORYE UDALQ@T TOLXKO ODIN ZNAK ZA ODIN RAZ,I TE KOMANDY,KOTORYE UDALQ@T TOLXKO
PROBELY ILI OGRANI^ITELI NOWOJ STROKI.kOMANDY,KOTORYE MOGUT UNI^TOVITX SU]E-
STWENNOE KOLI^ESTWO NETRIWIALXNYH DANNYH,OBY^NO QWLQ@TSQ KOMANDAMI UNI^TOVENIQ.
iMENA KOMAND I IH OPISANIQ ISPOLXZU@T SLOWA`kill'I`delete',^TOBY POQSNQTX ^TO ONI
DELA@T.
9.1.1 uDALENIE
C-d uDALITX SLEDU@]IJ ZNAK (delete-char).
h DELi uDALITX PREDYDU]IJ ZNAK (delete-backward-char).
M-\uDALITX WSE PROBELY I TABULQCI@ WOKRUG TO^KI (delete-horizontal-space).
M-h SPCi uDALITX PROBELY I TABULQCI@ WOKRUG TO^KI,OSTAWLQQ ODIN PROBEL (just-one-
space).
C-x C-o uDALITX PUSTYE STROKI WOKRUG TEKU]EJ STROKI (delete-blank-lines).
M-^ oB_EDINITX DWE STROKI,UDALQQ NAHODQ]IJSQ MEVDU NIMI OGRANI^ITELX NOWOJ
STROKI I L@BOJ OTSTUP,SLEDU@]IJ ZA NIM (delete-indentation).
sAMYE OSNOWNYE KOMANDY UDALENIQ |\TO C-d (delete-char) I hDELi (delete-backward-
char).C-d UDALQET ZNAK POSLE TO^KI,NAD KOTORYM NAHODITSQ KURSOR.tO^KA NE PEREDWIGA-
ETSQ.h DELi UDALQET ZNAK PERED KURSOROM I PEREDWIGAET TO^KU NAZAD.oGRANI^ITELX NOWOJ
STROKI MOVET BYTX UDALEN TO^NO TAKVE,KAK I L@BOJ DRUGOJ ZNAK W BUFERE.uDALENIE OGRA-
NI^ITELQ NOWOJ STROKI OB_EDINQET DWE STROKI.fAKTI^ESKI C-d I hDELi NE WSEGDA QWLQ@TSQ
KOMANDAMI UDALENIQ;ESLI IM DATX ARGUMENT,ONI UNI^TOVA@T,TAK KAK\TIM SPOSOBOM ONI
MOGUT STERETX UVE BOLEE ODNOGO ZNAKA.
dRUGIE KOMANDY UDALENIQ |\TO TE,^TO UDALQ@T TOLXKO PROBELXNYE ZNAKI:PROBELY,
TABULQCI@ I OGRANI^ITELI NOWYH STROK.M-\(delete-horizontal-space) UDALQET WSE
70 rUKOWODSTWO PO GNU EmacsPROBELY I SIMWOLY TABULQCII PERED I POSLE TO^KI.M-hSPCi (just-one-space) DELAET TO VE
SAMOE,NO OSTAWLQET ODINO^NYJ PROBEL POSLE TO^KI,NEZAWISIMO OT KOLI^ESTWA PROBELOW,
SU]ESTWOWAW[IH PREVDE (DAVE ESLI ONO BYLO RAWNO NUL@).
C-x C-o (delete-blank-lines) UNI^TOVAET WSE PUSTYE STROKI POSLE TEKU]EJ STROKI.
eSLI TEKU]AQ STROKA PUSTAQ,TO TAKVE UNI^TOVAET WSE PUSTYE STROKI,PRED[ESTWU@]IE
TEKU]EJ STROKE (OSTAWLQQ ODNU PUSTU@ STROKU,TEKU]U@).
M-^ (delete-indentation) OB_EDINQET TEKU]U@ STROKU I PRED[ESTWU@]U@ EJ,UDALQQ
OGRANI^ITELX NOWOJ STROKI I WSE OKRUVA@]IE PROBELY,OBY^NO OSTAWLQQ ODINO^NYJ PRO-
BEL.sM.gLAWA 20 [oTSTUPY],S.177.
9.1.2 uNI^TOVENIE STROK
C-k uNI^TOVITX OSTATOK STROKI,LIBO ODNU ILI NESKOLXKO STROK (kill-line).
pROSTEJ[EJ KOMANDOJ UNI^TOVENIQ QWLQETSQ C-k.eSLI ONA DAETSQ W NA^ALE STROKI,TO
UNI^TOVAET WESX TEKST NA STROKE,OSTAWLQQ EE PUSTOJ.eSLI KOMANDA DANA NA PUSTOJ STROKE,
TO UNI^TOVAET WS@ STROKU,WKL@^AQ EE OGRANI^ITELX.~TOBY UNI^TOVITX NEPUSTU@ STROKU
CELIKOM,PEREJDITE W EE NA^ALO I NAVMITE C-k DWAVDY.
w BOLEE OB]EM WIDE,C-k UNI^TOVAET WSE OT TO^KI WPLOTX DO KONCA STROKI,ESLI\TO NE
PROISHODIT W KONCE STROKI.w\TOM SLU^AE ONA UNI^TOVAET OGRANI^ITELX NOWOJ STROKI,
SLEDU@]IJ ZA STROKOJ,TAKIM OBRAZOM PROISHODIT SLIQNIE SLEDU@]EJ STROKI S TEKU]EJ.
pRI RE[ENII WOPROSA O TOM,KAKOJ SLU^AJ PRIMENQTX,NEWIDIMYE PROBELY I TABULQCIQ W
KONCE STROKI IGNORIRU@TSQ,TAK,ESLI TO^KA WYGLQDIT STOQ]EJ W KONCE STROKI,WY MOVETE
BYTX UWERENY,^TO C-k UNI^TOVIT PEREWOD STROKI.
eSLI C-k BUDET PRISWOEN POLOVITELXNYJ ARGUMENT,ONA UNI^TOVIT ROWNO STOLXKO STROK
WMESTE SO SLEDU@]IMI ZA NIMI OGRANI^ITELQMI (ODNAKO,TEKST NA TEKU]EJ STROKE PERED
TO^KOJ SOHRANQETSQ).s OTRICATELXNYM ARGUMENTOM пЂЂn ONA UNI^TOVAET n STROK,PRED[E-
STWU@]IH TEKU]EJ (WMESTE S TEKSTOM NA TEKU]EJ STROKE PERED TO^KOJ).tAKIM OBRAZOM,
C-u - 2 C-k W NA^ALE STROKI UNI^TOVAET DWE PREDYDU]IE STROKI.
C-k S ARGUMENTOM,RAWNYM NUL@,UNI^TOVAET TEKST PERED TO^KOJ NA TEKU]EJ STROKE.
eSLI PEREMENNAQ kill-whole-line NE RAWNA nil,C-k W SAMOM NA^ALE STROKI UNI^TOVAET
WS@\TU STROKU,WKL@^AQ POSLEDU@]IJ PEREWOD STROKI.|TA PEREMENNAQ OBY^NO RAWNA nil.
9.1.3 dRUGIE KOMANDY UNI^TOVENIQ
C-w uNI^TOVITX OBLASTX (OT TO^KI DO METKI) (kill-region).
M-d uNI^TOVITX SLOWO (kill-word).sM.rAZDEL 21.1 [sLOWA],S.181.
M-h DELi uNI^TOVITX PREDYDU]EE SLOWO (backward-kill-word).
C-x
h DELi uNI^TOVITX NAZAD DO NA^ALA PREDLOVENIQ (backward-kill-sentence).sM.rAZDEL 21.2 [pREDLOVENIQ],S.182.
M-k uNI^TOVITX DO KONCA PREDLOVENIQ (kill-sentence).
C-M-k uNI^TOVITX s-WYRAVENIE (kill-sexp).sM.rAZDEL 22.2 [sPISKI],S.206.
M-z ZNAK uNI^TOVITX WPLOTX DO SLEDU@]EGO POQWLENIQ ZNAKA (zap-to-char).
C-w (kill-region) | O^ENX RASPROSTRANENNAQ KOMANDA UNI^TOVENIQ,KOTORAQ UNI^TO-
VAET WSE MEVDU TO^KOJ I METKOJ.s POMO]X@\TOJ KOMANDY WY MOVETE UNI^TOVITX L@BU@
NEPRERYWNU@ POSLEDOWATELXNOSTX ZNAKOW,ESLI SNA^ALA USTANOWITE METKU W ODNOM EE KONCE
I OTPRAWITESX W DRUGOJ KONEC.
uDOBNYJ SPOSOB UNI^TOVENIQ |\TO UNI^TOVENIE SKOMBINIROWANNOE S POISKOM:M-z
(zap-to-char) S^ITYWAET ZNAK I UNI^TOVAET OT TO^KI WPLOTX DO SLEDU@]EGO POQWLENIQ
gLAWA 9:uNI^TOVENIE I PEREME]ENIE TEKSTA 71\TOGO ZNAKA (I WKL@^AQ EGO) W BUFERE.~ISLOWOJ ARGUMENT DEJSTWUET KAK S^ET^IK POWTOROW.
oTRICATELXNYJ ARGUMENT OZNA^AET POISK W OBRATNU@ STORONU I UNI^TOVENIE TEKSTA PERED
TO^KOJ.
mOGUT UNI^TOVATXSQ DRUGIE SINTAKSI^ESKIE EDINICY:SLOWA,S POMO]X@ M-hDELi I M-d
(SM.rAZDEL 21.1 [sLOWA],S.181);s-WYRAVENIQ,S POMO]X@ C-M-k (SM.rAZDEL 22.2 [sPISKI],
S.206 );I PREDLOVENIQ,S POMO]X@ C-x hDELi I M-k (SM.rAZDEL 21.2 [pREDLOVENIQ],S.182).
wY MOVETE ISPOLXZOWATX KOMANDY UNI^TOVENIQ W BUFERAH,DOSTUPNYH TOLXKO DLQ ^TE-
NIQ.nA SAMOM DELE ONI NE IZMENQ@T BUFER I PODA@T ZWUKOWOJ SIGNAL,^TOBY PREDUPREDITX
WAS OB\TOM,NO ONI DEJSTWITELXNO KOPIRU@T TEKST,KOTORYJ WY POPYTALISX UNI^TOVITX,
W SPISOK UNI^TOVENIJ,TAK ^TO WY MOVETE WOSSTANOWITX EGO W DRUGIH BUFERAH.bOLX[IN-
STWO KOMAND UNI^TOVENIQ PEREDWIGA@T TO^KU PO TEKSTU,KOTORYJ ONI KOPIRU@T TAKIM
SPOSOBOM,PO\TOMU POSLEDOWATELXNYE KOMANDY UNI^TOVENIQ,KAK OBY^NO,SOZDA@T EDINOE
WHOVDENIE W SPISKE UNI^TOVENIJ.
9.2 wOSSTANOWLENIE
wOSSTANOWLENIE WOZWRA]AET OBRATNO TEKST,KOTORYJ BYL RANEE UNI^TOVEN.|TO TO VE
SAMOE,^TO W DRUGIH SISTEMAH NAZYWAETSQ\WSTAWKOJ".oBY^NYJ SPOSOB KOPIROWANIQ ILI
PEREME]ENIQ TEKSTA |UNI^TOVITX EGO,A ZATEM WOSSTANOWITX ODIN ILI NESKOLXKO RAZ.
C-y wOSSTANOWITX POSLEDNIJ UNI^TOVENNYJ TEKST (yank).
M-y zAMENITX TOLXKO ^TO WOSSTANOWLENNYJ TEKST PRED[ESTWU@]IM KUSKOM UNI^TO-
VENNOGO TEKSTA (yank-pop).
M-w sOHRANITX OBLASTX KAK POSLEDNIJ UNI^TOVENNYJ TEKST BEZ FAKTI^ESKOGO UNI-
^TOVENIQ (kill-ring-save).
C-M-w dOBAWITX SLEDU@]EE UNI^TOVENIE K POSLEDNEMU KUSKU UNI^TOVENNOGO TEKSTA
(append-next-kill).
9.2.1 sPISOK UNI^TOVENIJ
wESX UNI^TOVENNYJ TEKST ZAPISYWAETSQ W KOLXCEWOJ SPISOK UNI^TOVENIJ,SPISOK BLOKOW
TEKSTA,KOTORYJ BYL UNI^TOVEN.sU]ESTWUET TOLXKO ODIN SPISOK UNI^TOVENIJ,ISPOLX-
ZUEMYJ WO WSEH BUFERAH,TAKIM OBRAZOM WY MOVETE UNI^TOVITX TEKST W ODNOM BUFERE I
WOSSTANOWITX EGO W DRUGOM.|TO OBY^NYJ SPOSOB PEREME]ENIQ TEKSTA IZ ODNOGO FAJLA W
DRUGOJ.(sM.rAZDEL 9.3 [nAKOPLENIE TEKSTA],S.73,DLQ POLU^ENIQ INFORMACII O DRUGIH
SPOSOBAH).
kOMANDA C-y (yank) WNOWX WSTAWLQET TEKST,UNI^TOVENNYJ SAMYM POSLEDNIM.oNA
OSTAWLQET KURSOR W KONCE TEKSTA,METKA USTANAWLIWAETSQ W EGO NA^ALE.sM.gLAWA 8
[pOMETKA],S.63.
C-u C-y OSTAWLQET KURSOR PERED TEKSTOM I USTANAWLIWAET METKU POSLE NEGO.|TO PROIS-
HODIT,TOLXKO ESLI ARGUMENT ZADAN S POMO]X@ PROSTO C-u.l@BOJ DRUGOJ WID ARGUMENTA,
WKL@^AQ C-u I CIFRY,OBOZNA^A@T WOSSTANOWLENIE UNI^TOVENNOGO RANEE (SM.rAZDEL 9.2.3
[rANEE UNI^TOVENNOE],S.72 ).
eSLI WY HOTITE SKOPIROWATX BLOK TEKSTA,WY MOVETE ISPOLXZOWATX M-w (kill-ring-
save),KOTORAQ KOPIRUET OBLASTX W SPISOK UNI^TOVENIJ BEZ UDALENIQ EGO IZ BUFERA.|TO
PRIBLIZITELXNYJ\KWIWALENT C-w,ZA KOTOROJ SLEDUET C-x u,ZA ISKL@^ENIEM TOGO,^TO M-w
NE IZMENQET ISTORI@ WOSSTANOWLENIJ I NE IZMENQET NA WREMQ\KRAN.
72 rUKOWODSTWO PO GNU Emacs9.2.2 dOBAWLENIE UNI^TOVENIJ
oBY^NO KAVDAQ KOMANDA UNI^TOVENIQ DOBAWLQET NOWYJ BLOK W SPISOK UNI^TOVENIJ.
oDNAKO,DWE ILI BOLEE KOMANDY UNI^TOVENIQ PODRQD OB_EDINQ@T TEKST W EDINYJ\LEMENT,
TAK ^TO ODINO^NAQ C-y WOZXMET WESX EGO OBRATNO TAKIM,KAKIM ON BYL PERED UNI^TOVENIEM.
tAKIM OBRAZOM,ESLI WY HOTITE WOSSTANOWITX TEKST KAK ODNO CELOE,WY NE DOLVNY
UNI^TOVATX WESX\TOT TEKST ODNOJ KOMANDOJ;WY MOVETE PRODOLVATX UNI^TOVENIE STROKI
ZA STROKOJ ILI SLOWA ZA SLOWOM DO TEH POR,POKA NE UNI^TOVITE WESX TEKST POLNOSTX@,I
WY MOVETE POLU^ITX EGO OBRATNO SRAZU CELIKOM.
kOMANDY,KOTORYE UNI^TOVA@T TEKST WPERED OT TO^KI,DOBAWLQ@T UNI^TOVENNOE W KO-
NEC PREDYDU]EGO UNI^TOVENNOGO TEKSTA.kOMANDY,KOTORYE UNI^TOVA@T NAZAD OT TO^KI,
DOBAWLQ@T\TO W NA^ALO.tAKIM OBRAZOM,L@BAQ POSLEDOWATELXNOSTX SME[ANNYH KOMAND
UNI^TOVENIQ PERED TO^KOJ I POSLE NEE OB_EDINQET WESX UNI^TOVENNYJ TEKST W ODIN\LE-
MENT BEZ PEREUPORQDO^ENIQ.~ISLOWOJ ARGUMENT NE PRERYWAET POSLEDOWATELXNOSTX DOBAW-
LENIQ UNI^TOVENIJ.nAPRIMER,PREDPOLOVIM,^TO BUFER SODERVIT TAKOJ TEKST:
|TO PRIMER STROKI?S OBRAZCOM TEKSTA.
S TO^KOJ,POKAZANNOJ KAK?.eSLI WY NABERETE M-d M-hDELi M-d M-hDELi,UNI^TOVAQ PO O^E-
REDI WPERED I NAZAD,TO W KONCE POLU^ITE`PRIMER STROKI S OBRAZCOM'W KA^ESTWE ODNOGO
WHOVDENIQ W SPISKE UNI^TOVENIJ I`|TO TEKSTA.'W BUFERE.(oBRATITE WNIMANIE NA DWOJ-
NOJ PROBEL,KOTORYJ WY MOVETE O^ISTITX S POMO]X@ M-h SPCi ILI M-q.)
dRUGOJ SPOSOB UNI^TOVITX TOT VE TEKST | PEREMESTITXSQ NAZAD NA DWA SLOWA S POMO-
]X@ M-b M-b I UNI^TOVITX WSE ^ETYRE SLOWA WPERED KOMANDOJ C-u M-d.|TO DAET TAKOJ
VE REZULXTAT W BUFERE I W SPISKE UNI^TOVENIJ.M-f M-f C-u M-hDELi UNI^TOVAET TOT VE
TEKST,PROHODQ WSE WREMQ NAZAD;I OPQTX REZULXTAT BUDET TEM VE.tEKST W\LEMENTE SPIS-
KA UNI^TOVENIJ WSEGDA IMEET TOT VE PORQDOK,^TO ON IMEL W BUFERE DO TOGO,KAK WY EGO
UNI^TOVILI.
eSLI KOMANDA UNI^TOVENIQ OTDELENA OT PREDYDU]EJ DRUGIMI KOMANDAMI (NE PROSTO
^ISLOWYM ARGUMENTOM),TO ONA NA^INAET NOWYJ\LEMENT W SPISKE UNI^TOVENIJ.nO WY
MOVETE ZASTAWITX\TU KOMANDU UNI^TOVENIQ DOBAWLQTX TEKST K PREDYDU]EMU\LEMENTU,
NABRAW PERED NEJ KOMANDU C-M-w (append-next-kill).C-M-w PRIKAZYWAET SLEDU@]EJ KO-
MANDE,ESLI\TO KOMANDA UNI^TOVENIQ,DOBAWITX UNI^TOVENNYJ E@ TEKST K POSLEDNEMU
UNI^TOVENNOMU TEKSTU WMESTO TOGO,^TOBY NA^INATX NOWYJ\LEMENT.s POMO]X@ C-M-w WY
MOVETE UNI^TOVITX NESKOLXKO OTDELXNYH KUSKOW TEKSTA I NAKOPITX IH DLQ DALXNEJ[EGO
WOSSTANOWLENIQ W ODNOM MESTE.
kOMANDA UNI^TOVENIQ,SLEDU@]AQ POSLE M-w,NE DOBAWLQET K TEKSTU,KOTORYJ M-w SKO-
PIROWALA W SPISOK UNI^TOVENIJ.
9.2.3 wOSSTANOWLENIE RANEE UNI^TOVENNOGO
dLQ TOGO ^TOBY WERNUTX UNI^TOVENNYJ TEKST,KOTORYJ UVE NE QWLQETSQ POSLEDNIM
UNI^TOVENNYM,ISPOLXZUJTE KOMANDU M-y (yank-pop).oNA BERET PREVDE WOSSTANOWLENNYJ
TEKST,I ZAMENQET EGO TEKSTOM BOLEE RANNEGO UNI^TOVENIQ.tAK,^TOBY WERNUTX TEKST,
PRED[ESTWU@]IJ POSLEDNEMU UNI^TOVENNOMU,SNA^ALA ISPOLXZUJTE C-y,^TOBY WOSSTANO-
WITX POSLEDNEE UNI^TOVENIE,A ZATEM M-y,^TOBY ZAMENITX EGO PREDYDU]IM.M-y MOVET
ISPOLXZOWATXSQ TOLXKO POSLE C-y ILI DRUGOJ M-y.
M-y MOVNO PONIMATX W TERMINAH UKAZATELQ NA\POSLEDNEE WOSSTANOWLENIE",KOTORYJ
UKAZYWAET NA\LEMENT W SPISKE UNI^TOVENIQ.kAVDYJ RAZ,KOGDA WY UNI^TOVAETE,UKAZA-
TELX NA\POSLEDNEE WOSSTANOWLENIE"PEREDWIGAETSQ W POSLEDNIJ SOZDANNYJ\LEMENT W NA^ALE
SPISKA.C-y WOSSTANAWLIWAET\LEMENT,NA KOTORYJ SSYLAETSQ UKAZATELX\POSLEDNEGO WOS-
STANOWLENIQ".M-y DWIGAET UKAZATELX NA\POSLEDNEE WOSSTANOWLENIE"K DRUGOMU\LEMENTU,
I TEKST W BUFERE SOOTWETSTWENNO IZMENQETSQ.dOSTATO^NOE KOLI^ESTWO KOMAND M-y MOVET
PEREMESTITX UKAZATELX K L@BOMU\LEMENTU W SPISKE,TAKIM OBRAZOM,WY MOVETE POLU^ITX
gLAWA 9:uNI^TOVENIE I PEREME]ENIE TEKSTA 73L@BOJ\LEMENT W BUFERE.kOGDA NAKONEC UKAZATELX DOSTIGAET POSLEDNEGO\LEMENTA SPISKA,
SLEDU@]AQ KOMANDA M-y SNOWA POME]AET EGO NA PERWYJ\LEMENT.
M-y DWIGAET UKAZATELX NA\POSLEDNEE WOSSTANOWLENIE"PO SPISKU,NO\TO NE MENQET PORQ-
DOK\LEMENTOW,KOTORYE WSEGDA IDUT OT SAMOGO POSLEDNEGO UNI^TOVENIQ DO SAMOGO STAROGO,
KOTOROE E]E HRANITSQ.
M-y MOVET POLU^ITX ^ISLOWOJ ARGUMENT,KOTORYJ GOWORIT,NA SKOLXKO\LEMENTOW WPERED
PRODWINUTX UKAZATELX NA\POSLEDNEE WOSSTANOWLENIE".oTRICATELXNYJ ARGUMENT DWIGAET
\TOT UKAZATELX PO NAPRAWLENI@ K NA^ALU SPISKA;OT NA^ALA SPISKA ON DWIGAET K POSLEDNEMU
\LEMENTU I PRODOLVAET DWIVENIE WPERED OTTUDA.
kAK TOLXKO ISKOMYJ TEKST POME]EN W BUFER,WY MOVETE PREKRATITX ZAPUSKATX KOMANDY
M-y,I TEKST OSTANETSQ TAM.|TO PROSTO KOPIQ\LEMENTA SPISKA UNI^TOVENIQ,PO\TOMU
REDAKTIROWANIE EGO W BUFERE NE IZMENQET SODERVIMOE\TOGO SPISKA.dO TEH POR,POKA NE
DELAETSQ NOWOE UNI^TOVENIE,UKAZATELX NA\POSLEDNEE WOSSTANOWLENIE"OSTAETSQ W TOM VE
SAMOM MESTE W SPISKE UNI^TOVENIJ,TAKIM OBRAZOM,POWTORENIE C-y WOSSTANOWIT E]E ODNU
KOPI@ TOGO VE SAMOGO STAROGO UNI^TOVENIQ.
eSLI WY ZNAETE,SKOLXKO KOMAND M-y NEOBHODIMO NABRATX,^TOBY NAJTI INTERESU@]IJ
WAS TEKST,WY MOVETE WOSSTANOWITX\TOT TEKST ZA ODIN [AG,ISPOLXZUQ C-y S ^ISLOWYM
ARGUMENTOM.C-y S ARGUMENTOM WOSSTANAWLIWAET TEKST,ZAPISANNYJ W SPISKE UNI^TOVE-
NIQ NA ZADANNOE ^ISLO\LEMENTOW NAZAD.tAKIM OBRAZOM,C-u 2 C-y DOSTAET SLEDU@]IJ ZA
POSLEDNIM BLOK UNI^TOVENNOGO TEKSTA.|TO\KWIWALENTNO C-y M-y.C-y c ^ISLOWYM AR-
GUMENTOM NA^INAET PODS^ET OT UKAZATELQ NA\POSLEDNEE WOSSTANOWLENIE"I USTANAWLIWAET
\TOT UKAZATELX NA\LEMENT,KOTORYJ\TA KOMANDA WOSSTANAWLIWAET.
dLINA SPISKA UNI^TOVENIJ UPRAWLQETSQ PEREMENNOJ kill-ring-max;NE MOVET BYTX
ZAPISANO BOLX[E BLOKOW TEKSTA,^EM OPREDELENO\TOJ WELI^INOJ.
dEJSTWITELXNOE SODERVIMOE SPISKA UNI^TOVENIJ HRANITSQ W PEREMENNOJ kill-ring;
WY MOVETE PROSMOTRETX WSE SODERVIMOE SPISKA UNI^TOVENIJ S POMO]X@ KOMANDY C-h v
kill-ring.
9.3 nAKOPLENIE TEKSTA
oBY^NO MY KOPIRUEM ILI PERENOSIM TEKST PUTEM EGO UNI^TOVENIQ I WOSSTANOWLENIQ,
NO SU]ESTWU@T I DRUGIE SPOSOBY,UDOBNYE DLQ KOPIROWANIQ ODNOGO BLOKA TEKSTA WO MNOGIE
MESTA ILI DLQ KOPIROWANIQ MNOGIH RASSEQNNYH BLOKOW TEKSTA W ODNO MESTO.~TOBY SKOPI-
ROWATX ODIN BLOK WO MNOGO MEST,ZAPI[ITE EGO W REGISTR (SM.gLAWA 10 [rEGISTRY],S.77).
zDESX MY OPISYWAEM KOMANDY DLQ NAKOPLENIQ RAZBROSANNYH KUSKOW TEKSTA W BUFER ILI W
FAJL.
M-x append-to-buffer
dOBAWITX OBLASTX W ZADANNYJ BUFER POSLE TO^KI.
M-x prepend-to-buffer
dOBAWITX OBLASTX W ZADANNYJ BUFER PERED TO^KOJ.
M-x copy-to-buffer
kOPIROWATX OBLASTX W ZADANNYJ BUFER,UDALQQ STAROE SODERVIMOE BUFERA.
M-x insert-buffer
wSTAWITX SODERVIMOE ZADANNOGO BUFERA W TEKU]IJ BUFER W TO^KE.
M-x append-to-file
dOBAWITX OBLASTX W KONEC ZADANNOGO FAJLA.
dLQ NAKOPLENIQ TEKSTA W BUFERE ISPOLXZUETSQ M-x append-to-buffer.oNA S^ITYWAET
IMQ BUFERA,A ZATEM WSTAWLQET W\TOT BUFER KOPI@ OBLASTI.eSLI BUFER S TAKIM IMENEM
NE SU]ESTWUET,TO append-to-buffer SOZDAST EGO.tEKST WSTAWLQETSQ W TO MESTO W\TOM
74 rUKOWODSTWO PO GNU EmacsBUFERE,GDE NAHODITSQ TO^KA.eSLI WY ISPOLXZOWALI\TOT BUFER DLQ REDAKTIROWANIQ,
SKOPIROWANNYJ TEKST WSTAWLQETSQ W SEREDINU TEKSTA,GDE OKAZALASX TO^KA.
tO^KA W\TOM BUFERE OSTAETSQ W KONCE KOPIRUEMOGO TEKSTA,TAKIM OBRAZOM,POSLEDO-
WATELXNOE ISPOLXZOWANIE append-to-buffer NAKAPLIWAET TEKST W ZADANNOM BUFERE W TOM
VE SAMOM PORQDKE,W KOTOROM ^ASTI BYLI SKOPIROWANY.sTROGO GOWORQ,append-to-buffer
NE WSEGDA DOBAWLQET K TEKSTU,UVE NAHODQ]EMUSQ W BUFERE | ONA DOBAWLQET,ESLI TO^KA
NAHODITSQ W KONCE\TOGO BUFERA.oDNAKO,ESLI append-to-buffer QWLQETSQ EDINSTWENNOJ
KOMANDOJ,KOTORU@ WY ISPOLXZUETE DLQ IZMENENIQ BUFERA,TO^KA WSEGDA RASPOLOVENA W
KONCE.
M-x prepend-to-buffer PODOBNA append-to-buffer ZA ISKL@^ENIEM TOGO,^TO TO^KA W
DRUGOM BUFERE OSTAETSQ PERED SKOPIROWANNYM TEKSTOM,TAKIM OBRAZOM,POSLEDOWATELXNOE
PRIMENENIE\TOJ KOMANDY DOBAWLQET TEKST W OBRATNOM PORQDKE.M-x copy-to-buffer DEJ-
STWUET TAK VE,ZA ISKL@^ENIEM TOGO,^TO L@BOJ SU]ESTWU@]IJ TEKST W DRUGOM BUFERE
UDALQETSQ,TAK ^TO W BUFERE OSTAETSQ LI[X WNOWX SKOPIROWANNYJ TEKST.
~TOBY WERNUTX NAKOPLENNYJ TEKST IZ DRUGOGO BUFERA,ISPOLXZUJTE KOMANDU M-x
insert-buffer;ONA TAKVE PRINIMAET IMQ BUFERA KAK ARGUMENT.|TA KOMANDA WSTAWLQET
KOPI@ TEKSTA IZ BUFERA S ZADANNYM IMENEM W WYBRANNYJ BUFER.iLI WY MOVETE WYBRATX
DRUGOJ BUFER DLQ REDAKTIROWANIQ,WOZMOVNO,PEREME]AQ WPOSLEDSTWII TEKST IZ NEGO PU-
TEM UNI^TOVENIQ.sM.gLAWA 15 [bUFERY],S.135,DLQ POLU^ENIQ BAZOWOJ INFORMACII O
BUFERAH.
wMESTO NAKOPLENIQ TEKSTA WNUTRI BUFERA Emacs WY MOVETE DOBAWITX TEKST NEPOSRED-
STWENNO W FAJL S POMO]X@ KOMANDY M-x append-to-file,KOTORAQ ISPOLXZUET IMQ FAJLA
W KA^ESTWE ARGUMENTA.oNA DOBAWLQET TEKST OBLASTI W KONEC ZADANNOGO FAJLA.fAJL NA
DISKE IZMENQETSQ SRAZU.
wY DOLVNY ISPOLXZOWATX append-to-file TOLXKO S FAJLAMI,K KOTORYM WY NE OBRA-
]AETESX IZ Emacs.iSPOLXZOWANIE\TOJ KOMANDY DLQ FAJLA,K KOTOROMU OBRATILISX IZ
Emacs,MOVET IZMENITX FAJL BEZ WEDOMA Emacs,^TO MOVET PRIWESTI K POTERE NEKOTORYH
REZULXTATOW WA[EGO REDAKTIROWANIQ.
9.4 pRQMOUGOLXNIKI
kOMANDY DLQ PRQMOUGOLXNIKOW RABOTA@T S PRQMOUGOLXNYMI OBLASTQMI TEKSTA:WSEMI
ZNAKAMI MEVDU OPREDELENNOJ PAROJ STOLBCOW W OPREDELENNOM DIAPAZONE STROK.|TI KO-
MANDY PREDNAZNA^ENY DLQ UNI^TOVENIQ PRQMOUGOLXNIKOW,WOSSTANOWLENIQ UNI^TOVENNYH
PRQMOUGOLXNIKOW,IH O^ISTKI,ZAPOLNENIQ PROBELAMI ILI TEKSTOM,ILI UDALENIQ.kOMAN-
DY DLQ PRQMOUGOLXNIKOW POLEZNY DLQ RABOTY S TEKSTOM W MNOGOKOLONO^NYH FORMATAH I
DLQ PRIWEDENIQ TEKSTA K TAKOMU FORMATU ILI IZWLE^ENIQ IZ NEGO.
kOGDA WAM NUVNO ZADATX PRQMOUGOLXNIK DLQ KOMANDY,KOTORAQ BUDET S NIM RABOTATX,
WY DELAETE\TO,USTANAWLIWAQ METKU W ODNOM UGLU I TO^KU W PROTIWOPOLOVNOM.pRQMO-
UGOLXNIK,OPISANNYJ TAKIM OBRAZOM,NAZYWAETSQ OBLASTX@-PRQMOUGOLXNIKOM,TAK KAK WY
UPRAWLQETE IM PO^TI TAK VE,KAK I OBLASTX@.nO POMNITE,^TO DANNAQ KOMBINACIQ ZNA^E-
NIJ TO^KI I METKI MOVET BYTX INTERPRETIROWANA I KAK OBLASTX,I KAK PRQMOUGOLXNIK W
ZAWISIMOSTI OT KOMANDY,KOTORAQ IH ISPOLXZUET.
eSLI TO^KA I METKA NAHODQTSQ NA ODNOM STOLBCE,TO PRQMOUGOLXNIK,KOTORYJ ONI OGRA-
NI^IWA@T,PUST.eSLI ONI NAHODQTSQ NA ODNOJ STROKE,TO PRQMOUGOLXNIK IMEET WYSOTU W
ODNU STROKU.|TA NESIMMETRI^NOSTX MEVDU STROKAMI I STOLBCAMI PROISHODIT IZ TOGO,^TO
TO^KA (I METKA) RASPOLAGAETSQ MEVDU DWUH STOLBCOW,NO WNUTRI STROKI.
C-x r k uNI^TOVITX TEKST OBLASTI-PRQMOUGOLXNIKA,SOHRANQQ EGO SODERVIMOE W KA^E-
STWE\POSLEDNEGO UNI^TOVENNOGO PRQMOUGOLXNIKA"(kill-rectangle).
C-x r d uDALITX TEKST OBLASTI-PRQMOUGOLXNIKA (delete-rectangle).
gLAWA 9:uNI^TOVENIE I PEREME]ENIE TEKSTA 75C-x r y wOSSTANOWITX POSLEDNIJ UNI^TOVENNYJ PRQMOUGOLXNIK,POME]AQ EGO WERHNIJ
LEWYJ UGOL W TO^KE (yank-rectangle).
C-x r o wSTAWITX PUSTOE MESTO,ZAPOLNQQ PROSTRANSTWO OBLASTI-PRQMOUGOLXNIKA
(open-rectangle).pREDYDU]EE SODERVIMOE OBLASTI-PRQMOUGOLXNIKA
WYTALKIWAETSQ WPRAWO.
M-x clear-rectangle
o^ISTITX OBLASTX-PRQMOUGOLXNIK,ZAMENQQ EE SODERVIMOE PROBELAMI.
M-x delete-whitespace-rectangle
uDALITX PROBELXNYE ZNAKI W KAVDOJ STROKE ZADANNOGO PRQMOUGOLXNIKA,NA^I-
NAQ S EGO SAMOGO LEWOGO STOLBCA.
C-x r t STROKA
hRETi
wSTAWITX STROKU W KAVDU@ STROKU OBLASTI-PRQMOUGOLXNIKA (string-
rectangle).
oPERACII,RABOTA@]IE S PRQMOUGOLXNIKAMI,DELQTSQ NA DWA KLASSA:KOMANDY UDALENIQ
I WSTAWKI PRQMOUGOLXNIKOW I KOMANDY DLQ PUSTYH PRQMOUGOLXNIKOW.
sU]ESTWUET DWA SPOSOBA IZBAWITXSQ OT TEKSTA W PRQMOUGOLXNIKE:WY MOVETE SBROSITX
(UDALITX) EGO ILI ZAPISATX EGO KAK\POSLEDNIJ UNI^TOVENNYJ"PRQMOUGOLXNIK.dLQ\TO-
GO ISPOLXZU@TSQ DWE KOMANDY C-x r d (delete-rectangle) I C-x r k (kill-rectangle).w
OBOIH SLU^AQH ^ASTX KAVDOJ STROKI,KOTORAQ POPALA WNUTRX GRANIC PRQMOUGOLXNIKA,UDA-
LQETSQ,ZASTAWLQQ POSLEDU@]IJ TEKST W STROKE (ESLI ON SU]ESTWUET) SDWIGATXSQ WLEWO.
zAMETXTE,^TO\UNI^TOVENIE"PRQMOUGOLXNIKA NE ESTX UNI^TOVENIE W OBY^NOM PONI-
MANII;\TOT PRQMOUGOLXNIK HRANITSQ NE W SPISKE UNI^TOVENIJ,A W SPECIALXNOM MESTE,
KOTOROE W SOSTOQNII ZAPISATX TOLXKO SAMOE POSLEDNEE UNI^TOVENIE PRQMOUGOLXNIKA.|TO
PROISHODIT IZ-ZA TOGO,^TO WOSSTANOWLENIE PRQMOUGOLXNIKA NASTOLXKO OTLI^AETSQ OT WOS-
STANOWLENIQ LINEJNOGO TEKSTA,^TO DLQ\TOGO DOLVNY ISPOLXZOWATXSQ DRUGIE KOMANDY WOS-
STANOWLENIQ,I W\TOM SLU^AE TRUDNO PRIPISATX SMYSL KOMANDE,WYDA@]EJ BOLEE RANNIE
UNI^TOVENIQ.
~TOBY WSTAWITX POSLEDNIJ UNI^TOVENNYJ PRQMOUGOLXNIK,NABERITE C-x r y (yank-
rectangle).wOSSTANOWLENIE PRQMOUGOLXNIKA |\TO PROTIWOPOLOVNOSTX UNI^TOVENIQ.
lEWYJ WERHNIJ UGOL ZADAETSQ POLOVENIEM TO^KI.tUDA POME]AETSQ PERWAQ STROKA PRQMO-
UGOLXNIKA,WTORAQ STROKA PRQMOUGOLXNIKA POME]AETSQ W POZICII TO^KI,NO STROKOJ NIVE,
I TAK DALEE.~ISLO ZATRONUTYH STROK OPREDELQETSQ WYSOTOJ ZAPISANNOGO PRQMOUGOLXNIKA.
wY MOVETE PREWRATITX SPISKI IZ ODNOJ KOLONKI W SPISKI IZ DWUH KOLONOK,ISPOLXZUQ
UNI^TOVENIE I WOSSTANOWLENIE PRQMOUGOLXNIKOW;UNI^TOVXTE WTORU@ POLOWINU SPISKA KAK
PRQMOUGOLXNIK I ZATEM WOSSTANOWITE EGO RQDOM S PERWOJ STRO^KOJ SPISKA.sM.rAZDEL 30.9
[Two-Column],S.336,DRUGOJ SPOSOB REDAKTIROWATX DWUHKOLONO^NYJ TEKST.
pRQMOUGOLXNIKI TAKVE MOGUT BYTX SKOPIROWANY W REGISTRY I IZ REGISTROW S POMO]X@
C-x r r r I C-x r i r.sM.rAZDEL 10.3 [rEGISTRY DLQ PRQMOUGOLXNIKOW],S.78.
eSTX DWE KOMANDY DLQ RABOTY S PUSTYMI PRQMOUGOLXNIKAMI:M-x clear-rectangle,
^TOBY RASPISATX PROBELAMI SU]ESTWU@]IJ TEKST,I C-x r o (open-rectangle),^TOBY
WSTAWITX PUSTOJ PRQMOUGOLXNIK.o^ISTKA PRQMOUGOLXNIKA\KWIWALENTNA EGO UDALENI@
S POSLEDU@]EJ WSTAWKOJ NA EGO MESTO PUSTOGO PRQMOUGOLXNIKA TAKOGO VE RAZMERA.
kOMANDA M-x delete-whitespace-rectangle UDALQET GORIZONTALXNOE PUSTOE PROSTRAN-
STWO,NA^INAQ S OPREDELENNOGO STOLBCA.|TO OTNOSITSQ K KAVDOJ STROKE W PRQMOUGOLXNIKE,
A STOLBEC ZADAETSQ LEWYM KRAEM PRQMOUGOLXNIKA.pRAWYJ KRAJ PRQMOUGOLXNIKA NE IMEET
ZNA^ENIQ DLQ\TOJ KOMANDY.
kOMANDA C-x r t (M-x string-rectangle) ZAME]AET PRQMOUGOLXNIK ZADANNOJ STROKOJ
(WSTAWLQQ EE ODIN RAZ W KAVDU@ STROKU).{IRINA STROKI NE OBQZANA SOWPADATX S [IRINOJ
PRQMOUGOLXNIKA.eSLI [IRINA STROKI MENX[E,TEKST POSLE PRQMOUGOLXNIKA SME]AETSQ
WLEWO;ESLI STROKA [IRE PRQMOUGOLXNIKA,TEKST POSLE NEGO SME]AETSQ WPRAWO.
76 rUKOWODSTWO PO GNU Emacs
gLAWA 10:rEGISTRY 7710 rEGISTRY
rEGISTRY Emacs |\TO MESTA,KUDA WY MOVETE ZAPISATX TEKST ILI POZICII DLQ DALX-
NEJ[EGO ISPOLXZOWANIQ.tEKST ILI PRQMOUGOLXNIK,ODNAVDY ZAPISANNYJ W REGISTR,MOVET
BYTX SKOPIROWAN W BUFER ODIN ILI NESKOLXKO RAZ;POZICI@,ZAPISANNU@ W REGISTR,MOVNO
ODIN ILI NESKOLXKO RAZ ISPOLXZOWATX DLQ PEREDWIVENIQ K NEJ TO^KI.
kAVDYJ REGISTR IMEET IMQ,SOSTOQ]EE IZ ODINO^NOGO ZNAKA.rEGISTR MOVET HRANITX
KUSOK TEKSTA,POZICI@,PRQMOUGOLXNIK,KONFIGURACI@ OKNA ILI IMQ FAJLA,NO TOLXKO ^TO-
TO ODNO IZ PERE^ISLENNOGO W KAVDYJ KONKRETNYJ MOMENT.wSQKIJ RAZ,KOGDA WY SOHRANQETE
^TO-TO W REGISTRE,ONO OSTAETSQ TAM DO TEH POR,POKA WY NE POMESTITE W\TOT REGISTR ^TO-TO
E]E.~TOBY UZNATX,^TO SODERVIT REGISTR r,ISPOLXZUJTE M-x view-register.
M-x view-register hRETi r
wYDATX OPISANIE TOGO,^TO SODERVIT REGISTR r.
10.1 zAPISX POZICIJ W REGISTRY
sOHRANENIE POZICII ZAPISYWAET MESTOPOLOVENIE W BUFERE,TAK ^TO WY MOVETE WERNUTX-
SQ TUDA POZVE.pERENOS W ZAPISANNU@ POZICI@ ZANOWO WYBIRAET BUFER I PEREDWIGAET TO^KU
W\TO MESTO.
C-x r h SPCi r
zAPISATX POLOVENIE TO^KI W REGISTR r (point-to-register).
C-x r j r pEREJTI W POZICI@,ZAPISANNU@ W REGISTRE r (jump-to-register).
~TOBY ZAPISATX TEKU]EE POLOVENIE TO^KI W REGISTR,WYBERITE IMQ r I NABERITE C-x r
h SPCi r.rEGISTR r SOHRANQET ZAPISANNOE TAKIM OBRAZOM POLOVENIE DO TEH POR,POKA WY NE
ZAPI[ETE W\TOT REGISTR ^TO-TO DRUGOE.
kOMANDA C-x j r PEREDWIGAET TO^KU W POZICI@,ZAPISANNU@ W REGISTRE r.rEGISTR NE
ZATRAGIWAETSQ,ON PRODOLVAET HRANITX TU VE SAMU@ POZICI@.wY MOVETE PEREJTI W ODNU
I TU VE POZICI@,ISPOLXZUQ ODIN I TOT VE REGISTR,L@BOE ^ISLO RAZ.
eSLI WY ISPOLXZUETE C-x r j DLQ PEREHODA K ZAPISANNOJ POZICII,NO BUFER,W KOTOROM
ONA BYLA ZAPISANA,UVE UNI^TOVEN,C-x r j PYTAETSQ SNOWA SOZDATX BUFER,OBRA]AQSX K
TOMU VE FAJLU.kONE^NO,\TO RABOTAET TOLXKO DLQ BUFEROW,KOTORYE OBRA]ALISX K FAJLAM.
10.2 zAPISX TEKSTA W REGISTRY
eSLI WY ZAHOTITE WSTAWITX KOPI@ ODNOGO I TOGO VE KUSKA TEKSTA NESKOLXKO RAZ,ISPOLX-
ZOWANIE SPISKA UNI^TOVENIJ MOVET OKAZATXSQ NEUDOBNYM,TAK KAK KAVDOE POSLEDU@]EE
UNI^TOVENIE SDWIGAET KUSOK TEKSTA WSE DALX[E WGLUBX SPISKA.aLXTERNATIWOJ\TOMU ME-
TODU QWLQETSQ SOHRANENIE TEKSTA W REGISTRE S POSLEDU@]IM EGO WOSSTANOWLENIEM.
C-x r s r kOPIROWATX OBLASTX W REGISTR r (copy-to-register).
C-x r i r wSTAWITX TEKST IZ REGISTRA r (insert-register).
C-x r s r ZAPISYWAET KOPI@ TEKSTA OBLASTI W REGISTR S IMENEM r.zAPU]ENNAQ S ^ISLO-
WYM ARGUMENTOM,C-x r s r KROME TOGO UDALQET TEKST IZ BUFERA.
C-x r i r WSTAWLQET W BUFER TEKST IZ REGISTRA r.oBY^NO\TA KOMANDA OSTAWLQET TO^KU
PERED TEKSTOM,A METKU RASPOLAGAET POSLE NEGO,NO S ^ISLOWYM ARGUMENTOM (C-u),NAOBOROT,
TO^KU STAWIT POSLE TEKSTA,A METKU PERED NIM.
78 rUKOWODSTWO PO GNU Emacs10.3 zAPISX PRQMOUGOLXNIKOW W REGISTRY
rEGISTR MOVET SODERVATX WMESTO LINEJNOGO TEKSTA PRQMOUGOLXNIK.pRQMOUGOLXNIKI
PREDSTAWLQ@TSQ W WIDE SPISKA STROK.sM.rAZDEL 9.4 [pRQMOUGOLXNIKI],S.74,DLQ POLU^E-
NIQ OSNOWNOJ INFORMACII PO PRQMOUGOLXNIKAM I O TOM,KAK ONI OPREDELQ@TSQ W BUFERE.
C-x r r r kOPIRUET OBLASTX-PRQMOUGOLXNIK W REGISTR r (copy-region-to-rectangle).s
^ISLOWYM ARGUMENTOM E]E I UDALQET EGO.
C-x r i r wSTAWLQET PRQMOUGOLXNIK,KOTORYJ ZAPISAN W REGISTRE r (ESLI TOT SODERVIT
PRQMOUGOLXNIK) (insert-register).
kOMANDA C-x r i r WSTAWLQET STROKU TEKSTA,ESLI REGISTR SODERVIT STROKU,I WSTAWLQET
PRQMOUGOLXNIK,ESLI REGISTR SODERVIT PRQMOUGOLXNIK.
sMOTRITE TAKVE KOMANDU sort-columns,KOTORU@ MOVNO RASSMATRIWATX KAK KOMANDU
SORTIROWKI PRQMOUGOLXNIKA.sM.rAZDEL 30.7 [sORTIROWKA],S.333.
10.4 zAPISX KONFIGURACII OKON W REGISTRY
wY MOVETE ZAPISATX W REGISTR KONFIGURACI@ OKON W WYBRANNOM FREJME ILI DAVE KON-
FIGURACI@ WSEH OKON WO WSEH FREJMAH I POZDNEE WOSSTANOWITX\TU KONFIGURACI@.
C-x r w r zAPISATX SOSTOQNIE OKON WYBRANNOGO FREJMA W REGISTR r (window-
configuration-to-register).
C-x r f r zAPISATX SOSTOQNIE WSEH FREJMOW,WKL@^AQ WSE IH OKNA,W REGISTR r (frame-
configuration-to-register).
iSPOLXZUJTE C-x r j r DLQ WOSSTANOWLENIQ KONFIGURACII OKON ILI FREJMOW.|TO TA VE
KOMANDA,^TO ISPOLXZUETSQ DLQ WOSSTANOWLENIQ POZICII KURSORA.kOGDA WY WOSSTANAWLIWA-
ETE KONFIGURACI@ FREJMOW,WSE SU]ESTWU@]IE FREJMY,NE WHODQ]IE W\TU KONFIGURACI@,
STANOWQTSQ NEWIDIMYMI.eSLI WY WMESTO\TOGO HOTITE UDALITX\TI FREJMY,ISPOLXZUJTE
C-u C-x r j r.
10.5 hRANENIE ^ISEL W REGISTRAH
sU]ESTWU@T KOMANDY DLQ ZAPISI ^ISLA W REGISTR,WSTAWKI EGO W BUFER W DESQTI^NOM
WIDE I DLQ UWELI^ENIQ\TOGO ^ISLA.|TI KOMANDY MOGUT BYTX POLEZNY W MAKROSAH KLAWIA-
TURY (SM.rAZDEL 31.3 [mAKROSY KLAWIATURY],S.353).
C-u ^ISLO C-x r n REG
zAPISATX ^ISLO W REGISTR REG (number-to-register).
C-u ^ISLO C-x r + REG
uWELI^ITX ^ISLO W REGISTRE REG NA ZADANNOE ^ISLO (increment-register).
C-x r g REG
wSTAWITX ^ISLO IZ REGISTRA REG W BUFER.
C-x r g |\TO TA VE KOMANDA,^TO ISPOLXZUETSQ DLQ WSTAWKI W BUFER SODERVIMOGO
REGISTROW DRUGOGO TIPA.
gLAWA 10:rEGISTRY 7910.6 zAPISX IMEN FAJLOW W REGISTRY
eSLI WY ^ASTO OBRA]AETESX K OPREDELENNYM IMENAM FAJLOW,WAM BUDET UDOBNO POME-
STITX\TI IMENA W REGISTRY.wOT KOD NA lISPE,ISPOLXZUEMYJ DLQ ZAPISI IMENI FAJLA W
REGISTR:
(set-register?r'(file.IMQ))
nAPRIMER,
(set-register?z'(file."/gd/gnu/emacs/19.0/src/ChangeLog"))
POME]AET POKAZANNOE IMQ FAJLA W REGISTR`z'.
~TOBY OBRATITXSQ K FAJLU,^XE IMQ NAHODITSQ W REGISTRE r,NABERITE C-x r j r.(|TO
TA VE KOMANDA,^TO ISPOLXZUETSQ DLQ PEREHODA K ZAPISANNOJ POZICII ILI WOSSTANOWLENIQ
KONFIGURACII FREJMOW.)
10.7 zAKLADKI
zAKLADKI OT^ASTI POHOVI NA REGISTRY TEM,^TO ONI ZAPISYWA@T POZICII,K KOTORYM
WY MOVETE PEREJTI.w OTLI^IE OT REGISTROW,ONI IME@T DLINNYE IMENA I SOHRANQ@TSQ
AWTOMATI^ESKI OT ODNOGO SEANSA Emacs DO DRUGOGO.{ABLONNOE PRIMENENIE ZAKLADOK |
ZAPISX MESTA\GDE WY ^ITALI"W RAZLI^NYH FAJLAH.
C-x r m
hRETi
zALOVITX ZAKLADKU W TEKU]EM FAJLE W POZICII TO^KI.
C-x r m ZAKLADKA
hRETi
zALOVITX W TO^KE ZAKLADKU S IMENEM ZAKLADKA (bookmark-set).
C-x r b ZAKLADKA
h RETi
pEREJTI K ZAKLADKE S IMENEM ZAKLADKA (bookmark-jump).
C-x r l pERE^ISLITX WSE ZAKLADKI (list-bookmarks).
M-x bookmark-save
sOHRANITX WSE TEKU]IE ZNA^ENIQ ZAKLADOK W FAJLE ZAKLADOK,ISPOLXZUEMOM PO
UMOL^ANI@.
kAK PRAWILO ZAKLADKI ISPOLXZU@TSQ DLQ ZAPISI ODNOJ TEKU]EJ POZICII W KAVDOM IZ
NESKOLXKIH FAJLOW.tAKIM OBRAZOM,KOMANDA C-x r m,USTANAWLIWA@]AQ ZAKLADKU,PO UMOL-
^ANI@ ISPOLXZUET W KA^ESTWE IMENI ZAKLADKI IMQ FAJLA,K KOTOROMU WY OBRA]AETESX W
DANNYJ MOMENT.eSLI WY NAZYWAETE KAVDU@ ZAKLADKU PO IMENI FAJLA,NA KOTORYJ ONA
UKAZYWAET,TO SMOVETE UDOBNO POWTORNO OBRATITXSQ K L@BOMU IZ\TIH FAJLOW S POMO]X@
C-x r b I W TO VE WREMQ PEREMESTITXSQ K POZICII ZAKLADKI.
~TOBY OTOBRAZITX SPISOK WSEH WA[IH ZAKLADOK W OTDELXNOM BUFERE,NABERITE C-x r l
(list-bookmarks).eSLI WY PEREKL@^ITESX W\TOT BUFER,WY SMOVETE OTREDAKTIROWATX
OPREDELENIQ ZAKLADOK ILI DATX IM OPISANIQ.nABERITE W\TOM BUFERE C-h m DLQ POLU^ENIQ
BOLEE PODROBNYH SWEDENIJ O SPECIALXNYH KOMANDAH REDAKTIROWANIQ W NEM.
kOGDA WY UNI^TOVAETE Emacs,ON PREDLOVIT WAM SOHRANITX ZNA^ENIQ ZAKLADOK W WA-
[EM FAJLE ZAKLADOK PO UMOL^ANI@,`~/.emacs.bmk',ESLI WY IZMENQLI KAKIE-LIBO IZ\TIH
ZNA^ENIJ.wY TAKVE MOVETE SOHRANITX ZAKLADKI W L@BOE WREMQ S POMO]X@ KOMANDY M-x
bookmark-save.kOMANDY,RABOTA@]IE S ZAKLADKAMI,AWTOMATI^ESKI ZAGRUVA@T WA[FAJL
ZAKLADOK PO UMOL^ANI@.bLAGODARQ\TIM SOHRANENIQM I ZAGRUZKAM ZAKLADKI PEREHODQT OT
ODNOGO SEANSA Emacs K DRUGOMU.
eSLI WY USTANOWITE PEREMENNU@ bookmark-save-flag W ZNA^ENIE 1,TO KAVDAQ KOMANDA,
USTANAWLIWA@]AQ ZAKLADKU,TAKVE BUDET ZAPISYWATX WA[I ZAKLADKI;PRI\TOM WY NE POTE-
RQETE ZNA^ENIQ ZAKLADOK,DAVE ESLI Emacs OSTANAWLIWAETSQ AWARIJNO.(|TO ZNA^ENIE,ESLI
ONO QWLQETSQ ^ISLOM,GOWORIT,SKOLXKO IZMENENIJ ZAKLADOK PROHODIT MEVDU SOHRANENIQMI.)
80 rUKOWODSTWO PO GNU EmacszNA^ENIQ POZICIJ W ZAKLADKAH SOHRANQ@TSQ WMESTE S OKRUVA@]IM KONTEKSTOM,TAK ^TO
bookmark-jump MOVET NAJTI PRAWILXNU@ POZICI@,DAVE ESLI FAJL BYL SLEGKA IZMENEN.
pEREMENNAQ bookmark-search-size GOWORIT,SKOLXKO ZNAKOW KONTEKSTA PO OBE STORONY OT
POZICII ZAKLADKI NUVNO ZAPISYWATX.
wOT NESKOLXKO DOPOLNITELXNYH KOMAND DLQ RABOTY S ZAKLADKAMI:
M-x bookmark-load
hRETi IMQ-FAJLA hRETi
zAGRUZITX FAJL S IMENEM IMQ-FAJLA,SODERVA]IJ SPISOK ZNA^ENIJ ZAKLADOK.
wY MOVETE ISPOLXZOWATX\TU KOMANDU,KAK I KOMANDU bookmark-write,DLQ
RABOTY S DRUGIMI FAJLAMI ZAKLADOK POMIMO WA[EGO FAJLA ZAKLADOK PO UMOL-
^ANI@.
M-x bookmark-write h RETi IMQ-FAJLA hRETi
sOHRANITX WSE TEKU]IE ZNA^ENIQ ZAKLADOK W FAJLE IMQ-FAJLA.
M-x bookmark-delete h RETi ZAKLADKA hRETi
uDALITX ZAKLADKU S IMENEM ZAKLADKA.
M-x bookmark-insert-location h RETi ZAKLADKA hRETi
wSTAWITX W BUFER IMQ FAJLA,NA KOTORYJ UKAZYWAET ZAKLADKA ZAKLADKA.
M-x bookmark-insert h RETi ZAKLADKA hRETi
wSTAWITX W BUFER SODERVIMOE FAJLA,NA KOTORYJ UKAZYWAET ZAKLADKA ZAKLAD-
KA.
gLAWA 11:uPRAWLENIE IZOBRAVENIEM 8111 uPRAWLENIE IZOBRAVENIEM
tAK KAK W OKNE POME]AETSQ TOLXKO ^ASTX BOLX[OGO BUFERA,Emacs STARAETSQ POKAZYWATX
TU ^ASTX,KOTORAQ MOVET BYTX INTERESNA.kOMANDY UPRAWLENIQ IZOBRAVENIEM POZWOLQ@T
WAM UKAZATX,KAKOJ IMENNO FRAGMENT TEKSTA WY HOTITE WIDETX,I KAK EGO OTOBRAVATX.
11.1 pROKRUTKA
eSLI BUFER SODERVIT TEKST,KOTORYJ NE UME]AETSQ W PREDELAH OKNA,OTOBRAVA@]EGO
\TOT BUFER,TO Emacs POKAZYWAET NEKU@ NEPRERYWNU@ ^ASTX\TOGO TEKSTA.pOKAZANNYJ
RAZDEL WSEGDA SODERVIT TO^KU.
pROKRUTKA OZNA^AET PEREDWIVENIE TEKSTA WWERH ILI WNIZ W OKNE TAK,^TO STANOWQTSQ
WIDIMYMI RAZLI^NYE EGO ^ASTI.pROKRUTKA WPERED OZNA^AET,^TO TEKST DWIGAETSQ WWERH,
A NOWYJ TEKST POQWLQETSQ SNIZU.pROKRUTKA NAZAD DWIGAET TEKST WNIZ,A NOWYJ TEKST
POQWLQETSQ SWERHU.
pROKRUTKA PROISHODIT AWTOMATI^ESKI,ESLI WY SDWIGAETE TO^KU ZA WERHN@@ ILI NIV-
N@@ GRANICU OKNA.wY MOVETE TAKVE QWNO ZATREBOWATX PROKRUTKU PRI POMO]I KOMAND IZ
\TOGO RAZDELA.
C-l o^ISTITX\KRAN I WOSSTANOWITX IZOBRAVENIE,SDWIGAQ PO WERTIKALI WYBRANNOE
OKNO K CENTRALXNOJ TO^KE W PREDELAH OKNA (recenter).
C-v
hNEXTi pROKRUTITX WPERED (NA ODNO OKNO ILI NA OPREDELENNOE ^ISLO STROK) (scroll-
up).
M-v
h PRIORi pROKRUTITX NAZAD (scroll-down).
ARG C-l pROKRUTITX TAKIM OBRAZOM,^TO TO^KA OKAZYWAETSQ NA STROKE ARG (recenter).
C-M-l pROKRUTITX\WRISTI^ESKI,^TOBY WYWESTI NA\KRAN POLEZNU@ INFORMACI@
(reposition-window).
oSNOWNOJ KOMANDOJ PROKRUTKI QWLQETSQ C-l (recenter) BEZ ARGUMENTA.oNA POLNOSTX@
O^I]AET\KRAN I WOSSTANAWLIWAET IZOBRAVENIE WO WSEH OKNAH.kROME TOGO,ONA PROKRU^I-
WAET WYBRANNOE OKNO TAKIM OBRAZOM,^TO TO^KA RASPOLAGAETSQ POSEREDINE OT NA^ALA OKNA.
kOMANDY PROKRUTKI C-v I M-v POZWOLQ@T WAM DWIGATX WESX TEKST W OKNE WWERH ILI WNIZ
NA NESKOLXKO STROK.C-v (scroll-up) S ARGUMENTOM POKAZYWAET WAM ZADANNOE KOLI^ESTWO
STROK,NAHODQ]IHSQ ZA NIVNEJ GRANICEJ OKNA,SDWIGAQ TEKST I TO^KU WWERH WMESTE,KAK C-l.
C-v S OTRICATELXNYM ARGUMENTOM POKAZYWAET WAM BOLX[E STROK,NAHODQ]IHSQ ZA WERHNEJ
GRANICEJ OKNA.M-v (scroll-down) PODOBNA C-v,NO DWIGAET W OBRATNOM NAPRAWLENII.fUNK-
CIONALXNYE KLAWI[I hNEXTi I hPRIORi\KWIWALENTNY C-v I M-v.
iMENA KOMAND PROKRUTKI OSNOWANY NA NAPRAWLENII,W KOTOROM DWIVETSQ TEKST W OKNE.
tAKIM OBRAZOM,KOMANDA PROKRUTKI WPERED NAZYWAETSQ scroll-up,POTOMU ^TO ONA PEREME-
]AET TEKST WWERH PO\KRANU.
~TOBY PRO^ITATX BUFER PO CELOMU OKNU,ISPOLXZUJTE C-v BEZ ARGUMENTA.|TA KOMANDA
BERET POSLEDNIE DWE STROKI,NAHODQ]IESQ WNIZU OKNA,I STAWIT IH W NA^ALO,I ZA NIMI DALEE
SLEDUET PO^TI WSE OKNO STROK,NEWIDIMYH RANEE.eSLI TO^KA NAHODILASX W TEKSTE,U[ED-
[EM ZA WERHNIJ KRAJ OKNA,TO ONA PEREDWIGAETSQ W NOWU@ WER[INU OKNA.M-v BEZ ARGUMENTA
DWIGAET TEKST W OBRATNOM NAPRAWLENII S ANALOGI^NYM PEREKRYWANIEM.kOLI^ESTWO PERE-
KRYWA@]IHSQ STROK PRI C-v ILI M-v UPRAWLQETSQ PEREMENNOJ next-screen-context-line,
PO UMOL^ANI@ ONO RAWNO DWUM.
nEKOTORYM POLXZOWATELQM NRAWITSQ,KOGDA KOMANDY PROKRUTKI WSEGO OKNA SOHRANQ@T
TO^KU NA ODNOJ STROKE\KRANA.~TOBY WKL@^ITX TAKOE POWEDENIE,USTANOWITE PEREMENNU@
82 rUKOWODSTWO PO GNU Emacsscroll-preserve-screen-position NE RAWNOJ nil.tAKOJ REVIM UDOBEN DLQ PROSMOTRA
FAJLOW PUTEM PROKRUTKI PO CELOMU\KRANU;ESLI WY WERNETESX NA\KRAN,S KOTOROGO NA^ALI,
TO^KA WERNETSQ NA NA^ALXNU@ STROKU.oDNAKO,\TOT REVIM NEUDOBEN,KOGDA WY PEREME]AE-
TESX NA SLEDU@]IJ\KRAN,^TOBY PEREDWINUTX TUDA TO^KU.
dRUGOJ SPOSOB WYPOLNITX PROKRUTKU |ISPOLXZOWATX KOMANDU C-l S ^ISLOWYM ARGUMEN-
TOM.C-l S ZADANNYM ARGUMENTOM NE O^I]AET\KRAN,ONA TOLXKO PROKRU^IWAET WYBRANNOE
OKNO.s POLOVITELXNYM ARGUMENTOM n ONA PEREME]AET TEKST TAK,^TOBY USTANOWITX TO^KU
NA n STROK WNIZ OT WER[INY.aRGUMENT,RAWNYJ NUL@,USTANAWLIWAET TO^KU NA SAMU@
WERHN@@ STROKU.tO^KA NE DWIGAETSQ PO OTNO[ENI@ K TEKSTU;SKOREE,TEKST I TO^KA DWIGA-
@TSQ NA\KRANE VESTKO SWQZANNYE WMESTE.C-l S OTRICATELXNYM ARGUMENTOM USTANAWLIWAET
TO^KU NA ZADANNOE ^ISLO STROK WY[E OT KONCA OKNA.nAPRIMER,C-u - 1 C-l USTANAWLIWAET
TO^KU NA NIVNEJ STROKE,A C-u - 5 C-l USTANAWLIWAET EE NA PQTX STROK WY[E KONCA OKNA.
pROSTO C-u W KA^ESTWE ARGUMENTA W C-u C-l PROKRU^IWAET TO^KU K CENTRU\KRANA.
kOMANDA C-M-l (reposition-window) PROKRU^IWAET TEKU]EE OKNO\WRISTI^ESKI,TAK,
^TOBY WYWESTI NA\KRAN POLEZNU@ INFORMACI@.nAPRIMER,W FAJLE S PROGRAMMOJ NA
lISPE\TA KOMANDA PYTAETSQ RAZMESTITX NA\KRANE WSE TEKU]EE OPREDELENIE FUNKCII,ESLI
\TO WOZMOVNO.
pROKRUTKA PROISHODIT AWTOMATI^ESKI,ESLI WO WREMQ PROSMOTRA TEKSTA TO^KA U[LA
IZ WIDIMOJ EGO ^ASTI.oBY^NO AWTOMATI^ESKAQ PROKRUTKA CENTRIRUET TO^KU W OKNE PO
WERTIKALI.oDNAKO,ESLI WY USTANOWITE PEREMENNU@ scroll-conservatively RAWNOJ MA-
LENXKOMU ^ISLU n,TOGDA ESLI WY SDWINETE TO^KU ZA\KRAN LI[X NEMNOGO | MENX[E,^EM
NA n STROK,| Emacs PROKRUTIT TEKST ROWNO NA STOLXKO,^TOBY WERNUTX TO^KU NA\KRAN.
pO UMOL^ANI@ ZNA^ENIE scroll-conservatively RAWNO NUL@.
pEREMENNAQ scroll-margin OPREDELQET,NASKOLXKO BLIZKO MOVET PODOJTI TO^KA K WER-
[INE ILI K NIZU OKNA.eE ZNA^ENIE |\TO ^ISLO\KRANNYH STROK;ESLI TO^KA PODHODIT NA
ZADANNOE ^ISLO STROK K WER[INE ILI K NIZU OKNA,Emacs ZANOWO CENTRIRUET\TO OKNO.pO
UMOL^ANI@ scroll-margin RAWNA 0.
11.2 gORIZONTALXNAQ PROKRUTKA
gORIZONTALXNAQ PROKRUTKA |\TO SDWIG WSEH STROK W OKNE W STORONU,TAK ^TO NEKOTORYJ
TEKST OKOLO LEWOGO KRAQ STANOWITSQ NE WIDEN SOWSEM.
C-x < pROKRU^IWAET TEKST TEKU]EGO OKNA WLEWO (scroll-left).
C-x > pROKRU^IWAET WPRAWO (scroll-right).
kOGDA OKNO PROKRU^IWAETSQ PO GORIZONTALI,STROKI TEKSTA STANOWQTSQ USE^ENNYMI,A
NE PRODOLVENNYMI.(SM.rAZDEL 4.8 [sTROKI PRODOLVENIQ],S.40);ZNAK`$'POQWLQETSQ W
PERWOM STOLBCE,ESLI ESTX TEKST,USE^ENNYJ SLEWA,I W POSLEDNEM STOLBCE,ESLI SU]ESTWUET
TEKST,USE^ENNYJ SPRAWA.
kOMANDA C-x < (scroll-left) S ARGUMENTOM n PROKRU^IWAET WYBRANNOE OKNO WLEWO NA
n STOLBCOW.oNA PEREME]AET ^ASTX NA^ALA KAVDOJ STROKI ZA LEWYJ KRAJ OKNA.bEZ AR-
GUMENTA,ONA PROKRU^IWAET PO^TI NA POLNU@ [IRINU OKNA (BEZ DWUH STOLBCOW,ESLI BYTX
TO^NYM).
C-x > (scroll-right) PROKRU^IWAET ANALOGI^NO,NO TOLXKO WPRAWO.oKNO NE MOVET BYTX
PROKRU^ENO DALX[E WPRAWO,ESLI ONO OTOBRAVENO NORMALXNO (KAVDAQ STROKA NA^INAETSQ S
LEWOGO KRAQ OKNA).pOPYTKA SDELATX\TO NE BUDET IMETX REZULXTATA.|TO ZNA^IT,^TO
WY NE OBQZANY TO^NO WY^ISLQTX ARGUMENT DLQ C-x >;L@BOE DOSTATO^NOE BOLX[OE ^ISLO
WOSSTANOWIT NORMALXNOE IZOBRAVENIE.
wY MOVETE POTREBOWATX AWTOMATI^ESKOJ GORIZONTALXNOJ PROKRUTKI,WKL@^IW REVIM
Hscroll.kOGDA\TOT REVIM ZADEJSTWOWAN,Emacs GORIZONTALXNO PROKRU^IWAET OKNO WSQKIJ
RAZ,KOGDA\TO NEOBHODIMO DLQ SOHRANENIQ TO^KI WIDIMOJ I RASPOLOVENNOJ NE SLI[KOM
gLAWA 11:uPRAWLENIE IZOBRAVENIEM 83DALEKO OT LEWOGO ILI PRAWOGO KRAQ.kOMANDA DLQ WKL@^ENIQ I WYKL@^ENIQ\TOGO REVIMA
|M-x hscroll-mode.
11.3 rEVIM Follow
rEVIM Follow |\TO WTOROSTEPENNYJ REVIM,KOTORYJ DELAET TAK,^TO DWA OKNA,POKA-
ZYWA@]IE ODIN I TOT VE BUFER,PROKRU^IWA@TSQ KAK ODNO BOLX[OE\WIRTUALXNOE OKNO".
~TOBY ISPOLXZOWATX REVIM Follow,PEREJDITE WO FREJM S ODNIM OKNOM,RAZBEJTE EGO NA
DWA PRIMYKA@]IH OKNA S POMO]X@ C-x 3 I ZATEM NAPE^ATAJTE M-x follow-mode.tEPERX
WY MOVETE REDAKTIROWATX BUFER W L@BOM IZ DWUH OKON ILI PROKRU^IWATX L@BOE IZ NIH;
WTOROE OKNO BUDET SLEDOWATX IZMENENIQM.
~TOBY WYKL@^ITX REVIM Follow,NAPE^ATAJTE M-x follow-mode WTOROJ RAZ.
11.4 wYBORO^NYJ POKAZ
Emacs OBLADAET SPOSOBNOSTX@ PRQTATX STROKI,SME]ENNYE WPRAWO BOLX[E ^EM NA OPRE-
DELENNOE KOLI^ESTWO STOLBCOW (WY SAMI ZADAETE IH ^ISLO).wY MOVETE ISPOLXZOWATX\TO
DLQ POLU^ENIQ OBZORA ^ASTI PROGRAMMY.
~TOBY SPRQTATX STROKI,NABERITE C-x $ (set-selective-display) S ^ISLOWYM ARGUMEN-
TOM n.pOSLE\TOGO STROKI,IME@]IE PO KRAJNEJ MERE n STOLBCOW OTSTUPA,PROPADUT S
\KRANA.pOKAZATELEM IH SU]ESTWOWANIQ QWLQ@TSQ TOLXKO TRI TO^KI (`...'),POQWLQ@]IESQ
W KONCE KAVDOJ WIDIMOJ STROKI,ZA KOTOROJ SLEDUET ODNA ILI BOLEE NEWIDIMYH.
kOMANDY C-n I C-p PEREME]A@TSQ SKWOZX SPRQTANNYE STROKI,KAK ESLI BY IH NE BYLO.
sPRQTANNYE STROKI PO-PREVNEMU PRISUTSTWU@T W BUFERE,I BOLX[INSTWO KOMAND REDAK-
TIROWANIQ WIDQT IH KAK OBY^NYE,TAK ^TO MOVNO USTANOWITX TO^KU POSEREDINE SPRQTAN-
NOGO TEKSTA.kOGDA\TO PROISHODIT,KURSOR POQWLQETSQ W KONCE PREDYDU]EJ STROKI POSLE
TREH TO^EK.eSLI TO^KA NAHODITSQ W KONCE WIDIMOJ STROKI PERED ZAWER[A]IM EE ZNAKOM
PEREWODA STROKI,KURSOR POQWLQETSQ PERED TREMQ TO^KAMI.
~TOBY SDELATX WS< WIDIMYM SNOWA,NABERITE C-x $ BEZ ARGUMENTA.
eSLI WY USTANOWITE PEREMENNU@ selective-display-ellipses RAWNOJ nil,TO TRI TO^-
KI NE BUDUT POQWLQTXSQ W KONCE STROKI,KOTORAQ PRED[ESTWUET SPRQTANNYM STROKAM.tO-
GDA NE BUDET NIKAKOGO WIDIMOGO UKAZANIQ NA NALI^IE SKRYTYH STROK.|TA PEREMENNAQ PRI
USTANOWKE AWTOMATI^ESKI STANOWITSQ LOKALXNOJ.
11.5 dOPOLNITELXNYE WOZMOVNOSTI STROKI REVIMA
kOGDA WKL@^EN REVIM Line Number,W STROKE REVIMA POQWLQETSQ NOMER TEKU]EJ STRO-
KI,GDE NAHODITSQ TO^KA.iSPOLXZUJTE DLQ PEREKL@^ENIQ\TOGO REVIMA KOMANDU M-x
line-number-mode;OBY^NO ON WKL@^EN.nOMER STROKI POQWLQETSQ PERED POZ,POZICIEJ
W PROCENTAH OT OB_EMA BUFERA,S BUKWOJ`L'DLQ UKAZANIQ NA TO,^TO\TO TAKOE.sM.rAZ-
DEL 31.1 [wTOROSTEPENNYE REVIMY],S.341,DLQ DALXNEJ[EJ INFORMACII O WTOROSTEPENNYH
REVIMAH I O TOM,KAK PRIMENQTX\TU KOMANDU.
eSLI BUFER O^ENX BOLX[OJ (BOLX[E,^EM ZNA^ENIE PEREMENNOJ line-number-display-
limit),TO NOMER STROKI NE WYWODITSQ.Emacs NE PODS^ITYWAET NOMERA STROK,ESLI BUFER
WELIK,POTOMU ^TO\TO BYLO BY SLI[KOM MEDLENNO.eSLI WY SUZILI BUFER (SM.rAZDEL 30.8
[sUVENIE],S.335 ),OTOBRAVAEMYJ NOMER STROKI OT^ITYWAETSQ OTNOSITELXNO DOSTUPNOJ
^ASTI BUFERA.
wY TAKVE MOVETE POKAZATX NOMER TEKU]EGO STOLBCA,WKL@^IW REVIM Column Number.
oN OTOBRAVAET NOMER TEKU]EGO STOLBCA POSLE BUKWY`C'.dLQ PEREKL@^ENIQ\TOGO REVIMA
NAPE^ATAJTE M-x column-number-mode.
84 rUKOWODSTWO PO GNU EmacsEmacs MOVET POKAZYWATX WREMQ I ZAGRUZKU SISTEMY WO WSEH STROKAH REVIMA.~TOBY ZA-
DEJSTWOWATX\TU WOZMOVNOSTX,NAPE^ATAJTE M-x display-time.|TI SWEDENIQ,DOBAWLQEMYE
K STROKE REVIMA,OBY^NO POQWLQ@TSQ POSLE IMENI BUFERA PERED IMENAMI REVIMOW.|TO
WYGLQDIT TAK:
^^:MMpm Z.ZZ
zDESX ^^ I MM OBOZNA^A@T ^ASY I MINUTY,ZA KOTORYMI WSEGDA SLEDU@T`am'ILI`pm'.Z.ZZ
|\TO SREDNEE ^ISLO PROCESSOW,ZAPU]ENNYH WO WSEJ SISTEME.(nEKOTORYE POLQ MOGUT BYTX
PROPU]ENY,ESLI WA[A OPERACIONNAQ SISTEMA NE PODDERVIWAET IH.) eSLI WY PREDPO^ITAETE
WIDETX WREMQ W DWADCATI^ETYREH^ASOWOM FORMATE,USTANOWITE PEREMENNU@ display-time-
24hr-format W ZNA^ENIE t.
eSLI DLQ WAS ESTX PO^TA,KOTORU@ WY E]E NE ^ITALI,POSLE UROWNQ ZAGRUZKI POQWLQETSQ
SLOWO`Mail'.
11.6 kAK OTOBRAVAETSQ TEKST
pE^ATNYE ZNAKI ASCII (S WOSXMIRI^NYMI KODAMI OT 040 DO 0176) OTOBRAVA@TSQ W BU-
FERAH Emacs KAK IH SOBSTWENNYE GRAFI^ESKIE PREDSTAWLENIQ.tO VE I DLQ MNOGOBAJTNYH
PE^ATNYH ZNAKOW,NE WHODQ]IH W ASCII (S WOSXMIRI^NYMI KODAMI WY[E 0400).
nEKOTORYE UPRAWLQ@]IE ZNAKI ASCII OTOBRAVA@TSQ OSOBYM OBRAZOM.zNAK NOWOJ STRO-
KI (WOSXMIRI^NYJ KOD 012) OTOBRAVAETSQ KAK NA^ALO NOWOJ STROKI.zNAK TABULQCII (WOSX-
MIRI^NYJ KOD 011) POKAZYWAETSQ PRODWIVENIEM DO SLEDU@]EJ POZICII TABULQCII (OBY^NO
^EREZ KAVDYE 8 STOLBCOW).
dRUGIE UPRAWLQ@]IE ZNAKI ASCII OBY^NO OTOBRAVAETSQ KAK [APO^KA (`^'),ZA KOTOROJ
SLEDUET NEUPRAWLQ@]AQ WERSIQ ZNAKA;TAKIM OBRAZOM,control-A POKAZYWAETSQ KAK`^A'.
nE-ASCII-ZNAKI OT 0200 DO 0377 OTOBRAVA@TSQ S POMO]X@ WOSXMIRI^NYH UPRAWLQ@]IH
POSLEDOWATELXNOSTEJ;NAPRIMER,ZNAK S KODOM 0243 (WOSXMIRI^NYM) WYWODITSQ KAK`\243'.
oDNAKO,ESLI WY WKL@^ITE OTOBRAVENIE EWROPEJSKIH ALFAWITOW,TO BOLX[INSTWO\TIH
ZNAKOW STANUT PE^ATNYMI NE-ASCII-ZNAKAMI I BUDUT OTOBRAVATXSQ S ISPOLXZOWANIEM IH
GRAFI^ESKIH PREDSTAWLENIJ (W PREDPOLOVENII,^TO WA[ TERMINAL PODDERVIWAET\TO).sM.rAZDEL 18.12 [oDNOBAJTNYE EWROPEJSKIE ZNAKI],S.172.
11.7 pEREMENNYE UPRAWLENIQ IZOBRAVENIEM
|TOT RAZDEL SODERVIT INFORMACI@ TOLXKO DLQ NASTROJKI.nA^INA@]IM POLXZOWATELQM
STOIT EGO PROPUSTITX.
pEREMENNAQ mode-line-inverse-video UPRAWLQET TEM,OTRAVAETSQ LI STROKA REVIMA W
INWERSNOM WIDE (W PREDPOLOVENII,^TO TERMINAL PODDERVIWAET\TO);nil ZNA^IT,^TO\TO
NE DELAETSQ.sM.rAZDEL 1.3 [sTROKA REVIMA],S.25.eSLI WY ZADADITE CWET [RIFTA DLQ
NA^ERTANIQ modeline,I mode-line-inverse-video NE RAWNA nil,TO PO UMOL^ANI@ CWETOM
FONA DLQ\TOGO NA^ERTANIQ BUDET CWET PROSTOGO TEKSTA.sM.rAZDEL 17.13 [nA^ERTANIQ],
S.155.
eSLI PEREMENNAQ inverse-video NE RAWNA nil,Emacs PYTAETSQ INWERTIROWATX WSE STRO-
KI DISPLEQ IZ IH OBY^NOGO SOSTOQNIQ.
eSLI PEREMENNAQ visible-bell NE nil,Emacs PYTAETSQ MERCATX\KRANOM,KOGDA OBY^NO
ON PODAET ZWUKOWOJ SIGNAL.|TA PEREMENNAQ NE DEJSTWUET,ESLI WA[ TERMINAL NE UMEET
MERCATX\KRANOM.
kOGDA WY SNOWA WHODITE W Emacs POSLE PRERYWANIQ,Emacs OBY^NO O^I]AET\KRAN I
PERERISOWYWAET WSE IZOBRAVENIE.nA NEKOTORYH TERMINALAH,IME@]IH BOLEE ODNOJ STRA-
NICY PAMQTI,MOVNO SDELATX TAKU@ ZAPISX termcap,^TOBY STROKI`ti'I`te'(WYWODIMYE
TERMINALU,KOGDA W Emacs WHODQT I WYHODQT,SOOTWETSTWENNO) PEREKL@^ALI STRANICY PA-
MQTI TAK,^TOBY ISPOLXZOWATX ODNU DLQ Emacs,A WTORU@ DLQ DRUGOGO WYWODA.zATEM,WY
gLAWA 11:uPRAWLENIE IZOBRAVENIEM 85MOVETE PO VELANI@ USTANOWITX PEREMENNU@ no-redraw-on-reenter NE RAWNOJ nil;\TO WE-
LIT Emacs PREDPOLAGATX,^TO STRANICA\KRANA POSLE POWTORNOGO WHODA WSE E]E SODERVIT
TO,^TO Emacs TUDA ZAPISAL W POSLEDNIJ RAZ.
pEREMENNAQ echo-keystrokes UPRAWLQET OTRAVENIEM MNOGOZNAKOWYH KL@^EJ.zNA^ENIE
\TOJ PEREMENNOJ |\TO WYRAVENNAQ W SEKUNDAH DLINA PAUZY,TREBUEMOJ DLQ WYZOWA\HO;
ESLI ONO RAWNO NUL@,\TO ZNA^IT,^TO\HO NE BUDET.sM.rAZDEL 1.2 [|HO-OBLASTX],S.24.
eSLI PEREMENNAQ ctl-arrow RAWNA nil,TO UPRAWLQ@]IE ZNAK BUDUT POKAZANY W BUFERE
S POMO]X@ WOSXMIRI^NYH UPRAWLQ@]IH POSLEDOWATELXNOSTEJ,WSE,KROME OGRANI^ITELQ
NOWOJ STROKI I TABULQCII.iZMENENIE ZNA^ENIQ PEREMENNOJ ctl-arrow DELAET EE LOKALXNOJ
DLQ TEKU]EGO BUFERA,DO\TOGO VE MOMENTA DEJSTWUET ZNA^ENIE PO UMOL^ANI@.zNA^ENIE
PO UMOL^ANI@ RAWNO t.sM.RAZDEL\Display Tables"W The Emacs Lisp Reference Manual.
oBY^NO ZNAK TABULQCII POKAZYWAETSQ W BUFERE KAK PROBEL,KOTORYJ PROSTIRAETSQ DO
SLEDU@]EJ POZICII TABULQCII DISPLEQ;OSTANOWKI PO TABULQCII PROISHODQT ^EREZ IN-
TERWAL,RAWNYJ WOSXMI PROBELAM.~ISLO PROBELOW W TABULQCII UPRAWLQETSQ PEREMENNOJ
tab-width,KOTORAQ STANOWITSQ LOKALXNOJ PRI EE IZMENENII,TAK VE,KAK I ctl-arrow.
oTMETIM,^TO SPOSOB OTOBRAVENIQ SIMWOLA TABULQCII W BUFERE NIKAK NE WLIQET NA OPRE-
DELENIE
h TABi,KAK KOMANDY.pEREMENNAQ tab-width DOLVNA IMETX ZNA^ENIE MEVDU 1 I
1000,WKL@^ITELXNO.
eSLI PEREMENNAQ truncate-lines NE RAWNA nil,TO KAVDAQ STROKA TEKSTA ZANIMAET ROWNO
ODNU STROKU NA\KRANE;ESLI STROKA TEKSTA SLI[KOM DLINNA,POKAZYWAETSQ TOLXKO UME]A-
@]AQSQ ^ASTX.eSLI truncate-lines RAWNA nil,TO DLINNYE STROKI TEKSTA OTOBRAVA@TSQ
KAK NESKOLXKO STROK NA\KRANE,STOLXKO,SKOLXKO NUVNO,^TOBY POKAZATX WESX TEKST STROKI.
sM.rAZDEL 4.8 [sTROKI PRODOLVENIQ],S.40.iZMENENIE ZNA^ENIQ truncate-lines DELAET
EE LOKALXNOJ DLQ TEKU]EGO BUFERA;DO\TOGO MOMENTA DEJSTWUET ZNA^ENIE PO UMOL^ANI@.
|TO ZNA^ENIE PO UMOL^ANI@ IZNA^ALXNO RAWNO nil.
eSLI PEREMENNAQ truncate-partial-width-windows NE RAWNA nil,ONA PRINUVDAET USE-
^ENIE DLINNYH STROK WMESTO IH PRODOLVENIQ W L@BOM OKNE UVE POLNOJ [IRINY FREJMA,
NESMOTRQ NA ZNA^ENIE PEREMENNOJ truncate-lines.dLQ POLU^ENIQ INFORMACII O PRIMY-
KA@]IH OKNAH,SMOTRITE rAZDEL 16.2 [rAZDELENIE OKON],S.142.sMOTRITE TAKVERAZDEL
\Display"W The Emacs Lisp Reference Manual.
pEREMENNAQ baud-rate SODERVIT SKOROSTX WYWODA TERMINALA,NASKOLXKO EE ZNAET Emacs.
uSTANOWKA\TOJ PEREMENNOJ NE MENQET DEJSTWITELXNU@ SKOROSTX PEREDA^I DANNYH,NO EE
ZNA^ENIE ISPOLXZUETSQ DLQ WY^ISLENIJ,NAPRIMER,NAPOLNENIQ.oNA TAKVE WLIQET NA PRI-
NQTIE RE[ENIQ O TOM,NUVNO LI PROKRU^IWATX ^ASTX\KRANA ILI PERERISOWYWATX EE |DAVE
PRI ISPOLXZOWANII OKONNOJ SISTEMY.(mY SDELALI TAK,NESMOTRQ NA TO,^TO OKONNAQ SISTE-
MA NE IMEET DEJSTWITELXNOJ\SKOROSTI WYWODA",^TOBY DATX WAM WOZMOVNOSTX NASTROITX
\TI PARAMETRY.)
wY MOVETE NASTROITX SPOSOB WYWODA KAVDOGO KONKRETNOGO ZNAKA S POMO]X@ TABLICY
OTOBRAVENIQ.sM.RAZDEL\Display Tables"W The Emacs Lisp Reference Manual.
86 rUKOWODSTWO PO GNU Emacs
gLAWA 12:pOISK I ZAMENA 8712 pOISK I ZAMENA
kAK I W DRUGIH REDAKTORAH,W Emacs ESTX KOMANDY DLQ POISKA SLU^AEW POQWLENIQ KAKOJ-
NIBUDX STROKI.oSNOWNAQ KOMANDA POISKA NEOBY^NA TEM,^TO ONA QWLQETSQ NARA]IWAEMOJ;
ONA NA^INAET POISK DO TOGO,KAK WY ZAKON^ILI NABOR STROKI POISKA.sU]ESTWU@T TAKVE
KOMANDY I DLQ NENARA]IWAEMOGO POISKA,BOLEE POHOVIE NA ANALOGI^NYE KOMANDY W DRUGIH
REDAKTORAH.
kROME OBY^NOJ KOMANDY replace-string,KOTORAQ NAHODIT WSE SLU^AI POQWLENIQ ODNOJ
STROKI I ZAMENQET IH DRUGOJ,Emacs IMEET BOLEE SLOVNU@ KOMANDU ZAMENY,NAZWANNU@
query-replace,KOTORAQ ZAPRA[IWAET W INTERAKTIWNOM REVIME,W KAKIH SLU^AQH NADO PRO-
IZWESTI ZAMENU.
12.1 nARA]IWAEMYJ POISK
nARA]IWAEMYJ POISK NA^INAETSQ,KAK TOLXKO WY NABRALI PERWYJ ZNAK STROKI POISKA.
pO MERE TOGO,KAK WY NABIRAETE STROKU POISKA,Emacs POKAZYWAET WAM,GDE\TA STROKA (W
TOM WIDE,W KAKOM WY EE UVE NABRALI) MOVET BYTX NAJDENA.kOGDA WY NABRALI DOSTATO^NO
ZNAKOW,^TOBY OPREDELITX VELAEMOE MESTO,WY MOVETE OSTANOWITXSQ.w ZAWISIMOSTI OT TO-
GO,^TO WY SOBIRAETESX DELATX POTOM,WAM MOVET PONADOBITXSQ,A MOVET I NE PONADOBITXSQ
PREKRATITX POISK QWNO S POMO]X@ hRETi.
C-s nARA]IWAEMYJ POISK WPERED (isearch-forward).
C-r nARA]IWAEMYJ POISK W OBRATNOM NAPRAWLENII (isearch-backward).
C-s NA^INAET NARA]IWAEMYJ POISK.C-s S^ITYWAET ZNAKI S KLAWIATURY I RASPOLAGAET
KURSOR W PERWOM MESTE POQWLENIQ ZNAKOW,KOTORYE WY NABRALI.eSLI WY NABERETE C-s I
ZATEM F,TO KURSOR WSTANET SPRAWA POSLE PERWOJ NAJDENNOJ`F'.nABERITE o,I UWIDITE,^TO
KURSOR WSTAL ZA PERWOJ NAJDENNOJ`FO'.pOSLE E]E ODNOJ o KURSOR WSTANET ZA PERWOJ`FOO',
NAHODQ]EJSQ ZA MESTOM,S KOTOROGO WY NA^ALI POISK.nA KAVDOM [AGE TEKST BUFERA,SOW-
PADA@]IJ SO STROKOJ POISKA,PODSWE^IWAETSQ,ESLI TERMINAL MOVET\TO SDELATX;TEKU]AQ
STROKA POISKA OBNOWLQETSQ NA KAVDOM [AGE W\HO-OBLASTI.
eSLI WY SDELALI O[IBKU W NABORE STROKI POISKA,TO WY MOVETE SBROSITX ZNAKI S POMO-
]X@ h DELi.kAVDYJ hDELi OTMENQET POSLEDNIJ ZNAK STROKI POISKA.|TOGO NE PROISHODIT
DO TEH POR,POKA Emacs NE BUDET GOTOW S^ITATX SLEDU@]IJ WWODIMYJ ZNAK;SNA^ALA ZNAK,
KOTORYJ WY HOTITE SBROSITX,DOLVEN BYTX LIBO NAJDEN,LIBO NET.eSLI VE WY NE HOTITE
VDATX,POKA\TO PROIZOJDET,ISPOLXZUJTE C-g TAK,KAK OPISANO NIVE.
kOGDA WY BUDETE UDOWLETWORENY DOSTIGNUTYM MESTOM,WY MOVETE NABRATX hRETi,^TO
OSTANOWIT POISK,OSTAWLQQ KURSOR TAM,KUDA EGO POMESTILA KOMANDA POISKA.l@BAQ KOMAN-
DA,NE IME@]AQ SPECIALXNOGO ZNA^ENIQ PRI POISKE,TAKVE OSTANAWLIWAET POISK I ZATEM
WYPOLNQETSQ SAMA.tAKIM OBRAZOM,NABOR C-a PRIWEL BY K WYHODU IZ POISKA I ZATEM PERE-
DWINUL BY KURSOR W NA^ALO STROKI.h RETi NEOBHODIM TOLXKO W TOM SLU^AE,ESLI SLEDU@]AQ
KOMANDA,KOTORU@ WY HOTITE NABRATX,QWLQETSQ PE^ATNYM ZNAKOM,hDELi,hRETi ILI DRUGIM
UPRAWLQ@]IM ZNAKOM,IME@]IM OSOBOE ZNA^ENIE WO WREMQ RABOTY POISKA (C-q,C-w,C-r,
C-s,C-y,M-y,M-r ILI M-s).
iNOGDA WY I]ETE SLOWO`FOO'I NAHODITE EGO,NO\TO NE TO,^TO WAM NUVNO.bYLO WTOROE
`FOO',O KOTOROM WY ZABYLI,NAHODQ]EESQ PERED TEM,KOTOROE WY I]ETE.w\TOM SLU^AE
NABERITE C-s E]E RAZ,^TOBY PRODWINUTXSQ K SLEDU@]EMU POQWLENI@ STROKI POISKA.|TO
MOVNO PRODELYWATX NEOGRANI^ENNOE ^ISLO RAZ.eSLI WY PROSKO^ILI,TO MOVETE OTMENITX
NEKOTORYE ^ISLO ZNAKOW C-s S POMO]X@ h DELi.
pOSLE WYHODA IZ POISKA WY MOVETE SNOWA ISKATX TU VE SAMU@ STROKU,PROSTO NABRAW
C-s C-s:PERWYJ C-s |\TO KL@^,KOTORYJ ZAPUSKAET NARA]IWAEMYJ POISK,A WTOROJ C-s
OZNA^AET\POWTOR POISKA".
88 rUKOWODSTWO PO GNU Emacs~TOBY WY MOGLI SNOWA ISPOLXZOWATX BOLEE RANNIE STROKI POISKA,SU]ESTWUET SPISOK
POISKA.kOMANDY M-p I M-n PEREDWIGA@T PO SPISKU,^TOBY WY MOGLI PODOBRATX NUVNU@
STROKU DLQ POWTORNOGO POISKA.|TI KOMANDY OSTAWLQ@T WYBRANNU@ STROKU POISKA W MI-
NIBUFERE,GDE WY MOVETE EE OTREDAKTIROWATX.dLQ ZAWER[ENIQ REDAKTIROWANIQ I NA^ALA
POISKA NABERITE C-s ILI C-r.
eSLI WA[A STROKA WOOB]E NE NAJDENA,TO\HO-OBLASTX GOWORIT`Failing I-Search'.kUR-
SOR RASPOLAGAETSQ POSLE TOGO MESTA,GDE Emacs NA[EL IZ WA[EJ STROKI WS<,^TO SMOG.
tAKIM OBRAZOM,ESLI WY I]ETE`FOOT',A TAKOJ STROKI NET,WY MOVETE UWIDETX KURSOR POSLE
`FOO'W SLOWE`FOOL'.s\TOGO MESTA WY MOVETE SDELATX NESKOLXKO WE]EJ.eSLI WA[A STROKA
NEPRAWILXNO NABRANA,WY MOVETE ^TO-TO STERETX IZ NEE I ISPRAWITX.eSLI WY DOWOLXNY
NAJDENNYM MESTOM,WY MOVETE NABRATX
hRETi ILI L@BU@ DRUGU@ KOMANDU Emacs,^TOBY
\PRINQTX TO,^TO PREDLOVIL\TOT POISK",ILI WY MOVETE NABRATX C-g,^TO UNI^TOVIT IZ
STROKI POISKA ZNAKI,KOTORYE NE BYLI NAJDENY (`t'W`FOOT'),OSTAWLQQ TE,^TO NA[LISX
(`FOO'W`FOOT').wTOROJ C-g W\TOM MESTE OTMENQET POISK POLNOSTX@,WOZWRA]AQ TO^KU
TUDA,GDE ONA BYLA,KOGDA POISK NA^ALSQ.
eSLI STROKA POISKA SODERVIT ZAGLAWNU@ BUKWU,TO POISK PROIZWODITSQ S U^ETOM REGI-
STRA.eSLI WY UDALITE ZAGLAWNYE BUKWY IZ STROKI POISKA,\TA OSOBENNOSTX IS^EZAET.sM.rAZDEL 12.6 [pOISK I REGISTR],S.95.
eSLI POISK BYL NEUDA^NYM I WY PROSITE POWTORITX EGO,NABIRAQ C-s E]E RAZ,TO ON
NA^INAETSQ SNOWA S NA^ALA BUFERA.pOWTORENIE NEUDA^NOGO POISKA W OBRATNOM NAPRAWLENII
PRI POMO]I KOMANDY C-r NA^INAET NOWYJ POISK S KONCA.tAKOJ POISK NAZYWAETSQ KRU-
GOWYM.kAK TOLXKO\TO PROIZO[LO,W PODSKAZKE POISKA POQWLQETSQ SLOWO`Wrapped'.eSLI
WY PROJDETE ^EREZ TO^KU,GDE NA^ALSQ POISK,\TO SLOWO ZAMENQETSQ NA`Overwrapped',^TO
OZNA^AET,^TO WY SNOWA PROHODITE ^EREZ UVE WIDENNYE WAMI SOWPADENIQ.
zNAK\WYHODA"C-g POSTUPAET WO WREMQ POISKA OSOBYM OBRAZOM.~TO IMENNO ON DELAET,
ZAWISIT OT STATUSA POISKA.eSLI POISK NA[EL TO,^TO WY HOTELI,I OVIDAET WWODA,TO C-g
POLNOSTX@ OTMENQET POISK.kURSOR WOZWRA]AETSQ TUDA,OTKUDA WY NA^ALI POISK.eSLI
C-g NABIRAETSQ,KOGDA W STROKE POISKA ESTX NENAJDENNYE ZNAKI | Emacs WSE E]E I]ET IH,
ILI ON NE SMOG IH NAJTI | TOGDA\TI NENAJDENNYE ZNAKI SBRASYWA@TSQ IZ STROKI POISKA.
sBROS\TIH ZNAKOW DELAET POISK USPE[NYM,I ON VDET DALXNEJ[EGO WWODA,TAKIM OBRAZOM,
WTOROJ C-g OTMENIT POISK POLNOSTX@.
~TOBY NAJTI SIMWOL PEREWODA STROKI,WWEDITE C-j.dLQ POISKA DRUGOGO UPRAWLQ@]EGO
ZNAKA,TAKOGO KAK control-S ILI WOZWRAT KARETKI,WY DOLVNY OTMENITX IH SPECIALXNOE ZNA-
^ENIE,NABIRAQ PERED NIMI C-q.|TA FUNKCIQ C-q ANALOGI^NA EE NAZNA^ENI@ KAK KOMANDY
DLQ WSTAWKI (SM.rAZDEL 4.1 [wSTAWKA TEKSTA],S.35):ONA ZASTAWLQET TRAKTOWATX SLEDU-
@]IJ ZNAK TAK,KAK W\TOM KONTEKSTE TRAKTOWALSQ BY L@BOJ\OBY^NYJ"ZNAK.wY TAKVE
MOVETE ZADATX ZNAK PO EGO WOSXMIRI^NOMU KODU:WWEDITE C-q I ZATEM POSLEDOWATELXNOSTX
WOSXMIRI^NYH CIFR.
wY MOVETE IZMENITX NAPRAWLENIE POISKA NA OBRATNOE PRI POMO]I C-r.wAM SLEDUET PO-
STUPITX TAK,ESLI POISK OKAZALSQ NEUDA^NYM,POTOMU ^TO MESTO,S KOTOROGO WY EGO NA^ALI,
NAHODILOSX SLI[KOM BLIZKO K KONCU FAJLA.pOWTORENIE C-r PRODOLVAET POISK SLEDU@]IH
SLU^AEW POQWLENIQ W OBRATNOM PORQDKE,A C-s NA^INAET POISK OPQTX WPERED.C-r W POISKE
MOVET BYTX OTMENENA PRI POMO]I
h DELi.
eSLI WY ZARANEE ZNAETE,^TO WAM NUVNO WESTI POISK W OBRATNOM PORQDKE,TO ^TOBY NA-
^ATX POISK,WY MOVETE ISPOLXZOWATX C-r WMESTO C-s,TAK KAK C-r TAKVE QWLQETSQ KL@^OM,
ZAPUSKA@]IM KOMANDU (isearch-backward) DLQ POISKA W OBRATNOM PORQDKE.oBRATNYJ PO-
ISK NAHODIT SOWPADENIQ,KOTORYE RASPOLOVENY PERED NA^ALXNOJ TO^KOJ,TAK VE KAK POISK
WPERED NAHODIT SOWPADENIQ,NA^INA@]IESQ POSLE TO^KI,GDE POISK NA^ALSQ.
zNAKI C-y I C-w MOGUT ISPOLXZOWATXSQ W NARA]IWAEMOM POISKE DLQ ZAHWATA TEKSTA IZ
BUFERA W STROKU POISKA.|TO DELAET UDOBNYM POISK DRUGOGO SLU^AQ POQWLENIQ TOGO TEKSTA,
KOTORYJ NAHODITSQ W TO^KE.C-w KOPIRUET SLOWO POSLE TO^KI W STROKU POISKA,PRODWIGAQ
TO^KU WPERED ^EREZ\TO SLOWO.sLEDU@]AQ KOMANDA C-s DLQ POWTORENIQ POISKA BUDET ZATEM
gLAWA 12:pOISK I ZAMENA 89ISKATX STROKU,WKL@^A@]U@\TO SLOWO.C-y PODOBNA C-w,TOLXKO KOPIRUET W STROKU POISKA
WESX OSTATOK TEKU]EJ STROKI.i C-y,I C-w PREOBRAZU@T KOPIRUEMYJ TEKST K NIVNEMU
REGISTRU,ESLI POISK SEJ^AS WEDETSQ BEZ U^ETA REGISTRA;TAKIM OBRAZOM POISK OSTAETSQ
REGISTRONEZAWISIMYM.
kOMANDA M-y KOPIRUET W STROKU POISKA TEKST IZ SPISKA UNI^TOVENIJ.oNA ISPOLXZUET
TOT VE TEKST,KOTORYJ BYL BY WOSSTANOWLEN KOMANDOJ C-y.sM.rAZDEL 9.2 [wOSSTANOWLE-
NIE],S.71.
kOGDA WY WYHODITE IZ NARA]IWAEMOGO POISKA,METKA USTANAWLIWAETSQ W TO MESTO,GDE
TO^KA BYLA DO NA^ALA POISKA.|TO UDOBNO DLQ WOZWRATA K\TOMU MESTU.w REVIME Transient
Mark NARA]IWAEMYJ POISK USTANAWLIWAET METKU,NE AKTIWIZIRUQ EE,ESLI TOLXKO METKA
UVE NE AKTIWNA.
~TOBY NASTROITX SPECIALXNYE ZNAKI,KOTORYE PONIMAET NARA]IWAEMYJ POISK,IZMENI-
TE IH PRIWQZKI W TABLICE KL@^EJ isearch-mode-map.dLQ POLU^ENIQ PERE^NQ PRIWQZOK
POSMOTRITE DOKUMENTACI@ NA isearch-mode S POMO]X@ C-h f isearch-mode hRETi.
12.1.1 nARA]IWAEMYJ POISK NA MEDLENNOM TERMINALE
nARA]IWAEMYJ POISK NA MEDLENNYH TERMINALAH ISPOLXZUET MODIFICIROWANNYJ SPOSOB
OTOBRAVENIQ,KOTORYJ RAZRABOTAN TAK,^TOBY ZANIMATX KAK MOVNO MENX[E WREMENI.wME-
STO POKAZA BUFERA W KAVDOM MESTE,DO KOTOROGO DOBRALSQ POISK,ON SOZDAET NOWOE OKNO,
SOSTOQ]EE IZ ODINO^NOJ STROKI,I ISPOLXZUET EGO DLQ POKAZA NAJDENNOJ STROKI.|TO OKNO
IZ ODNOJ STROKI WSTUPAET W IGRU,KAK TOLXKO TO^KA WYHODIT ZA PREDELY TEKSTA,KOTORYJ
UVE NAHODITSQ NA\KRANE.
kOGDA WY PRERYWAETE POISK,ODNOSTRO^NOE OKNO UBIRAETSQ.tOLXKO W\TOT MOMENT Emacs
PERERISOWYWAET OKNO,W KOTOROM PROIZWODILSQ POISK,^TOBY OTOBRAZITX NOWOE POLOVENIE
TO^KI.
tAKOJ STILX OTOBRAVENIQ ISPOLXZUETSQ,KOGDA SKOROSTX TERMINALA W BODAH MENX[E ILI
RAWNA ZNA^ENI@ PEREMENNOJ search-slow-speed,^XE NA^ALXNOE ZNA^ENIE RAWNO 1200.
kOLI^ESTWO STROK,POKAZYWAEMYH PRI POISKE NA MEDLENNOM TERMINALE,UPRAWLQETSQ
PEREMENNOJ search-slow-window-lines.eE OBY^NOE ZNA^ENIE RAWNO EDINICE.
12.2 nENARA]IWAEMYJ POISK
w Emacs TAKVE ESTX UDOBNYE KOMANDY NENARA]IWAEMOGO POISKA,KOTORYE TREBU@T OT
WAS POLNOSTX@ NABRATX STROKU POISKA DO NA^ALA RABOTY.
C-s h RETi STROKA hRETi
pOISK ZADANNOJ STROKI.
C-r h RETi STROKA hRETi
pOISK STROKI W OBRATNOM NAPRAWLENII.
~TOBY NA^ATX NENARA]IWAEMYJ POISK,NABERITE SNA^ALA C-s hRETi.|TA KOMANDA WHODIT
W MINIBUFER DLQ S^ITYWANIQ STROKI POISKA;OGRANI^XTE\TU STROKU S POMO]X@ hRETi,I
POISK NA^NETSQ.eSLI STROKA NE BUDET NAJDENA,KOMANDA POISKA WYDAET O[IBKU.
sPOSOB RABOTY C-s h RETi ZAKL@^AETSQ W SLEDU@]EM:C-s ZAPUSKAET NARA]IWAEMYJ PO-
ISK,KOTORYJ SPECIALXNO ZAPROGRAMMIROWAN TAK,^TO ZAPUSKAET NENARA]IWAEMYJ POISK,
ESLI ZADANNYJ WAMI ARGUMENT QWLQETSQ PUSTYM.(tAKOJ PUSTOJ ARGUMENT W DRUGIH SLU^A-
QH BYL BY BESPOLEZEN).C-r hRETi RABOTAET ANALOGI^NO.
oDNAKO,ZAPRO[ENNYJ S POMO]X@ C-s hRETi NENARA]IWAEMYJ POISK NE ZAPUSKAET NEPO-
SREDSTWENNO search-forward.pERWYM DELOM PROWERQETSQ,NE BUDET LI SLEDU@]IM ZNAKOM
C-w,^TO ZAPUSTIT POISK SLOW.
90 rUKOWODSTWO PO GNU EmacspRQMOJ I OBRATNYJ NENARA]IWAEMYJ POISK OSU]ESTWLQ@TSQ KOMANDAMI search-
forward I search-backward.|TI KOMANDY MOGUT BYTX PRIWQZANY K KL@^AM OBY^NYM
SPOSOBOM.wOZMOVNOSTX IH ZAPUSKA ^EREZ NARA]IWAEMYJ POISK IMEET ISTORI^ESKIE
PRI^INY I,POMIMO\TOGO,SU]ESTWUET DLQ TOGO,^TOBY WAM NE NUVNO BYLO NAHODITX DLQ
NIH PODHODQ]IE POSLEDOWATELXNOSTI KL@^EJ.
12.3 pOISK SLOW
pOISK PO SLOWAM PRIMENQETSQ DLQ OTYSKANIQ POSLEDOWATELXNOSTI SLOW NEZAWISIMO OT
TOGO,KAK\TI SLOWA RAZDELENY.bOLEE PODROBNO,WY NABIRAETE STROKU IZ NESKOLXKIH SLOW,
ISPOLXZUQ DLQ IH RAZDELENIQ ODINO^NYE PROBELY,I\TA STROKA MOVET BYTX NAJDENA,DA-
VE ESLI W ORIGINALE SLOWA RAZDELENY NESKOLXKIMI PROBELAMI,PEREWODAMI STROKI,LIBO
L@BYMI ZNAKAMI PREPINANIQ.
pOISK SLOW POLEZEN PRI REDAKTIROWANII PE^ATNYH DOKUMENTOW,PODGOTOWLENNYH W PRO-
GRAMMAH DLQ FORMATIROWANIQ TEKSTA.eSLI WY REDAKTIRUETE,PROSMATRIWAQ UVE NAPE^A-
TANNU@,OTFORMATIROWANNU@ WERSI@,TO WY NE MOVETE SKAZATX,GDE PRERYWAETSQ STROKA W
ISHODOM FAJLE.pRI POMO]I VE POISKA SLOWA WY MOVETE ISKATX,NE IMEQ\TOJ INFORMACII.
C-s hRETi C-w SLOWA hRETi
i]ET SLOWA,IGNORIRUQ PUNKTUACI@ MEVDU NIMI.
C-r
h RETi C-w SLOWA hRETi
i]ET SLOWA W OBRATNOM NAPRAWLENII,IGNORIRUQ PUNKTUACI@ MEVDU NIMI.
pOISK SLOW |\TO SPECIALXNYJ SLU^AJ NENARA]IWAEMOGO POISKA,I ON WYZYWAETSQ S
POMO]X@ C-s
h RETi C-w.zA\TIM SLEDUET STROKA POISKA,KOTORAQ WSEGDA DOLVNA BYTX OGRA-
NI^ENA h RETi.bUDU^I NENARA]IWAEMYM,POISK NE NA^INAETSQ DO TEH POR,POKA ARGUMENT
NE ZAWER[EN.|TOT POISK RABOTAET PUTEM SOZDANIQ REGULQRNOGO WYRAVENIQ I EGO POISKA;
SMOTRITE rAZDEL 12.4 [pOISK REGULQRNOGO WYRAVENIQ],S.90.
dLQ OBRATNOGO POISKA SLOW ISPOLXZUJTE C-r h RETi C-w.
pRQMOJ I OBRATNYJ POISK SLOW REALIZOWAN W KOMANDAH word-search-forward I word-
search-backward.|TI KOMANDY MOGUT BYTX PRIWQZANY K KL@^AM OBY^NYM SPOSOBOM.wOZ-
MOVNOSTX IH ZAPUSKA ^EREZ NARA]IWAEMYJ POISK SU]ESTWUET PO ISTORI^ESKIM PRI^INAM
I DLQ TOGO,^TOBY WAM NE NUVNO BYLO NAHODITX DLQ NIH PODHODQ]IE POSLEDOWATELXNOSTI
KL@^EJ.
12.4 pOISK REGULQRNOGO WYRAVENIQ
rEGULQRNOE WYRAVENIE (regexp,ESLI KRATKO) |\TO OBRAZEC,KOTORYJ OBOZNA^AET NABOR
STROK,WOZMOVNO,I NEOGRANI^ENNYJ NABOR.w GNU Emacs WY MOVETE ISKATX SLEDU@]EE
SOWPADENIE S REGULQRNYM WYRAVENIEM KAK NARA]IWAEMYM SPOSOBOM,TAK I PROSTYM.
nARA]IWAEMYJ POISK REGULQRNOGO WYRAVENIQ PROIZWODITSQ NABOROM C-M-s (isearch-
forward-regexp).|TA KOMANDA S^ITYWAET NARA]IWAEMU@ STROKU POISKA,TAK VE,KAK C-s,
NO TRAKTUET EE KAK REGULQRNOE WYRAVENIE,A NE I]ET W TEKSTE BUFERA TO^NOE SOWPADENIE.
kAVDYJ RAZ,KOGDA WY DOBAWLQETE TEKST W STROKU POISKA,WY DELAETE REGULQRNOE WYRAVENIE
DLINNEE,I I]ETSQ UVE NOWOE REGULQRNOE WYRAVENIE.wYZOW C-s S PREFIKSNYM ARGUMENTOM
(ZNA^ENIE NE IGRAET ROLI) |\TO DRUGOJ SPOSOB PROIZWESTI PRQMOJ POISK REGULQRNOGO
WYRAVENIQ.~TOBY ZAPUSTITX POISK REGULQRNOGO WYRAVENIQ W OBRATNOM NAPRAWLENII,
ISPOLXZUJTE C-M-r (isearch-backward-regexp) ILI C-r S PREFIKSNYM ARGUMENTOM.
wSE UPRAWLQ@]IE ZNAKI,KOTORYE DELA@T SPECIALXNYE WE]I W RAMKAH OBYKNOWENNOGO
NARA]IWAEMOGO POISKA,IME@T TE VE SAMYE FUNKCII I W NARA]IWAEMOM POISKE REGULQR-
NOGO WYRAVENIQ.nABOR C-s ILI C-r NEMEDLENNO POSLE NA^ALA POISKA WOSSTANAWLIWAET
POSLEDNEE REGULQRNOE WYRAVENIE,ISPOLXZOWANNOE DLQ NARA]IWAEMOGO POISKA REGULQRNOGO
gLAWA 12:pOISK I ZAMENA 91WYRAVENIQ;\TO GOWORIT O TOM,^TO NARA]IWAEMYJ POISK REGULQRNOGO WYRAVENIQ I STROKI
IME@T NEZAWISIMYE ZNA^ENIQ PO UMOL^ANI@.oNI TAKVE IME@T RAZDELXNYE SPISKI POISKA,
DOSTUP K KOTORYM WY MOVETE POLU^ITX S POMO]X@ M-p I M-n.
eSLI PRI NARA]IWAEMOM POISKE REGULQRNOGO WYRAVENIQ WY NABERETE hSPCi,ON BUDET SOW-
PADATX S PROIZWOLXNOJ POSLEDOWATELXNOSTX@ PROBELXNYH ZNAKOW,WKL@^AQ PEREWODY STROK.
eSLI WAM NUVEN TOLXKO ODIN PROBEL,WWEDITE C-q h SPCi.
oBRATITE WNIMANIE,DOBAWLENIE ZNAKOW K REGULQRNOMU WYRAVENI@ PRI NARA]IWAEMOM
POISKE MOVET WERNUTX KURSOR NAZAD I NA^ATX POISK SNOWA.nAPRIMER,ESLI WY ISKALI`foo'
I DOBAWLQETE`\|bar',KURSOR WERNETSQ NAZAD,ESLI PERWYJ`bar'PRED[ESTWOWAL PERWOMU
`foo'.
nENARA]IWAEMYJ POISK REGULQRNOGO WYRAVENIQ OSU]ESTWLQETSQ FUNKCIQMI
re-search-forward I re-search-backward.wY MOVETE ZAPUSTITX IH S POMO]X@ M-x,ILI
PRIWQZATX IH K KL@^AM ILI WYZYWATX ^EREZ NARA]IWAEMYJ POISK REGULQRNOGO WYRAVENIQ
S POMO]X@ C-M-s h RETi I C-M-r hRETi.
eSLI WY ISPOLXZUETE KOMANDY NARA]IWAEMOGO POISKA REGULQRNOGO WYRAVENIQ S PRE-
FIKSNYM ARGUMENTOM,ONI PROIZWODQT OBY^NYJ POISK STROKI,KAK isearch-forward I
isearch-backward.sM.rAZDEL 12.1 [nARA]IWAEMYJ POISK],S.87.
12.5 sINTAKSIS REGULQRNYH WYRAVENIJ
rEGULQRNYE WYRAVENIQ IME@T SINTAKSIS,W KOTOROM NESKOLXKO ZNAKOW SLUVAT SPECI-
ALXNYMI KONSTRUKCIQMI,A OSTALXNYE |\TO OBYKNOWENNYE ZNAKI.oBYKNOWENNYJ ZNAK |
\TO PROSTOE REGULQRNOE WYRAVENIE,KOTOROE SOOTWETSTWUET\TOMU ZNAKU I NIKAKOMU BOLX-
[E.sPECIALXNYMI ZNAKAMI QWLQ@TSQ`$',`^',`.',`*',`+',`?',`[',`]'I`\'.l@BYE DRUGIE
ZNAKI,POQWLQ@]IESQ W REGULQRNOM WYRAVENII,QWLQ@TSQ OBYKNOWENNYMI,ESLI TOLXKO IM
NE PRED[ESTWUET`\'.
nAPRIMER,`f'|\TO NESPECIALXNYJ ZNAK,ZNA^IT ON OBYKNOWENNYJ,PO\TOMU`f'|
\TO REGULQRNOE WYRAVENIE,KOTOROE SOOTWETSTWUET STROKE`f'I NIKAKOJ DRUGOJ.(oNO NE
SOOTWETSTWUET STROKE`ff').aNALOGI^NO,`O'|\TO REGULQRNOE WYRAVENIE,KOTOROE SOOTWET-
STWUET TOLXKO`O'.(kOGDA RAZLI^IQ W REGISTRE IGNORIRU@TSQ,\TI REGULQRNYE WYRAVENIQ
TAKVE SOWPADA@T S`F'I`O',NO MY RASSMATRIWAEM\TO KAK OBOB]ENIE PONQTIQ\TA VE
STROKA",A NE KAK ISKL@^ENIE.)
l@BYE DWA REGULQRNYH WYRAVENIQ a I b MOGUT BYTX SCEPLENY.rEZULXTATOM QWLQETSQ
REGULQRNOE WYRAVENIE,SOWPADA@]EE SO STROKOJ,W KOTOROJ a SOOTWETSTWUET NEKOTOROMU
NA^ALU\TOJ STROKI,A b SOOTWETSTWUET OSTATKU STROKI.
w KA^ESTWE PROSTOGO PRIMERA MY MOVEM SCEPITX REGULQRNYE WYRAVENIQ`f'I`o',^TOBY
POLU^ITX REGULQRNOE WYRAVENIE`fo',KOTOROE SOOTWETSTWUET TOLXKO STROKE`fo'.pOKA
WSE PROSTO.~TOBY SDELATX ^TO-TO NETRIWIALXNOE,WAM NEOBHODIMO ISPOLXZOWATX ODIN IZ
SPECIALXNYH ZNAKOW.zDESX PREDSTAWLEN IH PERE^ENX.
.(tO^KA) QWLQETSQ SPECIALXNYM ZNAKOM,KOTORYJ SOOTWETSTWUET L@BOMU ODINO^NOMU ZNA-
KU,ZA ISKL@^ENIEM PEREWODA STROKI.iSPOLXZUQ KONKATENACI@ (SCEPLENIE),WY
MOVETE SOSTAWITX REGULQRNOE WYRAVENIE,PODOBNOE`a.b',KOTOROE SOOTWETSTWU-
ET L@BOJ TREHZNAKOWOJ STROKE,NA^INA@]EJSQ S`a'I KON^A@]EJSQ NA`b'.
* SAMA PO SEBE NE QWLQETSQ KONSTRUKCIEJ;\TO POSTFIKSNYJ OPERATOR,KOTO-
RYJ OZNA^AET,^TO PREDYDU]EE REGULQRNOE WYRAVENIE DOLVNO BYTX POWTORENO
STOLXKO RAZ,SKOLXKO\TO WOZMOVNO.tAKIM OBRAZOM,`o*'SOOTWETSTWUET L@BOMU
^ISLU BUKW`o'(WKL@^AQ NULX).
`*'WSEGDA OTNOSITSQ K NAIMENX[EMU WOZMOVNOMU PREDYDU]EMU WYRAVENI@.
tAKIM OBRAZOM,`fo*'SODERVIT POWTORQ@]U@SQ`O',A NE`fo'.oNO SOWPADAET S
`f',`fo',`foo'I TAK DALEE.
92 rUKOWODSTWO PO GNU EmacskONSTRUKCIQ`*'OBRABATYWAETSQ PUTEM SOPOSTAWLENIQ S NAIBOLX[IM KOLI^E-
STWOM POWTORENIJ,KOTOROE SRAZU MOVET BYTX NAJDENO.zATEM PRODOLVAETSQ
SRAWNENIE S OSTATKOM [ABLONA.eSLI ONO PRO[LO NEUDA^NO,TO PROISHODIT PE-
REBOR S WOZWRATOM.nEKOTORYE IZ SOWPADENIJ S KONSTRUKCIEJ S MODIFIKATOROM
`*'SBRASYWA@TSQ,^TOBY DATX WOZMOVNOSTX POISKA SOOTWETSTWIQ DLQ OSTATKA
STRUKTURY.nAPRIMER,SRAWNIWAQ`ca*ar'SO STROKOJ`caaar',`a*'SNA^ALA STA-
WITSQ W SOOTWETSTWIE SO WSEMI TREMQ`A',NO OSTATOK [ABLONA |\TO`ar',A W
\TOM SLU^AE DLQ PODBORA OSTAETSQ TOLXKO`r',PO\TOMU\TA POPYTKA NEUDA^NA.
sLEDU@]IJ WARIANT |\TO POSTAWITX W SOOTWETSTWIE S`A*'TOLXKO DWE BUKWY
`A'.pRI TAKOM WYBORE OSTATOK REGULQRNOGO WYRAVENIQ USPE[NO SOOTWETSTWUET
STROKE.
+\TO TAKOJ VE POSTFIKSNYJ OPERATOR,KAK I`*',ZA ISKL@^ENIEM TOGO,^TO ON
TREBUET,^TOBY PRED[ESTWU@]EE EMU WYRAVENIE SOPOSTAWLQLOSX PO KRAJNEJ
MERE ODIN RAZ.tAK NAPRIMER,`ca+r'BUDET SOOTWETSTWOWATX STROKAM`car'I
`caaar',NO NE STROKE`cr',TOGDA KAK`ca*r'SOOTWETSTWUET WSEM TREM STROKAM.
?POSTFIKSNYJ OPERATOR,KAK I`*',NO ON MOVET SOOTWETSTWOWATX PRED[ESTWU-
@]EMU WYRAVENI@ LIBO ODIN RAZ,LIBO NI ODNOGO.nAPRIMER,`ca?r'BUDET
SOOTWETSTWOWATX`car'ILI`cr'I NI^EMU BOLX[E.
[...]\TO NABOR ZNAKOW,KOTORYJ NA^INAETSQ`['I ZAWER[AETSQ`]'.w PROSTEJ[EM
SLU^AE SOWPADA@]IJ NABOR FORMIRU@T ZNAKI MEVDU\TIMI SKOBKAMI.
tAKIM OBRAZOM,`[ad]'SOOTWETSTWUET LIBO ODNOJ`a',LIBO ODNOMU`d',A`[ad]*'
SOOTWETSTWUET L@BOJ STROKE,SOSTAWLENNOJ PROSTO IZ`A'I`d'(WKL@^AQ PUSTU@
STROKU),IZ WSEGO\TOGO SLEDUET,^TO`c[ad]*r'SOOTWETSTWUET`cr',`car',`cdr',
`caddaar'I TAK DALEE.
wY TAKVE MOVETE WKL@^ITX W MNOVESTWO ZNAKOW INTERWALY,NAPISAW DWA ZNAKA,
RAZDELENNYE`-';TAKIM OBRAZOM,`[a-z]'SOOTWETSTWUET L@BOJ STRO^NOJ BUKWE
ASCII.iNTERWALY MOGUT BYTX SWOBODNO PEREME[ANY S OTDELXNYMI ZNAKAMI,
KAK W`[a-z$%.]',^TO SOOTWETSTWUET L@BOJ STRO^NOJ BUKWE ASCII,ILI`$',ILI
`%'ILI TO^KE.
zAMETIM,^TO SPECIALXNYE ZNAKI REGULQRNYH WYRAVENIJ WNUTRI TAKOGO MNO-
VESTWA BOLX[E NE QWLQ@TSQ SPECIALXNYMI.wNUTRI ZNAKOWOGO MNOVESTWA SU-
]ESTWU@T SOWER[ENNO DRUGOJ NABOR SPECIALXNYH ZNAKOW:`]',`-'I`^'.
~TOBY WKL@^ITX W ZNAKOWYJ NABOR`]',WY DOLVNY POSTAWITX EGO PERWYM.nA-
PRIMER,`[]A]'SOOTWETSTWUET`]'ILI`A'.~TOBY WKL@^ITX`-',NAPI[ITE`-'
PERWYM ILI POSLEDNIM ZNAKOM W NABORE ILI POMESTITE EGO POSLE UKAZANIQ IN-
TERWALA.tAKIM OBRAZOM,`[]-]'SOOTWETSTWUET`]'I`-'.
~TOBY WKL@^ITX W NABOR ZNAK`^',PI[ITE EGO GDE UGODNO,NO NE PERWYM.
eSLI WY ZADAETE INTERWAL PRI POISKE BEZ U^ETA REGISTRA,WY DOLVNY LIBO
NAPISATX OBA KONCA INTERWALA ZAGLAWNYMI BUKWAMI,LIBO OBA STRO^NYMI,LIBO
OBA ONI NE DOLVNY BYTX BUKWAMI.pOWEDENIE INTERWALA S KONCAMI,ZADANNY-
MI W RAZNYH REGISTRAH,OPREDELENO PLOHO I MOVET BYTX IZMENENO W BUDU]IH
WERSIQH Emacs.
[^...]`[^'NA^INAET DOPOLNITELXNYJ NABOR ZNAKOW,KOTORYJ SOOTWETSTWUET L@BOMU
ZNAKU,ISKL@^AQ OPISANNYE W NEM.tAKIM OBRAZOM,`[^a-z0-9A-Z]'SOOTWET-
STWUET WSEM ZNAKAM,ISKL@^AQ BUKWY I CIFRY.
`^'NE QWLQETSQ SPECIALXNYM W NABORE ZNAKOW,ESLI ON NE STOIT PERWYM.zNAK,
SLEDU@]IJ ZA`^',TRAKTUETSQ TAK,KAK ESLI BY ON BYL PERWYM (INYMI SLOWAMI,
`-'I`]'ZDESX NE QWLQ@TSQ SPECIALXNYMI).
dOPOLNITELXNYJ NABOR ZNAKOW MOVET SOOTWETSTWOWATX ZNAKU NOWOJ STROKI,ES-
LI ON NE UPOMINAETSQ KAK ODIN IZ NESOWPADA@]IH ZNAKOW.|TO PROTIWORE^IT
SPOSOBU OBRABOTKI REGULQRNYH WYRAVENIJ W TAKIH PROGRAMMAH,KAK grep.
gLAWA 12:pOISK I ZAMENA 93^\TO SPECIALXNYJ ZNAK,KOTORYJ SOOTWETSTWUET PUSTOJ STROKE,NO TOLXKO W NA^A-
LE STROKI SOPOSTAWLQEMOGO TEKSTA.w PROTIWNOM SLU^AE,SRAWNENIE NE UDASTSQ.
tAKIM OBRAZOM,`^foo'SOOTWETSTWUET`foo',KOTORAQ WSTRE^ENA W NA^ALE STROKI.
$ PODOBEN`^',NO SRAWNENIE PROISHODIT TOLXKO W KONCE STROKI.tAKIM OBRAZOM,
`xx*$'SOOTWETSTWUET STROKE IZ ODNOGO ILI BOLEE`x'W KONCE STROKI.
\IMEET DWE FUNKCII:OTMENQET OSOBYJ SMYSL SPECIALXNYH ZNAKOW (WKL@^AQ`\')
I WWODIT DOPOLNITELXNYE SPECIALXNYE KONSTRUKCII.
tAK KAK`\'OTMENQET OSOBYJ SMYSL SPECIALXNYH ZNAKOW,TO`\$'|\TO RE-
GULQRNOE WYRAVENIE,KOTOROE SOOTWETSTWUET TOLXKO`$',A`\['| REGULQRNOE
WYRAVENIE,KOTOROE SOOTWETSTWUET TOLXKO`[',I TAK DALEE.
zAME^ANIE:DLQ ISTORI^ESKOJ SOWMESTIMOSTI SPECIALXNYE ZNAKI TRAKTU@TSQ KAK OBY^-
NYE ZNAKI,ESLI ONI NAHODQTSQ W KONTEKSTE,W KOTOROM IH SPECIALXNYJ SMYSL NE IMEET
ZNA^ENIQ.nAPRIMER,`*foo'TRAKTUET`*'KAK OBYKNOWENNYJ,TAK KAK NE SU]ESTWUET PREDY-
DU]EGO WYRAVENIQ,NA KOTOROE MOVET PODEJSTWOWATX`*'.pLOHO BYTX ZAWISIMYM OT\TOGO
PRAWILA;LU^[E WSEGDA QWNO OTMENQTX OSOBYJ SMYSL SPECIALXNYH ZNAKOW NEZAWISIMO TOGO,
GDE ONI NAHODQTSQ.
w BOLX[INSTWE SLU^AEW`\',ZA KOTORYM SLEDUET L@BOJ ZNAK,SOOTWETSTWUET TOLXKO\TO-
MU ZNAKU.oDNAKO,SU]ESTWUET NESKOLXKO ISKL@^ENIJ:DWUHZNAKOWYE POSLEDOWATELXNOSTI,
NA^INA@]IESQ S`\',IME@]IE OSOBYJ SMYSL.wTOROJ ZNAK W TAKOJ POSLEDOWATELXNOSTI
WSEGDA OBY^NYJ,KOGDA WSTRE^AETSQ SAM PO SEBE.zDESX PREDSTAWLENA TABLICA KONSTRUKCIJ
S`\'.
\| OPISYWAET ALXTERNATIWU.dWA REGULQRNYH WYRAVENIQ a I b S`\|'MEVDU NIMI
FORMIRU@T WYRAVENIE,KOTOROE SOOTWETSTWUET L@BOMU IZ NIH W OTDELXNOSTI:
LIBO a,LIBO b.|TO RABOTAET TAK:SNA^ALA PROBUETSQ a,I ESLI SOOTWETSTWIE NE
NAJDENO,PROBUETSQ b.
tAKIM OBRAZOM,`foo\|bar'SOOTWETSTWUET LIBO`foo',LIBO`bar',NO NE DRUGOJ
STROKE.
`\|'PRIMENQETSQ K SAMYM BOLX[IM OHWATYWA@]IM WYRAVENIQM.tOLXKO OHWA-
TYWA@]IE SKOBKI`\(...\)'MOGUT OGRANI^ITX GRUPPIRU@]U@ SILU`\|'.
sU]ESTWUET WOZMOVNOSTX POLNOGO OBRATNOGO WOSSTANOWLENIQ DLQ OBRABOTKI
MNOGOKRATNYH ISPOLXZOWANIJ`\|'.
\(...\) GRUPPIRU@]AQ KONSTRUKCIQ,KOTORAQ SLUVIT DLQ TREH CELEJ:
1.~TOBY OTDELITX NABOR ALXTERNATIW`\|'OT DRUGIH OPERACIJ.tAKIM OBRA-
ZOM,`\(foo\|mar\)x'SOOTWETSTWUET LIBO`foox',LIBO`marx'.
2.~TOBY OGRANI^ITX SLOVNOE WYRAVENIE DLQ DEJSTWIQ POSTFIKSNYH OPERA-
TOROW`*',`+'I`?'.tAKIM OBRAZOM,`ba\(na\)*'SOOTWETSTWUET`bananana'I
TAK DALEE S L@BYM (NULEWYM ILI BOLX[IM) ^ISLOM STROK`na'.
3.~TOBY OTMETITX SOOTWETSTWU@]U@ PODSTROKU DLQ BUDU]EJ SSYLKI.
|TO POSLEDNEE PRIMENENIE NE QWLQETSQ SLEDSTWIEM IDEI OGRANI^ENIQ GRUPPY;
\TO OTDELXNOE SWOJSTWO,KOTOROE OPREDELENO KAK WTOROE ZNA^ENIE TOJ VE SA-
MOJ KONSTRUKCII`\(...\)'.nA PRAKTIKE MEVDU\TIMI DWUMQ ZNA^ENIQMI NE
OKAZYWAETSQ PROTIWORE^IJ.
\n SOOTWETSTWUET TEKSTU,SOWPAW[EMU S n-NYM POQWLENIEM KONSTRUKCII`\(...
\)'.
pOSLE KONCA KONSTRUKCII`\(...\)'SOPOSTAWLENIE ZAPOMINAET NA^ALO I KONEC
TEKSTA,SOWPAW[EGO S\TOJ KONSTRUKCIEJ.zATEM,POZDNEE W REGULQRNOM WYRAVE-
NII,WY MOVETE ISPOLXZOWATX`\',ZA KOTORYM SLEDUET CIFRA n,^TOBY SKAZATX:
\SOPOSTAWITX S TOM VE TEKSTOM,KOTORYJ SOWPAL S n-NYM POQWLENIEM KONSTRUK-
CII`\(...\)'".
94 rUKOWODSTWO PO GNU EmacssTROKAM,SOOTWETSTWU@]IM PERWYM DEWQTI KONSTRUKCIQMI`\(...\)',POQW-
LQ@]IMSQ W REGULQRNOM WYRAVENII,PRISWAIWA@TSQ NOMERA OT 1 DO 9 W TOM
PORQDKE,W KAKOM W REGULQRNOM WYRAVENII POQWILISX OTKRYWA@]IE SKOBKI.
kONSTRUKCII OT`\1'DO`\9'MOGUT ISPOLXZOWATXSQ DLQ SSYLKI NA TEKST KON-
STRUKCII`\(...\)'S\TIM NOMEROM.
nAPRIMER,`\(.*\)\1'SOOTWETSTWUET L@BOJ STROKE,NE SODERVA]EJ ZNAKOW PE-
REWODA STROKI,KOTORAQ SOSTOIT IZ DWUH ODINAKOWYH POLOWIN.`\(.*\)'SOOTWET-
STWUET PERWOJ POLOWINE,KOTORAQ MOVET BYTX L@BOJ,NO`\1',^TO IDET SLEDOM,
DOLVNA SOOTWETSTWOWATX TO^NO TAKOMU VE TEKSTU.
eSLI DLQ KAKOJ-NIBUDX KONSTRUKCII`\(...\)'NAJDENO BOLEE ODNOGO SOOTWET-
STWIQ (^TO MOVET LEGKO PROIZOJTI,ESLI ZA NEJ SLEDUET`*'),TO ZAPOMINAETSQ
TOLXKO POSLEDNEE SOWPADENIE.
\`SOOTWETSTWUET PUSTOJ STROKE,NO TOLXKO W NA^ALE BUFERA ILI STROKI,GDE PRO-
ISHODIT POISK.
\'SOOTWETSTWUET PUSTOJ STROKE,NO TOLXKO W KONCE BUFERA ILI STROKI,GDE PROIS-
HODIT POISK.
\= SOOTWETSTWUET PUSTOJ STROKE,NO TOLXKO W TO^KE.
\b SOOTWETSTWUET PUSTOJ STROKE,ESLI\TA KONSTRUKCIQ NAHODITSQ W NA^ALE ILI
KONCE SLOWA.tAKIM OBRAZOM,`\bfoo\b'SOOTWETSTWUET L@BOMU POQWLENI@`foo'
KAK OTDELXNOGO SLOWA.`bballs?\b'SOOTWETSTWUET`ball'ILI`balls'KAK OTDELX-
NYM SLOWAM.
`\b'NAHODIT SOOTWETSTWIE W NA^ALE ILI KONCE BUFERA,NEZAWISIMO OT TOGO,KAKOJ
TEKST IDET DALEE.
\B SOOTWETSTWUET PUSTOJ STROKE,ESLI TOLXKO ONA NAHODITSQ NE W NA^ALE ILI KONCE
SLOWA.
\< SOOTWETSTWUET PUSTOJ STROKE,ESLI ONA NAHODITSQ W NA^ALE SLOWA.`\<'NAHODIT
SOOTWETSTWIE W NA^ALE BUFERA,NO TOLXKO ESLI ZATEM IDET ZNAK,QWLQ@]IJSQ
^ASTX@ SLOWA.
\> SOOTWETSTWUET PUSTOJ STROKE,ESLI ONA NAHODITSQ W KONCE SLOWA.`\>'NAHODIT
SOOTWETSTWIE W KONCE BUFERA,NO TOLXKO ESLI BUFER ZAWER[AETSQ ZNAKOM,QWLQ-
@]IMSQ ^ASTX@ SLOWA.
\w SOOTWETSTWUET L@BOMU ZNAKU,QWLQ@]EMUSQ ^ASTX@ SLOWA.kAKIE IMENNO\TO
ZNAKI,OPREDELQET SINTAKSI^ESKAQ TABLICA.sM.rAZDEL 31.6 [sINTAKSIS],S.366.
\W SOOTWETSTWUET L@BOMU ZNAKU,NE QWLQ@]EMUSQ ^ASTX@ SLOWA.
\sc SOOTWETSTWUET L@BOMU ZNAKU,^EJ SINTAKSIS OPREDELQETSQ KODOM c.zDESX c
|\TO ZNAK,KOTORYJ PREDSTAWLQET SOBOJ SINTAKSI^ESKIJ KOD,NAPRIMER,\TO
`w'DLQ ^ASTI SLOWA,`-'DLQ PROBELXNYH ZNAKOW,`('DLQ OTKRYWA@]EJ SKOBKI,
I TAK DALEE.wY MOVETE OBOZNA^ITX PROBELXNYJ ZNAK (KOTORYJ MOVET BYTX
PEREWODOM STROKI) LIBO KAK`-',LIBO ODNIM PROBELOM.
\Sc SOOTWETSTWUET L@BOMU ZNAKU,^EJ SINTAKSIS NE OPREDELQETSQ KODOM c.
kONSTRUKCII,IME@]IE OTNO[ENIE K SLOWAM I SINTAKSISU,UPRAWLQ@TSQ USTANOWKAMI W
SINTAKSI^ESKOJ TABLICE (SM.rAZDEL 31.6 [sINTAKSIS],S.366).
dALEE PREDSTAWLENO SLOVNOE REGULQRNOE WYRAVENIE,ISPOLXZUEMOE Emacs DLQ RASPOZNA-
WANIQ KONCA PREDLOVENIQ WMESTE S L@BYMI PROBELXNYMI ZNAKAMI,KOTORYE IDUT SLEDOM.
oNO DANO W SINTAKSISE lISPA,^TOBY DATX WAM WOZMOVNOSTX OTLI^ITX PROBELY OT ZNAKOW
TABULQCII.w SINTAKSISE lISPA,KONSTANTNAQ STROKA NA^INAETSQ I ZAKAN^IWAETSQ DWOJNY-
MI KAWY^KAMI.`\"'OBOZNA^AET DWOJNYE KAWY^KI KAK ^ASTX REGULQRNOGO WYRAVENIQ,`\\'
gLAWA 12:pOISK I ZAMENA 95OBOZNA^AET OBRATNU@ KOSU@ ^ERTU,`\t'OBOZNA^AET ZNAK TABULQCII,A`\n'| ZNAK NOWOJ
STROKI.
"[.?!][]\"')]*\\($\\|\t\\|\\)[\t\n]*"
zDESX POSLEDOWATELXNO SODERVATSQ ^ETYRE ^ASTI:NABOR ZNAKOW,SOOTWETSTWU@]IJ TO^KE,
`?'ILI`!';NABOR ZNAKOW,SOOTWETSTWU@]IJ PARNYM KWADRATNYM SKOBKAM,KAWY^KAM ILI
KRUGLYM SKOBKAM,POWTORQEMYM L@BOE ^ISLO RAZ;ALXTERNATIWA,ZAKL@^ENNAQ W SKOBKI S
OBRATNYMI KOSYMI ^ERTAMI,KOTORAQ SOOTWETSTWUET KONCU STROKI,TABULQCII ILI DWUM
PROBELAM;I NABOR ZNAKOW,SOOTWETSTWU@]IJ L@BYM PROBELXNYM ZNAKAM,POWTORQ@]IMSQ
L@BOE ^ISLO RAZ.
~TOBY WWESTI\TO REGULQRNOE WYRAVENIE INTERAKTIWNO,WY NAPE^ATALI BY hTABi,^TOBY
POLU^ITX ZNAK TABULQCII,I C-j,^TOBY POLU^ITX ZNAK PEREWODA STROKI.wY TAKVE PE^ATA-
LI BY ODINO^NYE OBRATNYE KOSYE ^ERTY KAK ESTX,A NE DUBLIROWALI BY IH W SOOTWETSTWII
S SINTAKSISOM lISPA.
12.6 pOISK I REGISTR BUKW
wSE WIDY NARA]IWAEMOGO POISKA W Emacs OBY^NO IGNORIRU@T REGISTR TEKSTA,W KOTOROM
PROISHODIT POISK,ESLI WY ZADALI TEKST W NIVNEM REGISTRE.tAKIM OBRAZOM,ESLI WY ZA-
PROSILI POISK`foo',TO SOWPADENIQMI S^ITA@TSQ I`Foo',I`foo'.rEGULQRNYE WYRAVENIQ,
I W ^ASTNOSTI NABORY ZNAKOW,TAKVE WKL@^A@TSQ W\TO PRAWILO:`[aB]'SOOTWETSTWOWALO BY
`a',ILI`A',ILI`b'ILI`B'.
zAGLAWNAQ BUKWA W L@BOM MESTE STROKI NARA]IWAEMOGO POISKA DELAET\TOT POISK REGI-
STROZAWISIMYM.tAKIM OBRAZOM,POISK`Foo'NE NAJDET`foo'ILI`FOO'.|TO PRIMENQETSQ
TAKVE I K POISKU REGULQRNOGO WYRAVENIQ.|TOT\FFEKT IS^EZAET,ESLI WY UDALILI ZAGLAW-
NYE BUKWY IZ STROKI POISKA.
eSLI WY USTANOWITE PEREMENNU@ case-fold-search RAWNOJ nil,WSE BUKWY DOLVNY BU-
DUT SOWPADATX TO^NO,WKL@^AQ REGISTR.|TA PEREMENNAQ SWOQ DLQ KAVDOGO BUFERA;EE IZME-
NENIE ZATRAGIWAET TOLXKO TEKU]IJ BUFER,NO SU]ESTWUET ZNA^ENIE PO UMOL^ANI@,KOTOROE
WY TOVE MOVETE IZMENITX.sM.rAZDEL 31.2.4 [lOKALXNYE PEREMENNYE],S.350.|TA PERE-
MENNAQ PRIMENQETSQ TAKVE I K NENARA]IWAEMOMU POISKU,WKL@^AQ TE EGO RAZNOWIDNOSTI,
KOTORYE OSU]ESTWLQ@TSQ KOMANDAMI ZAMENY (SM.rAZDEL 12.7 [zAMENA],S.95) I KOMANDAMI
POISKA W ISTORII MINIBUFERA (SM.rAZDEL 5.4 [iSTORIQ MINIBUFERA],S.49).
12.7 kOMANDY ZAMENY
gLOBALXNYE KOMANDY POISKA I ZAMENY NE NUVNY W Emacs TAK ^ASTO,KAK W DRUGIH REDAK-
TORAH
1
,NO ONI DOSTUPNY.kROME PROSTOJ KOMANDY M-x replace-string,KOTORAQ ANALOGI^-
NA TAKOJ VE KOMANDE W BOLX[INSTWE REDAKTOROW,SU]ESTWUET KOMANDA M-x query-replace,
KOTORAQ DLQ KAVDOGO POQWLENIQ OBRAZCA SPRA[IWAET WAS,NADO LI EGO ZAMENQTX.
kOMANDY ZAMENY OBY^NO RABOTA@T S TEKSTOM OT TO^KI DO KONCA BUFERA;ODNAKO,W
REVIME Transient Mark ONI DEJSTWU@T NA OBLASTX,KOGDA METKA AKTIWNA.wSE KOMANDY
ZAMENY ZAMENQ@T ODNU STROKU (ILI REGULQRNOE WYRAVENIE) ODNOJ STROKOJ ZAMENY.mOVNO
WYPOLNITX PARALLELXNO NESKOLXKO ZAMEN,ISPOLXZUQ KOMANDU expand-region-abbrevs (SM.rAZDEL 24.3 [rAS[IFROWKA SOKRA]ENIJ],S.258).
12.7.1 bEZUSLOWNAQ ZAMENA
M-x replace-string h RETi STROKA hRETi NOWAQ-STROKA hRETi
zAMENQET KAVDOE WHOVDENIE STROKI NA NOWU@-STROKU.1
w NEKOTORYH REDAKTORAH OPERACII POISKA I ZAMENY |\TO EDINSTWENNYJ UDOBNYJ SPOSOB SDELATX ODNO
IZMENENIE W TEKSTE.
96 rUKOWODSTWO PO GNU EmacsM-x replace-regexp hRETi regexp hRETi NOWAQ-STROKA hRETi
zAMENQET KAVDOE SOWPADENIE S regexp NA NOWU@-STROKU.
~TOBY ZAMENITX KAVDYJ SLU^AJ WHOVDENIQ`foo'POSLE TO^KI NA`bar',ISPOLXZUETSQ
KOMANDA M-x replace-string S DWUMQ ARGUMENTAMI`foo'I`bar'.zAME]ENIE PROISHODIT
TOLXKO W TEKSTE POSLE TO^KI,TAK,ESLI WY HOTITE OHWATITX WESX BUFER,WY DOLVNY SNA^ALA
OTPRAWITXSQ W EGO NA^ALO.wSE\KZEMPLQRY WPLOTX DO KONCA BUFERA BUDUT ZAMENENY;^TOBY
OGRANI^ITXSQ ZAMENOJ W ^ASTI BUFERA,SUZXTE EGO DO\TOJ ^ASTI PERED WYPOLNENIEM ZAMENY
(SM.rAZDEL 30.8 [sUVENIE],S.335).w REVIME Transient Mark,ESLI OBLASTX AKTIWNA,ZAMENA
OGRANI^ENA\TOJ OBLASTX@ (SM.rAZDEL 8.2 [Transient Mark],S.64).
kOGDA WY WYHODITE IZ replace-string,TO^KA OSTAETSQ NA MESTE POSLEDNEJ ZAMENY.
zNA^ENIE TO^KI W MOMENT,KOGDA BYLA ZAPU]ENA KOMANDA replace-string,ZAPOMINAETSQ W
SPISKE POMETOK.C-u C-
h SPCi PEREME]AET WAS OBRATNO.
~ISLOWOJ ARGUMENT OGRANI^IWAET ZAMENU SOWPADENIQMI,KOTORYE OKRUVENY OGRANI^I-
TELQMI SLOW.zNA^ENIE ARGUMENTA ROLI NE IGRAET.
12.7.2 zAMENA REGULQRNYH WYRAVENIJ
kOMANDA M-x replace-string ZAMENQET TO^NYE SOWPADENIQ S ODINO^NOJ STROKOJ.aNA-
LOGI^NAQ KOMANDA replace-regexp ZAME]AET L@BOE SOWPADENIE S ZADANNYM OBRAZCOM.
w replace-regexp,NOWAQ-STROKA NE OBQZATELXNO DOLVNA BYTX KONSTANTOJ:ONA MOVET
SSYLATXSQ NA WSE ILI ^ASTX TOGO,^TO SOOTWETSTWUET REGULQRNOMU WYRAVENI@ regexp.`\&'
W NOWOJ-STROKE OZNA^AET POLNYJ ZAME]AEMYJ TEKST.`\n',GDE n |\TO CIFRA,OZNA^AET
TO,^TO BYLO POSTAWLENO W SOOTWETSTWIE n-NOJ ZAKL@^ENNOJ W SKOBKI GRUPPE W REGULQR-
NOM WYRAVENII regexp.~TOBY WKL@^ITX W NOWYJ TEKST ZNAK`\',WY DOLVNY WWESTI`\\'.
nAPRIMER,
M-x replace-regexp
hRETi c[ad]+r hRETi\&-safe hRETi
ZAMENIT (NAPRIMER)`cadr'NA`cadr-safe'I`cddr'NA`cddr-safe'.
M-x replace-regexp
h RETi\(c[ad]+r\)-safe hRETi\1 hRETi
DELAET OBRATNOE PREOBRAZOWANIE.
12.7.3 kOMANDY ZAMENY I REGISTR BUKW
eSLI PERWYJ ARGUMENT W KOMANDE ZAMENY NABRAN W NIVNEM REGISTRE,WO WREMQ POISKA
WHOVDENIJ DLQ ZAMENY REGISTR IGNORIRUETSQ | PRI USLOWII,^TO case-fold-search NE
RAWNA nil.eSLI case-fold-search USTANOWLENA W ZNA^ENIE nil,REGISTR U^ITYWAETSQ WO
WSEH TIPAH POISKA.
kROME TOGO,KOGDA ARGUMENT NOWAQ-STROKA WESX ILI ^ASTI^NO NAPISAN STRO^NYMI BUK-
WAMI,KOMANDY ZAMENY PYTA@TSQ SOHRANITX OBRAZEC ISPOLXZOWANIQ REGISTRA W KAVDOM
WHOVDENII.tAKIM OBRAZOM,KOMANDA
M-x replace-string h RETi foo hRETi bar hRETi
ZAMENQET`foo'W NIVNEM REGISTRE NA`bar'W NIVNEM REGISTRE,`FOO'W WERHNEM REGISTRE
NA`BAR',A`Foo'S PERWOJ ZAGLAWNOJ BUKWOJ NA`Bar'.(tRI\TI ALXTERNATIWY:WSE STRO^-
NYE BUKWY,WSE ZAGLAWNYE I PERWAQ ZAGLAWNAQ | EDINSTWENNYE WARIANTY,KOTORYE MOVET
RASPOZNATX replace-string.)
eSLI W STROKE PODSTANOWKI ISPOLXZOWANY BUKWY WERHNEGO REGISTRA,TO ONI OSTA@TSQ
TAKIMI PRI KAVDOJ WSTAWKE\TOGO TEKSTA.eSLI BUKWY WERHNEGO REGISTRA ISPOLXZU@TSQ
W PERWOM ARGUMENTE,TO WTOROJ ARGUMENT WSEGDA WSTAWLQETSQ W TOM WIDE,W KOTOROM ON
DAN,BEZ IZMENENIQ REGISTRA.aNALOGI^NO,ESLI PEREMENNAQ case-replace ILI case-fold-
search USTANOWLENA RAWNOJ nil,ZAME]ENIE PROISHODIT BEZ IZMENENIQ REGISTRA.
gLAWA 12:pOISK I ZAMENA 9712.7.4 zAMENA S PODTWERVDENIEM
M-% STROKA hRETi NOWAQ-STROKA hRETi
M-x query-replace h RETi STROKA hRETi NOWAQ-STROKA hRETi
zAMENQET NEKOTORYE WHOVDENIQ STROKI NA NOWU@-STROKU.
C-M-% regexp
h RETi NOWAQ-STROKA hRETi
M-x query-replace-regexp h RETi regexp hRETi NOWAQ-STROKA hRETi
zAMENQET NEKOTORYE SOWPADENIQ S regexp NA NOWU@-STROKU.
eSLI WY HOTITE ZAMENITX TOLXKO NEKOTORYE\KZEMPLQRY`foo'NA`bar',NO NE WSE,WY
NE MOVETE ISPOLXZOWATX OBYKNOWENNU@ replace-string.wMESTO\TOGO ISPOLXZUETSQ M-%
(query-replace).|TA KOMANDA NAHODIT\KZEMPLQRY`foo'ODIN ZA DRUGIM,OTOBRAVAET
KAVDYJ\KZEMPLQR I SPRA[IWAET WAS,NADO LI EGO ZAMENQTX.~ISLOWOJ ARGUMENT GOWO-
RIT query-replace,^TO NUVNO RASSMATRIWATX LI[X TE\KZEMPLQRY,KOTORYE OKRUVENY
ZNAKAMI-RAZDELITELQMI SLOW.|TA KOMANDA SOHRANQET REGISTR TAK VE,KAK I replace-
string,PRI USLOWII,^TO case-replace NE RAWNA nil,KAK\TO OBY^NO I BYWAET.
zA ISKL@^ENIEM ZAPROSA PODTWERVDENIQ,query-replace RABOTAET TO^NO TAK VE,KAK
replace-string,A query-replace-regexp | KAK replace-regexp.|TA KOMANDA ZAPUSKA-
ETSQ PRI POMO]I C-M-%.
kOGDA WAM POKAZYWA@T WHOVDENIE STROKI ILI SOWPADENIE S REGULQRNYM WYRAVENIEM
regexp,WY MOVETE NABRATX SLEDU@]EE:
h SPCi ^TOBY ZAMENITX\TO WHOVDENIE NA NOWU@-STROKU.
h DELi ^TOBY PEREJTI K SLEDU@]EMU WHOVDENI@,NE ZAMENQQ\TO.
,(zAPQTAQ)
^TOBY ZAMENITX\TO WHOVDENIE I POKAZATX REZULXTAT.zATEM U WAS ZAPRA[IWA@T
WWOD E]E ODNOGO ZNAKA,^TOBY UZNATX,^TO DELATX DALX[E.tAK KAK ZAMENA UVE
PROIZWEDENA,TO
hDELi I hSPCi W\TOJ SITUACII\KWIWALENTNY;OBE PEREHODQT K
SLEDU@]EMU WHOVDENI@.
wY MOVETE NABRATX W\TOM MESTE C-r (SMOTRITE NIVE),^TOBY IZMENITX ZAME-
NENNYJ TEKST.wY MOVETE TAKVE NABRATX C-x u,^TOBY OTMENITX SDELANNU@
ZAMENU;\TA KOMANDA WYHODIT IZ query-replace,TAK ^TO ESLI WY HOTITE DE-
LATX DALXNEJ[IE ZAMENY,WY DOLVNY ISPOLXZOWATX C-x hESCi hESCi hRETi,^TOBY
ZAPUSTITX ZAMENU ZANOWO (SM.rAZDEL 5.5 [pOWTOR],S.50).
h RETi ^TOBY WYJTI BEZ OSU]ESTWLENIQ DALXNEJ[IH ZAMEN.
.(tO^KA) ^TOBY ZAMENITX\TOT\KZEMPLQR I ZATEM WYJTI BEZ PRODOLVENIQ POISKA SLEDU-
@]IH WHOVDENIJ.
!^TOBY ZAMENITX WSE OSTAW[IESQ\KZEMPLQRY BEZ POWTORNYH ZAPROSOW.
^ ^TOBY WERNUTXSQ K POLOVENI@ PREDYDU]EGO WHOVDENIQ (ILI K TOMU,^TO IM
BYLO),ESLI WY IZMENILI EGO PO O[IBKE.|TO DELAETSQ PRI POMO]I WYTALKIWA-
NIQ IZ SPISKA POMETOK.mOVNO ISPOLXZOWATX TOLXKO ODIN`^'PODRQD,TAK KAK
WO WREMQ RABOTY query-replace HRANITSQ TOLXKO ODNA PREDYDU]AQ POZICIQ
ZAMENY.
C-r ^TOBY WOJTI W NOWYJ UROWENX REKURSIWNOGO REDAKTIROWANIQ,W TOM SLU^AE,KO-
GDA\KZEMPLQR NUVDAETSQ SKOREE W REDAKTIROWANII,^EM PROSTO W ZAMENE EGO
NOWOJ-STROKOJ.kOGDA WY SDELAETE\TO,WYJDITE IZ\TOGO UROWNQ REKURSIWNOGO
REDAKTIROWANIQ,NABRAW C-M-c,^TOBY PEREJTI K SLEDU@]EMU WHOVDENI@.sM.rAZDEL 30.12 [rEKURSIWNOE REDAKTIROWANIE],S.338.
98 rUKOWODSTWO PO GNU EmacsC-w ^TOBY UDALITX\TO WHOVDENIE I POTOM WOJTI W NOWYJ UROWENX REKURSIWNO-
GO REDAKTIROWANIQ,KAK W C-r.iSPOLXZUJTE REKURSIWNOE REDAKTIROWANIE DLQ
WSTAWKI TEKSTA I ZAMENY UDALENNOGO WHOVDENIQ STROKI.kOGDA WY ZAKON^I-
TE,WYJDITE IZ\TOGO UROWNQ REKURSIWNOGO REDAKTIROWANIQ S POMO]X@ C-M-c,
^TOBY PEREJTI K SLEDU@]EMU WHOVDENI@.
C-l ^TOBY WOSSTANOWITX IZOBRAVENIE\KRANA.pOTOM WY DOLVNY NABRATX E]E ODIN
ZNAK,^TOBY UKAZATX,^TO DELATX S\TIM WHOVDENIEM.
C-h ^TOBY PROSMOTRETX SOOB]ENIE,REZ@MIRU@]EE\TI WARIANTY.pOTOM WY DOLV-
NY NABRATX E]E ODIN ZNAK,^TOBY UKAZATX,^TO DELATX S\TIM WHOVDENIEM.
nEKOTORYE DRUGIE ZNAKI QWLQ@TSQ SINONIMAMI PERE^ISLENNYH WY[E:y,n I q\KWIWA-
LENTNY hSPCi,hDELi I hRETi.
kROME\TIH ZNAKOW,L@BOJ DRUGOJ WYHODIT IZ query-replace I SNOWA S^ITYWAETSQ KAK
^ASTX POSLEDOWATELXNOSTI KL@^EJ.tAKIM OBRAZOM,ESLI WY NAPE^ATAETE C-k,ONA WYJDET
IZ query-replace I UNI^TOVIT TEKST DO KONCA STROKI.
~TOBY PEREZAPUSTITX query-replace,KOGDA WY UVE IZ NEE WY[LI,ISPOLXZUJTE C-x hESCi
h ESCi,KOTORAQ POWTORIT query-replace,TAK KAK ONA ISPOLXZOWALA MINIBUFER DLQ ^TENIQ
ARGUMENTOW.sM.rAZDEL 4.11 [pOWTORENIE],S.43.
sMOTRITE TAKVE rAZDEL 28.9 [pREOBRAZOWANIE IMEN FAJLOW],S.297,^TOBY UZNATX O
KOMANDAH Dired DLQ PEREIMENOWANIQ,KOPIROWANIQ ILI SOZDANIQ SSYLOK NA FAJLY PUTEM
ZAMENY W IH IMENAH SOWPADENIJ S REGULQRNYM WYRAVENIEM.
12.8 dRUGIE KOMANDY POISKA W CIKLE
zDESX PREDSTAWLENY NEKOTORYE DRUGIE KOMANDY,KOTORYE NAHODQT SOWPADENIQ S REGULQR-
NYMI WYRAVENIQMI.wSE ONI DEJSTWU@T OT TO^KI DO KONCA BUFERA,I WSE ONI IGNORIRU@T
PRI SOPOSTAWLENII REGISTR,ESLI OBRAZEC NE SODERVIT ZAGLAWNYH BUKW,A case-fold-search
OTLI^NA OT nil.
M-x occur
h RETi regexp hRETi
wYWODIT PERE^ENX,POKAZYWA@]IJ KAVDU@ STROKU BUFERA,KOTORAQ SODERVIT
SOWPADENIE S regexp.~ISLOWOJ ARGUMENT ZADAET ^ISLO STROK KONTEKSTA,KOTORYE
DOLVNY BYTX NAPE^ATANY PERED I POSLE KAVDOJ SRAWNIWAEMOJ STROKI;ZNA^E-
NIJ PO UMOL^ANI@ | NE PE^ATATX KONTEKST.~TOBY OGRANI^ITX POISK ^ASTX@
BUFERA,SUZXTESX DO\TOJ ^ASTI (SM.rAZDEL 30.8 [sUVENIE],S.335).
bUFER`*Occur*',W KOTORYJ ZAPISYWAETSQ WYWOD,SLUVIT W KA^ESTWE MEN@ DLQ
POISKA WHOVDENIJ W IH ORIGINALXNOM KONTEKSTE.}ELKNITE Mouse-2 NA WHO-
VDENII,PERE^ISLENNOM W`*Occur*',ILI POMESTITE TAM TO^KU I NAVMITE hRETi;
\TO PEREKL@^IT W BUFER,GDE DELALSQ POISK,I PEREMESTIT TO^KU K ORIGINALU
WYBRANNOGO WHOVDENIQ.
M-x list-matching-lines
sINONIM DLQ M-x occur.
M-x count-matches h RETi regexp hRETi
pE^ATAET ^ISLO SOWPADENIJ S regexp POSLE TO^KI.
M-x flush-lines
h RETi regexp hRETi
uDALQET KAVDU@ STROKU,SLEDU@]U@ POSLE TO^KI I SODERVA]U@ SOWPADENIE S
regexp.
M-x keep-lines
h RETi regexp hRETi
uDALQET KAVDU@ STROKU,SLEDU@]U@ POSLE TO^KI I NE SODERVA]U@ SOWPADENIE
S regexp.
gLAWA 12:pOISK I ZAMENA 99kROME TOGO,WY MOVETE ISPOLXZOWATX IZ Emacs PROGRAMMU grep DLQ POISKA SOWPADENIJ
S REGULQRNYM WYRAVENIEM W GRUPPE FAJLOW,A ZATEM OBRATITXSQ K NAJDENNYM SOWPADENIQM
POSLEDOWATELXNO ILI W PROIZWOLXNOM PORQDKE.sM.rAZDEL 23.2 [pOISK S grep],S.248.
100 rUKOWODSTWO PO GNU Emacs
gLAWA 13:kOMANDY DLQ ISPRAWLENIQ OPE^ATOK 10113 kOMANDY DLQ ISPRAWLENIQ OPE^ATOK
w\TOJ GLAWE MY OPISYWAEM KOMANDY,KOTORYE OSOBENNO POLEZNY W TEH SLU^AQH,KOGDA
WY OBNARUVILI W WA[EM TEKSTE O[IBKU SRAZU POSLE TOGO,KAK WY EE DOPUSTILI,ILI ESLI
WY IZMENILI WA[I NAMERENIQ WO WREMQ SO^INENIQ TEKSTA.
nAIBOLEE FUNDAMENTALXNAQ KOMANDA DLQ ISPRAWLENIQ O[IBO^NOGO REDAKTIROWANIQ |
\TO KOMANDA OTMENY,C-x u ILI C-_.|TA KOMANDA OTMENQET ODNU KOMANDU (KAK PRAWI-
LO),^ASTX KOMANDY (W SLU^AE query-replace) ILI NESKOLXKO SAMOWSTAWLQ@]IHSQ ZNAKOW
PODRQD.pOSLEDOWATELXNOE POWTORENIE KOMAND C-_ ILI C-x u OTMENQET WSE BOLEE RANNIE
IZMENENIQ DO KONCA DOSTUPNOJ INFORMACII OTMENY.sM.rAZDEL 4.4 [oTMENA],S.37,DLQ
POLU^ENIQ DALXNEJ[IH SWEDENIJ.
13.1 uNI^TOVENIE WA[IH O[IBOK
h DELi uDALITX POSLEDNIJ ZNAK (delete-backward-char).
M-
h DELi uNI^TOVITX POSLEDNEE SLOWO (backward-kill-word).
C-x
h DELi uNI^TOVITX WSE DO NA^ALA PREDLOVENIQ (backward-kill-sentence).
sIMWOL hDELi (delete-backward-char) | NAIBOLEE WAVNAQ KOMANDA ISPRAWLENIQ.oNA
UDALQET ZNAK PERED TO^KOJ.kOGDA EE ISPOLXZU@T POSLE SAMOWSTAWLQ@]EJSQ ZNAKOWOJ KO-
MANDY,EE MOVNO RASSMATRIWATX KAK OTMENU\TOJ KOMANDY.nO IZBEGAJTE O[IBO^NOJ MYS-
LI,^TO h DELi |\TO UNIWERSALXNYJ SPOSOB OTMENITX KOMANDU!
kOGDA WA[A O[IBKA DLINNEE,^EM PARA ZNAKOW,TO MOVET OKAZATXSQ BOLEE UDOBNYM IS-
POLXZOWATX M-
hDELi ILI C-x hDELi.M-hDELi UNI^TOVAET WSE ZNAKI NAZAD DO NA^ALA POSLEDNEGO
SLOWA,A C-x h DELi UNI^TOVAET NAZAD DO NA^ALA POSLEDNEGO PREDLOVENIQ.C-x hDELi OSOBENNO
POLEZNA W SLU^AE,KOGDA WY MENQETE SWOE MNENIE O FORMULIROWKE TEKSTA,KOTORYJ WY PI-
[ITE.M-h DELi I C-x hDELi ZAPISYWA@T UNI^TOVENNYJ TEKST DLQ WOSSTANOWLENIQ S POMO]X@
C-y I M-y.sM.rAZDEL 9.2 [wOSSTANOWLENIE],S.71.
M-h DELi ^ASTO POLEZNA,DAVE KOGDA WY NABRALI WSEGO NESKOLXKO O[IBO^NYH ZNAKOW,ESLI
WY ZNAETE,^TO ZAPUTALISX I NE UWERENY TO^NO,^TO IMENNO WY NABRALI.w\TOM SLU^AE WY NE
MOVETE ISPRAWLQTX S POMO]X@ hDELi,NE IZU^AQ\KRAN,^TOBY UWIDETX,^TO VE WY SDELALI.
~ASTO UNI^TOVENIE WSEGO SLOWA I EGO POWTORNYJ NABOR POTREBUET MENX[IH RAZDUMIJ.
13.2 pERESTANOWKA TEKSTA
C-t pERESTAWITX DWA ZNAKA (transpose-chars).
M-t pERESTAWITX DWA SLOWA (transpose-words).
C-M-t pERESTAWITX DWA SBALANSIROWANNYH WYRAVENIQ (transpose-sexps).
C-x C-t pERESTAWITX DWE STROKI (transpose-lines).
rASPROSTRANENNAQ O[IBKA PERESTANOWKI DWUH ZNAKOW MOVET BYTX ISPRAWLENA,ESLI ONI
QWLQ@TSQ SOSEDNIMI,S POMO]X@ KOMANDY C-t (transpose-chars).oBY^NO C-t PERESTAW-
LQET DWA ZNAKA,STOQ]IE PO OBE STORONY OT TO^KI.kOGDA ONA DAETSQ W KONCE STROKI,TO
WMESTO TOGO,^TOBY POMENQTX MESTAMI POSLEDNIJ ZNAK SIMWOL I PEREWOD STROKI,^TO BYLO
BY BESPOLEZNO,C-t PERESTAWLQET POSLEDNIE DWA ZNAKA NA STROKE.tAK,ESLI WY OTLOWILI
WA[U O[IBKU PERESTANOWKI SRAZU,WY MOVETE ISPRAWITX EE PROSTO S POMO]X@ C-t.eSLI
WY OTLOWILI EE NE TAK BYSTRO,WY DOLVNY PEREWESTI KURSOR NAZAD I USTANOWITX EGO MEVDU
DWUMQ PERESTAWLENNYMI ZNAKAMI.eSLI WY PERESTAWILI PROBEL I POSLEDNIJ ZNAK W SLOWE
PERED NIM,TO KOMANDY DWIVENIQ PO SLOWAM SLUVAT UDOBNYM SPOSOBOM DOBRATXSQ DO\TOGO
102 rUKOWODSTWO PO GNU EmacsMESTA.oDNAKO,OBRATNYJ POISK (C-r) ^ASTO BYWAET SAMYM LU^[IM SPOSOBOM.sM.gLAWA 12
[pOISK],S.87.
M-t (transpose-words) PERESTAWLQET SLOWO PERED TO^KOJ SO SLOWOM POSLE NEE.oNA DWI-
GAET TO^KU WPERED ^EREZ SLOWO,TAKVE PEREME]AQ WPERED SLOWO,PRED[ESTWU@]EE TO^KE ILI
SODERVA]EE EE.zNAKI PUNKTUACII MEVDU SLOWAMI NE DWIGA@TSQ.nAPRIMER,`FOO,BAR'
PREWRA]AETSQ W`BAR,FOO',A NE W`BAR FOO,'.
C-M-t (transpose-sexps) | ANALOGI^NAQ KOMANDA DLQ PERESTANOWKI DWUH WYRAVENIJ
(SM.rAZDEL 22.2 [sPISKI],S.206),A C-x C-t (transpose-lines) MENQET MESTAMI STROKI.
oNI RABOTA@T TAK VE,KAK M-t,ZA ISKL@^ENIEM OPREDELENIQ DELENIQ TEKSTA NA SINTAKSI-
^ESKIE EDINICY.
~ISLOWOJ ARGUMENT DLQ KOMAND PERESTANOWKI RABOTAET KAK S^ET^IK POWTORENIJ:ON UKA-
ZYWAET KOMANDE PERESTANOWKI PEREDWINUTX ZNAK (SLOWO,STROKU,WYRAVENIE) PERED TO^KOJ
ILI SODERVA]IJ EE ^EREZ NESKOLXKO DRUGIH ZNAKOW (SLOW,STROK,WYRAVENIJ).nAPRIMER,
C-u 3 C-t PEREDWIGAET ZNAK PERED TO^KOJ WPERED ^EREZ TRI DRUGIH ZNAKA.|TO\KWIWALENTNO
TREHKRATNOMU POWTORENI@ C-t.C-u - 4 M-t DWIGAET SLOWO PERED TO^KOJ NAZAD ^EREZ ^ETYRE
SLOWA.C-u - C-M-t OTMENILA BY DEJSTWIE PROSTOJ C-M-t.
~ISLOWOMU ARGUMENTU,RAWNOMU NUL@,PRIDAETSQ SPECIALXNOE ZNA^ENIE (TAK KAK W PRO-
TIWNOM SLU^AE KOMANDY S NULEWYM S^ET^IKOM POWTOROW DOLVNY BYLI BY NI^EGO NE DELATX):
PERESTAWITX ZNAK (SLOWO,WYRAVENIE,STROKU),OKAN^IWA@]IJSQ POSLE TO^KI,SO ZNAKOM
(SLOWOM,WYRAVENIEM,STROKOJ),OKAN^IWA@]IMSQ POSLE METKI.
13.3 iZMENENIE REGISTRA
M- M-l pEREWESTI POSLEDNEE SLOWO W NIVNIJ REGISTR.oTMETIM,^TO Meta- OZNA^AET
Meta-MINUS.
M- M-u pEREWESTI POSLEDNEE SLOWO W WERHNIJ REGISTR.
M- M-c pEREWESTI POSLEDNEE SLOWO W NIVNIJ REGISTR S PERWOJ ZAGLAWNOJ BUKWOJ.
nABOR SLOWA W NEPRAWILXNOM REGISTRE | O^ENX RASPROSTRANENNAQ O[IBKA.pO\TOMU
KOMANDY IZMENENIQ REGISTRA M-l,M-u I M-c OBLADA@T SPECIALXNYM SWOJSTWOM,KOGDA IS-
POLXZU@TSQ S OTRICATELXNYM ARGUMENTOM:ONI NE PEREDWIGA@T KURSOR.kAK TOLXKO WY
UWIDITE,^TO POSLEDNEE SLOWO NABRANO NEPRAWILXNO,WY MOVETE PROSTO IZMENITX W NEM
REGISTR I PRODOLVATX NABOR.sM.rAZDEL 21.6 [rEGISTR],S.189.
13.4 pOISK I ISPRAWLENIE ORFOGRAFI^ESKIH O[IBOK
|TOT RAZDEL OPISYWAET KOMANDY DLQ PROWERKI PRAWOPISANIQ OTDELXNOGO SLOWA ILI ^A-
STI BUFERA.|TI KOMANDY RABOTA@T S PROGRAMMOJ PROWERKI PRAWOPISANIQ Ispell,KOTORAQ
NE QWLQETSQ ^ASTX@ Emacs.
M-x flyspell-mode
wKL@^AET REVIM Flyspell,KOTORYJ WYDELQET WSE NEPRAWILXNO NAPISANNYE SLO-
WA.
M-$ pROWERQET I ISPRAWLQET NAPISANIE SLOWA W TO^KE (ispell-word).
M-
h TABi zAWER[AET SLOWO PERED TO^KOJ,OSNOWYWAQSX NA ORFOGRAFI^ESKOM SLOWARE
(ispell-complete-word).
M-x ispell-buffer
pROWERQET I ISPRAWLQET NAPISANIE WSEH SLOW W BUFERE.
M-x ispell-region
pROWERQET I ISPRAWLQET NAPISANIE WSEH SLOW W OBLASTI.
gLAWA 13:kOMANDY DLQ ISPRAWLENIQ OPE^ATOK 103M-x ispell-message
pROWERQET I ISPRAWLQET NAPISANIE WSEH SLOW W ^ERNOWIKE PO^TOWOGO SOOB]ENIQ,
ZA ISKL@^ENIEM CITIRUEMOGO MATERIALA.
M-x ispell-change-dictionary
hRETi SLOWARX hRETi
pEREZAPUSKAET PROCESS Ispell,ISPOLXZUQ SLOWARX W KA^ESTWE SLOWARQ.
M-x ispell-kill-ispell
uNI^TOVAET PODPROCESS Ispell.
rEVIM Flyspell PREDOSTAWLQET POLNOSTX@ AWTOMATI^ESKIJ SPOSOB PROWERITX PRAWOPISA-
NIE WO WREMQ REDAKTIROWANIQ W Emacs.oN RABOTAET PUTEM PROWERKI SLOW PO MERE TOGO,
KAK WY IZMENQETE ILI WSTAWLQETE IH.kOGDA ON NAHODIT NERASPOZNANNOE SLOWO,ON WYDELQET
EGO.|TO NE WLIQET NA WA[E REDAKTIROWANIE,NO KOGDA WY WIDITE WYDELENNOE SLOWO,WY MO-
VETE PEREMESTITXSQ K NEMU I ISPRAWITX.~TOBY WKL@^ITX\TOT REVIM W TEKU]EM BUFERE,
NABERITE M-x flyspell-mode.
kOGDA REVIM Flyspell WYDELQET NEPRAWILXNO NAPISANNOE SLOWO,WY MOVETE ]ELKNUTX
NA\TOM SLOWE Mouse-2,^TOBY POLU^ITX MEN@ WOZMOVNYH ISPRAWLENIJ I DEJSTWIJ.wY
TAKVE MOVETE ISPRAWITX SLOWO,OTREDAKTIROWAW EGO WRU^NU@ L@BYM SPOSOBOM,KOTORYJ
WAM NRAWITSQ.
dRUGIE WOZMOVNOSTI Emacs PO PROWERKE PRAWOPISANIQ PROWERQ@T ILI I]UT SLOWA,KOGDA
WY DAETE QWNU@ KOMANDU DLQ\TOGO.pROWERKA WSEGO ILI ^ASTI BUFERA POLEZNA,KOGDA U WAS
ESTX TEKST,KOTORYJ BYL NAPISAN NE W DANNOM SEANSE Emacs I MOVET SODERVATX L@BOE
^ISLO O[IBOK.
dLQ PROWERKI ORFOGRAFII W SLOWE WOKRUG TO^KI ILI POSLE NEE I,WOZMOVNO,DLQ EGO
ISPRAWLENIQ,ISPOLXZUJTE KOMANDU M-$ (ispell-word).eSLI SLOWO NAPISANO NEPRAWILXNO,
\TA KOMANDA PREDLOVIT WAM NESKOLXKO WARIANTOW DEJSTWIJ.
~TOBY PROWERITX PRAWOPISANIE WO WSEM TEKU]EM BUFERE,ZAPUSTITE KOMANDU M-x
ispell-buffer.iSPOLXZUJTE M-x ispell-region DLQ PROWERKI TOLXKO TEKU]EJ OBLASTI.
~TOBY PROWERITX ORFOGRAFI@ W PO^TOWOM SOOB]ENII,KOTOROE WY PI[ITE,ISPOLXZUJTE
M-x ispell-message;ONA PROWERQET WESX BUFER,NO NE TROGAET MATERIAL,W KOTOROM SDELAN
OTSTUP,ILI KOTORYJ PROCITIROWAN IZ DRUGIH SOOB]ENIJ.
kAVDYJ RAZ,KOGDA\TI KOMANDY WSTRE^A@T NEPRAWILXNO NAPISANNOE SLOWO,ONI SPRA-
[IWA@T WAS O DALXNEJ[IH DEJSTWIQH.oNI POKAZYWA@T SPISOK WARIANTOW,OBY^NO WKL@^A-
@]IJ NESKOLXKO\POHOVIH SLOW"| KOTORYE BLIZKI PO NAPISANI@ S PROWERQEMYM SLOWOM.
zATEM WY DOLVNY NAPE^ATATX ODIN ZNAK.wOT DOPUSTIMYE WARIANTY OTWETA:
h SPCi pROPUSTITX\TO SLOWO | PRODOLVATX S^ITATX\TO SLOWO NEPRAWILXNYM,NO NE
IZMENQTX EGO ZDESX.
r NOWOE hRETi
zAMENITX\TO SLOWO (TOLXKO W\TOM MESTE) NA NOWOE.
R NOWOE h RETi
zAMENITX\TO SLOWO NA NOWOE I WYPOLNITX query-replace,^TOBY WY MOGLI
ZAMENITX EGO WO WSEH DRUGIH MESTAH BUFERA,ESLI HOTITE.
CIFRA zAMENITX\TO SLOWO (TOLXKO W\TOM MESTE) NA ODNO IZ POKAZANNYH POHOVIH SLOW.
kAVDOE POHOVEE SLOWO PERE^ISLQETSQ S CIFROJ;^TOBY WYBRATX EGO,NABERITE
\TU CIFRU.
a pRINQTX NEPRAWILXNOE SLOWO | S^ITATX EGO PRAWILXNYM,NO TOLXKO W\TOM
SEANSE REDAKTIROWANIQ.
A pRINQTX NEPRAWILXNOE SLOWO | S^ITATX EGO PRAWILXNYM,NO TOLXKO W\TOM
SEANSE REDAKTIROWANIQ I DLQ\TOGO BUFERA.
104 rUKOWODSTWO PO GNU Emacsi wSTAWITX\TO SLOWO W WA[ LI^NYJ FAJL SLOWARQ,^TOBY Ispell OTNYNE S^ITAL
EGO PRAWILXNYM DAVE W BUDU]IH SEANSAH.
u wSTAWITX\TO SLOWO W NIVNEM REGISTRE W WA[ LI^NYJ FAJL SLOWARQ.
m kAK i,NO WY TAKVE MOVETE UKAZATX SWEDENIQ O ZAWER[ENII DLQ SLOWARQ.
l SLOWO
hRETi
pOISKATX W SLOWARE SLOWA,SOPOSTAWLQ@]IESQ SO SLOWOM.|TI SLOWA STANOWQTSQ
NOWYM SPISKOM\POHOVIH SLOW";WY MOVETE WYBRATX DLQ ZAMENY ODNO IZ NIH,
NABRAW CIFRU.wY MOVETE ISPOLXZOWATX W SLOWE ZNAK`*'DLQ OPISANIQ [ABLONA.
C-g wYJTI IZ INTERAKTIWNOJ PROWERKI PRAWOPISANIQ.wY MOVETE PEREZAPUSTITX EE
POZVE S POMO]X@ C-u M-$.
X tO VE,^TO I C-g.
x wYJTI IZ INTERAKTIWNOJ PROWERKI PRAWOPISANIQ I PEREMESTITX TO^KU NAZAD,
GDE ONA BYLA,KOGDA WY ZAPUSTILI PROWERKU.
q wYJTI IZ INTERAKTIWNOJ PROWERKI PRAWOPISANIQ I UNI^TOVITX PROCESS Ispell.
C-l pERERISOWATX\KRAN.
C-z |TOT KL@^ IMEET SWOE OBY^NOE ZNA^ENIE (PRIOSTANOWITX Emacs ILI MINIMIZI-
ROWATX\TOT FREJM).
kOMANDA ispell-complete-word,KOTORAQ PRIWQZANA K KL@^U M-
hTABi W REVIME Text I
RODSTWENNYH S NIM REVIMAH,POKAZYWAET SPISOK ZAWER[ENIJ,OSNOWYWAQSX NA ISPRAWLENII
ORFOGRAFII.wSTAWXTE NA^ALO SLOWA,A ZATEM NAPE^ATAJTE M-h TABi;\TA KOMANDA OTOBRAZIT
OKNO SO SPISKOM ZAWER[ENIJ.~TOBY WYBRATX ODNO IZ PERE^ISLENNYH ZAWER[ENIJ,]ELK-
NITE NA NEM Mouse-2 ILI PEREMESTITE K NEMU KURSOR I NAVMITE hRETi.sM.rAZDEL 21.7
[rEVIM Text],S.190.
oDNAVDY BUDU^I ZAPU]ENNYM,PODPROCESS Ispell PRODOLVAET RABOTATX (OVIDATX KAKOJ-
LIBO RABOTY),^TOBY POSLEDU@]IE KOMANDY PROWERKI PRAWOPISANIQ ZAWER[ALISX BYSTREE.
eSLI WY HOTITE IZBAWITXSQ OT PROCESSA Ispell,WOSPOLXZUJTESX M-x ispell-kill-ispell.
oBY^NO\TO NE TAK NEOBHODIMO,POSKOLXKU\TOT PROCESS NE ZANIMAET WREMQ,KOGDA WY NE
PROWODITE PROWERKU PRAWOPISANIQ.
Ispell ISPOLXZUET DWA SLOWARQ:STANDARTNYJ I WA[ LI^NYJ.pEREMENNAQ ispell-
dictionary ZADAET IMQ ISPOLXZUEMOGO FAJLA STANDARTNOGO SLOWARQ.zNA^ENIE nil GOWORIT,
^TO NUVNO ISPOLXZOWATX SLOWARX PO UMOL^ANI@.kOMANDA M-x ispell-change-dictionary
USTANAWLIWAET\TU PEREMENNU@ I ZATEM PEREZAPUSKAET PODPROCESS Ispell,^TOBY ON ISPOLX-
ZOWAL DRUGOJ SLOWARX.
gLAWA 14:rABOTA S FAJLAMI 10514 rABOTA S FAJLAMI
oPERACIONNAQ SISTEMA HRANIT POSTOQNNYE DANYE W IMENOWANNYH FAJLAH.pO\TOMU BOLX-
[AQ ^ASTX TEKSTA,KOTORYJ WY REDAKTIRUETE W Emacs,PRIHODIT IZ FAJLOW I W KONE^NOM
ITOGE ZAPISYWAETSQ W FAJL.
~TOBY REDAKTIROWATX FAJL,WY DOLVNY WELETX Emacs S^ITATX EGO I PODGOTOWITX BU-
FER,SODERVA]IJ KOPI@ TEKSTA FAJLA.|TO NAZYWAETSQ OBRA]ENIEM K FAJLU.kOMANDY
REDAKTIROWANIQ PRIMENQ@TSQ NEPOSREDSTWENNO K TEKSTU W BUFERE,TO ESTX K KOPII WNUTRI
Emacs.wA[I IZMENENIQ POQWLQ@TSQ W SAMOM FAJLE,TOLXKO KOGDA WY SOHRANITE BUFER W
FAJLE.
kROME OBRA]ENIQ K FAJLAM I IH SOHRANENIQ Emacs MOVET UDALQTX,KOPIROWATX,PERE-
IMENOWYWATX I DOBAWLQTX W FAJLY I RABOTATX S KATALOGAMI FAJLOW.
14.1 iMENA FAJLOW
bOLX[INSTWO KOMAND Emacs,KOTORYE OPERIRU@T S FAJLAMI,TREBU@T OT WAS UKAZANIQ
IMENI FAJLA.(zAPISX I WOSSTANOWLENIE QWLQ@TSQ ISKL@^ENIEM;BUFERU IZWESTNO,KAKOE
IMQ FAJLA ISPOLXZUETSQ DLQ NIH.) iMENA FAJLOW ZADA@TSQ S ISPOLXZOWANIEM MINIBUFERA
(SM.gLAWA 5 [mINIBUFER],S.45).wY MOVETE ISPOLXZOWATX ZAWER[ENIE DLQ OBLEG^ENIQ
NAPISANIQ DLINNYH IMEN FAJLOW.sM.rAZDEL 5.3 [zAWER[ENIE],S.47.
dLQ BOLX[INSTWA OPERACIJ SU]ESTWUET IMQ FAJLA PO UMOL^ANI@,KOTOROE BUDET IS-
POLXZOWANO,ESLI WY NABERETE PROSTO h RETi,WWODQ PUSTOJ ARGUMENT.oBY^NO IMQ FAJLA
PO UMOL^ANI@ |\TO IMQ FAJLA,NAHODQ]EGOSQ W TEKU]EM BUFERE,^TO UPRO]AET DEJSTWIQ
NAD\TIM FAJLOM S POMO]X@ L@BYH FAJLOWYH KOMAND Emacs.
kAVDYJ BUFER IMEET SWOJ KATALOG PO UMOL^ANI@,OBY^NO TOT VE SAMYJ,^TO I KATALOG
FAJLA,K KOTOROMU OBRA]AETSQ\TOT BUFERE.kOGDA WY WWODITE IMQ FAJLA,NE UKAZYWAQ
KATALOG,ON ISPOLXZUET KATALOG PO UMOL^ANI@.eSLI WY ZADADITE KATALOG W OTNOSITELXNOJ
FORME,S POMO]X@ IMENI,KOTOROE NE NA^INAETSQ S KOSOJ ^ERTY,ONO INTERPRETIRUETSQ PO
OTNO[ENI@ K KATALOGU PO UMOL^ANI@.kATALOG PO UMOL^ANI@ HRANITSQ W PEREMENNOJ
default-directory,KOTORAQ IMEET SWOE SOBSTWENNOE ZNA^ENIE W KAVDOM BUFERE.
nAPRIMER,ESLI PO UMOL^ANI@ IMQ FAJLA |`/u/rms/gnu/gnu.tasks',TO KATALOGOM
PO UMOL^ANI@ BUDET`u/rms/gnu/'.eSLI WY NABERETE PROSTO`foo',NE OPISYWAQ KATA-
LOG,TO\TO BUDET SOKRA]ENIEM DLQ`/u/rms/gnu/foo'.`../.login'BUDET SOOTWETSTWOWATX
`/u/rms/.login'.`new/foo'OBOZNA^AET FAJL S IMENEM`/u/rms/gnu/new/foo'.
kOMANDA M-x pwd PE^ATAET KATALOG PO UMOL^ANI@ DLQ TEKU]EGO BUFERA,A KOMANDA M-x
cd USTANAWLIWAET EGO (ZNA^ENIE S^ITYWAETSQ W MINIBUFERE).kATALOG PO UMOL^ANI@ W
BUFERE IZMENQETSQ TOLXKO TOGDA,KOGDA ISPOLXZUETSQ KOMANDA cd.kATALOG PO UMOL^ANI@
DLQ BUFERA,OBRA]A@]EGOSQ K FAJLU,INICIALIZIRUETSQ PO KATALOGU FAJLA,K KOTOROMU ON
OBRATILSQ.eSLI BUFER SOZDAETSQ PROIZWOLXNYM OBRAZOM S POMO]X@ C-x b,EGO KATALOG PO
UMOL^ANI@ KOPIRUETSQ IZ TOGO BUFERA,KOTORYJ BYL TEKU]IM W TOT MOMENT.
kATALOG PO UMOL^ANI@ FAKTI^ESKI POQWLQETSQ W MINIBUFERE,KOGDA MINIBUFER STANO-
WITSQ AKTIWNYM DLQ ^TENIQ IMENI FAJLA.|TO SLUVIT DWUM CELQM:^TOBY POKAZATX WAM,
^TO IMEETSQ PO UMOL^ANI@,TAK ^TO WY MOVETE NABRATX SOOTWETSTWU@]EE IMQ FAJLA I S
OPREDELENNOSTX@ UZNATX,^TO\TO BUDET ZNA^ITX,I ^TOBY POZWOLITX WAM OTREDAKTIROWATX
KATALOG PO UMOL^ANI@ I ZADATX DRUGOJ KATALOG.|TA PODSTANOWKA KATALOGA PO UMOL^ANI@
NE DELAETSQ,ESLI PEREMENNAQ insert-default-directory USTANOWLENA RAWNOJ nil.
zAMETIM,^TO ZAKONNO NABIRATX POLNOE IMQ FAJLA POSLE TOGO,KAK WY WOJDETE W MINIBU-
FER,IGNORIRUQ PRISUTSTWIE IMENI KATALOGA PO UMOL^ANI@ KAK ^ASTI TEKSTA.oKON^ATELX-
NOE SODERVANIE MINIBUFERA MOVET KAZATXSQ NEPRAWILXNYM,NO NA SAMOM DELE\TO NE TAK.
nAPRIMER,ESLI SNA^ALA MINIBUFER SODERVAL`/usr/tmp/',I WY DOBAWILI`/x1/rms/foo',
106 rUKOWODSTWO PO GNU EmacsWY POLU^ITE`/usr/tmp//x1/rms/foo';NO Emacs IGNORIRUET WSE DO TOGO MESTA,GDE WSTRE-
^ENY DWE KOSYE ^ERTY PODRQD;W REZULXTATE POLU^AETSQ`/x1/rms/foo'.sM.rAZDEL 5.1
[mINIBUFER fAJL],S.45.
lITERA`$'W IMENI FAJLA ISPOLXZUETSQ DLQ PODSTANOWKI PEREMENNYH SREDY.nAPRIMER,
ESLI WY PRIMENILI KOMANDU OBOL^KI`export FOO=rms/hacks'DLQ USTANOWKI PEREMENNOJ
SREDY S IMENEM FOO,TO WY MOVETE ISPOLXZOWATX`/u/$FOO/test.c'ILI`/u/${FOO}/test.c'
W KA^ESTWE SOKRA]ENIQ DLQ`/u/rms/hacks/test.c'.iMQ PEREMENNOJ SREDY SOSTOIT IZ
WSEH BUKW I CIFR POSLE`$';ILI ONO MOVET BYTX ZAKL@^ENO W FIGURNYE SKOBKI POSLE`$'.
zAMETXTE,^TO KOMANDY OBOLO^KI,KOTORYE USTANAWLIWA@T PEREMENNYE SREDY,POWLIQ@T
NA Emacs,TOLXKO ESLI ONI BYLI WYPOLNENY DO ZAPUSKA Emacs.
~TOBY POLU^ITX DOSTUP K FAJLU,SODERVA]EMU W IMENI ZNAK`$',NAPE^ATAJTE`$$'.
|TA PARA PREWRA]AETSQ W ODIN`$',W TO WREMQ KAK DLQ ODINO^NOGO`$'DELAETSQ PODSTANOWKA
PEREMENNOJ.iLI WY MOVETE OTMENITX OSOBYJ SMYSL WSEH ZNAKOW W IMENI FAJLA S POMO]X@
POSLEDOWATELXNOSTI`/:'(SM.rAZDEL 14.13 [bUKWALXNYE IMENA FAJLOW],S.134).
lISPOWSKAQ FUNKCIQ,KOTORAQ PROIZWODIT PODSTANOWKU,NAZYWAETSQ substitute-in-
file-name.pODSTANOWKA WYPOLNQETSQ TOLXKO DLQ IMEN FAJLOW,S^ITYWAEMYH KAK TAKOWYE
S ISPOLXZOWANIEM MINIBUFERA.
wY MOVETE WKL@^ATX W IMENA FAJLOW ZNAKI,NE WHODQ]IE W ASCII,ESLI USTANOWITE PERE-
MENNU@ file-name-coding-system W OTLI^NOE OT nil ZNA^ENIE.sM.rAZDEL 18.9 [zADANIE
KODIROWANIQ],S.168.
14.2 oBRA]ENIE K FAJLAM
C-x C-f oBRATITXSQ K FAJLU (find-file).
C-x C-r oBRATITXSQ K FAJLU DLQ PROSMOTRA,NE DOPUSKAQ EGO IZMENENIQ (find-file-
read-only).
C-x C-v oBRATITXSQ K DRUGOMU FAJLU,WMESTO POSLEDNEGO POSE]ENNOGO (find-
alternate-file).
C-x 4 f oBRATITXSQ K FAJLU W DRUGOM OKNE (find-file-other-window).nE MENQET TE-
KU]EE OKNO.
C-x 5 f oBRATITXSQ K FAJLU W DRUGOM FREJME (find-file-other-frame).nE IZMENQET
TO,^TO OTOBRAVETSQ W WYBRANNOM FREJME.
M-x find-file-literally
oBRATITXSQ K FAJLU BEZ PREOBRAZOWANIQ EGO SODERVIMOGO.
oBRA]ENIE K FAJLU OZNA^AET KOPIROWANIE EGO SODERVIMOGO W BUFER Emacs,GDE WY MO-
VETE EGO REDAKTIROWATX.EmAcs SOZDAET NOWYJ BUFER DLQ KAVDOGO FAJLA,K KOTOROMU WY
OBRA]AETESX.mY GOWORIM,^TO\TOT BUFER OBRA]AETSQ K FAJLU,DLQ HRANENIQ KOTOROGO ON
BYL SOZDAN.Emacs SOZDAET IMQ BUFERA IZ IMENI FAJLA,OTBRASYWAQ KATALOG I SOHRANQQ
PROSTO SOBSTWENNO IMQ.nAPRIMER,FAJL S IMENEM`/usr/rms/emacs.tex'POLU^IT BUFER S
IMENEM`emacs.tex'.eSLI BUFER S TAKIM IMENEM UVE SU]ESTWUET,TO SOZDAETSQ UNIKALXNOE
IMQ PUTEM DOBAWLENIQ`<2>',`<3>'I TAK DALEE;PRI\TOM ISPOLXZUETSQ NAIMENX[IJ NOMER,
SOZDA@]IJ E]E NE ISPOLXZUEMOE IMQ.
sTROKA REVIMA KAVDOGO OKNA POKAZYWAET IMQ BUFERA,KOTORYJ OTRAVEN W\TOM OKNE,
TAKIM OBRAZOM WY WSEGDA MOVETE SKAZATX,KAKOJ BUFER REDAKTIRUETE.
wSE IZMENENIQ,SDELANNYE PRI POMO]I KOMAND REDAKTIROWANIQ,DELA@TSQ W BUFERE
Emacs.oNI NE WLIQ@T NA FAJL,K KOTOROMU WY OBRATILISX,ILI NA L@BOE DRUGOE PO-
STOQNNOE MESTO,POKA WY NE SOHRANILI BUFER.sOHRANENIE BUFERA OZNA^AET,^TO Emacs
ZAPISYWAET TEKU]EE SODERVIMOE\TOGO BUFERA W FAJL,K KOTOROMU ON OBRA]ALSQ.sM.rAZDEL 14.3 [sOHRANENIE],S.108.
gLAWA 14:rABOTA S FAJLAMI 107eSLI BUFER SODERVIT IZMENENIQ,KOTORYE NE BYLI SOHRANENY,TO O BUFERE GOWORITSQ,
^TO ON IZMENEN (ILI MODIFICIROWAN).|TO WAVNO,TAK KAK\TO PODRAZUMEWAET,^TO KAKIE-
TO IZMENENIQ POTERQ@SQ,ESLI BUFER NE BUDET SOHRANEN.eSLI BUFER IZMENEN,OKOLO LEWOGO
KRAQ STROKA REVIMA POKAZYWA@TSQ DWE ZWEZDO^KI.
~TOBY OBRATITXSQ K FAJLU,ISPOLXZUJTE KOMANDU C-x C-f (find-file).pOSLE NEE WWE-
DITE IMQ FAJLA,KOTORYJ WY HOTITE POSETITX,OGRANI^ENNOE hRETi.
iMQ FAJLA S^ITYWAETSQ S ISPOLXZOWANIEM MINIBUFERA (SM.gLAWA 5 [mINIBUFER],S.45)
S ISPOLXZOWANIEM ZNA^ENIJ PO UMOL^ANI@ I ZAWER[ENIEM STANDARTNYM SPOSOBOM (SM.rAZ-
DEL 14.1 [iMENA FAJLOW],S.105 ).pOKA WY NAHODITESX W MINIBUFERE,WY MOVETE PRERWATX
WYPOLNENIE C-x C-f,NABRAW C-g.
pODTWERVDENIEM TOGO,^TO C-x C-f ZAWER[ILASX UDA^NO,SLUVIT POQWLENIE NOWOGO TEK-
STA NA\KRANE I NOWOGO IMENI BUFERA W STROKE REVIMA.eSLI UKAZANNYJ FAJL NE SU]ESTWUET
I NE MOVET BYTX SOZDAN ILI S^ITAN,TOGDA WOZNIKAET O[IBKA.sOOB]ENIE O NEJ PE^ATAETSQ
W\HO-OBLASTI.
eSLI WY OBRA]AETESX K FAJLU,KOTORYJ UVE SU]ESTWUET W Emacs,C-x C-f NE SOZDAET
DRUGOJ KOPII.oNA WYBIRAET SU]ESTWU@]IJ BUFER,SODERVA]IJ\TOT FAJL.oDNAKO,PE-
RED\TIM ONA PROWERQET,NE IZMENILSQ LI SAM FAJL S TEH POR,KAK WY OBRATILISX K NEMU
ILI ZAPISALI EGO W PRO[LYJ RAZ.eSLI FAJL BYL IZMENEN,TO BUDET NAPE^ATANO PREDO-
STEREGA@]EE SOOB]ENIE.sM.rAZDEL 14.3.2 [zA]ITA OT ODNOWREMENNOGO REDAKTIROWANIQ],
S.112.
a ^TO ESLI WY ZAHOTITE SOZDATX NOWYJ FAJL?pROSTO OBRATITESX K NEMU.Emacs PE^A-
TAET W\HO-OBLASTI`(New File)',NO W DRUGIH OTNO[ENIQH WEDET SEBQ TAK VE,KAK,ESLI BY
WY OBRATILISX BY K SU]ESTWU@]EMU PUSTOMU FAJLU.eSLI WY SDELAETE L@BYE IZMENENIQ
I ZAPI[ETE IH,TO FAJL BUDET SOZDAN.
Emacs UZNA<T IZ SODERVIMOGO FAJLA,KAKOE SOGLA[ENIE ISPOLXZUETSQ W NEM DLQ RAZDE-
LENIQ STROK | PEREWOD STROKI (ISPOLXZUEMYJ W GNU/Linux I Unix),WOZWRAT KARETKI I
PEREWOD STROKI (ISPOLXZUEMYE W SISTEMAH Microsoft) ILI PROSTO WOZWRAT KARETKI (ISPOLX-
ZUEMYJ NA Macintosh) | I AWTOMATI^ESKI PREOBRAZUET SODERVIMOE K OBY^NOMU FORMATU
Emacs,W KOTOROM STROKI RAZDELQ@TSQ ZNAKAMI PEREWODA STROKI.|TO ^ASTX OB]EGO SRED-
STWA PREOBRAZOWANIQ SISTEMY KODIROWANIQ (SM.rAZDEL 18.7 [sISTEMY KODIROWANIQ],S.165),
I\TO POZWOLQET REDAKTIROWATX FAJLY,PERENESENNYE S RAZLI^NYH OPERACIONNYH SISTEM S
ODINAKOWYM UDOBSTWOM.eSLI WY IZMENILI TEKST I SOHRANILI FAJL,Emacs PROIZWODIT
OBRATNOE PREOBRAZOWANIE,ZAMENQQ PEREWODY STROKI NA WOZWRAT KARETKI I PEREWOD STROKI
ILI PROSTO WOZWRAT KARETKI,ESLI\TO NEOBHODIMO.
eSLI UKAZANNYJ WAMI FAJL FAKTI^ESKI QWLQETSQ KATALOGOM,TO C-x C-f WYZYWAET Dired,
BROUZER KATALOGOW Emacs,^TOBY WY MOGLI\REDAKTIROWATX"SODERVIMOE\TOGO KATALOGA (SM.gLAWA 28 [Dired],S.291).Dired PREDOSTAWLQET UDOBNYJ SPOSOB UDALENIQ,PROSMOTRA ILI
OBRABOTKI FAJLOW W KATALOGE.oDNAKO,ESLI PEREMENNAQ find-file-run-dired RAWNA nil,
POPYTKA OBRATITXSQ K KATALOGU BUDET S^ITATXSQ O[IBKOJ.
eSLI ZADANNOE WAMI IMQ FAJLA SODERVIT SIMWOLY PODSTANOWKI,Emacs OBRA]AETSQ KO
WSEM FAJLAM,SOOTWETSTWU@]IM\TOMU IMENI.sM.rAZDEL 14.13 [bUKWALXNYE IMENA FAJ-
LOW],S.134,ESLI WY HOTITE OBRATITXSQ K FAJLU,^XE IMQ W SAMOM DELE SODERVIT SIMWOLY
PODSTANOWKI.
eSLI OPERACIONNAQ SISTEMA NE POZWOLQET WAM IZMENQTX FAJL,K KOTOROMU WY OBRA]AE-
TESX,Emacs DELAET BUFER DOSTUPNYM TOLXKO DLQ ^TENIQ,TAK ^TO U WAS NE POLU^ITSQ WNESTI
IZMENENIQ,KOTORYE BUDET PROBLEMATI^NO WPOSLEDSTWII SOHRANITX.wY MOVETE SDELATX BU-
FER DOSTUPNYM DLQ ZAPISI S POMO]X@ C-x C-q (vc-toggle-read-only).sM.rAZDEL 15.3
[dRUGIE OPERACII S BUFERAMI],S.136.
iNOGDA WY MOVETE ZAHOTETX OBRATITXSQ K FAJLU W REVIME TOLXKO ^TENIQ,^TOBY ZA-
]ITITXSQ OT SLU^AJNOGO WNESENIQ IZMENENIJ;DELAJTE\TO,OBRA]AQSX K FAJLU S POMO]X@
KOMANDY C-x C-r (find-file-read-only).
108 rUKOWODSTWO PO GNU EmacseSLI WY OBRATILISX K NESU]ESTWU@]EMU FAJLU NEUMY[LENNO (TAK KAK WY NABRALI
NEPRAWILXNOE IMQ FAJLA),ISPOLXZUJTE KOMANDU C-x C-v (find-alternate-file),^TOBY
OBRATITXSQ K FAJLU,KOTORYJ WAM NUVEN NA SAMOM DELE.C-x C-v PODOBNA C-x C-f,NO
UNI^TOVAET TEKU]IJ BUFER (POSLE TOGO,KAK SNA^ALA PREDLOVIT ZAPISATX EGO,ESLI ON
IZMENEN).pRI S^ITYWANII NOWOGO IMENI FAJLA ONA WSTAWLQET POLNOE IMQ TEKU]EGO FAJ-
LA,OSTAWLQQ TO^KU SRAZU POSLE IMENI KATALOGA;\TO UDOBNO,ESLI WY SDELALI NEBOLX[U@
O[IBKU,KOGDA WWODILI IMQ FAJLA.
eSLI WY OBRA]AETESX K FAJLU,KOTORYJ SU]ESTWUET,NO NE MOVET BYTX PRO^ITAN,C-x
C-f WYDAET O[IBKU.
C-x 4 f (find-file-other-window) POHOVA NA C-x C-f,NO BUFER,SODERVA]IJ OPISAN-
NYJ FAJL,WYBIRAETSQ W DRUGOM OKNE.oKNO,KOTOROE BYLO WYBRANNO DO WYZOWA C-x 4
f,PRODOLVAET POKAZYWATX TOT VE BUFER,KOTORYJ UVE POKAZYWALSQ.eSLI\TA KOMANDA
ISPOLXZUETSQ,KOGDA SU]ESTWUET TOLXKO ODNO OKNO,TO\TO OKNO DELITSQ NA DWA,ODNO IZ
KOTORYH PRODOLVAET POKAZYWATX TO VE,^TO I PREVDE,A DRUGOE POKAZYWAET NOWYJ ZATRE-
BOWANNYJ FAJL.sM.gLAWA 16 [oKNA],S.141.
C-x 5 f (find-file-other-frame) ANALOGI^NA\TOJ KOMANDE,NO OTKRYWAET NOWYJ FREJM
ILI DELAET WIDIMYM L@BOJ SU]ESTWU@]IJ FREJM,POKAZYWA@]IJ ISKOMYJ FAJL.|TO
WOZMOVNO,TOLXKO ESLI WY POLXZUETESX OKONNOJ SISTEMOJ.sM.gLAWA 17 [fREJMY],S.147.
eSLI WY HOTITE OTREDAKTIROWATX FAJL KAK POSLEDOWATELXNOSTX ZNAKOW BEZ OSOBOJ PE-
REKODIROWKI ILI PREOBRAZOWANIQ,ISPOLXZUJTE KOMANDU M-x find-file-literally.oNA
OBRA]AETSQ K FAJLU,KAK C-x C-f,NO NE DELAET PREOBRAZOWANIQ FORMATA (SM.rAZDEL 21.11
[fORMATIROWANNYJ TEKST],S.198 ),PREOBRAZOWANIQ ZNAKOWYH KODOW (SM.rAZDEL 18.7 [sI-
STEMY KODIROWANIQ],S.165 ) ILI AWTOMATI^ESKOJ RASPAKOWKI (SM.rAZDEL 14.11 [sVATYE
FAJLY],S.133 ).eSLI WY UVE OBRA]AETESX K\TOMU VE FAJLU OBY^NYM SPOSOBOM (NE BUK-
WALXNO),\TA KOMANDA SPROSIT WAS,OBRATITXSQ LI K NEMU W\TOT RAZ BUKWALXNO.
dWE PEREMENNYE-LOWU[KI POZWOLQ@T RAS[IRENIQM IZMENQTX SPOSOB OBRA]ENIQ K FAJ-
LAM.oBRA]ENIE K NESU]ESTWUE]EMU FAJLU ZAPUSKAET FUNKCII W SPISKE find-file-not-
found-hooks;ZNA^ENIE\TOJ PEREMENNOJ | SPISOK FUNKCIJ,I\TI FUNKCII WYZYWA@TSQ
ODNA ZA DRUGOJ DO TEH POR,POKA ODNA IZ NIH NE WERNET OTLI^NOE OT nil ZNA^ENIE.l@BOE
OBRA]ENIE K FAJLU,SU]ESTWU@]EMU ILI NET,PREDPOLAGAET,^TO find-file-hooks SODER-
VIT SPISOK FUNKCIJ,I WYZYWAET IH WSE ODNU ZA DRUGOJ.w OBOIH SLU^AQH FUNKCII WYZYWA-
@TSQ BEZ ARGUMENTOW.pERWOJ PRIMENQETSQ PEREMENNAQ find-file-not-found-hooks.|TI
PEREMENNYE NE NORMALXNYE LOWU[KI,I DLQ OBOZNA^ENIQ\TOGO IH IMENA ZAKAN^IWA@TSQ NA
`-hooks',A NE NA`-hook'.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
eSTX NESKOLXKO SPOSOBOW AWTOMATI^ESKI UKAZATX OSNOWNOJ REVIM DLQ REDAKTIROWANIQ
FAJLA (SM.rAZDEL 19.1 [wYBOR REVIMA],S.175) I USTANOWITX LOKALXNYE PEREMENNYE,
OPREDELENNYE DLQ\TOGO FAJLA (SM.rAZDEL 31.2.5 [pEREMENNYE FAJLA],S.351).
14.3 sOHRANENIE FAJLOW
sOHRANENIE BUFERA W Emacs OZNA^AET ZAPISX EGO SODERVIMOGO OBRATNO W FAJL,K KOTO-
ROMU\TOT BUFER OBRA]AETSQ.
C-x C-s sOHRANITX TEKU]IJ BUFER W FAJLE,K KOTOROMU\TOT BUFER OBRA]AETSQ (save-
buffer).
C-x s sOHRANITX NEKOTORYE ILI WSE BUFERY W IH SOOTWETSTWU@]IH FAJLAH (save-
some-buffers).
M-~ zABYTX,^TO TEKU]IJ BUFER BYL IZMENEN (not-modified).
C-x C-w sOHRANITX TEKU]IJ BUFER W ZADANNYJ FAJL (write-file).
M-x set-visited-file-name
iZMENITX IMQ FAJLA,POD KOTORYM TEKU]IJ BUFER BUDET SOHRANQTXSQ.
gLAWA 14:rABOTA S FAJLAMI 109eSLI WY HOTITE SOHRANITX FAJL I SDELATX EGO IZMENENIQ POSTOQNNYMI,NABERITE C-x
C-s (save-buffer).pOSLE TOGO,KAK ZAPISX ZAKON^ITSQ,C-x C-s PE^ATAET SOOB]ENIE PODOB-
NOE\TOMU:
Wrote/u/rms/gnu/gnu.tasks
eSLI VE WYBRANNYJ BUFER NE MODIFICIROWAN (W NEM NE BYLO SDELANO IZMENENIJ S TEH POR,
KAK ON BYL SOZDAN ILI POSLEDNIJ RAZ ZAPISAN),EGO ZAPISX NE DELAETSQ,TAK KAK\TO NE IMEET
SMYSLA.wMESTO\TOGO,C-x C-s PE^ATAET TAKOE SOOB]ENIE W\HO-OBLASTI:
(No changes need to be saved)
kOMANDA C-x s (save-some-buffers) PREDLAGAET ZAPISATX KAKIE-LIBO ILI WSE IZMENEN-
NYE BUFERY.oNA SPRA[IWAET WAS,^TO NUVNO SDELATX S KAVDYM BUFEROM.wOZMOVNYE
WARIANTY OTWETA ANALOGI^NY WARIANTAM DLQ query-replace:
y sOHRANITX\TOT BUFER I SPRA[IWATX OB OSTALXNYH.
n nE SOHRANQTX\TOT BUFER,NO SPRA[IWATX OB OSTALXNYH.
!sOHRANITX\TOT BUFER I WSE OSTALXNYE BEZ DALXNEJ[IH WOPROSOW.
h RETi pRERWATX save-some-buffers I BOLX[E NI^EGO NE ZAPISYWATX.
.sOHRANITX\TOT BUFER I WYJTI IZ save-some-buffers,NE SPRA[IWAQ OB OSTALX-
NYH BUFERAH.
C-r pROSMOTRETX BUFER,O KOTOROM WAS SPROSILI W DANNYJ MOMENT.kOGDA WY WYJ-
DITE IZ REVIMA View,WY SNOWA POPADAETE W save-some-buffers,KOTORAQ PRO-
DOLVAET ZADAWATX WAM WOPROSY.
C-h pOKAZATX SPRAWO^NOE SOOB]ENIE O\TIH WARIANTAH OTWETA.
C-x C-c,POSLEDOWATELXNOSTX KL@^EJ DLQ WYHODA IZ Emacs,WYZYWAET save-some-
buffers I,SLEDOWATELXNO,ZADAET\TI VE WOPROSY.
eSLI WY IZMENILI BUFER,NO NE HOTITE ZAPISYWATX IZMENENIQ,WY DOLVNY PREDPRINQTX
NEKOTORYE DEJSTWIQ,^TOBY PREDOTWRATITX\TO.iNA^E KAVDYJ RAZ,KOGDA WY ISPOLXZUE-
TE C-x s ILI C-x C-c,WY MOVETE PO O[IBKE EGO ZAPISATX.s ODNOJ STORONY,WY MOVETE
NABRATX M-~ (not-modified),^TO SBRASYWAET POKAZATELX IZMENENNOSTI BUFERA.eSLI WY
SDELAETE TAK,TO NI ODNA IZ KOMAND ZAPISI NE BUDET DUMATX,^TO BUFER NUVNO SOHRANQTX.
(`~'^ASTO ISPOLXZUETSQ KAK MATEMATI^ESKIJ SIMWOL DLQ OBOZNA^ENIQ OTRICANIQ,TAKIM
OBRAZOM,POSLEDOWATELXNOSTX M-~ |\TO META-OTRICANIE).wY MOGLI BY TAKVE ISPOLXZO-
WATX set-visited-file-name (SMOTRITE NIVE),^TOBY POMETITX BUFER,KAK OBRATIW[IJSQ
K FAJLU S DRUGIM IMENEM,KOTORYJ NE ISPOLXZOWALSQ DLQ ^EGO-TO WAVNOGO.s DRUGOJ STO-
RONY,WY MOVETE OTMENITX WSE IZMENENIQ,SDELANNYE S TEH POR,KOGDA K FAJLU OBRATILISX,
ILI ON BYL ZAPISAN,S POMO]X@ POWTORNOGO S^ITYWANIQ TEKSTA IZ FAJLA.|TO NAZYWAETSQ
WOZWRA]ENIEM K PREVNEMU SOSTOQNI@.sM.rAZDEL 14.4 [wOZWRA]ENIE],S.113.wY MOGLI
BY TAKVE OTMENITX WSE IZMENENIQ,POWTORQQ KOMANDU OTMENY C-x u DOSTATO^NO DOLGO;NO
WOZWRA]ENIE PRO]E.
M-x set-visited-file-name ZAMENQET IMQ FAJLA,K KOTOROMU OBRA]AETSQ TEKU]IJ BU-
FER.oNA S^ITYWAET NOWOE IMQ FAJLA,ISPOLXZUQ MINIBUFER.zATEM SOOTWETSTWENNO IZ-
MENQETSQ IMQ BUFERA (ESLI NOWOE IMQ UVE NE ISPOLXZUETSQ).set-visited-file-name NE
ZAPISYWAET BUFER W NOWYJ WYZWANNYJ FAJL,ONA PROSTO MENQET ZAPISI WNUTRI Emacs NA
SLU^AJ POSLEDU@]EGO SOHRANENIQ.oNA TAK VE POME^AET BUFER KAK\IZMENENNYJ",TAK ^TO
C-x C-s BUDET EGO SOHRANQTX.
eSLI WY HOTITE POMETITX BUFER KAK OBRA]A@]IJSQ K DRUGOMU FAJLU I SRAZU EGO
ZAPISATX,ISPOLXZUJTE C-x C-w (write-file).|TO SOWER[ENNO TO^NYJ\KWIWALENT set-
visited-file-name,ZA KOTORYM SLEDUET C-x C-s.iSPOLXZOWANIE C-x C-s W BUFERE,KO-
TORYJ NE OBRA]ALSQ K FAJLU,IMEET TO VE SAMOE DEJSTWIE,^TO I C-x C-w;TO ESTX,ONA
S^ITYWAET IMQ FAJLA,METIT BUFER KAK OBRA]A@]IJSQ K\TOMU FAJLU I ZAPISYWAET EGO
110 rUKOWODSTWO PO GNU EmacsTUDA.pO UMOL^ANI@ IMQ FAJLA W BUFERE,KOTORYJ NE OBRA]ALSQ K FAJLU,SOSTAWLQETSQ IZ
IMENI BUFERA I KATALOGA PO UMOL^ANI@ DLQ\TOGO BUFERA.
eSLI NOWOE IMQ FAJLA PODRAZUMEWAET OSNOWNOJ REVIM,TO C-x C-w W BOLX[INSTWE SLU-
^AEW PEREKL@^AET W\TOT REVIM.kOMANDA set-visited-file-name WEDET SEBQ TAK VE.sM.rAZDEL 19.1 [wYBOR REVIMA],S.175.
eSLI Emacs SOBIRAETSQ ZAPISATX FAJL I WIDIT,^TO DATA POSLEDNEJ WERSII NA DISKE NE
SOOTWETSTWUET TOMU,^TO ON POSLEDNIJ RAZ ^ITAL ILI ZAPISYWAL,TO ON STAWIT WAS W IZWEST-
NOSTX OB\TOM FAKTE,TAK KAK\TO,WOZMOVNO,WYQWLQET PROBLEMU,WYZWANNU@ ODNOWREMEN-
NYM REDAKTIROWANIEM,I TREBUET WA[EGO NEZAMEDLITELXNOGO WNIMANIQ.sM.rAZDEL 14.3.2
[zA]ITA OT ODNOWREMENNOGO REDAKTIROWANIQ],S.112.
eSLI PEREMENNAQ require-final-newline NE RAWNA nil,Emacs STAWIT OGRANI^ITELX
STROKI W KONEC KAVDOGO FAJLA,KOTORYJ NE ZAKON^IWAETSQ IM,KAVDYJ RAZ,KOGDA FAJL
SOHRANQETSQ ILI ZAPISYWAETSQ.pO UMOL^ANI@\TA PEREMENNAQ RAWNA nil.
14.3.1 rEZERWNYE FAJLY
w BOLX[INSTWE OPERACIONNYH SISTEM PEREPISYWANIE FAJLA AWTOMATI^ESKI RAZRU[AET
WSE SWEDENIQ O TOM,^TO\TOT FAJL SODERVAL RANX[E.tAKIM OBRAZOM,ZAPISX FAJLA IZ
Emacs OTBRASYWAET STAROE SODERVIMOE FAJLA | ILI MOVET OTBROSITX,ESLI PERED FAKTI-
^ESKOJ ZAPISX@ Emacs PREDUSMOTRITELXNO NE SKOPIRUET STAROE SODERVIMOE W DRUGOJ FAJL,
NAZYWAEMYJ REZERWNYM.
dLQ BOLX[INSTWA FAJLOW RE[ENIE O SOZDANII REZERWNYH KOPIJ OPREDELQETSQ PEREMENNOJ
make-backup-files.nA BOLX[INSTWE OPERACIONNYH SISTEM EE ZNA^ENIE PO UMOL^ANI@
RAWNO t,^TO WELIT Emacs SOZDAWATX REZERWNYE FAJLY.
dLQ FAJLOW,NAHODQ]IHSQ POD KONTROLEM SISTEMY UPRAWLENIQ WERSIQMI (SM.rAZDEL 14.7
[uPRAWLENIE WERSIQMI],S.116 ),\TO OPREDELQETSQ PEREMENNOJ vc-make-backup-files.pO
UMOL^ANI@ ONA RAWNA nil,TAK KAK REZERWNYE KOPII IZLI[NI,RAZ WY ZAPISYWAETE WSE PRE-
DYDU]IE WERSII W SISTEME UPRAWLENIQ WERSIQMI.sM.rAZDEL 14.7.9.2 [oBRABOTKA RABO^IH
FAJLOW W VC],S.130.
sU]ESTWU@]EE PO UMOL^ANI@ ZNA^ENIE PEREMENNOJ backup-enable-predicate ZAPRE]A-
ET ZAPISYWATX REZERWNYE KOPII DLQ FAJLOW IZ KATALOGA`/tmp'.
pO WA[EMU WYBORU Emacs MOVET SOHRANQTX LIBO TOLXKO ODIN REZERWNYJ FAJL,LIBO
NESKOLXKO NUMEROWANNYH REZERWNYH FAJLOW DLQ KAVDOGO FAJLA,KOTORYJ WY REDAKTIROWA-
LI.
Emacs SOZDAET REZERWNYJ FAJL TOLXKO PERWYJ RAZ,KOGDA FAJL ZAPISYWAETSQ IZ ODNOGO
BUFERA.wNE ZAWISIMOSTI OT TOGO,SKOLXKO RAZ WY ZAPISYWALI FAJL,EGO REZERWNAQ KOPIQ
PRODOLVAET SODERVATX TO,^TO BYLO W FAJLE PERED OBRA]ENIEM.oBY^NO\TO OZNA^AET,^TO
REZERWNYJ FAJL SODERVIT TO,^TO BYLO W FAJLE PERED TEKU]IM SEANSOM REDAKTIROWANIQ;
ODNAKO,ESLI WY UNI^TOVITE BUFER,A ZATEM OBRATITESX K FAJLU SNOWA,TO PRI SLEDU@]EM
SOHRANENII BUDET SOZDAN NOWYJ REZERWNYJ FAJL.
wY TAKVE MOVETE QWNO ZAPROSITX SOZDANIE E]E ODNOJ REZERWNOJ KOPII IZ BUFERA,DAVE
ESLI BUFER BYL UVE SOHRANEN HOTQ BY RAZ.eSLI WY SOHRANITE BUFER S POMO]X@ C-u C-x
C-s,ZAPISANNAQ TAKIM SPOSOBOM WERSIQ STANET REZERWNOJ,ESLI WY SOHRANITE BUFER SNOWA.
C-u C-u C-x C-s SOHRANQET BUFER,NO SNA^ALA PERENOSIT STAROE SODERVIMOE FAJLA W NOWYJ
REZERWNYJ FAJL.C-u C-u C-u C-x C-s DELAET I TO,I DRUGOE:ONA SOZDAET REZERWNU@ KOPI@
STAROGO SODERVIMOGO I GOTOWITSQ SDELATX E]E ODNU IZ WNOWX SOHRANENNOGO SODERVIMOGO,
ESLI WY SOHRANITE BUFER OPQTX.
14.3.1.1 oDINO^NYE ILI NUMEROWANNYE REZERWNYE FAJLY
eSLI WY RE[ILI DERVATX EDINSTWENNYJ REZERWNYJ FAJL (^TO PRINIMAETSQ PO UMOL^A-
NI@),TO EGO IMQ SOSTAWLQETSQ PUTEM DOBAWLENIQ`~'K IMENI REDAKTIRUEMOGO FAJLA,TAKIM
OBRAZOM,REZERWNYJ FAJL DLQ`eval.c'NAZYWALSQ BY`eval.c~'.
gLAWA 14:rABOTA S FAJLAMI 111eSLI WY ZAHOTITE IMETX SERI@ PRONUMEROWANNYH REZERWNYH FAJLOW,TO IH IMENA SOZDA-
@TSQ PUTEM DOBAWLENIQ`.~',NOMERA I DRUGOJ`~'K ISHODNOMU IMENI FAJLA.tAKIM OBRAZOM,
REZERWNYE KOPII FAJLA`eval.c'BUDUT NAZYWATXSQ`eval.c.~1~',`eval.c.~2~'I TAK DALEE,
PROHODQ ^EREZ TAKIE IMENA,KAK`eval.c.~259~'I WY[E.
eSLI ZA]ITA ZAPRE]AET WAM ZAPISYWATX REZERWNYE FAJLY POD OBY^NYMI IMENAMI,TO
ONI ZAPISYWA@TSQ KAK`%backup%~'W WA[EM NA^ALXNOM KATALOGE.mOVET SU]ESTWOWATX
TOLXKO ODIN TAKOJ FAJL,PO\TOMU DOSTUPNA TOLXKO REZERWNAQ KOPIQ,SDELANNAQ SAMOJ PO-
SLEDNEJ.
wYBOR EDINSTWENNOGO REZERWNOGO FAJLA ILI NESKOLXKIH UPRAWLQETSQ PEREMENNOJ
version-control.eE WOZMOVNYE ZNA^ENIQ:
t sOZDAWATX NUMEROWANNYE REZERWNYE FAJLY.
nil sOZDAWATX NUMEROWANNYE REZERWNYE FAJLY DLQ FAJLOW,KOTORYE UVE IME@T
NUMEROWANNYE FAJLY.iNA^E SOZDAWATX ODIN REZERWNYJ FAJL.
never nIKOGDA NE SOZDAWATX NUMEROWANNYE FAJLY,WSEGDA DELATX ODINO^NYJ REZERW-
NYJ FAJL.
wY MOVETE USTANOWITX version-control LOKALXNO W OTDELXNOM BUFERE,DLQ UPRAWLENIQ
SOZDANIEM REZERWNYH KOPIJ FAJLA\TOGO BUFERA.nAPRIMER,REVIM Rmail LOKALXNO USTA-
NAWLIWAET version-control NA never,^TOBY BYTX UWERENNYM,^TO DLQ Rmail-FAJLA SU]E-
STWUET TOLXKO ODIN REZERWNYJ FAJL.sM.rAZDEL 31.2.4 [lOKALXNYE PEREMENNYE],S.350.
eSLI WY USTANOWITE PEREMENNU@ SREDY VERSION_CONTROL,^TOBY UKAZATX RAZLI^NYM
UTILITAM GNU,^TO DELATX S REZERWNYMI FAJLAMI,Emacs TAKVE POD^INQETSQ EJ,USTA-
NAWLIWAQ SOOTWETSTWENNO WO WREMQ ZAPUSKA PEREMENNU@ lISPA version-control.eSLI
ZNA^ENIE\TOJ PEREMENNOJ SREDY RAWNO`t'ILI`numbered',TO version-control STANOWITSQ
RAWNOJ t;ESLI\TO ZNA^ENIE RAWNO`nil'ILI`existing',TO version-control STANOWITSQ
nil;ESLI\TO`never'ILI`simple',TO version-control USTANAWLIWAETSQ W ZNA^ENIE never.
14.3.1.2 aWTOMATI^ESKOE UDALENIE REZERWNYH FAJLOW
~TOBY PREDOTWRATITX NEOGRANI^ENNOE POTREBLENIE PROSTRANSTWA NA DISKE,Emacs MO-
VET UDALQTX PRONUMEROWANNYE REZERWNYE WERSII FAJLOW AWTOMATI^ESKI.oBY^NO Emacs
HRANIT TOLXKO NESKOLXKO PERWYH I NESKOLXKO POSLEDNIH REZERWNYH FAJLOW,UNI^TOVAQ WSE
NAHODQ]IESQ MEVDU NIMI.|TO PROISHODIT KAVDYJ RAZ,KOGDA SOZDAETSQ NOWYJ REZERWNYJ
FAJL.
dWUMQ PEREMENNYMI,KONTROLIRU@]IMI UDALENIE,QWLQ@TSQ kept-old-versions I
kept-new-versions.iH ZNA^ENIQ |\TO,SOOTWETSTWENNO,NOMER SAMOJ STAROJ REZERWNOJ
KOPII FAJLA (NAIMENX[IJ NOMER),KOTORAQ DOLVNA BYTX SOHRANENA,I NOMER SAMOJ POSLED-
NEJ KOPII (NAIBOLX[IJ NOMER),KOTORAQ DOLVNA SOHRANQTXSQ KAVDYJ RAZ,KOGDA SOZDAETSQ
NOWAQ KOPIQ.pOMNITE,^TO\TI ZNA^ENIQ ISPOLXZU@TSQ SRAZU POSLE TOGO,KAK SOZDASTSQ
NOWAQ REZERWNAQ KOPIQ;WNOWX SOZDANNAQ KOPIQ WKL@^AETSQ W S^ET^IK kept-new-version.
pO UMOL^ANI@ OBE PEREMENNYE RAWNY 2.
eSLI delete-old-versions NE RAWNA nil,TO IZLI[EK SREDNIH WERSIJ UNI^TOVAETSQ
BEZROPOTNO.eSLI VE ONA nil,KAK PO UMOL^ANI@,TOGDA WAS SPRA[IWA@T,DOLVEN LI BYTX
UNI^TOVEN IZLI[EK PROMEVUTO^NYH WERSIJ.
kOMANDA Dired.(TO^KA) TAKVE MOVET BYTX ISPOLXZOWANA DLQ UDALENIQ STARYH WERSIJ.
sM.rAZDEL 28.3 [uDALENIE W Dired],S.291.
14.3.1.3 kOPIROWANIE vs.PEREIMENOWANIE
rEZERWNYE FAJLY MOGUT BYTX SOZDANY S POMO]X@ KOPIROWANIQ STAROGO FAJLA ILI S
POMO]X@ EGO PEREIMENOWANIQ.|TI WARIANTY RAZLI^A@TSQ,KOGDA STARYJ FAJL IMEET
112 rUKOWODSTWO PO GNU EmacsNESKOLXKO IMEN.eSLI STARYJ FAJL PEREIMENOWYWAETSQ W REZERWNYJ,TOGDA O^EREDNYE IME-
NA STANOWQTSQ IMENAMI DLQ REZERWNOGO FAJLA.eSLI WMESTO\TOGO STARYJ FAJL KOPIRUETSQ,
TO O^EREDNYE IMENA OSTA@TSQ IMENAMI DLQ FAJLA,KOTORYJ WY REDAKTIRUETE,I SODERVA-
NIE,DOSTUPNOE PO\TIM IMENAM,BUDET NOWYM SODERVANIEM.
mETOD SOZDANIQ REZERWNYH FAJLOW TAKVE MOVET ZATRONUTX WLADELXCEW I GRUPPY WLA-
DELXCEW FAJLOW.eSLI ISPOLXZUETSQ KOPIROWANIE,TO ONI NE IZMENQ@TSQ.eSLI ISPOLXZUETSQ
PEREIMENOWANIE,TO WY STANOWITESX WLADELXCEM FAJLA,I USTANAWLIWAETSQ GRUPPA PO UMOL-
^ANI@ (RAZLI^NYE OPERACIONNYE SISTEMY ISPOLXZU@T RAZLI^NYE ZNA^ENIQ PO UMOL^ANI@
DLQ GRUPPY).
iZMENENIE WLADELXCA OBY^NO QWLQETSQ HORO[EJ IDEEJ,POSKOLXKU TOGDA WSEGDA WIDNO,
KTO POSLEDNIM REDAKTIROWAL FAJL.kROME TOGO,WLADELXCY REZERWNYH KOPIJ POKAZYWA@T,
KTO SDELAL\TI WERSII.iNOGDA SU]ESTWUET FAJL,^EJ WLADELEC NE DOLVEN IZMENQTXSQ;
HORO[AQ IDEQ DLQ TAKIH FAJLOW |WKL@^ITX LOKALXNYE SPISKI PEREMENNYH DLQ USTANOWKI
backup-by-copying-when-mismatch (SM.rAZDEL 31.2.5 [pEREMENNYE FAJLA],S.351).
wYBOR PEREIMENOWANIQ ILI KOPIROWANIQ UPRAWLQETSQ TREMQ PEREMENNYMI.pO UMOL^A-
NI@ DELAETSQ PEREIMENOWANIE.eSLI PEREMENNAQ backup-by-coping |NE nil,TO ISPOLXZU-
ETSQ KOPIROWANIE.w PROTIWNOM SLU^AE,ESLI PEREMENNAQ backup-by-copying-when-linked
NE RAWNA nil,TO DELAETSQ KOPIROWANIE DLQ FAJLOW,KOTORYE IME@T NESKOLXKO IMEN,NO
MOVET WSE VE DELATXSQ PEREIMENOWANIE,KOGDA REDAKTIRUEMYJ FAJL IMEET TOLXKO ODNO
IMQ.eSLI PEREMENNAQ backup-by-copying-when-mismatch | NE nil,TOGDA,ESLI PEREIME-
NOWANIE PRIWELO BY K IZMENENI@ WLADELXCA FAJLA ILI GRUPPY,TO DELAETSQ KOPIROWANIE.
backup-by-copying-when-mismatch PO UMOL^ANI@ RAWNA t,ESLI WY ZAPUSTILI Emacs KAK
PRIWILEGIROWANNYJ POLXZOWATELX.
kOGDA FAJL NAHODITSQ POD UPRAWLENIEM SISTEMY KONTROLQ WERSIJ (SM.rAZDEL 14.7
[uPRAWLENIE WERSIQMI],S.116 ),Emacs OBY^NO NE SOZDAET REZERWNYH KOPIJ KAK OBY^NO.nO
IZWLE^ENIE I FIKSIROWANIE OT^ASTI PODOBNY SOZDANI@ REZERWNYH KOPIJ.oNI POHOVI,K
SOVALENI@,I TEM,^TO KAK PRAWILO RAZRU[A@T VESTKIE SSYLKI,RAZ_EDINQQ IMQ FAJLA,K
KOTOROMU WY OBRATILISX,I WSE DRUGIE IMENA\TOGO VE FAJLA.|TO NE WINA Emacs |\TO
DELAET SISTEMA UPRAWLENIQ WERSIQMI.
14.3.2 zA]ITA OT ODNOWREMENNOGO REDAKTIROWANIQ
oDNOWREMENNOE REDAKTIROWANIE SLU^AETSQ,KOGDA DWA POLXZOWATELQ OBRA]A@TSQ K ODNO-
MU I TOMU VE FAJLU,OBA DELA@T IZMENENIQ I ZATEM OBA SOHRANQ@T IH.eSLI NIKOGO NE
PROINFORMIROWALI O TOM,^TO\TO SLU^ILOSX,TO POLXZOWATELX,SOHRANIW[IJ SWOI IZMENE-
NIQ PERWYM,MOVET POZDNEE OBNARUVITX,^TO EGO IZMENENIQ PROPALI.
w NEKOTORYH SISTEMAH Emacs SRAZU ZAME^AET,ESLI WTOROJ POLXZOWATELX NA^INAET IZ-
MENQTX FAJL,I WYDAET NEMEDLENNOE PREDOSTEREVENIE.nA WSEH SISTEMAH Emacs DELAET
PROWERKU,KOGDA WY ZAPISYWAETE FAJL,I WYDAET PREDUPREVDENIE,ESLI WY SOBIRAETESX ZA-
TERETX IZMENENIQ DRUGOGO POLXZOWATELQ.wY MOVETE PREDOTWRATITX POTER@ ^UVOJ RABOTY,
PREDPRINQW NEOBHODIMYE DEJSTWIQ WMESTO SOHRANENIQ FAJLA.
kOGDA WY DELAETE PERWU@ MODIFIKACI@ W BUFERE Emacs,KOTORYJ OBRA]AETSQ K FAJLU,
Emacs ZAPISYWAET,^TO WY ZAHWATILI\TOT FAJL.(oN DELAET\TO,SOZDAWAQ SIMWOLXNU@
SSYLKU S DRUGIM IMENEM W TOM VE KATALOGE.) zAHWAT OTMENQETSQ,KOGDA WY ZAPI[ETE
IZMENENIQ.iDEQ SOSTOIT W TOM,^TO FAJL ZAHWA^EN WSEGDA,KOGDA W BUFERE,KOTORYJ K NEMU
OBRA]AETSQ,ESTX NESOHRANENNYE IZMENENIQ.
eSLI WY NA^NETE IZMENQTX BUFER,KOGDA FAJL,K KOTOROMU ON OBRA]AETSQ,ZAHWA^EN KEM-
TO E]E,\TO PRIWEDET K STOLKNOWENI@,I Emacs SPROSIT WAS,^TO DELATX,WYZWAW LISPOWSKU@
FUNKCI@ ask-user-about-lock.wY MOVETE PEREOPREDELITX\TU FUNKCI@ DLQ SWOIH NUVD.
sTANDARTNOE OPREDELENIE\TOJ FUNKCII ZADAET WAM WOPROS I PRINIMAET TRI WOZMOVNYH
OTWETA:
gLAWA 14:rABOTA S FAJLAMI 113s pEREHWATITX ZAHWAT.tOT POLXZOWATELX,KTO UVE REDAKTIROWAL FAJL,TERQET
ZAHWAT,A WY EGO PRIOBRETAETE.
p pRODOLVATX.iDTI DALX[E I REDAKTIROWATX FAJL,NESMOTRQ NA TO,^TO ON
KEM-TO ZAHWA^EN.
q wYJTI.|TO PRIWODIT K O[IBKE (file-locked),A IZMENENIQ,KOTORYE WY PYTA-
LISX SDELATX W BUFERE,W DEJSTWITELXNOSTI NE BUDUT IMETX MESTA.
zAMETIM,^TO ZAHWAT RABOTAET NA OSNOWE IMENI FAJLA;ESLI FAJL IMEL NESKOLXKO IMEN,
Emacs NE OSOZNAET,^TO DWA IMENI |\TO ODIN I TOT VE FAJL,I NE MOVET PREDUPRE-
DITX DWUH POLXZOWATELEJ O POPYTKE REDAKTIROWANIQ ODNOGO I TOGO VE FAJLA POD RAZNYMI
IMENAMI.oDNAKO,OSNOWANIE ZAHWATA NA IMENAH OZNA^AET,^TO Emacs MOVET BLOKIROWATX
REDAKTIROWANIE NOWYH FAJLOW,KOTORYE FAKTI^ESKI NE SU]ESTWU@T,POKA IH NE ZAPI[UT.
nEKOTORYE SISTEMY NE SKONFIGURIROWANY TAK,^TOBY POZWOLITX Emacs SDELATX ZAHWATY.
w TAKIH SLU^AQH Emacs NE MOVET OPREDELITX OPASNOSTX ZARANEE,NO ON PO-PREVNEMU MOVET
OBNARUVITX STOLKNOWENIE,KOGDA WY PYTAETESX SOHRANITX FAJL I ZATERETX ^XI-TO ^UVIE
IZMENENIQ.
eSLI W Emacs ILI W OPERACIONNOJ SISTEME SLU^AETSQ FATALXNYJ SBOJ,\TO MOVET OSTA-
WITX FAJLY ZAHWATA,KOTORYE UVE POTERQLI AKTUALXNOSTX.pO\TOMU WY MOVETE INOGDA
POLU^ITX PREDUPREVDENIE O MNIMYH STOLKNOWENIQH.kOGDA WY OBNARUVITE,^TO STOLKONE-
NIE LOVNO,PROSTO ISPOLXZUJTE p,^TOBY WELETX Emacs PRODOLVATX.
kAVDYJ RAZ,KOGDA Emacs ZAPISYWAET BUFER,ON SNA^ALA SWERQET DATU POSLEDNEJ MO-
DIFIKACII FAJLA,SU]ESTWU@]EGO NA DISKE,^TOBY UWIDETX,^TO ONA NE IZMENQLASX S TEH
SAMYH POR,KAK K FAJLU OBRA]ALISX ILI EGO ZAPISYWALI POSLEDNIJ RAZ.eSLI DATA NE
SOWPADAET,TO\TO OZNA^AET,^TO IZMENENIQ BYLI PROIZWEDENY W FAJLE KAKIM-TO DRUGIM
SPOSOBOM,I ^TO\TI IZMENENIQ MOGUT BYTX POTERQNY,ESLI Emacs SOHRANIT BUFER NA SAMOM
DELE.~TOBY PREDOTWRATITX\TO,Emacs PE^ATAET PREDOSTEREGA@]EE SOOB]ENIE I ZAPRA[I-
WAET PERED ZAPISX@ PODTWERVDENIE.iNOGDA WY ZNAETE,PO^EMU FAJL BYL IZMENEN,I ZNAETE,
^TO\TO NE IMEET ZNA^ENIQ;W\TOM SLU^AE WY MOVETE OTWETITX yes I PRODOLVITX REDAKTI-
ROWANIE.w PROTIWNOM SLU^AE,WY DOLVNY OTMENITX ZAPISX S POMO]X@ C-g I ISSLEDOWATX
SITUACI@.
pERWOE,^TO WY DOLVNY SDELATX,KOGDA PRI[LO IZWE]ENIE OB ODNOWREMENNOM REDAK-
TIROWANII,| RASPE^ATATX KATALOG S POMO]X@ C-u C-x C-d (SM.rAZDEL 14.8 [kATALOGI],
S.131 ).|TO POKAVET WAM TEKU]EGO AWTORA.wY DOLVNY BUDETE POPYTATXSQ SWQZATXSQ I
PREDUPREDITX EGO,^TOBY ON NE PRODOLVAL REDAKTIROWANIE.~A]E WSEGO,SLEDU@]IJ [AG
| ZAPISATX SODERVIMOE WA[EGO BUFERA Emacs POD DRUGIM IMENEM I ISPOLXZOWATX diff,
^TOBY SRAWNITX DWA FAJLA.
14.4 wOZWRA]ENIE BUFERA
eSLI WY SDELALI OB[IRNYE IZMENENIQ W FAJLE,A ZATEM IZMENILI WA[E MNENIE O NIH,
TO WY MOVETE OT NIH IZBAWITXSQ,S^ITAW PREDYDU]U@ WERSI@\TOGO FAJLA.~TOBY SDE-
LATX\TO,ISPOLXZUJTE M-x revert-buffer,ONA DEJSTWUET W TEKU]EM BUFERE.tAK KAK OT
BEZUSLOWNOGO WOZWRATA BUFERA MOVET PROPASTX MNOGO RABOTY,WY DOLVNY PODTWERDITX\TU
KOMANDU WWODOM yes.
revert-buffer SOHRANQET TO^KU NA TOM VE SAMOM RASSTOQNII (IZMERENNOM W ZNAKAH) OT
NA^ALA FAJLA.eSLI FAJL BYL OTREDAKTIROWAN TOLXKO SLEGKA,TO POSLE WOZWRA]ENIQ WY
O^UTITESX PRIMERNO W TOJ VE ^ASTI TEKSTA,W KOTOROJ I BYLI.eSLI WY SDELALI KARDI-
NALXNYE IZMENENIQ,TO TO VE SAMOE ZNA^ENIE TO^KI W STAROM FAJLE MOVET SSYLATXSQ NA
SOWER[ENNO DRUGOJ KUSOK TEKSTA.
wOZWRA]ENIE POME^AET BUFER KAK\NEIZMENENNYJ"DO TEH POR,POKA NE BUDUT SDELANY
DRUGIE IZMENENIQ.
114 rUKOWODSTWO PO GNU EmacsnEKOTORYE WIDY BUFEROW,^XE SODERVIMOE OTRAVAET OTLI^NYE OT FAJLOW DANNYE,TAKIE
KAK BUFERY Dired,TAKVE MOGUT BYTX WOZWRA]ENY.dLQ NIH WOZWRA]ENIE OZNA^AET POWTOR-
NOE S^ITYWAENIE IH SODERVIMOGO IZ SOOTWETSTWU@]EJ BAZY DANNYH.bUFERY,SOZDANNYE
QWNO S POMO]X@ C-x b,NE MOGUT BYTX WOZWRA]ENY;revert-buffer SOOB]AET OB O[IBKE,
KOGDA EE PROSQT SDELATX\TO.
kOGDA WY REDAKTIRUETE FAJL,KOTORYJ IZMENQETSQ ^ASTO I AWTOMATI^ESKI |NAPRIMER,
PROTOKOL WYWODA OT E]E RABOTA@]EGO PROCESSA | MOVET OKAZATXSQ UDOBNYM,ESLI BY
Emacs WOZWRA]AL FAJL BEZ PODTWERVDENIQ WSQKIJ RAZ,KOGDA WY SNOWA OBRA]AETESX K\TOMU
FAJLU S POMO]X@ C-x C-f.
~TOBY ZAPROSITX TAKOE POWEDENIE,USTANOWITE PEREMENNU@ revert-without-query RAW-
NOJ SPISKU REGULQRNYH WYRAVENIJ.kOGDA IMQ FAJLA SOOTWETSTWUET ODNOMU IZ\TIH RE-
GULQRNYH WYRAVENIJ,find-file I revert-buffer BUDUT WOZWRA]ATX EGO AWTOMATI^ESKI,
ESLI ON IZMENILSQ |PRI USLOWII,^TO SAM BUFER NE BYL MODIFICIROWAN.(eSLI WY REDAK-
TIROWALI TEKST,SBRASYWATX WA[I IZMENENIQ BUDET NEHORO[O.)
14.5 sAMOSOHRANENIE:ZA]ITA OT GIBELI
Emacs WREMQ OT WREMENI (OSNOWYWAQSX NA PODS^ETE NAVATYH WAMI KLAWI[) ZAPISYWAET
WSE POSE]ENNYE FAJLY BEZ ZAPROSA.|TO NAZYWAETSQ SAMOSOHRANENIEM.oNO UBEREVET WAS
OT POTERI BOLX[OGO KOLI^ESTWA RABOTY,ESLI SISTEMA RUHNET.
kOGDA Emacs OPREDELQET,^TO PRI[LO WREMQ DLQ SAMOSOHRANENIQ,TO KAVDYJ BUFER
RASSMATRIWAETSQ I ZAPISYWAETSQ,ESLI DLQ NEGO WKL@^ENO SAMOSOHRANENIE,I ON IZMENQLSQ
S TEH POR,KAK POSLEDNIJ RAZ BYL SAMOSOHRANEN.wO WREMQ SAMOSOHRANENIQ W\HO-OBLASTI
OTOBRAVAETSQ SOOB]ENIE`Auto-saving...',ESLI KAKOJ-LIBO FAJL DEJSTWITELXNO SOHRANQ-
ETSQ.o[IBKI,POQWLQ@]IESQ WO WREMQ SAMOSOHRANENIQ,OTLAWLIWA@TSQ TAK,^TO ONI NE
ME[A@T WYPOLNENI@ NABRANNYH WAMI KOMAND.
14.5.1 fAJLY DLQ SAMOSOHRANENIQ
sAMOSOHRANENIE OBY^NO NE ZAPISYWAET W FAJLY,K KOTORYM WY OBRATILISX,TAK KAK
MOVET BYTX O^ENX NEVELATELXNO ZAPISYWATX PROGRAMMU,KOTORAQ NAHODITSQ W NESOGLASO-
WANNOM SOSTOQNII,KOGDA WY SDELALI POLOWINU PLANIRUEMYH IZMENENIJ.wMESTO\TOGO
SAMOSOHRANENIE DELAETSQ W DRUGOJ FAJL,KOTORYJ NAZYWAETSQ FAJLOM DLQ SAMOSOHRANE-
NIQ,A POSE]ENNYJ FAJL IZMENQETSQ TOLXKO TOGDA,KOGDA WY QWNO POTREBUETE ZAPISATX EGO
(NAPRIMER,S POMO]X@ C-x C-s).
oBY^NO IMQ FAJLA DLQ SAMOSOHRANENIQ SOZDAETSQ DOBAWLENIEM ZNAKA`#'PERED I PO-
SLE IMENI FAJLA,K KOTOROMU WY OBRATILISX.tAKIM OBRAZOM,BUFER,OBRA]A@]IJSQ K
FAJLU`foo.c',BUDET SAMOSOHRANEN W FAJL`#foo.c#'.bOLX[INSTWO BUFEROW,KOTORYE NE
OBRA]ALISX K FAJLAM,SAMOSOHRANQ@TSQ,TOLXKO ESLI WY QWNO POTREBUETE\TOGO;KOGDA
ONI AWTOMATI^ESKI ZAPISYWA@TSQ,IMQ FAJLA DLQ SAMOSOHRANENIQ SOZDAETSQ DOBAWLENIEM K
IMENI BUFERA ZNAKOW`#%'W NA^ALE I`#'W KONCE.nAPRIMER,BUFER`*mail*',W KOTOROM WY SO-
STAWLQETE OTPRAWLQEMYE SOOB]ENIQ,SAMOSOHRANQETSQ W FAJL S IMENEM`#%*mail*#'.iMENA
FAJLOW DLQ SAMOSOHRANENIQ KONSTRUIRU@TSQ TAKIM OBRAZOM,ESLI WY NE PEREPROGRAMMI-
RUETE ^ASTX Emacs,^TOBY DELALOSX ^TO-TO INOE (FUNKCII make-auto-save-file-name I
auto-save-file-name-p).iMQ FAJLA,KOTOROE BUDET ISPOLXZOWATXSQ DLQ SAMOSOHRANENIQ W
BUFERE,SOSTAWLQETSQ,KOGDA W\TOM BUFERE WKL@^AETSQ SAMOSOHRANENIE.
kOGDA WY UDALQETE ZNA^ITELXNU@ ^ASTX TEKSTA BOLX[OGO BUFERA,SAMOSOHRANENIE W NEM
WREMENNO WYKL@^AETSQ.|TO DELAETSQ PO TOJ PRI^INE,^TO ESLI WY UDALILI TEKST NEUMY[-
LENNO,SAMOSOHRANENNYJ FAJL MOVET OKAZATXSQ DLQ WAS POLEZNEE,ESLI UDALENNYJ TEKST WSE
E]E OSTAETSQ W NEM.~TOBY POSLE\TOGO SNOWA RAZRE[ITX SAMOSOHRANENIE,ZAPI[ITE BUFER
KOMANDOJ C-x C-s ILI ISPOLXZUJTE C-u 1 M-x auto-save.
gLAWA 14:rABOTA S FAJLAMI 115eSLI WY HOTITE,^TOBY W FAJLE,K KOTOROMU WY OBRATILISX,WYPOLNQLOSX SAMOSOHRANE-
NIE,USTANOWITE PEREMENNU@ auto-save-visited-file-name W OTLI^NOE OT nil ZNA^ENIE.
w\TOM REVIME W DEJSTWITELXNOSTI NET RAZLI^IJ MEVDU SAMOSOHRANENIEM I QWNYM SOHRA-
NENIEM.
fAJL SAMOSOHRANENIJ UDALQETSQ,KOGDA WY ZAPISYWAETE SODERVIMOE BUFERA W FAJL,K
KOTOROMU ON OBRA]ALSQ.~TOBY WOSPREPQTSTWOWATX\TOMU,USTANOWITE PEREMENNU@ delete-
auto-save-files RAWNOJ nil.iZMENENIE IMENI POSE]ENNOGO FAJLA S POMO]X@ C-x C-w
ILI set-visited-file-name PEREIMENOWYWAET FAJL DLQ SAMOSOHRANENIQ,^TOBY ON SOOT-
WETSTWOWAL IMENI NOWOGO POSE]ENNOGO FAJLA.
14.5.2 uPRAWLENIE SAMOSOHRANENIEM
kAVDYJ RAZ,KOGDA WY OBRA]AETESX K FAJLU,DLQ BUFERA\TOGO FAJLA WKL@^AETSQ SAMO-
SOHRANENIE,ESLI PEREMENNAQ auto-save-default NE RAWNA nil (NO NE W PAKETNOM REVIME;
SM.gLAWA 3 [wHOD W Emacs],S.33).pO UMOL^ANI@\TA PEREMENNAQ RAWNA t,PO\TOMU
WKL@^ENNOE SAMOSOHRANENIE |\TO OBY^NOE SOSTOQNIE BUFEROW,RABOTA@]IH S FAJLAMI.
sAMOSOHRANENIE MOVET WKL@^ATXSQ ILI WYKL@^ATXSQ DLQ L@BOGO SU]ESTWU@]EGO BUFE-
RA S POMO]X@ KOMANDY M-x auto-save-mode.pODOBNO DRUGIM KOMANDAM WTOROSTEPENNYH
REVIMOW,M-x auto-save-mode WKL@^AET SAMOSOHRANENIE PRI POLOVITELXNOM ARGUMENTE I
WYKL@^AET,KOGDA ARGUMENT RAWEN NUL@ ILI OTRICATELEN;BEZ ARGUMENTA ONA PEREKL@^AET
REVIM.
Emacs PROIZWODIT SAMOSOHRANENIE PERIODI^ESKI,OSNOWYWAQSX NA PODS^ETE ^ISLA ZNA-
KOW,NABRANNYH WAMI S TOGO MOMENTA,KAK SAMOSOHRANENIE BYLO SDELANO W POSLEDNIJ RAZ.
pEREMENNAQ auto-save-interval OPREDELQET,SKOLXKO ZNAKOW PRIHODITSQ MEVDU DWUMQ SA-
MOSOHRANENIQMI.pO UMOL^ANI@ ONA RAWNA 300.
sAMOSOHRANENIE TAKVE PROIZWODITSQ,KOGDA WY PERESTAETE PE^ATATX NA NEKOTOROE WREMQ.
pEREMENNAQ auto-save-timeout GOWORIT,SKOLXKO SEKUND DOLVEN VDATX Emacs TO TOGO,KAK
SDELATX SAMOSOHRANENIE (A TAKVE,WOZMOVNO,I SBORKU MUSORA).(dEJSTWITELXNYJ PERIOD
WREMENI BOLX[E,ESLI TEU]IJ BUFER WELIK;\TO\WRISTIKA,CELX KOTOROJ |NE ME[ATX WAM,
KOGDA WY REDAKTIRUETE DLINNYE BUFERY,SAMOSOHRANENIE W KOTORYH ZANIMAET ZAMETNOE
WREMQ.) sAMOSOHRANENIE WO WREMQ PERIODOW BEZDEJSTWIQ WYPOLNQET DWE ZADA^I:WO-PERWYH,
ONO GARANTIRUET,^TO WA[A RABOTA SOHRANQETSQ,ESLI WY OTO[LI NA NEKOTOROE WREMQ OT
TERMINALA;WO-WTORYH,ONO MOVET POZWOLITX IZBEVATX SAMOSOHRANENIQ W TO WREMQ,KOGDA
WY NA SAMOM DELE PE^ATAETE.
Emacs TAKVE WYPOLNQET SAMOSOHRANENIE,KOGDA POLU^AET FATALXNU@ O[IBKU.|TO
WKL@^AET UNI^TOVENIE ZADANIQ Emacs S POMO]X@ KOMANDY OBOLO^KI,KAK`kill %emacs',
ILI W REZULXTATE RAZ_EDINENIQ TELEFONNOJ LINII ILI SWQZI PO SETI.
wY MOVETE QWNO ZAPROSITX SAMOSOHRANENIE S POMO]X@ KOMANDY M-x do-auto-save.
14.5.3 wOSSTANOWLENIE DANNYH IZ SAMOSOHRANENIQ
wY MOVETE ISPOLXZOWATX SODERVIMOE FAJLA SAMOSOHRANENIQ DLQ WOSSTANOWLENIQ POTE-
RQNNYH DANNYH,ZAPUSTIW KOMANDU M-x recover-file hRETi FAJL hRETi.|TA KOMANDA OBRA-
]AETSQ K FAJLU I ZATEM (POSLE WA[EGO PODTWERVDENIQ) PEREPISYWAET SODERVANIE IZ EGO
SAMOSOHRANENNOGO FAJLA`#FAJL#'.wY MOVETE POTOM SOHRANITX\TOT BUFER PRI POMO]I
C-x C-s,^TOBY POMESTITX WOSSTANOWLENNYJ TEKST W SAM FAJL.nAPRIMER,^TOBY WOSSTANO-
WITX FAJL`foo.c'IZ EGO FAJLA DLQ SAMOSOHRANENIQ`#foo.c#',SDELAJTE SLEDU@]EE:
M-x recover-file
h RETi foo.c hRETi
yes
h RETi
C-x C-s
pERED TEM KAK ZAPROSITX U WAS PODTWERVDENIE,M-x recover-file POKAZYWAET RASPE-
^ATKU KATALOGA,OPISYWA@]U@ ZADANNYJ FAJL I FAJL SAMOSOHRANENIQ,TAK ^TO WY MOVETE
116 rUKOWODSTWO PO GNU EmacsSRAWNITX IH RAZMERY I DATY.eSLI FAJL DLQ SAMOSOHRANENIQ STAR[E,TO M-x recover-file
NE PREDLAGAET EGO S^ITYWATX.
eSLI Emacs ILI KOMX@TER POTERPELI KRAH,WY MOVETE WOSSTANOWITX WSE FAJLY,KO-
TORYE WY REDAKTIROWALI,IZ IH SAMOSOHRANENNYH FAJLOW PRI POMO]I KOMANDY M-x
recover-session.oNA SNA^ALA POKAZYWAET PERE^ENX ZAPISANNYH PRERWANNYH SEANSOW.pE-
REMESTITE TO^KU K NUVNOJ WAM I NABERITE C-c C-c.
zATEM recover-session SPRA[IWAET O KAVDOM FAJLE,KOTORYJ REDAKTIROWALSQ WO WREMQ
\TOGO SEANSA,NUVNO LI EGO WOSSTANAWLIWATX.eSLI WY OTWE^AETE y,ONA WYZYWAET recover-
file.|TA KOMANDA RABOTAET OBY^NYM SPOSOBOM:POKAZYWAET DATY ORIGINALXNOGO FAJLA I
EGO SAMOSOHRANENNOJ WERSII I SPRA[IWAET E]E RAZ,NUVNO LI EGO WOSSTANAWLIWATX.
kOGDA recover-session ZAWER[AETSQ,WSE FAJLY,KOTORYE WY RE[ILI WOSSTANOWITX,
PRISUTSTWU@T W BUFERAH Emacs.tEPERX WAM NUVNO IH SOHRANITX.tOLXKO\TO | IH
SOHRANENIE |OBNOWLQET SAMI FAJLY.
pRERWANNYE SEANSY ZAPISYWA@TSQ DLQ POSLEDU@]EGO WOSSTANOWLENIQ W FAJLAH S IME-
NAMI`~/.saves-pid-MA[INA'.~ASTX`~/.saves'\TIH IMEN POLU^AETSQ IZ ZNAE^ENIQ auto-
save-list-file-prefix.wY MOVETE SDELATX TAK,^TOBY ZAPISI O SEANSAH DERVALISX W
DRUGOM MESTE,USTANAWLIWAQ\TU PEREMENNU@ W WA[EM FAJLE`.emacs',NO WAM TAKVE PRI-
DETSQ PEREOPREDELITX recover-session,^TOBY ONA ISKALA W NOWOM MESTE.eSLI W FAJLE
`.emacs'WY USTANOWITE auto-save-list-file-prefix RAWNOJ nil,SEANSY NE BUDUT ZAPISY-
WATXSQ DLQ WOSSTANOWLENIQ.
14.6 pSEWDONIMY FAJLOW
sIMWOLXNYE SSYLKI I VESTKIE SSYLKI POZWOLQ@T ODNOMU I TOMU VE FAJLU IMETX
NESKOLXKO IMEN.vESTKIE SSYLKI |\TO ALXTERNATIWNYE IMENA,SSYLA@]IESQ NEPOSRED-
STWENNO NA FAJL;WSE IMENA ODINAKOWO PRAWILXNY,I NI ODNO IZ NIH NE QWLQETSQ PREDPO-
^TITELXNYM.nAPROTIW,SIMWOLXNYE SSYLKI |\TO WID OPREDELENNYH PSEWDONIMOW:KOGDA
FAJL`foo'QWLQETSQ SIMWOLXNOJ SSYLKOJ NA`bar',WY MOVETE ISPOLXZOWATX OBA IMENI,
NO DEJSTWITELXNYM IMENEM BUDET`bar',TOGDA KAK`foo'|\TO PROSTO PSEWDONIM.bOLEE
SLOVNYE SITUACII WOZNIKA@T,KOGDA SIMWOLXNYE SSYLKI UKAZYWA@T NA KATALOGI.
eSLI WY OBRA]AETESX K ODNOMU I TOMU VE FAJLU PO DWUM IMENAM,Emacs OBY^NO SOZDAET
DWA RAZNYH BUFERA,NO PREDUPREVDAET WAS OB\TOJ SITUACII.
eSLI WY HOTITE IZBEVATX OBRA]ENIQ K ODNOMU I TOMU VE FAJLU W DWUH BUFERAH POD
RAZNYMI IMENAMI,USTANOWITE PEREMENNU@ find-file-existing-other-name W OTLI^NOE
OT nil ZNA^ENIE.tOGDA find-file ISPOLXZUET SU]ESTWU@]IJ BUFER,OBRA]A@]IJSQ K
\TOMU FAJLU,NEZAWISIMO OT TOGO,KAKOE IMQ WY ZADADITE.
eSLI PEREMENNAQ find-file-visit-truename NE RAWNA nil,TO DLQ BUFEROW ZAPISYWAET-
SQ ISTINNYE IMENA FAJLOW (POLU^AEMYE ZAMENOJ WSEH SIMWOLXNYH SSYLOK NA IH CELEWYE
IMENA),A NE IMENA,ZADANNYE WAMI.uSTANOWKA find-file-visit-truename TAKVE PODRAZU-
MEWAET DEJSTWIE find-file-existing-other-name.
14.7 uPRAWLENIE WERSIQMI
sISTEMY UPRAWLENIQ WERSIQMI |\TO PAKETY,KOTORYE MOGUT ZAPISYWATX NESKOLXKO
WERSIJ ISHODNOGO FAJLA,OBY^NO SOHRANQQ NEIZMENIW[IESQ ^ASTI\TOGO FAJLA TOLXKO ODIN
RAZ.sISTEMY UPRAWLENIQ WERSIQMI TAKVE ZAPISYWA@T SWEDENIQ OB ISTORII,TAKIE KAK
WREMQ SOZDANIQ KAVDOJ WERSII,IMQ EE SOZDATELQ I OPISANIE IZMENENIJ W\TOJ WERSII.
iNTERFEJS Emacs DLQ UPRAWLENIQ WERSIQMI NAZYWAETSQ VC.eGO KOMANDY RABOTA@T S
TREMQ SISTEMAMI UPRAWLENIQ WERSIQMI | RCS,CVS I SCCS.pROEKT GNU REKOMENDUET
RCS I CVS,KOTORYE QWLQ@TSQ SWOBODNYMI PROGRAMMAMI,I IH MOVNO POLU^ITX OT fONDA
sWOBODNOGO pROGRAMMNOGO oBESPE^ENIQ.
gLAWA 14:rABOTA S FAJLAMI 11714.7.1 wWEDENIE W UPRAWLENIE WERSIQMI
VC POZWOLQET WAM ISPOLXZOWATX SISTEMY UPRAWLENIQ WERSIQMI IZ Emacs,HORO[O IN-
TEGRIRUQ OPERACII PO UPRAWLENI@ WERSIQMI I REDAKTIROWANIE.VC PREDOSTAWLQET OBOB-
]ENNYJ INTERFEJS K UPRAWLENI@ WERSIQMI,TAK ^TO WY MOVETE ISPOLXZOWATX EGO ODNIM
METODOM NEZAWISIMO OT TOGO,KAKU@ SISTEMU WY PRIMENQETE.
|TOT RAZDEL PREDOSTAWLQET OB]IJ OBZOR UPRAWLENIQ WERSIQMI I OPISYWAET SISTEMY
UPRAWLENIQ WERSIQMI,KOTORYE PODDERVIWAET VC.wY MOVETE PROPUSTITX\TOT RAZDEL,
ESLI ZNAKOMY S SISTEMOJ UPRAWLENIQ WERSIQMI,KOTORU@ HOTITE ISPOLXZOWATX.
14.7.1.1 pODDERVIWAEMYE SISTEMY UPRAWLENIQ WERSIQMI
nA DANNYJ MOMENT VC RABOTAET S TREMQ RAZNYMI SISTEMAMI UPRAWLENIQ WERSIQMI ILI
\POSTPROCESSORAMI":RCS,CVS I SCCS.
RCS |\TO SWOBODNAQ SISTEMA UPRAWLENIQ WERSIQMI,EE MOVNO POLU^ITX OT fONDA sWO-
BODNOGO pROGRAMMNOGO oBESPE^ENIQ.wEROQTNO,\TO NAIBOLEE RAZWITYJ IZ PODDERVIWAE-
MYH POSTPROCESSOROW,I KOMANDY VC KONCEPTUALXNO BLIVE WSEGO K RCS.pO^TI WSE,^TO WY
MOVETE DELATX S RCS,MOVNO SDELATX ^EREZ VC.
CVS POSTROENA POWERH RCS I RAS[IRQET WOZMOVNOSTI RCS,POZWOLQQ BOLEE SLOVNOE
UPRAWLENIE WYPUSKAMI I RAZRABOTKU MNOGIMI POLXZOWATELQMI.VC PODDERVIWAET OSNOW-
NYE OPERACII REDAKTIROWANIQ POD CVS,NO DLQ NEKOTORYH MENEE ^ASTYH ZADA^ WAM WSE
VE PONADOBITSQ WYZYWATX CVS IZ KOMANDNOJ STROKI.zAMETXTE,^TO DO ISPOLXZOWANIQ
CVS WY DOLVNY NASTROITX REPOZITORIJ,NO\TO SLI[KOM SLOVNAQ TEMA,^TOBY EE ZDESX
RASSMATRIWATX.
SCCS |\TO NESWOBODNAQ,NO [IROKO ISPOLXZUEMAQ SISTEMA UPRAWLENIQ WERSIQMI.pO
WOZMOVNOSTQM\TO SAMAQ SLABAQ IZ TREH SISTEM,PODDERVIWAEMYH VC.VC KOMPENSIRUET OT-
SUTSTWIE NEKOTORYH SREDSTW W SCCS (SNIMKOW,NAPRIMER),REALIZUQ IH SAMA,NO NEKOTORYE
DRUGIE WOZMOVNOSTI VC,TAKIE KAK MNOVESTWENNYE WETWI,NEDOSTUPNY PRI ISPOLXZOWA-
NII SCCS.wAM STOIT PRIMENQTX SCCS,TOLXKO ESLI PO KAKOJ-TO PRI^INE WY NE MOVETE
WOSPOLXZOWATXSQ RCS.
14.7.1.2 kONCEPCII UPRAWLENIQ WERSIQMI
kOGDA FAJL POME]EN POD KONTROLX SISTEMY UPRAWLENIQ WERSIQMI,MY GOWORIM,^TO ON
ZAREGISTRIROWAN W\TOJ SISTEME.dLQ KAVDOGO ZAREGISTRIROWANNOGO FAJLA ESTX SOOTWET-
STWU@]IJ MASTER-FAJL,KOTORYJ PREDSTAWLQET TEKU]EE SOSTOQNIE FAJLA I ISTORI@ EGO
IZMENENIJ | DOSTATO^NU@ DLQ REKONSTRUKCII TEKU]EJ ILI L@BOJ BOLEE RANNEJ WERSII.
oBY^NO W MASTER-FAJLE TAKVE SOHRANENY VURNALXNYE ZAPISI DLQ KAVDOJ WERSII,OPISY-
WA@]IE SLOWAMI,^TO BYLO IZMENENO W\TOJ WERSII.
fAJL,SOPROWOVDAEMYJ UPRAWLENIEM WERSIJ,INOGDA NAZYWAETSQ RABO^IM FAJLOM,SOOT-
WETSTWU@]IM EGO MASTER-FAJLU.wY REDAKTIRUETE RABO^IJ FAJL I DELAETE W NEM IZMENE-
NIQ,KAK WY DELALI BY JDLQ OBY^NOGO FAJLA.(w SCCS I RCS WY DOLVNY BLOKIROWATX
FAJL PERED TEM,KAK NA^ATX EGO REDAKTIROWATX.) pOSLE TOGO,KAK WY SDELALI NEKOTORYE IZ-
MENENIQ,WY FIKSIRUETE\TOT FAJL,^TO ZAPISYWAET\TI IZMENENIQ W MASTER-FAJLE WMESTE
S VURNALXNOJ ZAPISX@ DLQ NIH.
w CVS OBY^NO BYWAET MNOGO RABO^IH FAJLOW,SOOTWETSTWU@]IH ODNOMU MASTER-FAJLU
| ^ASTO U KAVDOGO POLXZOWATELQ ESTX SWOQ KOPIQ.tAKIM SPOSOBOM MOVNO ISPOLXZOWATX I
RCS,NO\TO NE OBY^NYJ METOD EE PRIMENENIQ.
w SISTEME UPRAWLENIQ WERSIQMI KAK PRAWILO ESTX NEKIJ MEHANIZM DLQ KOORDINIROWANIQ
POLXZOWATELEJ,KOTORYE HOTQT REDAKTIROWATX ODIN I TOT VE FAJL.oDIN IZ SPOSOBOW |
BLOKIROWANIE (ANALOGI^NOE BLOKIROWANI@,KOTOROE Emacs PRIMENQET DLQ OTSLEVIWANIQ
118 rUKOWODSTWO PO GNU EmacsPOPYTOK ODNOWREMENNOGO REDAKTIROWANIQ FAJLA,NO OTLI^A@]EESQ OT NEGO).dRUGOJ METOD
|OB_EDINENIE WA[IH IZMENENIJ S IZMENENIQMI DRUGOGO ^ELOWEKA PRI IH FIKSIROWANII.
pRI UPRAWLENII WERSIQMI S BLOKIROWANIEM,RABO^IE FAJLY OBY^NO DOSTUPNY TOLXKO
DLQ ^TENIQ,TAK ^TO WY NE MOVETE IH IZMENITX.wY PROSITE SISTEMU UPRAWLENIQ WERSIQMI
SDELATX FAJL ZAPISYWAEMYM,BLOKIRUQ EGO;W ODNO WREMQ\TO MOVET SDELATX TOLXKO ODIN
POLXZOWATELX.kOGDA WY FIKSIRUETE WA[I IZMENENIQ,\TO RAZBLOKIRUET FAJL,I ON SNOWA
STANOWITSQ DOSTUPNYM TOLXKO DLQ ^TENIQ.|TO POZWOLQET DRUGIM POLXZOWATELQM ZABLOKI-
ROWATX\TOT FAJL I DELATX DALXNEJ[IE IZMENENIQ.SCCS WSEGDA ISPOLXZUET BLOKIROWANIE,
I RCS OBY^NO TOVE.
dLQ RCS ESTX DRUGAQ ALXTERNATIWA |POZWOLITX KAVDOMU POLXZOWATEL@ IZMENQTX RABO-
^IJ FAJL W L@BOE WREMQ.w TAKOM REVIME W BLOKIROWANII NET NUVDY,NO ONO POZWOLQETSQ;
ZAPISX NOWOJ WERSII PO-PREVNEMU PROIZWODITSQ PUTEM FIKSIROWANIQ.
CVS OBY^NO POZWOLQET KAVDOMU POLXZOWATEL@ IZMENQTX SWO@ SOBSTWENNU@ KOPI@ RA-
BO^EGO FAJLA W L@BOE WREMQ,NO TREBUET OB_EDINENIQ S WERSIQMI DRUGIH POLXZOWATELEJ
WO WREMQ FIKSIROWANIQ.oDNAKO,CVS TOVE MOVNO NASTROITX TAK,^TOBY ONA TREBOWALA
BLOKIROWANIQ.(SM.rAZDEL 14.7.9.1 [pARAMETRY POSTPROCESSORA],S.130).
14.7.2 uPRAWLENIE WERSIQMI I STROKA REVIMA
kOGDA WY OBRA]AETESX K FAJLU,KOTORYJ NAHODITSQ POD KONTROLEM SISTEMY UPRAWLENIQ
WERSIQMI,Emacs POKAZYWAET\TO W STROKE REVIMA.nAPRIMER,`RCS-1.3'GOWORIT,^TO DLQ
\TOGO FAJLA ISPOLXZUETSQ RCS,A TEKU]AQ WERSIQ | 1.3.
zNAK MEVDU IMENEM POSTPROCESSORA I NOMEROM WERSII POKAZYWAET STATUS\TOGO FAJLA W
SISTEME UPRAWLENIQ WERSIQMI.dEFIS`-'GOWORIT,^TO RABO^IJ FAJL NE ZABLOKIROWAN (ESLI
BLOKIROWANIE ISPOLXZUETSQ) ILI NE IZMENEN (ESLI BLOKIROWANIE NE ISPOLXZUETSQ).zNAK`:'
POKAZYWAET,^TO FAJL BLOKIROWAN ILI IZMENEN.eSLI FAJL BLOKIROWAL KAKOJ-TO DRUGOJ
POLXZOWATELX (SKAVEM,`jim'),\TO OTOBRAVAETSQ KAK`RCS:jim:1.3'.
14.7.3 oSNOWY REDAKTIROWANIQ S UPRAWLENIEM WERSIQMI
oSNOWNAQ KOMANDA VC |\TO KOMANDA OB]EGO NAZNA^ENIQ,KOTORAQ LIBO BLOKIRUET,LIBO
FIKSIRUET FAJL W ZAWISIMOSTI OT SITUACII.
C-x C-q
C-x v v dELAET SLEDU@]U@ LOGI^ESKU@ OPERACI@ UPRAWLENIQ WERSIQMI DLQ\TOGO FAJ-
LA.
sTROGO GOWORQ,KOMANDA DLQ\TOGO NAZYWAETSQ vc-next-action,ONA PRIWQZANA K C-x v v.
oDNAKO,OBY^NOE ZNA^ENIE C-x C-q |DELATX BUFERY,PREDNAZNA^ENNYE TOLXKO DLQ ^TENIQ,
DOSTUPNYMI DLQ ZAPISI ILI NAOBOROT;MY RAS[IRILI EE TAK,^TOBY ONA PRAWILXNO DELALA
\TO VE DLQ FAJLOW,NAHODQ]IHSQ POD KONTROLEM SISTEMY UPRAWLENIQ WERSIQMI,PROIZWODQ
PODHODQ]IE OPERACII.kOGDA WY NABIRAETE C-x C-q W ZAREGISTRIROWANNM FAJLE,ONA WEDET
SEBQ,KAK C-x v v.
tO^NOE DEJSTWIE\TOJ KOMANDY ZAWISIT OT SOSTOQNIQ FAJLA I OT TOGO,ISPOLXZUET LI
SISTEMA UPRAWLENIQ WERSIQMI BLOKIROWANIE ILI NET.SCCS I RCS OBY^NO ISPOLXZU@T
BLOKIROWANIE;CVS OBY^NO NE ISPOLXZUET.
14.7.3.1 oSNOWY UPRAWLENIQ WERSIQMI S BLOKIROWANIEM
eSLI DLQ FAJLA PRIMENQETSQ BLOKIROWANIE (KAK W W SLU^AE S SCCS I RCS W REVIME PO
UMOL^ANI@),C-x C-q MOVET LIBO BLOKIROWATX FAJL,LIBO ZAFIKSIROWATX EGO:
пЂЏ eSLI FAJL NE ZABLOKIROWAN,C-x C-q BLOKIRUET EGO I DELAET DOSTUPNYM DLQ ZAPISI,
^TOBY WY MOGLI EGO IZMENQTX.
gLAWA 14:rABOTA S FAJLAMI 119пЂЏ eSLI FAJL ZABLOKIROWAN WAMI I SODERVIT IZMENENIQ,C-x C-q FIKSIRUET\TI IZMENE-
NIQ.dLQ\TOGO ONA SNA^ALA S^ITYWAET VURNALXNU@ ZAPISX NOWOJ WERSII.sM.rAZ-
DEL 14.7.3.3 [bUFER VURNALA],S.119.
пЂЏ eSLI FAJL ZABLOKIROWAN WAMI,NO NE SODERVIT IZMENENIJ S TEH POR,KAK WY EGO BLO-
KIROWALI,C-x C-q SNIMAET BLOKIROWKU I DELAET FAJL OPQTX DOSTUPNYM TOLXKO DLQ
^TENIQ.
пЂЏ eSLI FAJL ZABLOKIROWAN KEM-TO E]E,C-x C-q SPRA[IWAET WAS,HOTITE LI WY\UKRASTX
BLOKIROWKU"U\TOGO POLXZOWATELQ.eSLI WY OTWETITE DA,TO FAJL STANOWITSQ BLOKIRO-
WANNYM WAMI,NO ^ELOWEKU,KOTORYJ RANX[E ZABLOKIROWAL EGO,POSYLAETSQ SOOB]ENIE,
^TOBY PROINFORMIROWATX O SLU^IW[EMSQ.
|TI PRAWILA PRIMENIMY TAKVE,KOGDA WY ISPOLXZUETE CVS W BLOKIRU@]EM REVIME,ZA
ISKL@^ENIEM TOGO,^TO TAM NET TAKOGO PONQTIQ,KAK PEREHWAT BLOKIROWKI.
14.7.3.2 oSNOWY UPRAWLENIQ WERSIQMI BEZ BLOKIROWANIQ
kOGDA BLOKIROWANIQ NET |PO UMOL^ANI@ W CVS |RABO^IE FAJLY WSEGDA DOSTUPNY DLQ
ZAPISI;WAM NE NUVNO NI^EGO DELATX PERED TEM,KAK NA^ATX REDAKTIROWANIE.iNDIKATOROM
STATUSA W STROKE REVIMA SLUVIT`-',ESLI FAJL NE IZMENEN;ON ZAMETQETSQ NA`:',KAK TOLXKO
WY SOHRANQETE L@BYE IZMENENIQ W RABO^EM FAJLE.
wOT ^TO DELAET C-x C-q PRI ISPOLXZOWANII CVS:
пЂЏ eSLI KAKOJ-TO DRUGOJ POLXZOWATELX ZAFIKSIROWAL SWOI IZMENENIQ W MASTER-FAJLE,
Emacs SPRA[IWAET WAS,HOTITE LI WY WLITX\TI IZMENENIQ W WA[ RABO^IJ FAJL (SM.rAZDEL 14.7.6.3 [oB_EDINENIE],S.124).wY OBQZANY SDELATX\TO DO TOGO,KAK SMOVETE
ZAFIKSIROWATX SWOI SOBSTWENNYE IZMENENIQ.
пЂЏ eSLI W MASTER-FAJLE NET IZMENENIJ,NO WY MODIFIKACIROWALI WA[ RABO^IJ FAJL,C-x
C-q FIKSIRUET WA[I IZMENENIQ.dLQ\TOGO ONA SNA^ALA S^ITYWAET VURNALXNU@ ZAPISX
DLQ NOWOJ WERSII.sM.rAZDEL 14.7.3.3 [bUFER VURNALA],S.119.
пЂЏ eSLI FAJL NE IZMENEN,C-x C-q NI^EGO NE DELAET.
|TI PRAWILA PRIMENIMY TAKVE I W TOM SLU^AE,ESLI WY ISPOLXZUETE RCS W REVIME,
KOGDA ONA NE TREBUET BLOKIROWANIQ,ZA ISKL@^ENIEM TOGO,^TO AWTOMATI^ESKOE OB_EDINENIE
S MASTER-FAJLOM NE REALIZOWANO.k SOVALENI@,\TO OZNA^AET,^TO WAS NE INFORMIRU@T,
ESLI E]E ODIN POLXZOWATELX ZAFIKSIROWAL IZMENENIQ W TOM VE FAJLE POSLE TOGO,KAK WY
NA^ALI REDAKTIROWANIE,I KOGDA\TO PROISHODIT,EGO IZMENENIQ W REZULXTATE IS^EZNUT W
WA[EJ ZAFIKSIROWANNOJ WERSII (HOTQ ONI OSTANUTSQ W MASTER-FAJLE,TAK ^TO NE OKAVUTSQ
POLNOSTX@ POTERQNNYMI).pO\TOMU WY DOLVNY UBEDITXSQ,^TO TEKU]AQ WERSIQ OSTALASX
NEIZMENENNOJ PERED TEM KAK FIKSIROWATX SWOI IZMENENIQ.mY NADEEMSQ USTRANITX\TOT
RISK I PREDOSTAWITX AWTOMATI^ESKOE OB_EDINENIE DLQ RCS W BUDU]EJ WERSII Emacs.
kROME TOGO,DAVE W\TOM REVIME RCS BLOKIROWANIE WOZMOVNO,HOTX I NEOBQZATELXNO;
C-x C-q W NEIZMENENNOM FAJLE BLOKIRUET\TOT FAJL,TAK VE,KAK S RCS W OBY^NOM (BLOKI-
RU@]EM) REVIME.
14.7.3.3 bUFER VURNALXNOJ ZAPISI
kOGDA WY FIKSIRUETE IZMENENIQ,C-x C-q SNA^ALA S^ITYWAET VURNALXNU@ ZAPISX.oNA
PODNIMAET BUFER S IMENEM`*VC-Log*',W KOTOROM WY WWODITE VURNALXNU@ ZAPISX.kOGDA
WY ZAWER[ILI,NAVMITE C-c C-c W BUFERE`*VC-Log*'.tOLXKO TOGDA PROISHODIT DEJSTWI-
TELXNOE FIKSIROWANIE.
~TOBY PRERWATX FIKSIROWANIE,PROSTO NE NABIRAJTE C-c C-c W\TOM BUFERE.wY MOVETE
PEREKL@^ATX BUFERY I DELATX DRUGOE REDAKTIROWANIE.pOKA WY NE PYTAETESX ZAFIKSIRO-
WATX DRUGOJ FAJL,ZAPISX,KOTORU@ WY REDAKTIROWALI,OSTAETSQ W BUFERE`*VC-Log*',I WY
MOVETE W L@BOE WREMQ WERNUTXSQ W\TOT BUFER I ZAWER[ITX FIKSIROWANIE.
120 rUKOWODSTWO PO GNU EmacseSLI WY MODIFICIRUETE NESKOLXKO ISHODNYH FAJLOW S ODNOJ CELX@,^ASTO BYWAET UDOBNO
UKAZATX ODINAKOWU@ VURNALXNU@ ZAPISX DLQ MNOGIH FAJLOW.~TOBY SDELATX TAK,ISPOLX-
ZUJTE ISTORI@ PREDYDU]IH VURNALXNYH ZAPISEJ.pREDNAZNA^ENNYE DLQ\TOGO KOMANDY
M-n,M-p,M-s I M-r RABOTA@T TAK VE,KAK KOMANDY ISTORII MINIBUFERA (ZA ISKL@^ENIEM
TOGO,^TO ONI PRIMENQ@TSQ WNE MINIBUFERA).
kAVDYJ RAZ,KOGDA WY FIKSIRUETE FAJL,BUFER VURNALXNOJ ZAPISI POME]AETSQ W RE-
VIM VC Log,^TO WLE^ET ZAPUSK DWUH LOWU[EK:text-mode-hook I vc-log-mode-hook.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
14.7.4 pROSMOTR I SRAWNENIE STARYH WERSIJ
oDNA IZ UDOBNYH WOZMOVNOSTEJ SISTEM UPRAWLENIQ WERSIQMI |WOZMOVNOSTX PROSMOTRA
L@BOJ WERSII FAJLA ILI SRAWNENIQ DWUH WERSIJ.
C-x v ~ WERSIQ
h RETi
pOKAZYWAET ZADANNU@ WERSI@ FAJLA,K KOTOROMU WY OBRATILISX,W OTDELXNOM
BUFERE.
C-x v = sRAWNIWAET TEKU]EE SODERVIMOE BUFERA S POSLEDNEJ ZAFIKSIROWANNOJ WERSIEJ
\TOGO FAJLA.
C-u C-x v = FAJL h RETi STARAQ-WER hRETi NOWAQ-WER hRETi
sRAWNIWAET DWE ZADANNYE WERSII FAJLA.
C-x v g wYWODIT REZULXTAT KOMANDY CVS annotate S ISPOLXZOWANIEM RAZNYH CWETOW.
~TOBY PROSMOTRETX STARU@ WERSI@ in toto,OBRATITESX K FAJLU I NABERITE C-x v ~
WERSIQ h RETi (vc-version-other-window).|TO POMESTIT TEKST UKAZANNOJ WERSII W FAJL
S IMENEM`IMQ-FAJLA.~WERSIQ~'I OBRATITSQ K NEMU W NOWOM BUFERE W OTDELXNOM OKNE.
(w RCS,WY TAKVE MOVETE WYBRATX STARYJ BUFER I SOZDATX IZ NEGO NOWU@ WETWX.sM.rAZDEL 14.7.6 [wETWI],S.123.)
nO OBY^NO BOLEE UDOBNO SRAWNIWATX DWE WERSII FAJLA S POMO]X@ KOMANDY C-x v = (vc-
diff).pROSTO C-x v = SRAWNIWAET TEKU]EE SODERVIMOE BUFERA (SOHRANQQ EGO W FAJL,ESLI
TREBUETSQ) S POSLEDNEJ ZAFIKSIROWANNOJ WERSIEJ\TOGO FAJLA.C-u C-x v = S ^ISLOWYM
ARGUMENTOM S^ITYWAET IMQ FAJLA I NOMERA DWUH WERSIJ,A ZATEM SRAWNIWAET\TI WERSII
UKAZANNOGO FAJLA.
eSLI WY ZADADITE WMESTO ZAREGISTRIROWANNOGO FAJLA IMQ KATALOGA,\TA KOMANDA SRAW-
NIWAET ZADANNYE WERSII WSEH ZAREGISTRIROWANNYH FAJLOW W\TOM KATALOGE I EGO PODKATA-
LOGAH.
wY MOVETE ZADATX ZAFIKSIROWANNU@ WERSI@ ^ISLOM;PUSTOJ WWOD OBOZNA^AET TEKU]EE
SODERVIMOE RABO^EGO FAJLA (ONO MOVET OTLI^ATXSQ OT WSEH ZAFIKSIROWANNYH WERSIJ).wY
TAKVE MOVETE ZADATX WMESTO ODNOGO ILI OBOIH NOMEROW WERSIJ IMQ SNIMKA (SM.rAZ-
DEL 14.7.7 [sNIMKI],S.126 ).
|TA KOMANDA RABOTAET PUTEM ZAPUSKA UTILITY diff,PEREDAWAQ EJ ARGUMENTY IZ PERE-
MENNOJ diff-switches.oNA POKAZYWAET WYWOD W OSOBOM BUFERE W DRUGOM OKNE.w OTLI^IE
OT KOMANDY M-x diff,C-x v = NE PYTAETSQ OPREDELITX POZICII RAZLI^IJ W STAROJ I NOWOJ
WERSIQH.tAK DELAETSQ,POTOMU ^TO KAK PRAWILO ODNA ILI OBE WERSII NE SU]ESTWU@T W
MOMENT SRAWNENIQ W WIDE FAJLOW;ONI SU]ESTWU@T TOLXKO W ZAPISQH W MASTER-FAJLE.sM.rAZDEL 14.9 [sRAWNENIE FAJLOW],S.132,DLQ POLU^ENIQ BOLX[EJ INFORMACII O M-x diff.
dLQ FAJLOW,UPRAWLQEMYH CVS,WY MOVETE POSMOTRETX REZULXTAT KOMANDY CVS an-
notate S ISPOLXZOWANIEM RAZNYH CWETOW DLQ ULU^[ENIQ WNE[NEGO WIDA.iSPOLXZUJTE DLQ
\TOGO KOMANDU M-x vc-annotate.kRASNYM OBOZNA^AETSQ NOWOE,SINIM | STAROE,A PRO-
MEVUTO^NYE CWETA OBOZNA^A@T PROMEVUTO^NYE WERSII.pREFIKSNYJ ARGUMENT n ZADAET
KO\FFICIENT RASTQVENIQ PO WREMENNOJ [KALE;ON GOWORIT,^TO KAVDYJ CWET POKRYWAET W
n RAZ BOLX[IJ PERIOD WREMENI.
gLAWA 14:rABOTA S FAJLAMI 12114.7.5 wTOROSTEPENNYE KOMANDY VC
|TOT RAZDEL OB_QSNQET WTOROSTEPENNYE KOMANDY VC;TE,^TO WY MOGLI BY ISPOLXZOWATX
RAZ W DENX.
14.7.5.1 rEGISTRIROWANIE FAJLA DLQ UPRAWLENIQ WERSIQMI
wY MOVETE POMESTITX L@BOJ FAJL POD KONTROLX SISTEMY UPRAWLENIQ WERSIQMI,PROSTO
OBRATQSX K NEMU I NABRAW ZATEM C-x v i (vc-register).
C-x v i rEGISTRIRUET FAJL W SISTEME UPRAWLENIQ WERSIQMI.
~TOBY ZAREGISTRIROWATX FAJL,Emacs DOLVEN WYBRATX,KAKU@ SISTEMU UPRAWLENIQ WER-
SIQMI DLQ NEGO ISPOLXZOWATX.wY MOVETE UKAZATX SWOJ WYBOR QWNO,USTANAWLIWAQ vc-
default-back-end W ZNA^ENIQ RCS,CVS ILI SCCS.iNA^E,ESLI ESTX PODKATALOG S IMENEM
`RCS',`SCCS'ILI`CVS',Emacs ISPOLXZUET SOOTWETSTWU@]U@ SISTEMU UPRAWLENIQ WERSIQ-
MI.w OTSUTSTWIE KAKIH-LIBO UKAZANIJ,PO UMOL^ANI@ WYBIRAETSQ RCS,ESLI W SISTEME
USTANOWLENA RCS,INA^E SCCS.
eSLI PRIMENQETSQ BLOKIROWANIE,C-x v i OSTAWLQET FAJL NEBLOKIROWANNYM I ZAPRE]A-
ET W ZAPISX.nABERITE C-x C-q,ESLI WY HOTITE NA^ATX W NEM REDAKTIROWANIE.pOSLE
REGISTRIROWANIQ S ISPOLXZOWANIEM CVS WY DOLVNY ZAFIKSIROWATX IZMENENIQ,NABRAW C-x
C-q.
pERWONA^ALXNOJ WERSII WNOWX ZAREGISTRIROWANNOGO FAJLA PRISWAIWAETSQ NOMER 1.1,PO
UMOL^ANI@.wY MOVETE ZADATX DRUGOE ZNA^ENIE PO UMOL^ANI@,USTANAWLIWAQ PEREMEN-
NU@ vc-default-init-version,ILI WY MOVETE DATX C-x v i ^ISLOWOJ ARGUMENT;TOGDA ONA
S^ITYWAET NOMER WERSII DLQ\TOGO KONKRETNOGO FAJLA W MINIBUFERE.
eSLI vc-initial-comment OTLI^NA OT nil,C-x v i S^ITYWAET NA^ALXNYJ KOMMENTARIJ,
OPISYWA@]IJ PREDNAZNA^ENIE DANNOGO ISHODNOGO FAJLA.nA^ALXNYJ KOMMENTARIJ S^ITY-
WAETSQ TAK VE,KAK VURNALXNYE ZAPISI (SM.rAZDEL 14.7.3.3 [bUFER VURNALA],S.119).
14.7.5.2 kOMANDY VC DLQ WYQSNENIQ STATUSA FAJLA
C-x v l pOKAZYWAET SOSTOQNIE FAJLA W SISTEME UPRAWLENIQ WERSIQMI I ISTORI@ IZME-
NENIJ.
~TOBY PROSMOTRETX PODROBNU@ INFORMACI@ O STATUSE WERSII I ISTORI@ FAJLA,NA-
BERITE C-x v l (vc-print-log).|TO POKAVET ISTORI@ IZMENENIJ TEKU]EGO FAJLA,W TOM
^ISLE TEKST VURNALXNYH ZAPISEJ.wYWOD POQWLQETSQ W DRUGOM OKNE.
14.7.5.3 oTMENA DEJSTWIJ NAD WERSIQMI
C-x v u wOZWRA]AET BUFER I EGO FAJL K POSLEDNEJ ZAFIKSIROWANNOJ WERSII.
C-x v c uDALQET POSLEDNEE WNESENNOE IZMENENIE IZ MASTER-FAJLA DLQ FAJLA,K KOTOROMU
WY OBRATILISX.|TO OTMENQET WA[E POSLEDNEE FIKSIROWANIE.
eSLI WY HOTITE SBROSITX WA[I TEKU]IE IZMENENIQ I WERNUTX FAJL K EGO POSLEDNEJ
WERSII,ISPOLXZUJTE C-x v u (vc-revert-buffer).fAJL OSTAETSQ NEBLOKIROWANNYM;ESLI
ISPOLXZUETSQ BLOKIROWANIE,DO TOGO,KAK SMOVETE IZMENQTX\TOT FAJL,WY DOLVNY SNA^ALA
SNOWA EGO ZABLOKIROWATX.C-x v u TREBUET PODTWERVDENIQ,ESLI TOLXKO ONA NE WIDIT,^TO
WY NE WNOSILI IZMENENIQ SO WREMENI POSLEDEGO FIKSIROWANIQ.
C-x v u TAKVE NUVNA DLQ RAZBLOKIROWANIQ FAJLA,KOGDA WY BLOKIROWALI EGO,A POTOM
RE[ILI NE IZMENQTX.
122 rUKOWODSTWO PO GNU Emacs~TOBY OTMENITX UVE ZAFIKSIROWANNOE IZMENENIE,ISPOLXZUJTE C-x v c (vc-cancel-
version).|TA KOMANDA SBRASYWAET WSE ZAPISI O POSLEDNEJ FIKSIROWANNOJ WERSII.C-x
v c TAKVE PREDLAGAET WERNUTX WA[ RABO^IJ FAJL I BUFER K PREDYDU]EJ WERSII (K TOJ,
^TO PRED[ESTWOWALA UDALQEMOJ).
eSLI WY OTWE^AETE no,VC SOHRANQET WA[I IZMENENIQ W BUFERE I BLOKIRUET FAJL.tA-
KAQ WOZMOVNOSTX POLEZNA,KOGDA WY ZAFIKSIROWALI IZMENENIE,A ZATEM OBNARUVILI W NEM
TRIWIALXNU@ O[IBKU;WY MOVETE OTMENITX FIKSIROWANIE,ISPRAWITX O[IBKU I SNOWA ZA-
FIKSIROWATX FAJL.
kOGDA C-x v c NE WOZWRA]AET BUFER,ONA WMESTO\TOGO SWORA^IWAET WSE ZAGOLOWKI WERSIJ
(SM.rAZDEL 14.7.8.3 [zAGOLOWKI WERSII],S.128).|TO DELAETSQ PO TOJ PRI^INE,^TO BUFER
BOLX[E NE SOOTWETSTWUET NIKAKOJ SU]ESTWU@]EJ WERSII.eSLI WY SNOWA ZAFIKSIRUETE EGO,
ZAGOLOWKI BUDUT RASKRYTY PRAWILXNO OTNOSITELXNO NOWOGO NOMERA WERSII.
oDNAKO,AWTOMATI^ESKI SWERNUTX ZAGOLOWOK RCS`$Log$'NEWOZMOVNO.eSLI WY PI[E-
TE\TOT ZAGOLOWOK,WY DOLVNY SWERNUTX EGO WRU^NU@ | UDALIW WHOVDENIE DLQ WERSII,
KOTORU@ WY OTMENILI.
bUDXTE OSTOROVNY PRI WYZOWE C-x v c,TAK KAK PRI\TOM LEGKO POTERQTX MNOGO RABOTY.
~TOBY POMO^X WAM NE DOPUSTITX O[IBKI,\TA KOMANDA WSEGDA TREBUET PODTWERVDENIQ S
yes.oBRATITE WNIMANIE TAKVE NA TO,^TO\TA KOMANDA WYKL@^ENA POD CVS,POSKOLXKU
TAM OTMENA WERSIJ O^ENX OPASNA I NE REKOMENDUETSQ.
14.7.5.4 Dired POD VC
kOGDA WY RABOTAETE NAD BOLX[OJ PROGRAMMOJ,^ASTO BYWAET POLEZNO UZNATX,KAKIE
FAJLY BYLI IZMENENY W PREDELAH CELOGO DEREWA KATALOGOW,ILI PROSMOTRETX STATUS WSEH
FAJLOW S UPRAWLENIEM WERSIQMI ODNOWREMENNO I PROIZWESTI KAKIE-TO OPERACII NAD WERSI-
QMI DLQ NABORA FAJLOW.wY MOVETE ISPOLXZOWATX KOMANDU C-x v d (vc-directory),^TOBY
SOZDATX RASPE^ATKU KATALOGA,KOTORYJ WKL@^AET TOLXKO FAJLY,IME@]IE OTNO[ENIE K
SISTEME UPRAWLENIQ WERSIQMI.
C-x v d SOZDAET BUFER,ISPOLXZU@]IJ REVIM VC Dired.oN WYGLQDIT KAK OBY^NYJ
BUFER Dired (SM.gLAWA 28 [Dired],S.291);ODNAKO,KAK PRAWILO W NEM POKAZANY TOLXKO
STOQ]IE UPOMINANIQ FAJLY (BLOKIROWANNYE ILI NEOBNOWLENNYE).|TO NAZYWAETSQ SVATYM
POKAZOM.eSLI WY USTANOWITE PEREMENNU@ vc-dired-terse-display RAWNOJ nil,TO VC
Dired POKAZYWAET WSE OTNOSQ]IESQ K DELU FAJLY | TE,^TO NAHODQTSQ POD KONTROLEM SI-
STEMY UPRAWLENIQ WERSIQMI,PL@S WSE PODKATALOGI (POLNYJ POKAZ).kOMANDA v t W BUFERE
VC Dired PEREKL@^AET MEVDU SVATYM I POLNYM POKAZOM (SM.rAZDEL 14.7.5.5 [kOMANDY
VC Dired],S.123 ).
pO UMOL^ANI@ VC Dired PROIZWODIT REKURSIWU@ RASPE^ATKU ZASLUVIWA@]IH UPOMINA-
NIQ ILI RELEWANTNYH FAJLOW W ZADANNOM KATALOGE I NIVE.wY MOVETE IZMENITX\TO,USTA-
NAWLIWAQ PEREMENNU@ vc-dired-recurse RAWNOJ nil;TOGDA VC Dired POKAZYWAET TOLXKO
FAJLY TEKU]EGO KATALOGA.
sTROKA DLQ OTDELXNOGO FAJLA POKAZYWAET SOSTOQNIE WERSII NA MESTE ^ISLA VESTKIH
SSYLOK,WLADELXCA,GRUPPU I RAZMER FAJLA.eSLI FAJL NE IZMENEN,SINHRONIZIROWAN S
MASTER-FAJLOM,STATUS WERSII PUST.iNA^E ON SOSTOIT IZ TEKSTA W KRUGLYH SKOBKAH.pOD
RCS I SCCS POKAZYWAETSQ IMQ POLXZOWATELQ,BLOKIROWAW[EGO\TOT FAJL;POD CVS ISPOLX-
ZUETSQ SOKRA]ENNAQ WERSIQ WYWODA`cvs status'.wOT PRIMER S ISPOLXZOWANIEM RCS:
/home/jim/project:
-rw-r-r- (jim) Apr 2 23:39 file1
-r-r-r- Apr 5 20:21 file2
fAJLY`file1'I`file2'NAHODQTSQ POD UPRAWLEIEM RCS,`file1'BLOKIROWAL POLXZOWATELX
jim,A`file2'NEBLOKIROWAN.
wOT PRIMER S ISPOLXZOWANIEM CVS:
gLAWA 14:rABOTA S FAJLAMI 123/home/joe/develop:
-rw-r-r- (modified) Aug 2 1997 file1.c
-rw-r-r- Apr 4 20:09 file2.c
-rw-r-r- (merge) Sep 13 1996 file3.c
zDESX`file1.c'IZMENEN PO OTNO[ENI@ K REPOZITORI@,A`file2.c'NE IZMENEN.`file3.c'
IZMENEN,NO W REPOZITORII BYLI TAKVE ZAFIKSIROWANY DRUGIE IZMENENIQ | WAM NUVNO
OB_EDINITX IH W RABO^EM FAJLE PERED FIKSIROWANIEM.
kOGDA VC Dired POKAZYWAET PODKATALOGI (W REVIME\POLNOGO"POKAZA),ON OPUSKAET
NEKOTORYE IZ NIH,KOTORYE NIKOGDA NE MOGUT SODERVATX FAJLOW POD KONTROLEM SISTEMY
UPRAWLENIQ WERSIQMI.pO UMOL^ANI@\TO WKL@^AET KATALOGI,SOZDAWAEMYE\TIMI SISTE-
MAMI,TAKIE KAK`RCS'I`CVS';WY MOVETE NASTRAIWATX\TO,USTANAWLIWAQ PEREMENNU@ vc-
directory-exclusion-list.
wY MOVETE PODOBRATX PODHODQ]IJ FORMAT VC Dired,NABRAW C-u C-x v d |KAK W OBY^-
NOM Dired,^TO POZWOLQET WAM UKAZYWATX DOPOLNITELXNYE KL@^I DLQ KOMANDY ls.
14.7.5.5 kOMANDY VC Dired
wSE OBY^NYE KOMANDY Dired RABOTA@T KAK WSEGDA I W REVIME VC Dired,ZA ISKL@^ENIEM
v,KOTORAQ PEREOPREDELENA KAK PREFIKS UPRAWLENIQ WERSIQMI.wY MOVETE WYZYWATX KOMAN-
DY VC,TAKIE KAK vc-diff I vc-print-log,NABIRAQ v = ILI v l I TAK DALEE.bOLX[INSTWO
\TIH KOMAND PRIMENQ@TSQ K IMENI FAJLA NA TEKU]EJ STROKE.
kOMANDA v v (vc-next-action) OBRABATYWAET WSE POME^ENNYE FAJLY,TAK ^TO WY MOVETE
ZABLOKIROWATX ILI ZAFIKSIROWATX NESKOLXKO FAJLOW ODNOWREMENNO.eSLI ONA RABOTAET
BOLEE ^EM S ODNIM FAJLOM,TO OBRABATYWAET KAVDYJ FAJL W SOOTWETSTWII S EGO STATUSOM;
TAKIM OBRAZOM,ONA MOVET BLOKIROWATX ODIN FAJL,NO ZAFIKSIROWATX DRUGOJ.wOZMOVNO,
\TO SMUTIT WAS;NO WY WOLXNY IZBEVATX PUTANICY,POME^AQ NABOR FAJLOW S ODNIM I TEM
VE STATUSOM.
eSLI KAKOJ-LIBO FAJL TREBUET FIKSIROWANIQ,v v S^ITYWAET EDINSTWENNU@ VURNALXNU@
ZAPISX I ISPOLXZUET EE DLQ WSEH FIKSIRUEMYH FAJLOW.|TO UDOBNO DLQ ODNOWREMENNOGO
REGISTRIROWANIQ ILI FIKSIROWANIQ NESKOLXKIH FAJLOW KAK ^ASTEJ ODNOGO IZMENENIQ.
wY MOVETE W L@BOE WREMQ PEREKL@^ATXSQ MEVDU SVATYM POKAZOM (TOLXKO BLOKIROWAN-
NYE ILI NEOBNOWLENNYE FAJLY) I POLNYM POKAZOM,NABIRAQ v t vc-dired-toggle-terse-
mode.eSTX TAKVE OSOBAQ KOMANDA * l (vc-dired-mark-locked),KOTORAQ POME^AET WSE ZABLO-
KIROWANNYE W DANNYJ MOMENT FAJLY (ILI,DLQ CVS,WSE NEOBNOWLENNYE).tAKIM OBRAZOM,
NABOR * l t k |\TO DRUGOJ SPOSOB UDALITX IZ BUFERA WSE FAJLY,KROME TEH,^TO SEJ^AS
ZABLOKIROWANY.
14.7.6 mNOVESTWO WETWEJ FAJLA
oDNO IZ PRIMENENIJ UPRAWLENIQ WERSIQMI |SOPROWOVDENIE NESKOLXKIH\TEKU]IH"WER-
SIJ FAJLA.nAPRIMER,U WAS MOGLO BY BYTX NESKOLXKO RAZNYH WERSIJ PROGRAMMY,W KO-
TOROJ WY POSTEPENNO DOBAWLQLI RAZLI^NYE NEZAWER[ENNYE NOWYE WOZMOVNOSTI.kAVDAQ
NEZAWISIMAQ LINIQ RAZRABOTKI NAZYWAETSQ WETWX@.VC POZWOLQET WAM SOZDAWATX WETWI,
PEREKL@^ATXSQ MEVDU RAZNYMI WETWQMI I WLIWATX IZMENENIQ IZ ODNOJ WETWI W DRUGU@.
pOVALUJSTA,ZAMETXTE ODNAKO,^TO TAKIE WETWI NA DANNYJ MOMENT PODDERVIWA@TSQ TOLXKO
DLQ RCS.
gLAWNAQ LINIQ RAZWITIQ FAJLA OBY^NO NAZYWAETSQ STWOLOM.wERSII STWOLA OBY^NO
NUMERU@TSQ KAK 1.1,1.2,1.3,etc.nA L@BOJ IZ\TIH WERSIJ WY MOVETE NA^ATX NEZAWISIMU@
WETWX.wETWX,NA^INA@]AQSQ NA WERSII 1.2 IMELA BY NOMER 1.2.1.1,A POSLEDU@]IE WERSII
\TOJ WETWI IMELI BY NOMERA 1.2.1.2,1.2.1.3,1.2.1.4 I TAK DALEE.eSLI ESTX WTORAQ WETWX,
TAKVE NA^INA@]AQSQ NA WERSII 1.2,ONA SOSTOQLA BY IZ WERSIJ 1.2.2.1,1.2.2.2,1.2.2.3,etc.
124 rUKOWODSTWO PO GNU EmacseSLI WY OPUSKAETE POSLEDNIJ KOMPONENT W NOMERE WERSII,\TO NAZYWAETSQ NOMEROM WET-
WI.oN SSYLAETSQ NA SAMU@ WERHN@@ SU]ESTWU@]U@ WERSI@\TOJ WETWI | EE GOLOWNU@
WERSI@.wETWI W PRIMERE WY[E IME@T NOMERA 1.2.1 I 1.2.2.
14.7.6.1 pEREKL@^ENIE MEVDU WETWQMI
~TOBY PEREKL@^ITXSQ MEVDU WETWQMI,WWEDITE C-u C-x C-q I UKAVITE NOMER WERSII,
KOTORYJ WY HOTITE WYBRATX.tOGDA K\TOJ WERSII DELAETSQ OBRA]ENIE W NEBLOKIROWANNOM
(ZA]I]ENNOM OT ZAPISI) REVIME,TAK ^TO WY MOVETE PROSMOTRETX EE PERED BLOKIROWANIEM.
pEREKL@^ENIE WETWEJ TAKIM SPOSOBOM DOPUSKAETSQ TOLXKO TOGDA,KOGDA FAJL BLOKIROWAN.
wY MOVETE OPUSTITX NOMER WTOROSTEPENNOJ WERSII,ZADAWAQ TAKIM OBRAZOM TOLXKO NOMER
WETWI;\TO PERENOSIT WAS K GOLOWNOJ WERSII WYBRANNOJ WETWI.eSLI WY NABERETE PROSTO
h RETi,Emacs PEREHODIT K SAMOJ WERHNEJ WERSII STWOLA.
pOSLE PEREKL@^ENIQ NA L@BU@ WETWX (WKL@^AQ GLAWNU@),WY OSTAETESX W NEJ S TO^KI
ZRENIQ WSEH POSLEDU@]IH KOMAND VC,POKA QWNO NE WYBERETE KAKU@-TO DRUGU@ WETWX.
14.7.6.2 sOZDANIE NOWYH WETWEJ
~TOBY SOZDATX NOWU@ WETWX IZ GOLOWNOJ WERSII (POSLEDNEJ W SWOEJ WETWI),SNA^ALA WY-
BERITE\TU WERSI@,ESLI NEOBHODIMO,ZABLOKIRUJTE EE KOMANDOJ C-x C-q I DELAJTE NUVNYE
WAM IZMENENIQ.zATEM,KOGDA WY FIKSIRUETE IZMENENIQ,ISPOLXZUJTE C-u C-x C-q.|TO
POZWOLIT WAM ZADATX NOMER DLQ NOWOJ WERSII.wY DOLVNY ZADATX PODHODQ]IJ NOMER DLQ
WETWI,OTHODQ]EJ OT TEKU]EJ WERSII.nAPRIMER,ESLI TEKU]AQ WERSIQ |2.5,TO NOMER WET-
WI DOLVEN BYTX 2.5.1,2.5.2 I TAK DALEE W ZAWISIMOSTI OT NOMEROW SU]ESTWU@]IH WETWEJ W
\TOJ TO^KE.
~TOBY SOZDATX NOWU@ WETWX OT BOLEE STAROJ WERSII (TOJ,^TO UVE NE QWLQETSQ GOLOWNOJ
W WETWI),SNA^ALA WYBERITE\TU WERSI@ (SM.rAZDEL 14.7.6.1 [pEREKL@^ENIE WETWEJ],S.124),
ZATEM ZABLOKIRUJTE EE S POMO]X@ C-x C-q.kOGDA WY BLOKIRUETE STARU@ WERSI@,WAS PO-
PROSQT PODTWERDITX,^TO WY DEJSTWITELXNO IMELI W WIDU SOZDANIE NOWOJ WETWI,|ESLI WY
OTWETITE NET,WAM PREDOSTAWQT WOZMOVNOSTX BLOKIROWATX WMESTO\TOGO POSLEDN@@ WERSI@.
pOTOM WNOSITE WA[I IZMENENIQ I SNOWA NABERITE C-x C-q,^TOBY ZAFIKSIROWATX NOWU@
WERSI@.|TO AWTOMATI^ESKI SOZDAST NOWU@ WETWX OT WYBRANNOJ WERSII.wAM NE NUVNO SPE-
CIALXNO ZAPRA[IWATX SOZDANIE NOWOJ WETWI,POSKOLXKU\TO EDINSTWENNYJ SPOSOB DOBAWITX
NOWU@ WERSI@ W TO^KE,KOTORAQ UVE NE NAHODITSQ W GOLOWE WETWI.
pOSLE TOGO KAK WETWX SOZDANA,WY\OSTAETESX"W NEJ.|TO OZNA^AET,^TO POSLEDU@]IE
FIKSIROWANIQ SOZDA@T NOWYE WERSII W\TOJ WETWI.~TOBY POKINUTX WETWX,WY DOLVNY QWNO
WYBRATX DRUGU@ WERSI@ S POMO]X@ C-u C-x C-q.~TOBY PERENESTI IZMENENIQ IZ ODNOJ
WETWI W DRUGU@,ISPOLXZUJTE KOMANDU OB_EDINENIQ,OPISANNU@ W SLEDU@]EM RAZDELE.
14.7.6.3 oB_EDINENIE WETWEJ
kOGDA WY ZAKON^ILI IZMENENIQ W KONKRETNOJ WETWI,WAM ^ASTO BUDET NUVNO WNESTI IH
W GLAWNU@ LINI@ RAZRABOTKI FAJLA (STWOL).|TO NETRIWIALXNAQ PROCEDURA,POTOMU ^TO
W STWOLE TOVE MOGLO IDTI RAZWITIE,PO\TOMU WY DOLVNY OB_EDINITX IZMENENIQ S FAJLOM,
KOTORYJ UVE BYL IZMENEN INA^E.VC POZWOLQET WAM SDELATX\TO (I DRUGIE WE]I) PRI
POMO]I KOMANDY vc-merge.
C-x v m (vc-merge)
wLIWAET IZMENENIQ W RABO^IJ FAJL.
C-x v m (vc-merge) BERET NABOR IZMENENIJ I WLIWAET IH W TEKU]U@ WERSI@ RABO^EGO
FAJLA.sNA^ALA ONA SPRA[IWAET U WAS NOMER WETWI ILI PARU NOMEROW WERSIJ W MINIBUFE-
RE.zATEM ONA NAHODIT OTLI^IQ OT\TOJ WETWI ILI MEVDU DWUMQ ZADANNYMI WERSIQMI I
OB_EDINQET IH W TEKU]EJ WERSII TEKU]EGO FAJLA.
gLAWA 14:rABOTA S FAJLAMI 125w KA^ESTWE PRIMERA PREDPOLOVIM,^TO WY ZAWER[ILI NEKOTOROE DOBAWLENIE W WETWI
1.3.1.tEM WREMENEM RAZRABOTKA STWOLA PRODWINULASX DO WERSII 1.5.~TOBY WLITX IZMENE-
NIQ W STWOL,SNA^ALA PEREJDITE W GOLOWNU@ WERSI@ STWOLA,NABRAW C-u C-x C-q RET.wERSIQ
1.5 TEPERX STALA TEKU]EJ.eSLI DLQ\TOGO FAJLA ISPOLXZUETSQ BLOKIROWANIE,NABERITE C-x
C-q DLQ BLOKIROWANIQ WERSII 1.5,^TOBY WY MOGLI EE IZMENQTX.zATEM NABERITE C-x v m
1.3.1 RET.|TO WOZXMET WESX NABOR IZMENENIJ W WETWI 1.3.1 (OTNOSITELXNO WERSII 1.3,GDE
WETWX BYLA NA^ATA,I DO SAMOJ POSLEDNEJ WERSII\TOJ WETWI) I WLIWAET IH W TEKU]U@ WER-
SI@ RABO^EGO FAJLA.tEPERX WY MOVETE ZAFIKSIROWATX IZMENENNYJ FAJL,SOZADWAQ TAKIM
OBRAZOM WERSI@ 1.6,SODERVA]U@ IZMENENIQ IZ WETWI.
pOSLE OB_EDINENIQ MOVNO DELATX DALXNEJ[EE REDAKTIROWANIE DO SLEDU@]EGO FIKSIRO-
WANIQ.nO OBY^NO MUDREE ZAFIKSIROWATX OB_EDINENNU@ WERSI@,ZATEM BLOKIROWATX EE I
TOLXKO TOGDA PRODOLVATX REDAKTIROWANIE.|TO SOHRANIT LU^[U@ ZAPISX ISTORII IZMENE-
NIJ.
kOGDA WY WLIWAETE IZMENENIQ W FAJL,KOTORYJ SAM BYL MODIFICIROWAN,RAZLI^IQ MO-
GUT PEREKRYWATXSQ.mY NAZYWAEM TAKU@ SITUACI@ KONFLIKTOM,A SOGLASOWANIE RAZLI^IJ
NAZYWAETSQ RAZRE[ENIEM KONFLIKTA.
kOGDA WO WREMQ OB_EDINENIQ WOZNIKA@T KONFLIKTY,VC ZAME^AET IH,GOWORIT WAM O NIH
W\HO-OBLASTI I SPRA[IWAET,HOTITE LI WY POMO^X W OB_EDINENII.eSLI WY OTWE^AETE DA,
VC ZAPUSKAET SEANS EdiпЂ‹ (SM.RAZDEL\EdiпЂ‹"W The EdiпЂ‹ Manual).
eSLI WY GOWORITE NET,W FAJL WSTAWLQ@TSQ OBA KONFLIKTU@]IH IZMENENIQ,OKRUVENNYE
MARKERAMI KONFLIKTA.pRIMER NIVE POKAZYWAET,KAK WYGLQDQT KONFLIKTU@]IE OBLASTI;
FAJL NAZYWAETSQ`IMQ-FAJLA',A NOMER TEKU]EJ WERSII W MASTER-FAJLE,GDE NAHODQTSQ S
IZMENENIQ POLXZOWATELQ b | 1.11.
<<<<<<< IMQ-FAJLA
wERSIQ POLXZOWATELQ a
=======
wERSIQ POLXZOWATELQ b
>>>>>>> 1.11
tEPERX WY MOVETE RAZRE[ITX KONFLIKT,REDAKTIRUQ FAJL WRU^NU@.iLI WY MOVETE
NAPE^ATATX M-x vc-resolve-conflicts POSLE OBRA]ENIQ K FAJLU.|TO ZAPUSKAET SEANS
EdiпЂ‹,KAK OPISANO WY[E.
14.7.6.4 mNOGOPOLXZOWATELXSKIE RAZWETWLENIQ
~ASTO NESKOLXKIM RAZRABOT^IKAM BYWAET POLEZNO RABOTATX ODNOWREMENNO NAD RAZLI^-
NYMI WETWQMI FAJLA.CVS POZWOLQET\TO PO UMOL^ANI@;W RCS\TO WOZMOVNO,ESLI WY
SOZDADITE NESKOLXKO ISHODNYH KATALOGOW.kAVDYJ ISHODNYJ KATALOG DOLVEN IMETX SSYL-
KU S IMENEM`RCS',KOTORAQ UKAZYWAET NA OB]IJ KATALOG S MASTER-FAJLAMI RCS.tOGDA
KAVDYJ ISHODNYJ KATALOG MOVET HRANITX SOBSTWENNYJ NABOR WYBRANNYH WERSIJ,NO WSE
ONI RAZDELQ@T ODNI OB]IE ZAPISI RCS.
|TOT METOD RABOTAET NADEVNO I AWTOMATI^ESKI,PRI USLOWII,^TO ISHODNYE FAJLY
SODERVAT ZAGOLOWKI RCS O WERSII (SM.rAZDEL 14.7.8.3 [zAGOLOWKI WERSII],S.128).|TI
ZAGOLOWKI POZWOLQ@T Emacs WSEGDA TO^NO ZNATX NOMER WERSII,PRISUTSWU@]EJ W RABO^EM
FAJLE.
eSLI W FAJLAH NET ZAGOLOWKOW WERSII,WY DOLVNY W KAVDOM SEANSE QWNO GOWORITX Emacs,
NAD KAKOJ WETWX@ WY RABOTAETE.~TOBY SDELATX TAK,SNA^ALA OBRATITESX K FAJLU,ZATEM
NABERITE C-u C-x C-q I UKAVITE PRAWILXNYJ NOMER WERSII.|TO DOLVNO GARANTIROWATX,
^TO Emacs ZNAET,KAKAQ WETWX ISPOLXZUETSQ WO WREMQ KONKRETNOGO SEANSA REDAKTIROWANIQ.
126 rUKOWODSTWO PO GNU Emacs14.7.7 sNIMKI
sNIMOK |\TO IMENOWANNYJ NABOR WERSIJ FAJLOW (ODNA DLQ KAVDOGO ZAREGISTRIRO-
WANNOGO FAJLA),S KOTORYMI WY MOVETE OBRA]ATXSQ KAK S ODNIM CELYM.oDIN WAVNYJ
WID SNIMKA NAZWAETSQ WYPUSKOM,\TO (TEORETI^ESKI) STABILXNAQ WERSIQ SISTEMY,GOTOWAQ K
RASPROSTRANENI@ SREDI POLXZOWATELEJ.
14.7.7.1 sOZDANIE I ISPOLXZOWANIE SNIMKOW
eSTX DWE OSNOWNYE KOMANDY DLQ RABOTY SO SNIMKAMI;ODNA SOZDAET SNIMOK S ZADANNYM
IMENEM,A WTORAQ IZWLEKAET IMENOWANNYJ SNIMOK.
C-x v s IMQ
hRETi
oPREDELQET POSLEDNIE SOHRANENNYE WERSII KAVDOGO ZAREGISTRIROWANNOGO FAJLA
W TEKU]EM KATALOGE ILI NIVE NEGO KAK SNIMOK S ZADANNYM IMENEM (vc-create-
snapshot).
C-x v r IMQ
h RETi
dLQ WSEH ZAREGISTRIROWANNYH FAJLOW NA UROWNE TEKU]EGO KATALOGA ILI NIVE
WYBIRAET WERSII,SOOTWETSTWU@]IE SNIMKU S ZADANNYM IMENEM (vc-retrieve-
snapshot).
|TA KOMANDA SOOB]AET OB O[IBKE,ESLI W TEKU]EM KATALOGE ILI NIVE ESTX ZA-
BLOKIROWANNYE FAJLY,I NI^EGO NE IZMENQET;\TO DELAETSQ DLQ PREDOTWRA]ENIQ
PEREZAPISI REDAKTIRUEMYH W DANNYJ MOMENT FAJLOW.
sNIMOK ZANIMAET O^ENX NEBOLX[OJ OB_EM RESURSOW | ROWNO STOLXKO,SKOLXKO NUVNO
DLQ ZAPOMINANIQ SPISKA IMEN FAJLOW I PRINADLEVI]IH SNIMKU WERSIJ.pO\TOMU NUVNO
NE KOLEBATXSQ I SOZDAWATX SNIMKI WSEGDA,KOGDA ONI MOGUT BYTX POLEZNYMI.
wY MOVETE PREDOSTAWITX W KA^ESTWE ARGUMENTA DLQ C-x v = ILI C-x v ~ IMQ SNIMKA (SM.rAZDEL 14.7.4 [sTARYE WERSII],S.120).tAKIM OBRAZOM,WY MOVETE ISPOLXZOWATX\TO DLQ
SRAWNENIQ SNIMKA S TEKU]IMI FAJLAMI,ILI DWUH SNIMKOW DRUG S DRUGOM ILI SNIMKA S
ZADANNOJ WERSIEJ.
14.7.7.2 oPASNYE MESTA PRI RABOTE SO SNIMKAMI
rABOTA SO SNIMKAMI W VC SMODELIROWANA NA OSNOWE PODDEVKI IMENOWANNYH KONFIGURA-
CIJ W RCS.dLQ NEE ISPOLXZU@TSQ WSTROENNYE SREDSTWA RCS,PO\TOMU SNIMKI,SDELANNYE
POD VC S ISPOLXZOWANIEM RCS,WIDNY,DAVE KOGDA WY OBHODITE VC.
dLQ SCCS,VC REALIZUET SNIMKI SAMA.iSPOLXZUEMYE EJ FAJLY SODERVAT TROJKI
IMQ/FAJL/NOMER-WERSII.tAKIE SNIMKI WIDNY TOLXKO ^EREZ VC.
sNIMOK |\TO NABOR ZAFIKSIROWANNYH WERSIJ.pO\TOMU PRI SOZDANII SNIMKA WY DOLV-
NY UBEDITXSQ,^TO WSE FAJLY ZAFIKSIROWANY I NEBLOKIROWANY.
pEREIMENOWANIE I UDALENIE FAJLOW MOVET SOZDATX NEKOTORYE TRUDNOSTI SO SNIMKAMI.
|TA PROBLEMA NE SPECIFI^NA DLQ VC,NO QWLQETSQ OB]IM WOPROSOM W REALIZACII SISTEM
UPRAWLENIQ WERSIQMI,KOTORYJ NIKEM E]E NE RE[EN HORO[O.
eSLI WY PEREIMENOWYWAETE ZAREGISTRIROWANNYJ FAJL,WAM NUVNO PEREIMENOWATX I EGO
MASTER-FAJL (KOMANDA vc-rename-file DELAET\TO AWTOMATI^ESKI).eSLI WY POLXZUETESX
SCCS,WY DOLVNY TAKVE OBNOWITX ZAPISI O SNIMKAH,^TOBY ONI SSYLALISX NA\TOT FAJL
PO NOWOMU IMENI (vc-rename-file DELAET I\TO TOVE).sTARYJ SNIMOK,SSYLA@]IJSQ NA
MASTER-FAJL,KOTORYJ BOLX[E NE SU]ESTWUET POD ZAPISANNYM IMENEM,UVE NE KORREKTEN;
VC BOLX[E NE MOVET IZWLE^X EGO.dOSTATO^NOE UGLUBLENIE W PODROBNOSTI OB RCS I SCCS
DLQ OB_QSNENIQ PROCESSA RU^NOGO OBNOWLENIQ SNIMKOW WY[LO BY ZA RAMKI DANNOGO RUKO-
WODSTWA.
gLAWA 14:rABOTA S FAJLAMI 127iSPOLXZOWANIE vc-rename-file SOHRANQET KORREKTNOSTX SNIMKA DLQ IZWLE^ENIQ,NO NE
RE[AET WSEH PROBLEM.nAPRIMER,NEKOTORYE FAJLY W PROGRAMME WEROQTNO SSYLA@TSQ NA
DRUGIE FAJLY PO IMENAM.pO SAMOJ MENX[EJ MERE,PEREIMENOWANNYJ WAMI FAJL UPOMQNUT
W Make-FAJLE.eSLI WY IZWLEKAETE STARYJ SNIMOK,PEREIMENOWANNYJ FAJL POLU^AET SWOE
NOWOE IMQ,A NE TO,KOTOROE OVIDAET Make-FAJL.pO\TOMU NA SAMOM DELE PROGRAMMA NE
ZARABOTAET W TOM WIDE,W KAKOM EE IZWLEKLI.
14.7.8 rAZLI^NYE KOMANDY I WOZMOVNOSTI VC
|TOT RAZDEL RASSKAZYWAET O DRUGIH WOZMOVNOSTQH VC,PRIMENQEMYH NE STOLX ^ASTO.
14.7.8.1 vURNALY IZMENENIJ I VC
eSLI WY ISPOLXZUETE DLQ PROGRAMMY RCS ILI CVS I TAKVE SOPROWOVDAETE FAJL VUR-
NALA EE IZMENENIJ (SM.rAZDEL 22.12 [Change Log],S.224),WY MOVETE AWTOMATI^ESKI
GENERIROWATX WHOVDENIQ DLQ NEGO IZ VURNALXNYH ZAPISEJ SISTEMY UPRAWLENIQ WERSIQMI:
C-x v a oBRA]AETSQ K VURNALXNOMU FAJLU TEKU]EGO KATALOGA I SOZDAET DLQ ZAREGI-
STRIROWANNYH FAJLOW W\TOM KATALOGE NOWYE WHOVDENIQ DLQ WERSIJ,ZAFIKSI-
ROWANNYH POZVE POSLEDNEGO WHOVDENIQ W\TOM VURNALXNOM FAJLE (vc-update-
change-log).
|TA KOMANDA RABOTAET TOLXKO S RCS ILI CVS,NO NE S SCCS.
C-u C-x v a
kAK WY[E,NO NAHODIT WHOVDENIQ TOLXKO DLQ FAJLA TEKU]EGO BUFERA.
M-1 C-x v a
kAK WY[E,NO NAHODIT WHOVDENIQ DLQ WSEH FAJLOW,K KOTORYM WY OBRA]AE-
TESX,I KOTORYE SOPROWOVDA@TSQ SISTEMOJ UPRAWLENIQ WERSIQMI.|TO RABOTAET
TOLXKO S RCS I TAKVE POME]AET WSE WHOVDENIQ W VURNAL DLQ KATALOGA PO
UMOL^ANI@,^TO MOVET NE PODHODITX.
dLQ PRIMERA PREDPOLOVIM,^TO PERWAQ STROKA W`ChangeLog'DATIROWANA 1999-04-10,
I ^TO S TEH POR SLU^ILOSX TOLXKO FIKSIROWANIE,SDELANNOE nATENI\LOM bOUDI^EM DLQ
`rcs2log'1999-05-22 S VURNALXNOJ ZAPISX@`Ignore log messages that start with`#'.'.
tOGDA C-x v a OBRA]AETSQ K`ChangeLog'W WSTAWLQET PODOBNYJ TEKST:
1999-05-22 Nathaniel Bowditch <nat@apn.org>
* rcs2log:Ignore log messages that start with`#'.
tEPERX WY MOVETE E]E OTREDAKTIROWATX NOWOE WHOVDENIE W VURNAL PO SWOEMU VELANI@.
k SOVALENI@,METKI W FAJLAH ChangeLog SOOB]A@T TOLXKO DATY,PO\TOMU NEKOTORYE
NOWYE VURNALXNYE ZAPISI MOGUT PRODUBLIROWATX TO,^TO UVE ESTX W ChangeLog.wAM
PRIDETSQ UDALITX DUBLIROWANIQ WRU^NU@.
oBY^NO WHOVDENIE W VURNALE DLQ FAJLA`foo'OTOBRAVAETSQ KAK`* foo:TEKST WHO-
VDENIQ'.zNAK`:'POSLE`foo'OPUSKAETSQ,ESLI TEKST WHOVDENIQ NA^INAETSQ SO STROKI
`(IMQ-FUNKCII):'.nAPRIMER,ESLI WHOVDENIE DLQ`vc.el'TAKOE:`(vc-do-command):Check
call-process status.',TO TEKST W`ChangeLog'WYGLQDIT KAK:
1999-05-06 Nathaniel Bowditch <nat@apn.org>
* vc.el (vc-do-command):Check call-process status.
kOGDA C-x v a DOBAWLQET NESKOLXKO WHOVDENIJ ODNOWREMENNO,ONA GRUPPIRUET SWQZAN-
NYE MEVDU SOBOJ VURNALXNYE ZAPISI WMESTE,ESLI WSE ONI ZAFIKSIROWANY ODNIM AWTOROM
128 rUKOWODSTWO PO GNU EmacsPRIMERNO W ODNO WREMQ.eSLI WHOVDENIQ DLQ NESKOLXKIH TAKIH FAJLOW IME@T ODINAKO-
WYJ TEKST,ONA OB_EDINQET IH W ODNO WHOVDENIE.nAPRIMER,PREDPOLOVIM,^TO POSLEDNIE
FIKSIROWANIQ BYLI S TAKIMI VURNALXNYMI ZAPISQMI:
пЂЏ dLQ`vc.texinfo':`Fix expansion typos.'
пЂЏ dLQ`vc.el':`Don't call expand-file-name.'
пЂЏ dLQ`vc-hooks.el':`Don't call expand-file-name.'
w`ChangeLog'ONI POQWQTSQ TAK:
1999-04-01 Nathaniel Bowditch <nat@apn.org>
* vc.texinfo:Fix expansion typos.
* vc.el,vc-hooks.el:Don't call expand-file-name.
oBY^NO C-x v a RAZDELQET VURNALXNYE ZAPISI PUSTOJ STROKOJ,NO WY MOVETE SDE-
LATX TAK,^TOBY NESKOLXKO SWQZANNYH ZAPISEJ SCEPLQLISX WMESTE (BEZ PROMEVUTO^NOJ PU-
STOJ STROKI),NA^INAQ TEKST KAVDOJ IZ SWQZANNYH VURNALXNYH ZAPISEJ S METKI W FORME
`{IMQ-SCEPKI}'.sAMA METKA NE KOPIRUETSQ W`ChangeLog'.nAPRIMER,PREDPOLOVIM,^TO
ESTX TAKIE VURNALXNYE ZAPISI:
пЂЏ dLQ`vc.texinfo':`{expand} Fix expansion typos.'
пЂЏ dLQ`vc.el':`{expand} Don't call expand-file-name.'
пЂЏ dLQ`vc-hooks.el':`{expand} Don't call expand-file-name.'
tOGDA TEKST W`ChangeLog'WYGLQDIT TAK:
1999-04-01 Nathaniel Bowditch <nat@apn.org>
* vc.texinfo:Fix expansion typos.
* vc.el,vc-hooks.el:Don't call expand-file-name.
vURNALXNYE ZAPISI,^EJ TEKST NA^INAETSQ S`#',NE KOPIRU@TSQ W`ChangeLog'.nA-
PRIMER,ESLI WY PROSTO POPRAWILI GRAMMATI^ESKIE O[IBKI W KOMMENTARIQH,WY MOVETE
SDELATX W VURNALE ZAPISX,NA^INA@]U@SQ S`#',^TOBY W`ChangeLog'NE ZANOSILISX STOLX
TRIWIALXNYE WE]I.
14.7.8.2 pEREIMENOWANIE FAJLOW POD VC
kOGDA WY PEREIMENOWYWAETE ZAREGISTRIROWANNYJ FAJL,WY DOLVNY PEREIMENOWATX TAK-
VE SOOTWETSTWU@]IJ MASTER-FAJL,^TOBY POLU^ITX PRAWILXNYJ REZULXTAT.iSPOLXZUJTE
vc-rename-file,^TOBY PEREIMENOWATX ISHODNYJ FAJL,KAK WY UKAVETE,I SOOTWETSTWENNO
EGO MASTER-FAJL.|TO TAKVE OBNOWIT WSE SNIMKI (SM.rAZDEL 14.7.7 [sNIMKI],S.126),KO-
TORYE UPOMINA@T DANNYJ FAJL,TAK ^TO ONI BUDUT ISPOLXZOWATX NOWOE IMQ;NESMOTRQ NA
\TO,IZMENENNYJ TAKIM OBRAZOM SNIMOK MOVET NE RABOTATX (SM.rAZDEL 14.7.7.2 [sNIMKI
oPASNYE MESTA],S.126 ).
wY NE MOVETE ISPOLXZOWATX vc-rename-file DLQ FAJLA,KOTORYJ BLOKIROWAN KEM-TO
E]E.
14.7.8.3 wSTAWKA ZAGOLOWKOW WERSIJ
iNOGDA UDOBNO POME]ATX STROKI DLQ IDENTIFIKACII WERSII PRQMO W RABO^IE FAJLY.
nEKOTORYE OSOBYE STROKI,NAZYWAEMYE ZAGOLOWKAMI WERSII,ZAMENQ@TSQ W KAVDOJ WERSII
NA EE NOMER.
eSLI WY POLXZUETESX RCS,I W WA[IH RABO^IH FAJLAH PRISUTSTWU@T ZAGOLOWKI WERSIJ,
Emacs MOVET ISPOLXZOWATX IH DLQ OPREDELENIQ TEKU]EJ WERSII I SOSTOQNIQ BLOKIROWKI
gLAWA 14:rABOTA S FAJLAMI 129\TIH FAJLOW.|TO BOLEE NADEVNO,^EM OBRA]ENIE K MASTER-FAJLAM,KOTOROE DELAETSQ,ESLI
ZAGOLOWKOW WERSIJ NET.zAMETXTE,^TO W SREDE S NESKOLXKIMI WETWQMI ZAGOLOWKI WERSIJ
NEOBHODIMY DLQ KORREKTNOJ RABOTY VC (SM.rAZDEL 14.7.6.4 [mNOGOPOLXZOWATELXSKIE WET-
WI],S.125 ).
pEREMENNAQ vc-consult-headers UPRAWLQET POISKOM ZAGOLOWKOW WERSIJ.eSLI ONA OT-
LI^NA OT nil,Emacs PROIZWODIT POISK ZAGOLOWKOW,^TOBY UZNATX NOMER WERSII,KOTORU@
WY REDAKTIRUETE.uSTANOWKA\TOJ PEREMENNOJ W nil WYKL@^AET\TO SREDSTWO.
dLQ WSTAWKI PODHODQ]EJ STROKI ZAGOLOWKA WY MOVETE ISPOLXZOWATX KOMANDU C-x v h
(vc-insert-headers).
C-x v h wSTAWLQET W FAJL ZAGOLOWKI DLQ ISPOLXZOWANIQ S WA[EJ SISTEMOJ UPRAWLENIQ
WERSIQMI.
sTOKA ZAGOLOWKA PO UMOL^ANI@ |\TO`$Id$'DLQ RCS I`%W%'DLQ SCCS.wY MOVETE
UKAZATX DRUGIE WSTAWLQEMYE ZAGOLOWKI,USTANAWLIWAQ PEREMENNU@ vc-header-alist.eE
ZNA^ENIE |\TO SPISOK\LEMENTOW W FORME (PROGRAMMA.STROKA),GDE PROGRAMMA |\TO
RCS ILI SCCS,A STROKA |\TO ISPOLXZUEMAQ STROKA.
wMESTO ODNOJ STROKI WY MOVETE ZADATX SPISOK STROK;TOGDA KAVDAQ STROKA IZ SPISKA
WSTAWITSQ KAK OTDELXNYJ ZAGOLOWOK NA OTDELXNOJ STROKE.
~ASTO NEOBHODIMO PRIMENQTX\IZLI[NIE"OBRATNYE KOSYE ^ERTY,KOGDA WY PI[ETE STRO-
KI DLQ\TOJ PEREMENNOJ.|TO NUVNO DLQ TOGO,^TOBY TAKIE STROKI NE INTERPRETIROWALISX
W KONSTANTAH KAK ZAGOLOWKI WERSIJ,ESLI SAM FAJL NA Emacs Lisp NAHODITSQ POD KONTROLEM
SISTEMY UPRAWLENIQ WERSIQMI.
kAVDYJ ZAGOLOWOK WSTAWLQETSQ W TO^KE NA NOWOJ STROKE,W OKRUVENII ZNAKOW TABULQCII
WNUTRI OGRANI^ITELEJ KOMMENTARIQ.kAK PRAWILO,ISPOLXZU@TSQ OBY^NYE DLQ TEKU]EGO
REVIMA STROKI DLQ NA^ALA I ZAWER[ENIQ KOMMENTARIQ,NO W NEKOTORYH REVIMAH DLQ\TOJ
CELI ESTX OSOBYE OGRANI^ITELI KOMMETARIEW;IH OPREDELQET PEREMENNAQ vc-comment-alist.
kAVDYJ\LEMENT W\TOM SPISKE IMEET FORMU (REVIM NA^ALO KONEC).
pEREMENNAQ vc-static-header-alist UKAZYWAET,KAKIE E]E STROKI DOLVNY DOBAWLQTX-
SQ W ZAWISIMOSTI OT IMENI BUFERA.eE ZNA^ENIE DOLVNO BYTX SPISKOM\LEMENTOW W FOR-
ME (regexp.FORMAT).kOGDA regexp SOOTWETSTWUET IMENI BUFERA,KAK ^ASTX ZAGLOWKA
WSTAWLQETSQ FORMAT.sTROKA ZAGLOWKA WSTAWLQETSQ DLQ KAVDOGO\LEMENTA,SOWPADA@]EGO
S IMENEM BUFERA,I DLQ KAVDOJ STROKI,UKAZANNOJ W vc-header-alist.sTROKA ZAGLOW-
KA POLU^AETSQ PUTEM FORMATIROWANIQ STROKI IZ vc-header-alist S FORMATOM,WZQTYM IZ
\LEMENTA vc-static-header-alist.pO UMOL^ANI@ vc-static-header-alist IMEET SLEDU-
@]EE ZNA^ENIE:
(("\\.c$".
"\n#ifndef lint\nstatic char vcid[] =\"\%s\";\n\
#endif/* lint */\n"))
|TO OPREDELQET WSTAWKU TEKSTA W TAKOJ FORME:
#ifndef lint
static char vcid[] ="STROKA";
#endif/* lint */
zAMETXTE,^TO TEKST WY[E NA^INAETSQ S PUSTOJ STROKI.
eSLI WY HOTITE ISPOLXZOWATX W FAJLE BOLEE ODNOGO ZAGOLOWKA WERSII,POME]AJTE IH
RQDOM.mEHANIZM SOHRANENIQ METOK W revert-buffer MOVET NE OBRABOTATX METKI,RASPO-
LOVENNYE MEVDU DWUMQ ZAGOLOWKAMI.
14.7.9 nASTROJKA VC
eSTX MNOGO SPOSOBOW NASTROJKI VC.pARAMETRY,KOTORYE WY MOVETE USTANOWITX,RAZDE-
LQ@TSQ NA ^ETYRE KATAGORII,OPISANNYE W POSLEDU@]IH RAZDELAH.
130 rUKOWODSTWO PO GNU Emacs14.7.9.1 pARAMETRY DLQ POSTPROCESSORA VC
wY MOVETE SKAZATX RCS I CVS,DOLVNY LI ONI ISPOLXZOWATX DLQ FAJLA BLOKIROWANIE
ILI NE DOLVNY (SM.rAZDEL 14.7.1.2 [kONCEPCII VC],S.117,DLQ POLU^ENIQ OPISANIQ BLO-
KIROWANIQ).VC AWTOMATI^ESKI RASPOZNAET,^TO WY WYBRALI,I WEDET SEBQ SOOTWETSTWENNO.
w RCS PO UMOL^ANI@ PRIMENQETSQ BLOKIROWANIE,NO ESTX REVIM,NAZYWAEMYJ NESTRO-
GIM BLOKIROWANIEM,W KOTOROM WY MOVETE FIKSIROWATX IZMENENIQ BEZ PREDWARITELXNOGO
BLOKIROWANIQ FAJLA.iSPOLXZUJTE`rcs -U'DLQ PEREKL@^ENIQ K NESTROGOMU BLOKIROWANI@
DLQ NEKOTOROGO FAJLA,PODROBNOSTI SMOTRITE W DOKUMENTE Man`rcs'.
pOD CVS BLOKIROWANIE PO UMOL^ANI@ NE PRIMENQETSQ;KAVDYJ MOVET IZMENQTX RABO-
^IJ FAJL W L@BOE WREMQ.oDNAKO,ESTX SPOSOBY OGRANI^ITX\TO,DA@]IE W REZULXTATE
POWEDENIE,POHOVEE NA BLOKIROWANIE.
s ODNOJ STORONY,WY MOVETE USTANOWITX PEREMENNU@ SREDY CVSREAD W PROIZWOLXNOE
ZNA^ENIE.eSLI\TA PEREMENNAQ OPREDELENA,CVS DELAET WA[I RABO^IE FAJLY DOSTUPNYMI
TOLXKO DLQ ^TENIQ PO UMOL^ANI@.w Emacs WY DOLVNY NABRATX C-x C-q,^TOBY SDELATX
FAJL DOSTUPNYM DLQ ZAPISI,TAK ^TO REDAKTIROWANIE RABO^IH FAJLOW FAKTI^ESKI POHOVE
NA REDAKTIROWANIE S PRIMENENIEM BLOKIROWANIQ.zAMETXTE ODNAKO,^TO FAKTI^ESKI BLOKI-
ROWKI NE PROISHODIT,PO\TOMU NESKOLXKO POLXZOWATELEJ MOGUT ODNOWREMENNO SDELATX SWOI
RABO^IE FAJLY ZAPISYWAEMYMI.kOGDA WY USTANAWLIWAETE CVSREAD PERWYJ RAZ,OBQZATELX-
NO ZANOWO IZWLEKITE WSE WA[I MODULI,^TOBY ZA]ITA FAJLOW BYLA PRAWILXNO WYSTAWLENA.
dRUGOJ SPOSOB DOSTI^X ^EGO-TO POHOVEGO NA BLOKIROWKU | WOSPOLXZOWATXSQ SREDSTWOM
NABL@DENIQ W CVS.eSLI NAD FAJLOM USTANOWLENO NABL@DENIE,CVS PO UMOL^ANI@ DE-
LAET EGO DOSTUPNYM TOLXKO DLQ ^TENIQ,I WY TAKVE DOLVNY ISPOLXZOWATX W Emacs C-x
C-q,^TOBY SDELATX EGO ZAPISYWAEMYM.~TOBY SDELATX FAJL DOSTUPNYM DLQ ZAPISI,VC
WYZYWAET cvs edit,I CVS ZABOTITSQ O TOM,^TOBY DRUGIE RAZRABOT^IKI BYLI OPOWE]ENY
O WA[EM NAMERENII IZMENITX\TOT FAJL.pODROBNOSTI OB ISPOLXZOWANII SREDSTWA NABL@-
DENIQ SMOTRITE W DOKUMENTACII PO CVS.
wY MOVETE PODAWITX ISPOLXZOWANIE VC DLQ FAJLOW,UPRAWLQEMYH CVS,USTANOWIW PERE-
MENNU@ vc-handle-cvs W nil.eSLI WY SDELAETE TAK,Emacs S^ITAET\TI FAJLY NEZAREGI-
STRITOWANNYMI,I KOMANDY VC STANOWQTSQ W NIH NEDOSTUPNYMI.tOGDA WY DOLVNY DELATX
WSE OPERACII CVS WRU^NU@.
14.7.9.2 uPRAWLENIE RABO^IMI FAJLAM W VC
oBY^NO Emacs NE SOHRANQET REZERWNYE KOPII DLQ ISHODNYH FAJLOW,KOTORYE NAHODQTSQ
POD KONTROLEM SISTEMY UPRAWLENIQ WERSIQMI.eSLI WY HOTITE DELATX REZERWNYE KOPII
DAVE DLQ TAKIH FAJLOW,USTANOWITE PEREMENNU@ vc-make-backup-files W OTLI^NOE OT nil
ZNA^ENIE.
kAK PRAWILO RABO^IE FAJLY SU]ESTWU@T WSEGDA,BLOKIROWANY ONI ILI NET.eSLI WY
USTANOWITE vc-keep-workfiles W nil,TO PRI FIKSIROWANII NOWOJ WERSII S POMO]X@ C-x
C-q RABO^IJ FAJL BUDET UDALQTXSQ;NO L@BAQ POPYTKA OBRATITXSQ K\TOMU FAJLU IZ Emacs
SOZDAST EGO SNOWA.(pOD CVS RABO^IE FAJLY OSTA@TSQ WSEGDA.)
rEDAKTIROWANIE FAJLA W UPRAWLENIEM WERSIQMI ^EREZ SIMWOLXNU@ SSYLKU MOVET BYTX
OPASNYM.|TO OBHODIT SISTEMU UPRAWLENIQ WERSIQMI | WY MOVETE REDAKTIROWATX FAJLY,
NE BLOKIRUQ IH,I U WAS MOVET NE POLU^ITXSQ ZAFIKSIROWATX SWOI IZMENENIQ.tAKVE,WA[I
IZMENENIQ MOGUT PEREZAPISATX WERSI@ DRUGOGO POLXZOWATELQ.~TOBY PREDOSTAWITX ZA]ITU
OT\TOGO,VC PROWERQET KAVDU@ SIMWOLXNU@ SSYLKU,K KOTOROJ WY OBRA]AETSX,^TOBY
UZNATX,NE UKAZYWAET LI ONA NA FAJL POD KONTROLEM SISTEMY UPRAWLENIQ WERSIQMI.
pEREMENNAQ vc-follow-symlinks GOWORIT,^TO NUVNO DELATX,KOGDA SIMWOLXNAQ SSYLKA
UKAZYWAET NA FAJL S UPRAWLENIEM WERSIQMI.eSLI ONA RAWNA nil,VC LI[X POKAZYWAET
PREDUPREVDA@]EE SOOB]ENIE.eSLI\TO t,VC AWTOMATI^ESKI SLEDUET PO SSYLKE I OBRA-
]AETSQ K NASTOQ]EMU FAJLU,SOOB]AQ WAM OB\TOM W\HO-OBLASTI.eSLI\TO ZNA^ENIE RAWNO
ask (PO UMOL^ANI@),VC WSQKIJ RAZ SPRA[IWAET WAS,NUVNO LI PROSLEDOWATX PO SSYLKE.
gLAWA 14:rABOTA S FAJLAMI 13114.7.9.3 kAK VC UZNAET STATUS FAJLA
pRI WY^ISLENII STATUSA BLOKIROWKI FAJLA,VC SNA^ALA I]ET W NEM STROKU ZAGOLOWKA
WERSII RCS (SM.rAZDEL 14.7.8.3 [zAGOLOWKI WERSII],S.128).eSLI STROKI ZAGOLOWKA NET,
ILI ESLI WY POLXZUETESX SCCS,VC OBY^NO SMOTRIT NA RAZRE[ENIQ,USTANOWLENNYE DLQ
RABO^EGO FAJLA;\TO BYSTRO.nO MOGUT BYTX SITUACII,KOGDA RAZRE[ENIQM NELXZQ DOWERQTX.
w TAKOM SLU^AE DELAETSQ OBRA]ENIE K MASTER-FAJLU,^TO DOWOLXNO DOROGO.kROME TOGO,
MASTER-FAJL MOVET TOLXKO SKAZATX,ZABLOKIROWAN LI FAJL KEM-TO,NO NE TO,^TO WA[
RABO^IJ FAJL SODERVIT IMENNO\TU BLOKIROWANNU@ WERSI@.
wY MOVETE UKAZATX VC NE ISPOLXZOWATX ZAGOLOWKI WERSII DLQ OPREDELENIQ STATUSA BLO-
KIROWKI,USTANOWIW vc-consult-headers W nil.tOGDA VC WSEGDA ISPOLXZUET DLQ\TOGO
BITY RAZRE[ENIJ DLQ FAJLA (ESLI ONA MOVET IM DOWERQTX) ILI PROWERQET MASTER-FAJL.
wY MOVETE ZADATX KRITERIJ,PO KOTOROMU SLEDUET DOWERQTX RAZRE[ENIQM DLQ FAJLA,
S POMO]X@ PEREMENNOJ vc-mistrust-permissions.eE ZNA^ENIEM MOVET BYTX t (NIKOGDA
NE DOWERQTX BITAM RAZRE[ENIJ I WSEGDA PROWERQTX MASTER-FAJL),nil (WSEGDA DOWERQTX
RAZRE[ENIQM) ILI FUNKCIQ S ODNIM ARGUMENTOM,KOTORAQ PRINIMAET RE[ENIE.aRGUMENT
|\TO IMQ PODKATALOGA`RCS',`CVS'ILI`SCCS'.oTLI^NOE OT nil ZNA^ENIE IZ\TOJ FUNKCII
GOWORIT,^TO BITAM RAZRE[ENIJ DOWERQTX NELXZQ.eSLI WY OBNARUVILI,^TO RAZRE[ENIQ
DLQ RABO^EGO FAJLA WYSTANOWLENY O[IBO^NO,USTANOWITE vc-mistrust-permissions W t.
tOGDA VC WSEGDA BUDET PROWERQTX MASTER-FAJL DLQ OPREDELENIQ STATUSA FAJLA.
14.7.9.4 wYPOLNENIE KOMAND W VC
eSLI vc-suppress-confirm OTLI^NA OT nil,TO C-x C-q I C-x v i MOGUT SOHRANQTX TE-
KU]IJ BUFER BEZ ZAPROSA,I C-x v u TAKVE RABOTAET BEZ PODTWERVDENIQ.(|TA PEREMENNAQ
NE WLIQET NA C-x v c;DANNAQ OPERACIQ NASKOLXKO ZNA^ITELXNA,^TO DLQ NEE WSEGDA NUVNO
SPRA[IWATX PODTWERVDENIE.)
rEVIM VC DELAET BOLX[U@ ^ASTX RABOTY,ZAPUSKAQ KOMANDY OBOLO^KI DLQ RCS,CVS
I SCCS.eSLI vc-command-messages OTLI^NA OT nil,VC WYWODIT SOOB]ENIQ,POKAZYWA@-
]IE,KAKIE KOMANDY OBOLO^KI ZAPUSKA@TSQ,I DOPOLNITELXNYE SOOB]ENIQ,KOGDA KOMANDA
ZAWER[AETSQ.
wY MOVETE ZADATX DOPOLNITELXNYE KATALOGI DLQ POISKA PROGRAMM UPRAWLENIQ WERSI-
QMI,USTANAWLIWAQ PEREMENNU@ vc-path.|TI KATALOGI PROSMATRIWA@TSQ PERED OBY^NYM
PUTEM POISKA.nO OBY^NO PRAWILXNYE FAJLY NAHODQTSQ AWTOMATI^ESKI.
14.8 kATALOGI FAJLOW
fAJLOWAQ SISTEMA GRUPPIRUET FAJLY PO KATALOGAM.rASPE^ATKA KATALOGA |\TO SPISOK
WSEH FAJLOW W KATALOGE.Emacs PREDOSTAWLQET KOMANDY DLQ SOZDANIQ I UDALENIQ KATALOGOW
I DLQ WYDA^I RASPE^ATKI KATALOGOW W KRATKOM FORMATE (TOLXKO IMENA FAJLOW) I W PO-
DROBNOM FORMATE (WKL@^A@]EM RAZMERY,DATY I AWTOROW).eSTX TAKVE BROUZER KATALOGOW,
NAZYWAEMYJ Dired;SMOTRITE gLAWA 28 [Dired],S.291.
C-x C-d KAT-ILI-OBRAZEC
h RETi
wYWODIT KRATKU@ RASPE^ATKU KATALOGA (list-directory).
C-u C-x C-d KAT-ILI-OBRAZEC hRETi
wYWODIT PODROBNU@ RASPE^ATKU KATALOGA.
M-x make-directory h RETi IMQ-KAT hRETi
sOZDAET NOWYJ KATALOG S IMENEM IMQ-KAT.
M-x delete-directory h RETi IMQ-KAT hRETi
uDALQET KATALOG S IMENEM IMQ-KAT.oN DOLVEN BYTX PUST,INA^E WY POLU^ITE
O[IBKU.
132 rUKOWODSTWO PO GNU EmacskOMANDA DLQ WYWODA RASPE^ATKI KATALOGA |\TO C-x C-d (list-directory).oNA S^I-
TYWAET,ISPOLXZUQ MINIBUFER,IMQ FAJLA,KOTORYJ QWLQETSQ LIBO KATALOGOM,KOTORYJ
NUVNO RASPE^ATATX,LIBO [ABLONOM IMEN FAJLOW,KOTORYE NUVNO PERE^ISLITX.nAPRIMER,
C-x C-d/u2/emacs/etc
hRETi
PERE^ISLQET WSE FAJLY W KATALOGE`/u2/emacs/etc'.wOT PRIMER OPISANIQ OBRAZCA IMEN
FAJLOW:
C-x C-d/u2/emacs/src/*.c hRETi
oBY^NO C-x C-d PE^ATAET KRATKIJ PERE^ENX KATALOGA,SODERVA]IJ TOLXKO IMENA FAJ-
LOW.~ISLOWOJ ARGUMENT (NEZAWISIMO OT ZNA^ENIQ) WELIT POKAZYWATX PODROBNU@ RASPE^AT-
KU (KAK`ls -l').
tEKST RASPE^ATKI KATALOGA POLU^AETSQ OT ls,ZAPU]ENNOJ W POD^INENNOM PROCESSE.
dWE PEREMENNYE Emacs UPRAWLQ@T KL@^AMI,PEREDAWAEMYMI ls:list-directory-brief-
switches |\TO STROKA,DA@]AQ KL@^I DLQ ISPOLXZOWANIQ W KRATKIH RASPE^ATKAH ("-CF"
PO UMOL^ANI@),I list-directory-verbose-switches |KL@^I DLQ PODROBNOJ RASPE^ATKI
("-l"PO UMOL^ANI@).
14.9 sRAWNENIE FAJLOW
kOMANDA M-x diff SRAWNIWAET DWA FAJLA,POKAZYWAQ RAZLI^IQ W BUFERE Emacs S IMENEM
`*Diff*'.oNA ZAPUSKAET PROGRAMMU diff,ISPOLXZUQ KL@^I,POLU^AEMYE IZ PEREMENNOJ
diff-switches,^XE ZNA^ENIE DOLVNO BYTX STROKOJ.
bUFER`*Diff*'IMEET W KA^ESTWE OSNOWNOGO REVIM Compilation,PO\TOMU WY MOVETE
ISPOLXZOWATX C-x`,^TOBY POSLEDOWATELXNO OBRATITXSQ K IZMENIW[IMSQ MESTAM W DWUH
ISHODNYH FAJLAH.wY TAKVE MOVETE PEREJTI K KONKRETNOMU LOMT@ IZMENENIJ I NAVATX
h RETi ILI C-c C-c,ILI ]ELKNUTX NA NEM Mouse-2,^TOBY PEREJTI K SOOTWETSTWU@]EJ PO-
ZICII W ISHODNOM TEKSTE.wY TAKVE MOVETE ISPOLXZOWATX DRUGIE OSOBYE KOMANDY REVIMA
Compilation:hSPCi I hDELi DLQ PROKRUTKI I M-p I M-n DLQ PEREDWIVENIQ KURSORA.sM.rAZDEL 23.1 [kOMPILQCIQ],S.247.
kOMANDA M-x diff-backup SRAWNIWAET ZADANNYJ FAJL S EGO SAMOJ POSLEDNEJ REZERWNOJ
KOPIEJ.eSLI WY ZADALI IMQ REZERWNOGO FAJLA,diff-backup SRAWNIWAET EGO S ISHODNYM
FAJLOM.
kOMANDA M-x compare-windows SRAWNIWAET TEKST W TEKU]EM OKNE S TEKSTOM SLEDU@]EGO
OKNA.sRAWNENIE NA^INAETSQ OT TO^KI W KAVDOM OKNE,I OBE NA^ALXNYE POZICII WTALKI-
WA@TSQ W SPISOK POMETOK SOOTWETSTWU@]EGO BUFERA.zATEM TO^KA PEREME]AETSQ W KAVDOM
OKNE WPERED PO ODNOMU ZNAKU,POKA NE BUDET NAJDENO NESOWPADENIE.tOGDA\TA KOMANDA OSTA-
NAWLIWAETSQ.dLQ POLU^ENIQ BOLX[EJ INFORMACII OB OKNAH W Emacs SMOTRITEgLAWA 16
[oKNA],S.141.
s ^ISLOWYM ARGUMENTOM,compare-windows IGNORIRUET IZMENENIQ W PROPUSKAH.eSLI
PEREMENNAQ compare-ignore-case NE nil,ONA IGNORIRUET TAKVE I RAZLI^IQ W REGISTRE
BUKW.
sMOTRITE TAKVErAZDEL 22.14 [Emerge],S.231,OPISANIE UDOBNYH SREDSTW DLQ SLIQNIQ
DWUH POHOVIH FAJLOW.
14.10 rAZNOOBRAZNYE DEJSTWIQ NAD FAJLAMI
w Emacs ESTX KOMANDY DLQ PROIZWEDENIQ MNOGIH DRUGIH OPERACIJ NAD FAJLAMI.wSE
ONI DEJSTWU@T NA ODIN FAJL;ONI NE WOSPRINIMA@T IMENA FAJLOW S [ABLONAMI.
M-x view-file POZWOLQET WAM PROSMOTRETX ILI PRO^ITATX FAJL PO CELYM\KRANAM.oNA
S^ITYWAET IMQ FAJLA,ISPOLXZUQ MINIBUFER.pOSLE ZAGRUZKI FAJLA W BUFER Emacs,view-
file POKAZYWAET EGO NA^ALO.tEPERX WY MOVETE NAVATX
hSPCi,^TOBY PROKRUTITX WPERED NA
gLAWA 14:rABOTA S FAJLAMI 133CELOE OKNO,ILI hDELi DLQ PROKRUTKI NAZAD.pREDOSTAWLQ@TSQ I DRUGIE RAZLI^NYE KOMANDY
DLQ PEREME]ENIQ PO FAJLU,NO NE DLQ EGO IZMENENIQ;NABERITE WO WREMQ PROSMOTRA?,^TOBY
POLU^ITX IH PERE^ENX.|TO PRAKTI^ESKI TE VE OBY^NYE KOMANDY Emacs DLQ PEREDWIVENIQ
KURSORA.~TOBY WYJTI IZ PROSMOTRA,NABERITE q.kOMANDY PROSMOTRA OPREDELQ@TSQ
OSOBYM OSNOWNYM REVIMOM,NAZYWAEMOM REVIMOM View.
eSTX RODSTWENNAQ KOMANDA,M-x view-buffer,DLQ PROSMOTRA BUFERA,UVE SU]ESTWU@-
]EGO W Emacs.sM.rAZDEL 15.3 [bUFERY rAZNOE],S.136.
M-x insert-file WSTAWLQET KOPI@ SODERVIMOGO ZADANNOGO FAJLA W TEKU]IJ BUFER W
POZICII TO^KI,OSTAWLQQ TO^KU NEIZMENNOJ PERED WSTAWLENNYM I METKU POSLE NEGO.
M-x write-region |\TO OBRA]ENIE M-x insert-file;ONA KOPIRUET SODERVIMOE OBLASTI
W UKAZANNYJ FAJL.M-x append-to-file DOBAWLQET TEKST OBLASTI W KONEC ZADANNOGO FAJLA.
sM.rAZDEL 9.3 [nAKOPLENIE TEKSTA],S.73.
M-x delete-file UDALQET UKAZANNYJ FAJL,KAK KOMANDA OBOLO^KI rm.eSLI WY HOTITE
UDALITX MNOGO FAJLOW W ODNOM KATALOGE,MOVET OKAZATXSQ UDOBNEE WOSPOLXZOWATXSQ Dired
(SM.gLAWA 28 [Dired],S.291).
M-x rename-file S^ITYWAET,ISPOLXZUQ MINIBUFER,DWA IMENI FAJLA,STARYJ I NOWYJ,A
ZATEM PEREIMENOYWAET FAJL STARYJ W NOWYJ.eSLI FAJL S IMENEM NOWYJ UVE SU]ESTWUET,
WY DOLVNY PODTWERDITX PEREIMENOWANIE WWODOM yes,ILI PEREIMENOWANIE NE PROIZWODITSQ;
\TO SDELANO,POTOMU ^TO TAKOE PEREIMENOWANIE PRIWEDET K POTERE STAROGO ZNA^ENIQ IMENI
NOWYJ.eSLI STARYJ I NOWYJ NAHODQTSQ NA RAZNYH FAJLOWYH SISTEMAH,FAJL STARYJ
KOPIRUETSQ I UDALQETSQ.
pOHOVAQ KOMANDA M-x add-name-to-file ISPOLXZUETSQ DLQ DOBAWLENIQ E]E ODNOGO IMENI
SU]ESTWU@]EMU FAJLU BEZ UDALENIQ STAROGO IMENI.nOWOE IMQ OBQZANO PRINADLEVQTX TOJ
VE FAJLOWOJ SISTEME,GDE NAHODITSQ SAM FAJL.
M-x copy-file S^ITYWAET FAJL STARYJ I ZAPISYWAET NOWYJ FAJL S IMENEM NOWYJ S TEM
VE SODERVIMYM.eSLI FAJL S IMENEM NOWYJ UVE SU]ESTWUET,TREBUETSQ PODTWERVDENIE,
POTOMU ^TO KOPIROWANIE ZATIRAET STAROE SODERVIMOE FAJLA NOWYJ.
M-x make-symbolic-link S^ITYWAET DWA IMENI FAJLA,CELX I IMQ-SSYLKI,A ZATEM SOZ-
DAET SIMWOLXNU@ SSYLKU S IMENEM IMQ-SSYLKI,UKAZYWA@]U@ NA CELX.|TO PROQWITSQ
W TOM,^TO BUDU]IE POPYTKI OTKRYTX FAJL IMQ-SSYLKI POLU^AT TOT FAJL,KOTORYJ NA-
ZYWAETSQ CELX WO WREMQ OTKRYTIQ,ILI POLU^AT O[IBKU,ESLI IMQ CELX W\TO WREMQ NE
ISPOLXZUETSQ.|TA KOMANDA NE RASKRYWAET ARGUMENT CELX,PO\TOMU ONA POZWOLQET WAM
UKAZATX OTNOSITELXNOE IMQ W KA^ESTWE FAJLA NAZNA^ENIQ SSYLKI.
eSLI IMQ-SSYLKI ZANQTO,TREBUETSQ PODTWERVDENIE.oBRATITE WNIMANIE,NE WSE SISTEMY
PODDERVIWA@T SIMWOLXNYE SSYLKI.
14.11 dOSTUP K SVATYM FAJLAM
Emacs POSTAWLQETSQ S BIBLIOTEKOJ,KOTORAQ AWTOMATI^ESKI RASPAKOWYWAET SVATYE FAJ-
LY,KOGDA WY K NIM OBRA]AETESX,I AWTOMATI^ESKI SVIMAET IH SNOWA,ESLI WY IH IZ-
MENILI I SOHRANQETE.~TOBY ZADEJSTWOWATX\TU WOZMOVNOSTX,NABERITE KOMANDU M-x
auto-compression-mode.
kOGDA WKL@^ENO AWTOMATI^ESKOE SVATIE (^TO PODRAZUMEWAET I AWTOMATI^ESKU@ RASPA-
KOWKU),Emacs RASPOZNAET SVATYE FAJLY PO IMENAM.iMENA FAJLOW,ZAWER[A@]IESQ NA
`.gz',UKAZYWA@T,^TO\TOT FAJL SVAT PROGRAMMOJ gzip.dRUGIE OKON^ANIQ OBOZNA^A@T
DRUGIE METODY SVATIQ.
aWTOMATI^ESKAQ RASPAKOWKA I SVATIE PRIMENQ@TSQ KO WSEM OPERACIQM,W KOTORYH
Emacs ISPOLXZUET SODERVIMOE FAJLOW.|TO WKL@^AET OBRA]ENIE,SOHRANENIE,WSTAWKU
SODERVIMOGO W BUFER,ZAGRUZKU I BAJT-KOMPILQCI@.
134 rUKOWODSTWO PO GNU Emacs14.12 uDALENNYE FAJLY
wY MOVETE SOSLATXSQ NA FAJLY NA DRUGIH MA[INAH,ISPOLXZUQ OSOBYJ SINTAKSIS IMEN:
/MA[INA:IMQ-FAJLA
/POLXZOWATELX@MA[INA:IMQ-FAJLA
kOGDA WY DELAETE TAK,Emacs ISPOLXZUET DLQ ^TENIQ I ZAPISI FAJLOW NA UKAZANNOJ MA[INE
PROGRAMMU FTP.oN ZAHODIT ^EREZ FTP,ISPOLXZUQ WA[E POLXZOWATELXSKOE IMQ ILI IMQ
POLXZOWATELX.oN MOVET SPRA[IWATX U WAS PAROLX WREMQ OT WREMENI;\TO ISPOLXZUETSQ DLQ
ZAHODA NA MA[INU.
oBY^NO,ESLI WY NE ZADALI IMQ POLXZOWATELQ W IMENI UDALENNOGO FAJLA,\TO OZNA^AET,
^TO NUVNO ISPOLXZOWATX WA[E SOBSTWENNOE POLXZOWATELXSKOE IMQ.nO ESLI WY USTANOWITE
PEREMENNU@ ange-ftp-default-user RAWNOJ KAKOJ-TO STROKE,TO BUDET ISPOLXZOWATXSQ\TA
STROKA.(pAKET Emacs,KOTORYJ REALIZUET DOSTUP K FAJLAM PO FTP,NAZYWAETSQ ange-ftp.)
wY MOVETE POLNOSTX@ WYKL@^ITX OBRABOTKU IMEN FTP-FAJLOW,USTANOWIW PEREMENNU@
file-name-handler-alist W ZNA^ENIE nil.
14.13 bUKWALXNYE IMENA FAJLOW
wY MOVETE OTMENITX OSOBYJ SMYSL ABSOL@TNOGO IMENI FAJLA,^TOBY BLOKIROWATX DEJ-
STWIE SPECIALXNYH SIMWOLOW I SINTAKSISA.|TO MOVNO SDELATX,DOBAWIW`/:'W NA^ALE.
nAPRIMER,WY MOVETE OTMENITX OSOBYJ SMYSL IMENI LOKALXNOGO FAJLA,KOTORYJ WY-
GLQDIT KAK UDALENNYJ,^TOBY PREDOTWRATITX EGO TRAKTOWKU KAK IMENI UDALENNOGO FAJLA.
tAKIM OBRAZOM,ESLI U WAS ESTX KATALOG S IMENEM`/foo:'I W NEM FAJL S IMENEM`bar',WY
MOVETE SOSLATXSQ W Emacs NA\TOT FAJL KAK NA`/:/foo:/bar'.
`/:'TAKVE MOVET PREDOTWRATITX PONIMANIE`~'KAK SPECIALXNOGO SIMWOLA,OBOZNA^A-
@]EGO NA^ALXNYJ KATALOG\TOGO POLXZOWATELQ.nAPRIMER,`/:/tmp/~hack'SSYLAETSQ NA
FAJL S IMENEM`~hack'W KATALOGE`/tmp'.
aNALOGI^NO,ISPOLXZOWANIE`/:'|\TO ODIN IZ SPOSOBOW WWESTI W MINIBUFERE IMQ FAJLA,
SODERVA]EE`$'.oDNAKO,`/:'OBQZANA BYTX W NA^ALE\TOGO BUFERA,^TOBY BLOKIROWATX
\FFEKT`$'.
s POMO]X@`/:'WY TAKVE MOVETE PODAWITX\FFEKT SIMWOLOW PODSTANOWKI PRI OBRA]E-
NII K FAJLAM.nAPRIMER,`/:/tmp/foo*bar'OBRA]AETSQ K FAJLU`/tmp/foo*bar'.oDNAKO,
^A]E WSEGO WY PROSTO MOVETE WWESTI SIMWOLY PODSTANOWKI KAK ESTX.nAPRIMER,ESLI EDIN-
STWENNOE IMQ FAJLA W`/tmp',KOTOROE NA^INAETSQ NA`foo'I ZAWER[AETSQ NA`bar'|\TO
`foo*bar',TO UKAZAW`/tmp/foo*bar'WY OBRATITESX TOLXKO K`/tmp/foo*bar'.
gLAWA 15:iSPOLXZOWANIE MNOVESTWA BUFEROW 13515 iSPOLXZOWANIE MNOVESTWA BUFEROW
tEKST,KOTORYJ WY REDAKTIRUETE W Emacs,NAHODITSQ W OB_EKTE,NAZYWAEMOM BUFEROM.
kAVDYJ RAZ,KOGDA WY OBRA]AETESX K FAJLU,DLQ HRANENIQ EGO TEKSTA SOZDAETSQ BUFER.
kAVDYJ RAZ,KOGDA WY ZAPUSKAETE Dired,SOZDAETSQ BUFER,SODERVA]IJ SPISOK KATALOGA.
eSLI WY POSYLAETE SOOB]ENIE S POMO]X@ C-x m,TO DLQ TEKSTA\TOGO SOOB]ENIQ ISPOLX-
ZUETSQ BUFER S IMENEM`*mail*'.kOGDA WY ZAPRA[IWAETE DOKUMENTACI@ KOMANDY,ONA
POQWITSQ W BUFERE S IMENEM`*Help*'.
w L@BOJ MOMENT ODIN I TOLXKO ODIN BUFER QWLQETSQ WYBRANNYM.oN TAKVE NAZYWAETSQ
TEKU]IM BUFEROM.~ASTO MY GOWORIM,^TO KOMANDA DEJSTWUET W\BUFERE",KAK ESLI BY
ON BYL TOLXKO ODIN;NO NA SAMOM DELE\TO OZNA^AET,^TO KOMANDA DEJSTWUET W WYBRANNOM
BUFERE (BOLX[INSTWO KOMAND TAK I DELA@T).
kOGDA Emacs SOZDAET MNOVESTWO OKON,KAVDOE OKNO IMEET SWOJ WYBRANNYJ BUFER,NO
W L@BOJ MOMENT WREMENI TOLXKO ODNO IZ OKON QWLQETSQ WYBRANNYM,I EGO BUFER |\TO
WYBRANNYJ BUFER.sTROKA REVIMA KAVDOGO OKNA POKAZYWAET IMQ BUFERA,KOTORYJ W NEM
OTOBRAVEN (SM.gLAWA 16 [oKNA],S.141).
u KAVDOGO BUFERA ESTX IMQ,KOTOROE MOVET BYTX PROIZWOLXNOJ DLINY,I WY MOVETE WY-
BRATX L@BOJ BUFER PO IMENI.bOLX[INSTWO BUFEROW SOZDA@TSQ PRI OBRA]ENII K FAJLAM,
I IH IMENA PROIZWODQTSQ IZ IMENI FAJLA.nO WY MOVETE TAKVE SOZDATX PUSTOJ BUFER S L@-
BYM IMENEM,KAKIM ZAHOTITE.tOLXKO ^TO ZAPU]ENNYJ Emacs NESET ODIN BUFER S IMENEM
`*scratch*',KOTORYJ MOVET BYTX ISPOLXZOWAN DLQ WY^ISLENIQ WYRAVENIJ lISPA W Emacs.
w IMENAH BUFEROW IMEET ZNA^ENIE RAZLI^IE MEVDU WERHNIM I NIVNIM REGISTRAMI.
kAVDYJ BUFER ZAPISYWAET OTDELXNO,K KAKOMU FAJLU ON OBRA]AETSQ,IZMENEN LI ON,
I KAKIE OSNOWNOJ I WTOROSTEPENNYE REVIMY W NEM DEJSTWU@T (SM.gLAWA 19 [oSNOWNYE
REVIMY],S.175 ).l@BAQ PEREMENNAQ Emacs MOVET BYTX SDELANA LOKALXNOJ DLQ KONKRETNOGO
BUFERA;IMEETSQ W WIDU,^TO EE ZNA^ENIE W\TOM BUFERE MOVET OTLI^ATXSQ OT EE ZNA^ENIQ W
DRUGIH BUFERAH.sM.rAZDEL 31.2.4 [lOKALXNYE PEREMENNYE],S.350.
15.1 sOZDANIE I WYBOR BUFEROW
C-x b BUFER h RETi
wYBRATX ILI SOZDATX BUFER S IMENEM BUFER (switch-to-buffer).
C-x 4 b BUFER h RETi
aNALOGI^NO,NO WYBIRAET BUFER W DRUGOM OKNE (switch-to-buffer-other-
window).
C-x 5 b BUFER h RETi
aNALOGI^NO,NO WYBIRAET BUFER W DRUGOM FREJME (switch-to-buffer-other-
frame).
~TOBY WYBRATX BUFER S IMENEM IMQ-BUFERA,NABERITE C-x b IMQ-BUFERA hRETi.|TO
ZAPUSTIT KOMANDU switch-to-buffer S ARGUMENTOM IMQ-BUFERA.wY MOVETE PRIMENITX
ZAWER[ENIE SOKRA]ENNOGO IMENI VELAEMOGO BUFERA (SM.rAZDEL 5.3 [zAWER[ENIE],S.47).
pUSTOJ ARGUMENT DLQ C-x b ZADAET POSLEDNIJ WYBRANNYJ BUFER,KOTORYJ NE OTOBRAVEN NI
W ODNOM OKNE.
bOLX[INSTWO BUFEROW SOZDA@TSQ PRI OBRA]ENII K FAJLAM ILI VE KOMANDAMI Emacs,
KOTORYE HOTQT POKAZATX NEKOTORYJ TEKST,NO WY TAKVE MOVETE QWNO SOZDATX BUFER,NABRAW
C-x b IMQ-BUFERA
h RETi.|TA KOMANDA SOZDAET NOWYJ,PUSTOJ BUFER,KOTORYJ NE OBRA]ETSQ
NI K KAKOMU FAJLU,I WYBERET EGO DLQ REDAKTIROWANIQ.tAKIE BUFERY SOZDA@TSQ DLQ
ZAMETOK.eSLI WY POPYTAETESX SOHRANITX\TOT BUFER,TO U WAS SPROSQT IMQ FAJLA DLQ
ZAPISI.oSNOWNOJ REVIM W NOWOM BUFERE OPREDELQETSQ ZNA^ENIEM PEREMENNOJ default-
major-mode (SM.gLAWA 19 [oSNOWNYE REVIMY],S.175).
136 rUKOWODSTWO PO GNU EmacsoTMETIM,^TO C-x C-f I L@BAQ DRUGAQ KOMANDA DLQ OBRA]ENIQ K FAJLU TAKVE MOGUT
ISPOLXZOWATXSQ DLQ PEREKL@^ENIQ K SU]ESTWU@]EMU BUFERU,OBRA]A@]EMUSQ K FAJLU.
sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
Emacs ISPOLXZUET BUFERY S IMENAMI,NA^INA@]IMISQ S PROBELA,DLQ WNUTRENNIH CELEJ.
oT^ASTI ON OBRA]AETSQ S BUFERAMI S TAKIMI IMENAMI OSOBENNYM OBRAZOM | NAPRIMER,
PO UMOL^ANI@ W NIH NE ZAPISYWAETSQ INFORMACIQ DLQ OTMENY IZMENENIJ.wAM LU^[E
IZBEGATX ISPOLXZOWANIQ TAKIH IMEN DLQ BUFEROW.
15.2 pERE^ISLENIE SU]ESTWU@]IH BUFEROW
C-x C-b pERE^ISLQET SU]ESTWU@]IE BUFERY (list-buffers).
~TOBY NAPE^ATATX SPISOK WSEH SU]ESTWU@]IH BUFEROW,NABERITE C-x C-b.kAVDAQ STRO-
KA W SPISKE POKAZYWAET IMQ ODNOGO BUFERA,EGO OSNOWNOJ REVIM I FAJL,K KOTOROMU ON OB-
RA]AETSQ.bUFERY PERE^ISLQ@TSQ W TOM PORQDKE,W KOTOROM ONI BYLI TEKU]IMI;BUFERY,
KOTORYE BYLI TEKU]IMI NEDAWNO,IDUT PERWYMI.
zNAK`*'W NA^ALE STROKI UKAZYWAET,^TO BUFER\MODIFICIROWAN".eSLI MODIFICIROWANY
NESKOLXKO BUFEROW,TO MOVET BYTX PORA ZAPISATX NEKOTORYE IZ NIH PRI POMO]I C-x s (SM.rAZDEL 14.3 [sOHRANENIE],S.108).zNAKOM`%'OBOZNA^A@TSQ BUFERY,DOSTUPNYE TOLXKO DLQ
^TENIQ.zNAK`.'OTME^AET WYBRANNYJ BUFER.wOT PRIMER PERE^NQ BUFEROW:
MR Buffer Size Mode File
- ---- --- --- ---
.* emacs.tex 383402 Texinfo/u2/emacs/man/emacs.tex
*Help* 1287 Fundamental
files.el 23076 Emacs-Lisp/u2/emacs/lisp/files.el
% RMAIL 64042 RMAIL/u/rms/RMAIL
*% man 747 Dired/u2/emacs/man/
net.emacs 343885 Fundamental/u/rms/net.emacs
fileio.c 27691 C/u2/emacs/src/fileio.c
NEWS 67340 Text/u2/emacs/etc/NEWS
*scratch* 0 Lisp Interaction
oTMETIM,^TO BUFER`*Help*'SOZDAETSQ PRI ZAPROSE SPRAWKI,I\TO NE QWLQETSQ OBRA]ENIEM
K KAKOMU-LIBO FAJLU.bUFER`man'BYL SOZDAN Dired DLQ KATALOGA`/u2/emacs/man/'.
15.3 rAZNOOBRAZNYE OPERACII NAD BUFEROM
C-x C-q pEREKL@^ITX DOSTUP NA ZAPISX W BUFER (vc-toggle-read-only).
M-x rename-buffer
h RETi IMQ hRETi
iZMENITX IMQ TEKU]EGO BUFERA.
M-x rename-uniquely
pEREIMENOWATX BUFER DOBAWLENIEM`<^ISLA>'W KONEC IMENI.
M-x view-buffer
h RETi BUFER hRETi
pROSMOTRETX BUFER.
bUFER MOVET BYTX DOSTUPEN TOLXKO DLQ ^TENIQ,^TO OZNA^AET,^TO KOMANDY DLQ IZMENE-
NIQ EGO SODERVIMOGO NE RAZRE[ENY.sTROKA REVIMA UKAZYWAET NA TO,^TO BUFER DOSTUPEN
TOLXKO DLQ ^TENIQ,ZNAKAMI`%%'ILI`%*'OKOLO LEWOGO KRAQ.bUFERY TOLXKO DLQ ^TE-
NIQ OBY^NO SOZDA@TSQ PODSISTEMAMI WRODE Dired I Rmail,KOTORYE IME@T SPECIALXNYE
KOMANDY DLQ DEJSTWIJ NAD TEKSTOM;BUFER TOLXKO DLQ ^TENIQ SOZDAETSQ TAKVE,ESLI WY
OBRA]AETESX K FAJLU,DLQ KOTOROGO U WAS NET DOSTUPA NA ZAPISX.
gLAWA 15:iSPOLXZOWANIE MNOVESTWA BUFEROW 137eSLI WY HOTITE SDELATX IZMENENIQ W BUFERE,PREDNAZNA^ENNOM TOLXKO DLQ ^TENIQ,IS-
POLXZUJTE KOMANDU C-x C-q (vc-toggle-read-only).oNA DELAET BUFER,DOSTUPNYJ TOLXKO
DLQ ^TENIQ,DOSTUPNYM DLQ ZAPISI,A BUFER,DOSTUPNYJ DLQ ZAPISI | DOSTUPNYM TOLX-
KO DLQ ^TENIQ.w BOLX[INSTWE SLU^AEW\TA KOMANDA RABOTAET,USTANAWLIWAQ PEREMENNU@
buffer-read-only,KOTORAQ IMEET LOKALXNOE ZNA^ENIE W KAVDOM BUFERE I DELAET BUFER ZA-
KRYTYM DLQ ZAPISI,ESLI EE ZNA^ENIE NE nil.eSLI\TOT FAJL SOPROWOVDAETSQ S KONTROLEM
WERSIJ,TO C-x C-q RABOTAET ^EREZ SISTEMU UPRAWLENIQ WERSIQMI I IZMENQET SOSTOQNIQ DO-
STUPA NA ZAPISX KAK DLQ FAJLA,TAK I DLQ BUFERA.sM.rAZDEL 14.7 [uPRAWLENIE WERSIQMI],
S.116.
M-x rename-buffer IZMENQET IMQ TEKU]EGO BUFERA.nOWOE IMQ ZADAETSQ KAK ARGUMENT
MINIBUFERA.zNA^ENIQ PO UMOL^ANI@ NET.eSLI WY NAPI[ETE IMQ,KOTOROE ISPOLXZUETSQ
DLQ KAKOGO-TO DRUGOGO BUFERA,TO PROISHODIT O[IBKA,I PEREIMENOWANIE NE DELAETSQ.
M-x rename-uniquely PEREIMENOWYWAET TEKU]IJ BUFER W POHOVEE IMQ S DOBAWLENNYM
^ISLOWYM OKON^ANIEM I DELAET\TO IMQ ODNOWREMENNO UNIKALXNYM I OTLI^NYM OT DRUGIH.
|TOJ KOMANDE NE NUVEN ARGUMENT.oNA POLEZNA DLQ SOZDANIQ NESKOLXKIH BUFEROW S OBOLO^-
KOJ:ESLI WY PEREIMENUETE BUFER`*Shell*'I SNOWA SDELAETE M-x shell,TO SOZDASTSQ NOWYJ
BUFER OBOLO^KI S IMENEM`*Shell*';TEM WREMENEM STARYJ BUFER OBOLO^KI PRODOLVAET
SU]ESTWOWATX POD SWOIM NOWYM IMENEM.|TOT METOD TAKVE POLEZEN DLQ BUFEROW PO^TO-
WYH SOOB]ENIJ,BUFEROW KOMPILQCII I BOLX[INSTWA PROGRAMM W Emacs,KOTORYE SOZDA@T
SPECIALXNYE BUFERY S KONKRETNYMI IMENAMI.
M-x view-buffer O^ENX POHOVA NA M-x view-file (SM.rAZDEL 14.10 [fAJLY rAZNOE],
S.132 ),ZA ISKL@^ENIEM TOGO,^TO ONA POKAZYWAET UVE SU]ESTWU@]IJ BUFER Emacs.rEVIM
View PREDUSMATRIWAET KOMANDY DLQ UDOBNOJ PROKRUTKI BUFERA,NO NE DLQ EGO IZMENENIQ.
kOGDA WY WYHODITE IZ REVIMA View S POMO]X@ q,WY PEREKL@^AETESX NAZAD K TOMU BUFERU
(I POZICII),KOTORYJ PREVDE OTOBRAVALSQ W\TOM OKNE.iLI WY MOVETE WYJTI IZ REVIMA
View S POMO]X@ e,W REZULXTATE POSLE PRO^TENIQ SOHRANQTSQ BUFER I ZNA^ENIE TO^KI.
kOMANDY M-x append-to-buffer and M-x insert-buffer MOVNO ISPOLXZOWATX DLQ KOPI-
ROWANIQ TEKSTA IZ ODNOGO BUFERA W DRUGOJ.sM.rAZDEL 9.3 [nAKOPLENIE TEKSTA],S.73.
15.4 uNI^TOVENIE BUFEROW
eSLI WY PRODOLVAETE RABOTU W Emacs DOWOLXNO DOLGO,WY MOVETE NAKOPITX BOLX[OE KO-
LI^ESTWO BUFEROW.tOGDA WY MOVETE POS^ITATX UDOBNYM UNI^TOVITX TE IZ NIH,W KOTORYH
WY BOLX[E NE NUVDAETESX.w BOLX[INSTWE OPERACIONNYH SISTEM UNI^TOVENIE BUFERA OSWO-
BOVDAET ZANIMAEMOE IM PROSTRANSTWO,TAK ^TO EGO SMOGUT ISPOLXZOWATX DRUGIE PROCESSY.
wOT NESKOLXKO KOMAND DLQ UNI^TOVENIQ BUFEROW:
C-x k IMQ-BUFERA h RETi
uNI^TOVAET BUFER IMQ-BUFERA (kill-buffer).
M-x kill-some-buffers
pREDLAGAET UNI^TOVITX KAVDYJ BUFER ODIN ZA DRUGIM.
C-x k (kill-buffer) UNI^TOVAET ODIN BUFER,^XE IMQ ZADANO W MINIBUFERE.pO UMOL-
^ANI@,ESLI WY NABERETE W MINIBUFERE PROSTO
hRETi,UNI^TOVITSQ TEKU]IJ BUFER.eSLI
UNI^TOVAETSQ TEKU]IJ BUFER,TO WYBRANNYM STANOWITSQ DRUGOJ BUFER | TOT,KOTORYJ
WYBRALI NEDAWNO,NO SEJ^AS ON NE WIDEN NI W ODNOM OKNE.eSLI WY POPROSILI UNI^TOVITX
BUFER,KOTORYJ OBRA]AETSQ K FAJLU I BYL MODIFICIROWAN (SODERVIT NESOHRANENNYE IZME-
NENIQ),TOGDA WAS SPROSQT O PODTWERVDENII S yes PERED TEM,KAK BUFER BUDET UNI^TOVEN.
kOMANDA M-x kill-some-buffers SPRA[IWAET O KAVDOM BUFERE,ODIN ZA DRUGIM.oTWET
y OZNA^AET UNI^TOVITX BUFER.uNI^TOVENIE TEKU]EGO BUFERA ILI BUFERA,SODERVA]EGO
NEZAPISANNYE IZMENENIQ,WYBIRAET NOWYJ BUFER ILI TREBUET TAKOGO VE PODTWERVDENIQ,
KAK I kill-buffer.
138 rUKOWODSTWO PO GNU EmacsmEN@ BUFEROW (SM.rAZDEL 15.5 [nESKOLXKO BUFEROW],S.138) TAKVE PREDOSTAWLQET UDOB-
NYJ SPOSOB UNI^TOVENIQ RAZLI^NYH BUFEROW.
eSLI WY HOTITE DELATX ^TO-TO OSOBENNOE KAVDYJ RAZ,KOGDA UNI^TOVAETSQ BUFER,WY
MOVETE DOBAWITX SWOI FUNKCII W LOWU[KU kill-buffer-hook (SM.rAZDEL 31.2.3 [lOWU[KI],
S.349 ).
eSLI WY PRODOLVAETE ODIN SEANS Emacs W TE^ENII MNOGIH DNEJ,KAK DELA@T MNOGIE,ON
MOVET NAPOLNITXSQ BUFERAMI,KOTORYE WY ISPOLXZOWALI NESKOLXKO DNEJ NAZAD.kOMANDA
M-x clean-buffer-list |\TO UDOBNYJ SPOSOB O^ISTITX IH;ONA UNI^TOVAET WSE NEIZMENEN-
NYE BUFERY,KOTORYE WY NE ISPOLXZOWALI DOLGOE WREMQ.oBY^NYE BUFERY UNI^TOVA@TSQ,
ESLI ONI NE OTOBRAVALISX W TE^ENII TREH DNEJ;ODNAKO,WY MOVETE UKAZATX OPREDELEN-
NYE BUFERY,KOTORYE NIKOGDA NE DOLVNY UNI^TOVATXSQ AWTOMATI^ESKI,I DRUGIE,KOTORYE
NUVNO UNI^TOVATX,ESLI IH NE ISPOLXZOWALI HOTQ BY ^AS.
wY TAKVE MOVETE SDELATX TAK,^TOBY\TI BUFERY O^I]ALISX DLQ WAS SAMI EVEDNEWNO
W POLNO^X,WKL@^IW REVIM Midnight.rEVIM Midnight RABOTAET KAVDYJ DENX W POLNO^X;W
\TO WREMQ ON ZAPUSKAET clean-buffer-list ILI DRUGIE FUNKCII,KOTORYE WY POMESTITE W
OBY^NU@ LOWU[KU midnight-hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).
~TOBY WKL@^ITX REVIM Midnight,ISPOLXZUJTE BUFER Customization DLQ USTANOWKI PE-
REMENNOJ midnight-mode W ZNA^ENIE t.sM.rAZDEL 31.2.2 [pROSTAQ NASTROJKA],S.344.
15.5 dEJSTWIQ NAD NESKOLXKIMI BUFERAMI
mEN@ BUFEROW POHOVE NA\Dired DLQ BUFEROW".oNO POZWOLQET WAM ZAPRA[IWATX DEJ-
STWIQ DLQ RAZLI^NYH BUFEROW Emacs PRI POMO]I REDAKTIROWANIQ BUFERA,SODERVA]EGO IH
SPISOK.wY MOVETE SOHRANQTX BUFERY,UNI^TOVATX IH (ZDESX\TO NAZYWAETSQ UDALENIEM
DLQ SOGLASOWANIQ S Dired) ILI POKAZYWATX IH.
M-x buffer-menu
nA^ATX REDAKTIROWANIE BUFERA,SODERVA]EGO SPISOK WSEH BUFEROW Emacs.
kOMANDA buffer-menu ZAPISYWAET SPISOK WSEH BUFEROW Emacs W BUFER S IMENEM`*Buffer
List*'I WYBIRAET\TOT BUFER W REVIME BuпЂ‹er Menu.|TOT BUFER PREDNAZNA^EN TOLXKO DLQ
^TENIQ I MOVET BYTX IZMENEN TOLXKO PRI POMO]I SPECIALXNYH KOMAND,OPISANNYH W\TOM
RAZDELE.w BUFERE`*Buffer List*'MOGUT ISPOLXZOWATXSQ OBY^NYE KOMANDY Emacs DLQ
DWIVENIQ KURSORA.sLEDU@]IE SPECIALXNYE KOMANDY PRIMENQ@TSQ K BUFERU,OPISANNOMU
W TEKU]EJ STROKE:
d zAPROSITX UDALENIE (UNI^TOVENIE) BUFERA,I ZATEM SDWINUTXSQ WNIZ.zAPROS
POKAZYWAETSQ KAK`D'NA STROKE PERED IMENEM BUFERA.zATREBOWANNYE UDALENIQ
PROISHODQT,KOGDA WY PE^ATAETE KOMANDU x.
C-d kAK d,NO SDWIGAET WWERH,A NE WNIZ.
s zAPROSITX SOHRANENIE BUFERA.zAPROS POKAZYWAETSQ KAK`S'NA STROKE.tRE-
BUEMYE SOHRANENIQ PROISHODQT,KOGDA ISPOLXZUETSQ KOMANDA x.wY MOVETE
ZAPROSITX I ZAPISX,I UDALENIE DLQ ODNOGO I TOGO VE BUFERA.
x wYPOLNITX RANEE ZAPRO[ENNYE UDALENIQ I SOHRANENIQ.
u uNI^TOVITX L@BOJ ZAPROS,SDELANNYJ DLQ TEKU]EJ STROKI,I SDWINUTX KURSOR
WNIZ.
h DELi sDWINUTX KURSOR K PREDYDU]EJ STROKE I UNI^TOVITX L@BOJ ZAPROS,SDELANNYJ
DLQ\TOJ STROKI.
kOMANDY d,C-d,s I u DLQ DOBAWLENIQ ILI SBROSA FLAGOW TAKVE PEREME]A@T WNIZ (ILI
WWERH) NA ODNU STROKU.oNI PRINIMA@T ^ISLOWOJ ARGUMENT W KA^ESTWE S^ET^IKA POWTOROW.
|TI KOMANDY DEJSTWU@T SRAZU NA BUFER,PERE^ISLENNYJ W TEKU]EJ STROKE:
gLAWA 15:iSPOLXZOWANIE MNOVESTWA BUFEROW 139~ pOMETITX BUFER KAK\NEIZMENENNYJ".kOMANDA ~ DELAET\TO NEMEDLENNO POSLE
TOGO,KAK WY EE WWELI.
% pEREKL@^AET FLAG DOSTUPNOSTI NA ZAPISX DLQ BUFERA.kOMANDA % DEJSTWUET
SRAZU POSLE WWODA.
t oBRATITXSQ K BUFERU KAK K TABLICE TEGOW.sM.rAZDEL 22.13.3 [wYBOR TABLICY
TEGOW],S.228.
eSTX TAKVE KOMANDY DLQ WYBORA DRUGOGO BUFERA ILI NESKOLXKIH BUFEROW:
q wYJTI IZ MEN@ BUFEROW |SRAZU OTOBRAZITX POSLEDNIJ BUFER,BYW[IJ PREVDE
WIDIMYM NA EGO MESTE.
h RETi
f nEMEDLENNO WYBRATX BUFER NA\TOJ STROKE NA MESTO BUFERA`*Buffer List*'.
o nEMEDLENNO WYBRATX BUFER NA\TOJ STROKE W DRUGOM OKNE,KAK ESLI BY\TO BYLO
SDELANO PRI POMO]I C-x 4 b,OSTAWLQQ`*Buffer List*'WIDIMYM.
C-o nEMEDLENNO OTOBRAZITX BUFER NA\TOJ STROKE W DRUGOM OKNE,NO NE WYBIRATX
\TO OKNO.
1 nEMEDLENNO WYBRATX BUFER NA\TOJ STROKE W POLNO\KRANNOM OKNE.
2 nEMEDLENNO SOZDATX DWA OKNA,ODNO S BUFEROM NA\TOJ STROKE,A WTOROE S PRE-
DYDU]IM WYBRANNYM BUFEROM (POMIMO BUFERA`*Buffer List*').
b sPRQTATX BUFER,PERE^ISLENNYJ W TEKU]EJ STROKE.
m pOMETITX\TOT BUFER DLQ POKAZA W DRUGOM OKNE,ESLI WY WYJDITE S POMO]X@
KOMANDY q.tAKOJ ZAPROS POKAZYWAETSQ KAK`>'W NA^ALE STROKI.(oDIN I TOT
VE BUFER NE MOVET IMETX I ZAPROS NA POKAZ,I ZAPROS NA UDALENIE.)
v nEMEDLENNO WYBRATX BUFER NA\TOJ STROKE,A TAKVE POKAZATX W DRUGIH OKNAH
L@BYE BUFERY,PREVDE POME^ENNYE S POMO]X@ KOMANDY m.eSLI TAKIH BUFEROW
NET,TO\TA KOMANDA\KWIWALENTNA 1.
wSE,^TO buffer-menu DELAET NEPOSREDSTWENNO,|\TO SOZDAET I WYBIRAET PODHODQ]IJ
BUFER I WKL@^AET REVIM BuпЂ‹er Menu.wSE OSTALXNOE IZ OPISANNOGO WY[E OSU]ESTWLQETSQ
PRI POMO]I SPECIALXNYH KOMAND,PREDOSTAWLQEMYH W REVIME BuпЂ‹er Menu.oDNIM IZ
SLEDSTWIJ\TOGO QWLQETSQ TO,^TO WY MOVETE PEREKL@^ITXSQ IZ BUFERA`*Buffer List*'W
DRUGOJ BUFER Emacs I REDAKTIROWATX TAM.wY MOVETE WYBRATX ZANOWO BUFER`*Buffer
List*'POZVE,^TOBY ISPOLNITX UVE ZAPRO[ENNYE DEJSTWIQ,ILI WY MOVETE UNI^TOVITX
EGO ILI BOLX[E NE OBRA]ATX NA NEGO WNIMANIQ.
sU]ESTWUET TOLXKO ODNO RAZLI^IE MEVDU buffer-menu I list-buffers |\TO TO,^TO
buffer-menu WYBIRAET BUFER`*Buffer List*'W TEKU]EM OKNE,A list-buffers OTOBRAVAET
EGO W DRUGOM OKNE.eSLI WY ZAPUSKAETE list-buffers (\TO PROISHODIT PRI NABORE C-x C-b)
I WYBIRAETE SPISOK BUFEROW WRU^NU@,TO WY MOVETE ISPOLXZOWATX WSE OPISANNYE ZDESX
KOMANDY.
bUFER`*Buffer List*'NE OBNOWLQETSQ AWTOMATI^ESKI,KOGDA SOZDA@TSQ ILI UNI^TO-
VA@TSQ BUFERY;EGO SODERVIMOE |\TO PROSTO TEKST.eSLI WY SOZDAWALI,UDALQLI ILI
PEREIMENOWYWALI BUFERY,WY MOVETE OBNOWITX`*Buffer List*',^TOBY ON POKAZYWAL TO,
^TO WY SDELALI,NAPE^ATAW g (revert-buffer) ILI POWTORIW KOMANDU buffer-menu.
15.6 kOSWENNYE BUFERY
kOSWENNYJ BUFER RAZDELQET TEKST S KAKIM-TO DRUGIM BUFEROM,NAZYWAEMYM BAZOWYM
BUFEROM KOSWENNOGO BUFERA.|TO SWOEGO RODA ANALOG SIMWOLXNYH SSYLOK NA FAJLY,NO DLQ
BUFEROW.
140 rUKOWODSTWO PO GNU EmacsM-x make-indirect-buffer BAZOWYJ-BUFER hRETi KOSWENNOE-IMQ hRETi
sOZDAET KOSWENNYJ BUFER S IMENEM KOSWENNOE-IMQ,^EJ BAZOWYJ BUFER |\TO
BAZOWYJ-BUFER.
tEKST W KOSWENNOM BUFERE WSEGDA IDENTI^EN TEKSTU EGO BAZOWOGO BUFERA;IZMENENIQ,
SDELANNYE W ODNOM,SRAZU VE STANOWQTSQ WIDNY W DRUGOM.nO WO WSEM OSTALXNOM KOSWENNYJ
BUFER I EGO BAZOWYJ BUFER ABSOL@TNO RAZLI^NY.u NIH RAZNYE IMENA,RAZNYE ZNA^ENIQ
TO^KI,RAZNOE SUVENIE,RAZNYE POMETKI,RAZNYE OSNOWNYE REVIMY I RAZNYE LOKALXNYE
PEREMENNYE.
kOSWENNYE BUFERY NE MOGUT OBRA]ATXSQ K FAJLAM,NO IH BAZOWYE BUFERY MOGUT.eS-
LI WY PYTAETESX ZAPISATX KOSWENNYJ BUFER,\TO W DEJSTWITELXNOSTI RABOTAET KAK ZAPISX
BAZOWOGO BUFERA.uNI^TOVENIE BAZOWOGO BUFERA UNI^TOVAET KOSWENNYJ BUFER,NO UNI^TO-
VENIE KOSWENNOGO BUFERA NE WLIQET NA BAZOWYJ BUFER.
oDIN IZ SPOSOBOW PRIMENENIQ KOSWENNYH BUFEROW |OTOBRAVENIE NESKOLXKIH RAZLI^NYH
WIDOW SHEMY TEKSTA.sM.rAZDEL 21.8.4 [nESKOLXKO WIDOW DLQ Outline],S.193.
gLAWA 16:mNOVESTWO OKON 14116 mNOVESTWO OKON
Emacs MOVET DELITX FREJMY NA DWA ILI BOLEE OKNA.nESKOLXKO OKON MOGUT OTRAVATX
^ASTI RAZNYH BUFEROW ILI RAZNYE ^ASTI ODNOGO BUFERA.iSPOLXZOWANIE NESKOLXKIH FREJ-
MOW WSEGDA PODRAZUMEWAET MNOVESTWO OKON,POTOMU ^TO W KAVDOM FREJME SWOJ NABOR OKON.
kAVDOE OKNO PRINADLEVIT ODNOMU I TOLXKO ODNOMU FREJMU.
16.1 pONQTIE OKNA W Emacs
kAVDOE OKNO Emacs OTOBRAVAET W ODNO WREMQ ODIN BUFER.oDIN I TOT VE BUFER MOVET
POQWITXSQ BOLEE ^EM W ODNOM OKNE;ESLI\TO PROIZO[LO,TO L@BYE IZMENENIQ W EGO TEKSTE
POKAZYWA@TSQ WO WSEH OKNAH,GDE ON OTOBRAVEN.nO OKNA,POKAZYWA@]IE ODIN I TOT VE BU-
FER,MOGUT POKAZYWATX RAZLI^NYE EGO ^ASTI,TAK KAK KAVDOE OKNO HRANIT SWOE SOBSTWENNOE
ZNA^ENIE TO^KI.
w L@BOJ MOMENT ODNO IZ OKON QWLQETSQ WYBRANNYM OKNOM;BUFER,OTOBRAVAEMYJ\TIM
OKNOM,QWLQETSQ TEKU]IM BUFEROM.kURSOR TERMINALA POKAZYWAET POZICI@ TO^KI W\TOM
OKNE.wSE DRUGIE OKNA TAKVE IME@T POZICI@ TO^KI,NO TAK U TERMINALA ESTX TOLXKO ODIN
KURSOR,NELXZQ POKAZATX,GDE NAHODQTSQ\TI POZICII.kOGDA ESTX NESKOLXKO WIDIMYH FREJ-
MOW W X Windows,W KAVDOM FREJME IZOBRAVAETSQ ODIN KURSOR,NAHODQ]IJSQ W WYBRANNOM
OKNE\TOGO FREJMA.kURSOR W WYBRANNOM FREJME ZAKRA[EN;KURSORY W DRUGIH FREJMAH
WYGLQDQT KAK PUSTYE KLETKI.
kOMANDY DWIVENIQ TO^KI DEJSTWU@T TOLXKO NA ZNA^ENIE TO^KI DLQ WYBRANNOGO OKNA
Emacs.oNI NE IZMENQ@T ZNA^ENIE TO^KI W KAKOM-LIBO DRUGOM OKNE Emacs,DAVE W POKA-
ZYWA@]EM TOT VE SAMYJ BUFER.|TO WERNO I DLQ TAKIH KOMAND,KAK C-x b DLQ IZMENENIQ
WYBRANNOGO BUFERA W WYBRANNOM OKNE,NA DRUGIE OKNA ONI NE DEJSTWU@T WOOB]E.oDNAKO,
SU]ESTWU@T DRUGIE KOMANDY,NAPRIMER C-x 4 b,KOTORYE WYBIRA@T DRUGOE OKNO I PERE-
KL@^A@T BUFERY W NEM.tAKVE,WSE KOMANDY,KOTORYE POKAZYWA@T INFORMACI@ W OKNE,
WKL@^AQ (NAPRIMER) C-h f (discribe-function) I C-x C-b (list-bufers),RABOTA@T PRI
POMO]I PEREKL@^ENIQ BUFEROW W NEWYBRANNOM OKNE,NE ZATRAGIWAQ WYBRANNOE.
kOGDA NESKOLXKO OKON POKAZYWA@T ODIN I TOT VE BUFER,W NIH MOGUT BYTX RAZNYE
OBLASTI,POTOMU ^TO ONI MOGUT IMETX RAZNYE ZNA^ENIQ TO^KI.oDNAKO,WSE ONI IME@T ODNO
I TO VE ZNA^ENIE METKI,POTOMU ^TO W KAVDOM BUFERE MOVET BYTX TOLXKO ODNA POZICIQ
METKI.
kAVDOE OKNO IMEET SWO@ SOBSTWENNU@ STROKU REVIMA,KOTORAQ POKAZYWAET IMQ BUFERA,
STATUS MODIFIKACII I OSNOWNOJ I WTOROSTEPENNYE REVIMY BUFERA,KOTORYJ OTRAVEN W
DANNOM OKNE.sM.rAZDEL 1.3 [sTROKA REVIMA],S.25,DLQ BOLEE PODROBNOJ INFORMACII O
STROKE REVIMA.
142 rUKOWODSTWO PO GNU Emacs16.2 rAZDELENIE OKON
C-x 2 rAZDELITX WYBRANNOE OKNO NA DWA,NAHODQ]IHSQ ODNO POD DRUGIM (split-
window-vertically).
C-x 3 rAZDELITX WYBRANNOE OKNO NA DWA OKNA,NAHODQ]IHSQ ODNO RQDOM S DRUGIM
(split-window-horizontally).
C-Mouse-2
w STROKE REVIMA ILI POLOSE PROKRUTKI,RAZDELQET\TO OKNO.
kOMANDA C-x 2 (split-window-vertically) RAZBIWAET WYBRANNOE OKNO NA DWA,ODNO POD
DRUGIM.oBA OKNA cNA^ALA POKAZYWA@T ODIN I TOT VE BUFER S ODNIM I TEM VE ZNA^ENIEM
TO^KI.pO UMOL^ANI@ KAVDOE IZ DWUH OKON POLU^AET POLOWINU WYSOTY OKNA,KOTOROE
BYLO RAZDELENO;^ISLOWOJ ARGUMENT OPREDELQET KOLI^ESTWO STROK,KOTOROE NEOBHODIMO DATX
WERHNEMU OKNU.
C-x 3 (split-window-horizontally) RAZBIWAET WYBRANNOE OKNO NA DWA RQDOM STOQ]IH
OKNA.~ISLOWOJ ARGUMENT OPREDELQET,SKOLXKO STOLBCOW DATX LEWOMU OKNU.oKNA RAZDELQ-
@TSQ STROKOJ WERTIKALXNYH [TRIHOW.oKNA,KOTORYE NE ZANIMA@T WS@ [IRINU FREJMA,
IME@T STROKI REVIMA,NO ONI USE^ENY.nA TERMINALAH,GDE Emacs NE PODDERVIWAET POD-
SWETKU,USE^ENNYE STROKI REVIMA INOGDA POQWLQ@TSQ NE W INWERSNOM IZOBRAVENII.
wY MOVETE RAZDELITX OKNO GORIZONTALXNO,]ELKNUW C-Mouse-2 NA STROKE REVIMA ILI
POLOSE PROKRUTKI.lINIQ RAZDELA PROHODIT OT MESTA,GDE WY ]ELKNULI:ESLI WY ]ELKNULI
NA STROKE REVIMA,OT\TOGO MESTA OTOJDET NOWAQ POLOSA PROKRUTKI;ESLI WY ]ELKNULI NA
POLOSE PROKRUTKI,W MESTE WA[EGO ]EL^KA POQWITSQ STROKA REVIMA NOWOGO OKNA.
kOGDA OKNO MENX[E POLNOJ [IRINY\KRANA,^ASTO WSTRE^A@TSQ SLI[KOM DLINNYE STRO-
KI TEKSTA,KOTORYE NE POME]A@TSQ W OKNE.pRODOLVENIE WSEH\TIH STROK MOVET PRIWESTI
K PUTANICE.pEREMENNAQ truncate-partial-width-windows MOVET BYTX USTANOWLENA NE
RAWNOJ nil,\TO PRINUDITELXNO DELAET WO WSEH OKNAH USE^ENIE STROK DO MENX[EGO,^EM POL-
NAQ [IRINA OKNA,RAZMERA NEZAWISIMO OT OTOBRAVAEMOGO BUFERA I ZNA^ENIQ PEREMENNOJ
truncate-lines W NEM.sM.rAZDEL 4.8 [sTROKI PRODOLVENIQ],S.40.
gORIZONTALXNAQ PROKRUTKA ^ASTO ISPOLXZUETSQ W OKNAH,RASPOLOVENNYH RQDOM WERTI-
KALXNO.sM.gLAWA 11 [iZOBRAVENIE],S.81.
eSLI split-window-keep-point NE RAWNA nil,KAK PO UMOL^ANI@,TO OBA OKNA,POLU-
^A@]IESQ POSLE C-x 2,NASLEDU@T ZNA^ENIE TO^KI OT RAZDELQEMOGO OKNA.|TO OZNA^AET,
^TO NEOBHODIMA PROKRUTKA.eSLI\TA PEREMENNAQ RAWNA nil,TO C-x 2 PYTAETSQ IZBEVATX
SDWIGA TEKSTA NA\KRANE,POME]AQ TO^KU W KAVDOM OKNE W UVE WIDIMOM MESTE.oNA TAK-
VE WYBIRAET TO OKNO,KOTOROE SODERVIT STROKU TEKSTA,NA KOTOROJ KURSOR BYL RANX[E.
nEKOTORYE POLXZOWATELI PREDPO^ITA@T TAKOJ REVIM NA MEDLENNYH TERMINALAH.
16.3 iSPOLXZOWANIE DRUGIH OKON
C-x o wYBRATX DRUGOE OKNO (other-window).|TO BUKWA o,NE NOLX.
C-M-v pROKRUTITX SLEDU@]EE OKNO (scroll-other-window).
M-x compare-windows
nAJTI SLEDU@]EE MESTO,GDE TEKST WYBRANNOGO OKNA NE SOWPADAET S TEKSTOM W
SLEDU@]EM OKNE.
Mouse-1 Mouse-1 NA STROKE REVIMA KAKOGO-NIBUDX OKNA WYBIRAET\TO OKNO,NO NE PERE-
ME]AET W NEM TO^KU (mouse-select-window).
~TOBY WYBRATX DRUGOE OKNO,]ELKNITE Mouse-1 NA EGO STROKE REVIMA.s POMO]X@ KLA-
WIATURY WY MOVETE PEREKL@^ATX OKNA,NABIRAQ C-x o (other-window).|TO BUKWA O,OT
gLAWA 16:mNOVESTWO OKON 143SLOWA`other'(`DRUGOE'),A NE NOLX.kOGDA IMEETSQ BOLEE DWUH OKON,\TA KOMANDA PRODWI-
GAETSQ ^EREZ WSE OKNA PO KRUGU,OBY^NO SWERHU WNIZ I SLEWA NAPRAWO.oT SAMOGO PRAWOGO
NIVNEGO OKNA ONA IDET OBRATNO W TO,KOTOROE NAHODITSQ W WERHNEM LEWOM UGLU.~ISLOWOJ
ARGUMENT OZNA^AET DWIVENIE NA NESKOLXKO [AGOW PO KRUGOWOMU PORQDKU OKON.oTRICATELX-
NYJ ARGUMENT PRODWIGAET PO KRUGU W OBRATNOM PORQDKE.kOGDA MINIBUFER AKTIWEN,ON
QWLQETSQ POSLEDNIM OKNOM W KOLXCE;WY MOVETE PEREKL@^ITXSQ IZ OKNA MINIBUFERA W ODNO
IZ DRUGIH OKON I POZVE PEREKL@^ITXSQ OBRATNO I ZAWER[ITX W MINIBUFERE ZAPRA[IWAEMYJ
ARGUMENT.sM.rAZDEL 5.2 [rEDAKTIROWANIE W MINIBUFERE],S.46.
oBY^NYE KOMANDY PROKRUTKI (SM.gLAWA 11 [iZOBRAVENIE],S.81) OTNOSQTSQ TOLXKO K
WYBRANNOMU OKNU,NO SU]ESTWUET ODNA KOMANDA DLQ PROKRUTKI SLEDU@]EGO OKNA.C-M-v
(scroll-other-window) PROKRU^IWAET OKNO,KOTOROE WYBRALA BY C-x o.oNA PRINIMAET
POLOVITELXNYE I OTRICATELXNYE ARGUMENTY TAK VE,KAK I C-v.(w MINIBUFERE,C-M-v
PROKRU^IWAET OKNO,SODERVA]EE SPRAWKU DLQ MINIBUFERA,ESLI ONO ESTX,A NE SLEDU@]EE
OKNO W STANDARTNOM KRUGOWOM PORQDKE.)
kOMANDA M-x compare-windows POZWOLQET WAM SRAWNITX DWA FAJLA ILI BUFERA,WIDIMYE
W DWUH OKNAH,PRODWIGAQSX PO NIM DO SLEDU@]EGO NESOWPADENIQ.sM.rAZDEL 14.9 [sRAWNENIE
FAJLOW],S.132,DLQ PODROBNOSTEJ.
16.4 iZOBRAVENIE W DRUGOM OKNE
C-x 4 |\TO PREFIKSNYJ KL@^ DLQ KOMAND,KOTORYE WYBIRA@T DRUGOE OKNO (RAZDELQQ
TEKU]EE OKNO,ESLI ONO BYLO EDINSTWENNYM) I WYBIRA@T BUFER\TOM OKNE.rAZNYE KOMANDY
NA C-x 4 DA@T RAZNYE SPOSOBY NAHOVDENIQ BUFERA DLQ WYBORA.
C-x 4 b IMQ-BUFERA hRETi
wYBRATX BUFER IMQ-BUFERA W DRUGOM OKNE.pRI\TOM ZAPUSKAETSQ switch-to-
buffer-other-window.
C-x 4 C-o IMQ-BUFERA h RETi
oTOBRAZITX BUFER IMQ-BUFERA W DRUGOM OKNE,NO NE WYBIRATX W NEM\TOT BUFER.
|TO ZAPUSKAET display-buffer.
C-x 4 f IMQ-FAJLA h RETi
oBRATITXSQ K FAJLU IMQ-FAJLA I WYBRATX EGO BUFER W DRUGOM OKNE.pRI\TOM
ZAPUSKAETSQ find-file-other-window.sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
C-x 4 d KATALOG h RETi
wYBRATX BUFER Dired DLQ KATALOGA W DRUGOM OKNE.pRI\TOM ZAPUSKAETSQ dired-
other-window.sM.gLAWA 28 [Dired],S.291.
C-x 4 m nA^ATX SOSTAWLENIE PO^TOWOGO SOOB]ENIQ W DRUGOM OKNE.pRI\TOM ZAPUSKAETSQ
mail-other-window;ANALOG\TOJ KOMANDY,RABOTA@]IJ W TOM VE OKNE |C-x m
(SM.gLAWA 26 [pOSYLKA PO^TY],S.267).
C-x 4.nAJTI TEG W TEKU]EJ TABLICE TEGOW W DRUGOM OKNE.pRI\TOM ZAPUSKAETSQ find-
tag-other-window,MNOGOOKONNYJ WARIANT M-.(SM.rAZDEL 22.13 [tEGI],S.224).
C-x 4 r IMQ-FAJLA h RETi
oBRATITXSQ K FAJLU IMQ-FAJLA W REVIME TOLXKO DLQ ^TENIQ I WYBRATX EGO
BUFER W DRUGOM OKNE.|TOT KL@^ ZAPUSKAET KOMANDU find-file-read-only-
other-window.sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
16.5 pRINUDITELXNOE IZOBRAVENIE W TOM VE OKNE
nEKOTORYE KOMANDY Emacs PEREKL@^A@T W OPREDELENNYJ BUFER S OSOBYM SODERVIMYM.
nAPRIMER,M-x shell PEREKL@^AET W BUFER,NAZYWAEMYJ`*Shell*'.pO SOGLA[ENI@,WSE
144 rUKOWODSTWO PO GNU Emacs\TI KOMANDY NAPISANY TAK,^TOBY WYDAWATX\TOT BUFER W OTDELXNOM OKNE.nO WY MOVETE
UKAZATX,^TO NEKOTORYE IZ\TIH BUFEROW DOLVNY POQWLQTXSQ W WYBRANNOM OKNE.
eSLI WY DOBAWLQETE IMQ BUFERA W SPISOK same-window-buffer-names,TO W REZULXTATE
TAKIE KOMANDY OTOBRAVA@T\TOT BUFER,PEREKL@^AQSX K NEMU W TOM VE OKNE.nAPRIMER,
ESLI WY DOBAWITE W\TOT SPISOK\LEMENT"*grep*",TO KOMANDA grep BUDET POKAZYWATX
BUFER S WYWODOM W TEKU]EM OKNE.
zNA^ENIE same-window-buffer-names PO UMOL^ANI@ NE RAWNO nil:ONO ZADAET IMENA
BUFEROW`*info*',`*mail*'I`*shell*'(A TAKVE DRUGIH BUFEROW,ISPOLXZUEMYH BOLEE TU-
MANNYMI PAKETAMI Emacs).pO\TOMU M-x shell OBY^NO PEREKL@^AET W BUFER`*shell*'
W WYBRANNOM OKNE.eSLI WY UDALITE\TOT\LEMENT IZ SPISKA same-window-buffer-names,
POWEDENIE M-x shell IZMENITSQ |WMESTO\TOGO ONA BUDET WYDAWATX BUFER W DRUGOM OKNE.
wY MOVETE ZADATX\TI BUFERY W BOLEE OB]EJ FORME S POMO]X@ PEREMENNOJ same-
window-regexps.uSTANOWITE EE RAWNOJ SPISKU REGULQRNYH WYRAVENIJ;TEPERX L@BOJ
BUFER,^XE IMQ SOWPADAET S ODNIM IZ\TIH REGULQRNYH WYRAVENIJ,BUDET OTOBRAVATXSQ
S PEREKL@^ENIEM K NEMU W WYBRANNOM OKNE.(e]E RAZ,\TO OTNOSITSQ TOLXKO K TEM BUFE-
RAM,KOTORYE OBY^NO POKAZYWA@TSQ WAM W OTDELXNOM OKNE.) zNA^ENIE\TOJ PEREMENNOJ PO
UMOL^ANI@ ZADAET BUFERY Telnet I rlogin.
aNALOGI^NAQ WOZMOVNOSTX POZWOLQET WAM ZADATX BUFERY,KOTORYE DOLVNY OTOBRAVATX-
SQ W PRINADLEVA]IH TOLXKO IM FREJMAH.sM.rAZDEL 17.9 [fREJMY SPECIALXNYH BUFEROW],
S.152.
16.6 uDALENIE I PEREUPORQDO^ENIE OKON
C-x 0 uDALITX WYBRANNOE OKNO (delete-window).pOSLEDNIJ ZNAK W\TOJ POSLEDOWA-
TELXNOSTI KL@^EJ |NOLX.
C-x 1 uDALITX W WYBRANNOM FREJME WSE OKNA,KROME WYBRANNOGO (delete-other-
windows).
C-x 4 0 uDALITX WYBRANNOE OKNO I UNI^TOVITX BUFER,KOTORYJ BYL W NEM POKAZAN
(kill-buffer-and-window).pOSLEDNIJ ZNAK W\TOJ POSLEDOWATELXNOSTI KL@^EJ
|NOLX.
C-x ^ sDELATX WYBRANNOE OKNO WY[E (enlarge-window).
C-x } rAS[IRITX WYBRANNOE OKNO (enlarge-window-horizontally).
C-x { sUZITX WYBRANNOE OKNO (shrink-window-horizontally).
C-x - uMENX[ITX\TO OKNO,ESLI BUFER W NEM NE TREBUET STOLXKO STROK (shrink-
window-if-larger-than-buffer).
C-x + wYROWNQTX WYSOTY WSEH OKON (balance-windows).
Drag-Mouse-1
pEREME]ENIE STROKI REVIMA OKNA S POMO]X@ mouse-1 IZMENQET WYSOTU OKON.
Mouse-2 Mouse-2 NA STROKE REVIMA OKNA UDALQET WSE OSTALXNYE OKNA W\TOM FREJME
(mouse-delete-other-windows).
Mouse-3 Mouse-3 NA STROKE REVIMA KAKOGO-NIBUDX OKNA UDALQET\TO OKNO (mouse-delete-
window).
~TOBY UDALITX OKNO,NABERITE C-x 0 (delete-window).(|TO NOLX).pROSTRANSTWO,
ZANIMAEMOE UDALENNYM OKNOM,DOSTAETSQ SOSEDNEMU OKNU (NO NE OKNU MINIBUFERA,DAVE
ESLI ONO AKTIWNO W\TOT MOMENT).kAK TOLXKO OKNO UDALENO,EGO ATRIBUTY ZABYWA@TSQ;
IH MOVET WERNUTX TOLXKO WOSSTANOWLENIE KONFIGURACII OKNA.uDALENIE OKNA NE WLIQET
gLAWA 16:mNOVESTWO OKON 145NA BUFER,KOTORYJ ONO OTOBRAVALO;\TOT BUFER PRODOLVAET SU]ESTWOWATX,I WY MOVETE
WYBRATX EGO W L@BOM OKNE KOMANDOJ C-x b.
C-x 4 0 (kill-buffer-and-window) |BOLEE SILXNAQ KOMANDA,^EM C-x 0;ONA UNI^TOVA-
ET TEKU]IJ BUFER I ZATEM UDALQET WYBRANNOE OKNO.
C-x 1 (delete-other-windows) | BOLEE MO]NAQ W DRUGOM SMYSLE;ONA UDALQET WSE OKNA
ZA ISKL@^ENIEM WYBRANNOGO (I MINIBUFERA).wYBRANNOE OKNO RAS[IRQETSQ,^TOBY ISPOLX-
ZOWATX WESX FREJM,ZA ISKL@^ENIEM\HO-OBLASTI.
wY TAKVE MOVETE UDALITX OKNO,]ELKNUW NA EGO STROKE REVIMA Mouse-2,I UDALITX WSE
OKNA WO FREJME,KROME ODNOGO,]ELKNUW NA STROKE REVIMA\TOGO OKNA Mouse-3.
pROSTEJ[IJ SPOSOB NASTROITX WYSOTU OKON | SDELATX\TO S POMO]X@ MY[I.eSLI WY
NAVMETE Mouse-1 NA STROKE REVIMA,WY MOVETE PERETA]ITX EE WWERH ILI WNIZ,IZMENQQ
WYSOTU OKON SWERHU I SNIZU OT NEE.
~TOBY PERENASTROITX DELENIE PROSTRANSTWA MEVDU WERTIKALXNO SOSEDNIMI OKNAMI,IS-
POLXZUJTE C-x ^ (enlarge-window).oNA DELAET TEKU]EE WYBRANNOE OKNO BOLX[E NA ODNU
STROKU ILI NA STOLXKO STROK,SKOLXKO OPREDELENO ^ISLOWYM ARGUMENTOM.s OTRICATELXNYM
ARGUMENTOM,ONA DELAET WYBRANNOE OKNO MENX[E.C-x } (enlarge-window-horizontally)
DELAET WYBRANNOE OKNO [IRE,A C-x { (shrink-window-horizontally) | UVE NA ZADANNOE
^ISLO STOLBCOW.
kOGDA WY UWELI^IWAETE OKNO,ONO ZABIRAET PROSTRANSTWO OT ODNOGO IZ SWOIH SOSEDEJ.eS-
LI\TO DELAET KAKIE-TO OKNA SLI[KOM MALENXKIMI,TO\TI OKNA UDALQ@TSQ I IH PROSTRAN-
STWO DELITSQ MEVDU SOSEDNIMI OKNAMI.mINIMALXNYJ RAZMER OPREDELQETSQ PEREMENNYMI
window-min-height I window-min-width.
kOMANDA C-x - (shrink-window-if-larger-than-buffer) UMENX[AET WYSOTU WYBRANNO-
GO OKNA,ESLI ONO WY[E,^EM NEOBHODIMO DLQ POKAZA WSEGO TEKSTA OTOBRAVAEMOGO W NEM
BUFERA.oNA PEREDAET OSWOBODIW[IESQ STROKI DRUGIM OKNAM W\TOM FREJME.
wY TAKVE MOVETE ISPOLXZOWATX C-x + (balance-windows),^TOBY WYROWNQTX WYSOTY WSEH
OKON W WYBRANNOM FREJME.
sM.rAZDEL 5.2 [rEDAKTIROWANIE W MINIBUFERE],S.46,PODROBNOE OPISANIE REVIMA
Resize-MinibuпЂ‹er,KOTORYJ AWTOMATI^ESKI IZMENQET RAZMER OKNA MINIBUFERA,^TOBY W NEM
WME]ALSQ TEKST MINIBUFERA.
146 rUKOWODSTWO PO GNU Emacs
gLAWA 17:fREJMY I X Windows 14717 fREJMY I X Windows
pRI ISPOLXZOWANII X Window System WY MOVETE SOZDAWATX W ODNOM SEANSE Emacs
NESKOLXKO OKON UROWNQ OKONNOJ SISTEMY.kAVDOE PRINADLEVA]EE Emacs X-OKNO POKAZY-
WAET ODIN FREJM,KOTORYJ MOVET SODERVATX ODNO ILI NESKOLXKO OKON Emacs.iZNA^ALXNO
FREJM SODERVIT ODNO OKNO Emacs OB]EGO NAZNA^ENIQ,KOTOROE WY MOVETE PODELITX WERTI-
KALXNO ILI GORIZONTALXNO NA MENX[IE.oBY^NO FREJM IMEET SOBSTWENNU@\HO-OBLASTX I
MINIBUFER,NO WY MOVETE SDELATX FREJMY BEZ NIH | ONI BUDUT ISPOLXZOWATX\HO-OBLASTX
I MINIBUFER DRUGOGO FREJMA.
rEDAKTIROWANIE W ODNOM FREJME ZATRAGIWAET I DRUGIE FREJMY.k PRIMERU,ESLI WY
POMESTITE TEKST W SPISOK UNI^TOVENIJ W ODNOM FREJME,WY MOVETE WOSSTANOWITX EGO W
DRUGOM.eSLI WY WYHODITE IZ Emacs ^EREZ C-x C-c W ODNOM FREJME,\TO UDALIT WSE FREJMY.
~TOBY UDALITX TOLXKO ODIN FREJM,ISPOLXZUJTE C-x 5 0.
~TOBY IZBEVATX PUTANICY,MY REZERWIRUEM SLOWO\OKNO"DLQ TEH OKON,KOTORYE REALI-
ZUET SAM Emacs,I NIKOGDA NE ISPOLXZUEM EGO DLQ OBOZNA^ENIQ FREJMA.
Emacs,SKOMPILIROWANNYJ DLQ MS-DOS,\MULIRUET NEKOTORYE ASPEKTY OKONNOJ SISTE-
MY,TAK ^TO WY SMOVETE ISPOLXZOWATX MNOGIE WOZMOVNOSTI IZ OPISANNYH W\TOJ GLAWE.sM.rAZDEL C.1 [MS-DOS wWOD],S.403,DLQ DALXNEJ[EJ INFORMACII.
17.1 kOMANDY MY[I DLQ REDAKTIROWANIQ
kOMANDY MY[I DLQ WYDELENIQ I KOPIROWANIQ OBLASTI W OSNOWNOM SOWMESTIMY S KOMAN-
DAMI PROGRAMMY xterm.wY MOVETE POLXZOWATXSQ ODNIMI I TEMI VE KOMANDAMI MY[I DLQ
OBMENA TEKSTOM MEVDU Emacs DRUGIMI X-KLIENTAMI.
eSLI WY WYDELITE OBLASTX S POMO]X@ L@BOJ IZ\TIH KOMAND I SRAZU VE POSLE\TOGO
NAVMETE FUNKCIONALXNU@ KLAWI[U hDELETEi,ONA UDALIT WYDELENNU@ OBLASTX.fUNKCIO-
NALXNAQ KLAWI[A h BACKSPACEi ILI ASCII-ZNAK hDELi NE DELA@T\TOGO;I ESLI WY NAVMETE
MEVDU KOMANDOJ MY[I I h DELETEi KAKU@-TO DRUGU@ KLAWI[U,hDELETEi NE PODEJSTWUET
TAKIM OBRAZOM.
Mouse-1 pEREME]AET TO^KU TUDA,GDE WY ]ELKNULI (mouse-set-point).oBY^NO\TO
LEWAQ KNOPKA.
Drag-Mouse-1
uSTANAWLIWAET OBLASTX WOKRUG TEKSTA,PO KOTOROMU WY PROWELI,I KOPIRUET
\TOT TEKST W SPISOK UNI^TOVENIJ (mouse-set-region).s POMO]X@\TOJ KOMAN-
DY WY MOVETE UKAZATX OBA KONCA OBLASTI.
eSLI PRI PROWEDENII MY[X@ WY PEREMESTITE EE ZA WERHNIJ ILI NIVNIJ PREDEL
OKNA,\TO OKNO NEPRERYWNO PROKRU^IWAETSQ,POKA WY NE WERNETE W NEGO MY[X.
tAKIM SPOSOBOM WY MOVETE WYDELQTX OBLASTI,NE UME]A@]IESQ NA\KRANE.
~ISLO PROKRU^IWAEMYH ZA ODIN [AG STROK ZAWISIT OT TOGO,NASKOLXKO DALEKO
ZA KRAJ OKNA U[LA MY[X;MINIMALXNYJ RAZMER [AGA OPREDELQET PEREMENNAQ
mouse-scroll-min-lines.
Mouse-2 wOSSTANAWLIWAET POSLEDNIJ UNI^TOVENNYJ TEKST W TOM MESTE,GDE WY ]ELKNULI
(mouse-yank-at-click).oBY^NO\TO SREDNQQ KNOPKA.
Mouse-3 |TA KOMANDA,mouse-save-then-kill,IMEET NESKOLXKO NAZNA^ENIJ W ZAWISIMO-
STI OT TOGO,GDE WY ]ELKNULI,I OT SOSTOQNIQ OBLASTI.
sAMYJ OSNOWNOJ SLU^AJ |\TO KOGDA WY ]ELKAETE Mouse-1 W ODNOM MESTE,A
ZATEM Mouse-3 W DRUGOM.|TO WYDELQET TEKST MEVDU DWUMQ\TIMI POZICIQMI W
KA^ESTWE OBLASTI.|TO TAKVE KOPIRUET NOWU@ OBLASTX W SPISOK UNI^TOVENIJ,
^TOBY WY MOGLI SKOPIROWATX EGO W DRUGOE MESTO.
148 rUKOWODSTWO PO GNU EmacseSLI WY ]ELKNITE W TEKSTE Mouse-1,PROKRUTITE OKNO S POMO]X@ POLOSKI PRO-
KRUTKI I ZATEM ]ELKNITE Mouse-3,Emacs ZAPOMNIT,GDE BYLA TO^KA PERED PRO-
KRUTKOJ (GDE WY POMESTILI EE S POMO]X@ Mouse-1),I ISPOLXZUET\TU POZICI@
KAK DRUGOJ KONEC OBLASTI.|TO SDELANO,^TOBY WY MOGLI WYDELQTX OBLASTI,
KOTORYE NE UME]A@TSQ POLNOSTX@ NA\KRANE.
w BOLEE OB]EM WIDE,ESLI U WAS NET PODSWE^ENNOJ OBLASTI,Mouse-3 WYDELQET
W KA^ESTWE OBLASTI TEKST MEVDU TO^KOJ I MESTOM ]EL^KA.oNA DELAET\TO,
USTANAWLIWAQ METKU TAM,GDE BYLA TO^KA,I PEREME]AQ TO^KU K TOJ POZICII,
GDE WY ]ELKNULI.
eSLI U WAS ESTX PODSWE^ENNAQ OBLASTX,ILI ESLI OBLASTX BYLA USTANOWLENA NEPO-
SREDSTWENNO PERED\TIM S POMO]X@ PROWEDENIQ KNOPKOJ 1,Mouse-3 PODSTRAI-
WAET BLIVAJ[IJ KONEC OBLASTI,PEREME]AQ EGO K MESTU ]EL^KA.tAKVE,TEKST
PODSTROENNOJ OBLASTI ZAME]AET W SPISKE UNI^TOVENIJ TEKST STAROJ OBLASTI.
eSLI WY IZNA^ALXNO ZADALI OBLASTX,ISPOLXZUQ DWOJNOJ ILI TROJNOJ ]EL^OK
Mouse-1,^TOBY OPREDELITX OBLASTX KAK SOSTOQ]U@ IZ CELYH SLOW ILI STROK,
TO PODSTROJKA OBLASTI S POMO]X@ Mouse-3 TAKVE PROHODIT PO CELYM SLOWAM
ILI STROKAM.
eSLI WY PRIMENITE Mouse-3 DWA RAZ PODRQD NA ODNOM MESTE,WY UNI^TOVITE
UVE WYDELENNU@ OBLASTX.
Double-Mouse-1
|TOT KL@^ USTANAWLIWAET OBLASTX WOKRUG SLOWA,NA KOTOROM WY ]ELKNULI.
eSLI WY ]ELKNULI NA ZNAKE S SINTAKSI^ESKOJ KATEGORIEJ\symbol"(NAPRIMER,
NA POD^ERKE W REVIME C),ON USTANAWLIWAET OBLASTX WOKRUG SIMWOLA,KOTOROMU
PRINADLEVIT\TOT ZNAK.
eSLI WY ]ELKNULI NA ZNAKE S SINTAKSI^ESKOJ KATEGORIEJ OTKRYWA@]EJ ILI
ZAKRYWA@]EJ KRUGLOJ SKOBKI,OBLASTX USTANAWLIWAETSQ WOKRUG GRUPPY (s-
WYRAVENIQ),KOTORAQ ZAWER[AETSQ ILI NA^INAETSQ NA\TOM ZNAKE.eSLI WY
]ELKNULI NA ZNAKE S SINTAKSI^ESKOJ KATEGORIEJ RAZDELITELQ STROK (TAKOM KAK
KAWY^KA ILI DWOJNYE KAWY^KI W sI),OBLASTX BUDET USTANOWLENA WOKRUG\TOJ
STROKOWOJ KONSTANTY (S ISPOLXZOWANIEM\WRISTIKI,^TOBY WYQSNITX,QWLQETSQ
LI\TOT ZNAK NA^INA@]IM ILI ZAWER[A@]IM).
Double-Drag-Mouse-1
|TOT KL@^ WYDELQET OBLASTX,SOSTOQ]U@ IZ SLOW,PO KOTORYM WY PROWELI.
Triple-Mouse-1
|TOT KL@^ USTANAWLIWAET OBLASTX WOKRUG STROKI,NA KOTOROJ WY ]ELKNULI.
Triple-Drag-Mouse-1
|TOT KL@^ WYDELQET OBLASTX,SOSTOQ]U@ IZ STROK,PO KOTORYM WY PROWELI.
pROSTEJ[IJ SPOSOB UNI^TOVITX TEKST S POMO]X@ MY[I | NAVATX Mouse-1 W OD-
NOM KONCE,A ZATEM DWAVDY NAVATX Mouse-3 NA DRUGOM.sM.rAZDEL 9.1 [uNI^TOVENIE],
S.69.~TOBY SKOPIROWATX TEKST W SPISOK UNI^TOVENIJ,NE UDALQQ EGO IZ BUFERA,NAVMI-
TE Mouse-3 TOLXKO ODIN RAZ ILI PROSTO PROWEDITE PO\TOMU TEKSTU S PRIVATOJ Mouse-1.
pOTOM WY MOVETE SKOPIROWATX\TOT TEKST W DRUGOE MESTO WOSSTANOWLENIEM.
~TOBY WOSSTANOWITX UNI^TOVENNYJ ILI SKOPIROWANNYJ TEKST W DRUGOE MESTO,PEREWE-
DITE TUDA MY[X I NAVMITE Mouse-2.sM.rAZDEL 9.2 [wOSSTANOWLENIE],S.71.oDNAKO,
ESLI mouse-yank-at-point NE RAWNA nil,Mouse-2 WOSSTANAWLIWAET W TO^KE.tOGDA NE IME-
ET ZNA^ENIQ,GDE WY ]ELKAETE,ILI DAVE W KAKOM IZ OKON FREJMA WY ]ELKAETE.zNA^ENIE
PO UMOL^ANI@ RAWNO nil.|TA PEREMENNAQ WLIQET TAKVE NA WOSSTANOWLENIE WTORI^NOGO
WYDELENIQ.
~TOBY SKOPIROWATX TEKST W DRUGOE X-OKNO,UNI^TOVXTE EGO ILI SOHRANITE W SPISKE
UNI^TOVENIJ.pOD X\TO KROME TOGO USTANOWIT PERWI^NOE WYDELENIE.zATEM ISPOLXZUJ-
gLAWA 17:fREJMY I X Windows 149TE W PROGRAMME,RABOTA@]EJ W DRUGOM OKNE,KOMANDU\WSTAWITX",^TOBY WSTAWITX TEKST
WYDELENIQ.
~TOBY SKOPIROWATX TEKST IZ DRUGOGO X-OKNA,ISPOLXZUJTE W PROGRAMME,RABOTA@]EJ W
DRUGOM OKNE,KOMANDY\WYREZATX"ILI\KOPIROWATX",^TOBY WYDELITX NUVNYJ WAM TEKST.
zATEM WOSSTANOWITE EGO W Emacs S POMO]X@ C-y ILI Mouse-2.
|TI KOMANDY WYREZANIQ I WSTAWKI RABOTA@T TAKVE I W MS-Windows.
kOGDA Emacs POME]AET TEKST W SPISOK UNI^TOVENIJ ILI PEREKLADYWAET TEKST NA WER-
[INU SPISKA UNI^TOVENIJ,ON USTANAWLIWAET PERWI^NOE WYDELENIE X-SERWERA.iMENNO
TAKIM OBRAZOM DRUGIE X-KLIENTY MOGUT POLU^ITX DOSTUP K\TOMU TEKSTU.Emacs TAKVE
SOHRANQET TEKST W BUFERE WYREZOK,NO TOLXKO ESLI\TOT TEKST DOSTATO^NO KOROTKIJ (x-
cut-buffer-max ZADAET MAKSIMALXNOE ^ISLO ZNAKOW);POME]ENIE W BUFER WYREZOK DLINNYH
STROK MOVET BYTX MEDLENNYM.
kOMANDY WOSSTANOWLENIQ PERWOGO WHOVDENIQ SPISKA UNI^TOVENIJ NA SAMOM DELE SNA^A-
LA PROWERQ@T,NET LI PERWI^NOGO WYDELENIQ IZ DRUGIH PROGRAMM;POSLE\TOGO ONI PROWE-
RQ@T,NET LI TEKSTA W BUFERE WYREZOK.eSLI NI TOT,NI DRUGOJ ISTO^NIK NE PREDOSTAWLQ@T
TEKSTA DLQ WOSSTANOWLENIQ,ISPOLXZUETSQ SODERVIMOE SPISKA UNI^TOVENIJ.
17.2 wTORI^NOE WYDELENIE
wTORI^NOE WYDELENIE |\TO DRUGOJ SPOSOB WYDELENIQ TEKSTA S ISPOLXZOWANIEM X Win-
dows.oNO NE ISPOLXZUET TO^KU ILI METKU,PO\TOMU WY MOVETE ISPOLXZOWATX EGO DLQ
UNI^TOVENIQ TEKSTA BEZ USTANOWKI TO^KI ILI METKI.
M-Drag-Mouse-1
uSTANAWLIWAET WTORI^NOE WYDELENIE S ODNIM KONCOM W TOM MESTE,GDE WY NA-
VALI KNOPKU,I DRUGIM | W TOM,GDE WY EE OTPUSTILI (mouse-set-secondary).
kOGDA WY PROWODITE MY[X@,POQWLQETSQ I IZMENQETSQ PODSWETKA.
eSLI PRI PROWEDENII MY[X@ WY SDWINETE EE ZA WERHNIJ ILI NIVNIJ PREDEL
OKNA,\TO OKNO NEPRERYWNO PROKRU^IWAETSQ,POKA WY NE WERNETE W NEGO MY[X.
tAKIM SPOSOBOM WY MOVETE WYDELQTX OBLASTI,NE UME]A@]IESQ NA\KRANE.
M-Mouse-1
uSTANAWLIWAET ODNU IZ GRANI^NYH TO^EK WTORI^NOGO WYDELENIQ (mouse-start-
secondary).
M-Mouse-3
sOZDAET WTORI^NOE WYDELENIE,ISPOLXZUQ MESTO,UKAZANNOE S POMO]X@
M-Mouse-1 KAK EGO WTOROJ KONEC (mouse-secondary-save-then-kill).wTOROJ
]EL^OK NA\TOM VE MESTE UNI^TOVAET TOLXKO ^TO SDELANNOE WTORI^NOE
WYDELENIE.
M-Mouse-2
wSTAWLQET W MESTE ]EL^KA WTORI^NOE WYDELENIE (mouse-yank-secondary).|TO
POME]AET TO^KU W KONEC WOSSTANOWLENNOGO TEKSTA.
dWOJNYE I TROJNYE ]EL^KI M-Mouse-1 DEJSTWU@T NA SLOWA I STROKI,WO MNOGOM KAK DLQ
Mouse-1.
eSLI mouse-yank-at-point NE RAWNA nil,M-Mouse-2 WOSSTANAWLIWAET W TO^KE.tOGDA
NE IMEET ZNA^ENIQ,GDE WY ]ELKNULI;GLAWNOE,W KAKOM OKNE.sM.rAZDEL 17.1 [kOMANDY
MY[I],S.147.
150 rUKOWODSTWO PO GNU Emacs17.3 sLEDOWANIE PO SSYLKAM S POMO]X@ MY[I
nEKOTORYE BUFERY Emacs POKAZYWA@T RAZLI^NOGO RODA PERE^NI.|TO PERE^NI FAJLOW,
BUFEROW,WOZMOVNYH ZAWER[ENIJ,SOWPADENIJ S OBRAZCOM I TAK DALEE.
pOSKOLXKU WOSSTANOWLENIE W\TIH BUFERAH BESSMYSLENNO,W BOLX[INSTWE IZ NIH Mouse-2
OPREDELENA OSOBO,KAK KOMANDA DLQ ISPOLXZOWANIQ ILI PROSMOTRA PUNKTA,NA KOTOROM WY
]ELKNULI.
nAPRIMER,ESLI WY ]ELKNITE Mouse-2 NA IMENI FAJLA W BUFERE Dired,WY OBRATI-
TESX K\TOMU FAJLU.eSLI WY ]ELKNITE Mouse-2 NA SOOB]ENII OB O[IBKE W BUFERE
`*Compilation*',WY PEREJDETE K ISHODNOMU KODU DLQ\TOGO SOOB]ENIQ.eSLI WY ]ELKNITE
Mouse-2 NA ZAWER[ENII W BUFERE`*Completions*',WY WYBERETE\TO ZAWER[ENIE.
oBY^NO WY MOVETE SUDITX O TOM,IMEET LI Mouse-2 OSOBOE ZNA^ENIE,PO TOMU,^TO
^UWSTWITELXNYJ TEKST PODSWE^IWAETSQ,KOGDA WY PROWODITE NAD NIM MY[X.
17.4 }EL^KI MY[I DLQ MEN@
}EL^KI MY[I,MODIFICIROWANNYE S POMO]X@ KLAWI[ hCTRLi I hSHIFTi,WYWODQT MEN@.
C-Mouse-1
|TO MEN@ DLQ WYBORA BUFERA.
C-Mouse-2
|TO MEN@ DLQ ZADANIQ NA^ERTANIJ I DRUGIH SWOJSTW TEKSTA DLQ REDAKTIROWANIQ
FORMATIROWANNOGO TEKSTA.sM.rAZDEL 21.11 [fORMATIROWANNYJ TEKST],S.198.
C-Mouse-3
|TO MEN@ OPREDELQETSQ REVIMOM.dLQ BOLX[INSTWA REVIMOW DANNOE MEN@
IMEET TE VE PUNKTY,^TO SODERVATSQ WO WSEH OPREDELQEMYH REVIMOM MEN@ IZ
POLOSKI MEN@.nEKOTORYE REVIMY MOGUT OPREDELQTX DLQ\TOJ KNOPKI DRUGOE
MEN@.
1
S-mouse-1
|TO MEN@ DLQ ZADANIQ OSNOWNOGO [RIFTA FREJMA.
17.5 kOMANDY MY[I DLQ STROKI REVIMA
wY MOVETE ISPOLXZOWATX MY[X NA STROKE REVIMA DLQ WYBORA OKON I MANIPULQCIJ S
NIMI.
Mouse-1 Mouse-1 NA STROKE REVIMA WYBIRAET OKNO SWERHU.pROWODQ MY[X@ S NAVATOJ
NA STROKE REVIMA Mouse-1,WY MOVETE PEREME]ATX\TU STROKU REVIMA,IZMENQQ
TAKIM OBRAZOM WYSOTU OKON SWERHU I SNIZU.
Mouse-2 Mouse-2 NA STROKE REVIMA RASKRYWAET OKNO NA WESX FREJM.
Mouse-3 Mouse-3 NA STROKE REVIMA UDALQET OKNO SWERHU.
C-Mouse-2
C-Mouse-2 NA STROKE REVIMA RAZBIWAET OKNO SWERHU PO WERTIKALI W TOM MESTE,
GDE WY ]ELKNULI.
C-Mouse-2 NA POLOSKE PROKRUTKI RAZBIWAET SOOTWETSTWU@]EE OKNO PO GORIZONTALI.sM.rAZDEL 16.2 [rAZDELENIE OKON],S.142.1
w NEKOTORYH SISTEMAH DLQ OPREDELQEMYH REVIMOM MEN@ ISPOLXZUETSQ Mouse-3.mY PROWELI OPROS SREDI
POLXZOWATELEJ I WYQSNILI,^TO ONI PREDPO^ITA@T OSTAWITX Mouse-3 DLQ WYDELENIQ I UNI^TOVENIQ
OBLASTEJ.oTS@DA RE[ENIE ISPOLXZOWATX DLQ\TOGO MEN@ C-Mouse-3.
gLAWA 17:fREJMY I X Windows 15117.6 sOZDANIE FREJMOW
pREFIKSNYJ KL@^ C-x 5 ANALOGI^EN C-x 4,I NA NIH OPREDELENY PARALLELXNYE PODKO-
MANDY.rAZNICA MEVDU NIMI W TOM,^TO KOMANDY S C-x 5 SOZDA@T NOWYJ FREJM,A NE
PROSTO NOWOE OKNO W WYBRANNOM FREJME (SM.rAZDEL 16.4 [wSPLYWA@]IE OKNA],S.143).
eSLI ZAPRO[ENNYJ MATERIAL UVE POKAZYWAETSQ W SU]ESTWU@]EM WIDIMOM ILI MINIMIZI-
ROWANNOM FREJME,\TI KOMANDY ISPOLXZU@T SU]ESTWU@]IJ FREJM POSLE EGO PODNIMANIQ
ILI DEMINIMIZACII PO NEOBHODIMOSTI.
kOMANDY NA C-x 5 RAZLI^A@TSQ PO TOMU,KAK ONI NAHODQT ILI SOZDA@T BUFER DLQ WYBO-
RA:
C-x 5 2 sOZDAET NOWYJ FREJM (make-frame-command).
C-x 5 b IMQ-BUFERA h RETi
wYBIRAET BUFER IMQ-BUFERA W DRUGOM FREJME.|TO ZAPUSKAET switch-to-
buffer-other-frame.
C-x 5 f IMQ-FAJLA
h RETi
oBRA]AETSQ K FAJLU IMQ-FAJLA I WYBIRAET EGO BUFER W DRUGOM FREJME.|TO
ZAPUSKAET find-file-other-frame.sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
C-x 5 d KATALOG h RETi
wYBIRAET BUFER Dired DLQ KATALOGA KATALOG W DRUGOM FREJME.|TO ZAPUSKAET
dired-other-frame.sM.gLAWA 28 [Dired],S.291.
C-x 5 m pOZWOLQET NA^ATX SOSTAWLENIE PO^TOWOGO SOOB]ENIQ W DRUGOM FREJME (mail-
other-frame).|TO WARIANT C-x m,RABOTA@]IJ W DRUGOM FREJME.sM.gLAWA 26
[pOSYLKA PO^TY],S.267.
C-x 5.oBRA]AETSQ K TEGU IZ TEKU]EJ TABLICY TEGOW W DRUGOM FREJME.|TO ZAPUSKAET
find-tag-other-frame,WARIANT M-.,RABOTA@]IJ S NESKOLXKIMI FREJMAMI.
sM.rAZDEL 22.13 [tEGI],S.224.
C-x 5 r IMQ-FAJLA h RETi
oBRA]AETSQ K FAJLU IMQ-FAJLA W REVIME TOLXKO DLQ ^TENIQ I WYBIRAET EGO
BUFER W DRUGOM FREJME.|TO ZAPUSKAET find-file-read-only-other-frame.
sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
wY MOVETE UPRAWLQTX WIDOM WNOWX SOZDAWAEMYH FREJMOW,USTANAWLIWAQ PARAMETRY
FREJMA W default-frame-alist.dLQ ZADANIQ PARAMETROW,OTNOSQ]IHSQ TOLXKO K NA^ALX-
NOMU FREJMU,WY MOVETE ISPOLXZOWATX PEREMENNU@ initial-frame-alist.sM.RAZDEL
\Initial Parameters"W The Emacs Lisp Reference Manual,DLQ DALXNEJ[EJ INFORMACII.
pROSTEJ[IJ SPOSOB UKAZATX OSNOWNOJ [RIFT DLQ WSEH FREJMOW Emacs |^EREZ X-RESURS
(SM.rAZDEL A.7 [{RIFT X],S.392),NO WY TAKVE MOVETE SDELATX\TO,IZMENIW default-
frame-alist TAK,^TOBY W NEM ZADAWALSQ PARAMETR font,KAK POKAZANO ZDESX:
(add-to-list'default-frame-alist'(font."10x20"))
17.7 sOZDANIE I ISPOLXZOWANIE FREJMA Speedbar
fREJM Emacs MOVET IMETX speedbar,TO ESTX WERTIKALXNOE OKNO,SLUVA]EE KAK MEN@ S
WOZMOVNOSTX@ PROKRUTKI DLQ FAJLOW,K KOTORYM WY MOVETE OBRATITXSQ,I TEGOW WNUTRI
\TIH FAJLOW.~TOBY SOZDATX speedbar,WWEDITE M-x speedbar;\TO SOZDAET OKNO speedbar
DLQ WYBRANNOGO FREJMA.pOSLE\TOGO WY MOVETE ]ELKNUTX W speedbar NA IMENI FAJLA,
^TOBY OBRATITXSQ K NEMU W SOOTWETSTWU@]EM FREJME Emacs,ILI ]ELKNUTX NA IMENI TEGA,
^TOBY PERESKO^ITX K NEMU SOOTWETSTWU@]EM FREJME.
iZNA^ALXNO speedbar PERE^ISLQET NEPOSREDSTWENNOE SODERVANIE TEKU]EGO KATALOGA PO
ODNOMU FAJLU NA STROKE.w KAVDOJ STROKE TAKVE ESTX KNOPKA,`[+]'ILI`<+>',NA KOTOROJ
152 rUKOWODSTWO PO GNU EmacsWY MOVETE ]ELKNUTX Mouse-2,^TOBY\OTKRYTX"SODERVIMOE DANNOGO\LEMENTA.eSLI NA
\TOJ STROKE PERE^ISLEN KATALOG,TO PRI OTKRYTII K POKAZANNOMU W speedbar DOBAWLQETSQ
SODERVANIE\TOGO KATALOGA POD EGO SOBSTWENNOJ STROKOJ.eSLI NA STROKE PERE^ISLEN OBY^-
NYJ FAJL,PRI EGO OTKRYTII K SODERVIMOMU speedbar DOBAWLQETSQ SPISOK TEGOW IZ\TOGO
FAJLA.kOGDA FAJL OTKRYWAETSQ,`[+]'ZAMENQETSQ NA`[-]';WY MOVETE ]ELKNUTX NA\TOJ
KNOPKE,^TOBY\ZAKRYTX"\TOT FAJL (SKRYTX EGO SODERVANIE).
nEKOTORYE OSNOWNYE REVIMY,WKL@^AQ REVIM Rmail,Info I GUD,IME@T SPECIALIZIRO-
WANNYE SPOSOBY POMESTITX W speedbar DRUGIE POLEZNYE WE]I.nAPRIMER,W REVIME Rmail
speedbar POKAZYWAET PERE^ENX Rmail-FAJLOW I POZWOLQET WAM PERENESTI TEKU]EE SOOB]ENIE
W DRUGOJ Rmail-FAJL,]ELKNUW NA KNOPKE`<M>'.
Speedbar PRINADLEVIT ODNOMU FREJMU Emacs I WSEGDA RABOTAET S\TIM FREJMOM.eSLI
WY ISPOLXZUETE NESKOLXKO FREJMOW,WY MOVETE SDELATX speedbar DLQ NEKOTORYH ILI DLQ
WSEH IZ NIH;^TOBY SDELATX speedbar DLQ L@BOGO DANNOGO FREJMA,NABERITE W NEM M-x
speedbar.
17.8 mNOVESTWO DISPLEEW
oDIN Emacs MOVET OB]ATXSQ BOLEE ^EM S ODNIM DISPLEEM X Windows.iZNA^ALXNO
Emacs ISPOLXZUET TOLXKO ODIN DISPLEJ | TOT,^TO UKAZAN W PEREMENNOJ SREDY DISPLAY
ILI S POMO]X@ KL@^A`-display'(SM.rAZDEL A.2 [kL@^I ZAPUSKA],S.386).~TOBY PODSO-
EDINITXSQ K DRUGOMU DISPLE@,WOSPOLXZUJTESX KOMANDOJ make-frame-on-display:
M-x make-frame-on-display h RETi DISPLEJ hRETi
sOZDAET NOWYJ FREJM NA DISPLEE DISPLEJ.
oDIN X-SERWER MOVET OBRABATYWATX BOLEE ODNOGO\KRANA.kOGDA WY OTKRYWAETE FREJ-
MY NA\KRANAH,PRINADLEVA]IH ODNOMU SERWERU,Emacs ZNAET,^TO ONI RAZDELQ@T ODNU
KLAWIATURU I WOSPRINIMAET WSE KOMANDY,PRIHODQ]IE S\TIH\KRANOW,KAK ODIN POTOK
WWODA.
kOGDA WY OTKRYWAETE FREJMY NA RAZNYH X-SERWERAH,Emacs SOZDAET DLQ KAVDOGO SER-
WERA OTDELXNYJ POTOK WWODA.pO\TOMU DWA POLXZOWATELQ MOGUT ODNOWREMENNO PE^ATATX NA
DWUH DISPLEQH,I Emacs NE SME[IWAET IH WWOD.kAVDYJ SERWER IMEET TAKVE SOBSTWENNYJ
WYBRANNYJ FREJM.kOMANDY,KOTORYE WY WWODITE NA KONKRETNOM X-SERWERE,OTNOSQTSQ K
WYBRANNOMU FREJMU\TOGO SERWERA.
nESMOTRQ NA\TO,L@DI,ISPOLXZU@]IE ODNO I TO VE ZADANIE Emacs S RAZNYH DISPLEEW,
WSE VE MOGUT WME[IWATXSQ W DELA DRUG DRUGA,ESLI BUDUT NEOSTOROVNY.nAPRIMER,ESLI
L@BOJ IH NIH NAPE^ATAET C-x C-c,\TO PREKRATIT ZADANIE Emacs DLQ WSEH!
17.9 fREJMY SPECIALXNYH BUFEROW
wY MOVETE SDELATX TAK,^TOBY OPREDELENNYE BUFERY,DLQ KOTORYH Emacs OBY^NO SOZ-
DAET WTOROE OKNO,ESLI U WAS ESTX TOLXKO ODNO,POQWLQLISX W OSOBYH SOBSTWENNYH FREJMAH.
~TOBY SDELATX\TO,USTANOWITE PEREMENNU@ special-display-buffer-names RAWNOJ SPIS-
KU IMEN BUFEROW;L@BOJ BUFER,^XE IMQ SODERVITSQ W\TOM SPISKE,AWTOMATI^ESKI POLU^A-
ET SPECIALXNYJ FREJM,KOGDA KAKAQ-NIBUDX KOMANDA Emacs HO^ET POKAZATX EGO\W DRUGOM
OKNE".
nAPRIMER,ESLI WY USTANOWITE\TU PEREMENNU@ TAKIM OBRAZOM:
(setq special-display-buffer-names
'("*Completions*""*grep*""*tex-shell*"))
TO SPISKI ZAWER[ENIJ,WYWOD grep I BUFER OBOLO^KI REVIMA T
E
X POLU^AT SWOI SOBSTWEN-
NYE FREJMY.|TI FREJMY I OKNA W NIH NIKOGDA NE RAZBIWA@TSQ AWTOMATI^ESKI I NE
ISPOLXZU@TSQ DLQ DRUGIH BUFEROW.oNI PRODOLVA@T POKAZYWATX BUFERY,DLQ KOTORYH
gLAWA 17:fREJMY I X Windows 153BYLI SOZDANY,POKA WY NE IZMENITE IH WRU^NU@.uNI^TOVENIE SPECIALXNOGO BUFERA AWTO-
MATI^ESKI UDALQET EGO FREJM.
w BOLEE OB]EM SLU^AE WY MOVETE USTANOWITX special-display-regexps RAWNOJ SPISKU
REGULQRNYH WYRAVENIJ;TOGDA BUFER POLU^AET SOBSTWENNYJ FREJM,ESLI EGO IMQ SOWPADAET
W L@BYM IZ NIH.(e]E RAZ,\TO OTNOSITSQ TOLXKO K BUFERAM,KOTORYE OBY^NO OTOBRAVA@TSQ
W OTDELXNOM OKNE.)
pEREMENNAQ special-display-frame-alist ZADAET PARAMETRY DLQ\TIH FREJMOW.u NEE
ESTX ZNA^ENIE PO UMOL^ANI@,PO\TOMU WAM NEOBQZATELXNO USTANAWLIWATX EE.
tE,KTO ZNAET lISP,MOGUT TAKVE SDELATX\LEMENT special-display-buffer-names ILI
special-display-regexps SPISKOM.tOGDA PERWYJ\LEMENT |\TO IMQ BUFERA ILI RE-
GULQRNOE WYRAVENIE,A OSTALXNYE UKAZYWA@T,KAK SOZDAWATX FREJM.|TO MOVET BYTX
ASSOCIATIWNYJ SPISOK,ZADA@]IJ ZNA^ENIQ PARAMETROW FREJMA;\TI ZNA^ENIQ IME@T PRI-
ORITET PERED ZNA^ENIQMI PARAMETROW,UKAZANNYH W special-display-frame-alist.iLI
VE OSTALXNYE\LEMENTY MOGUT IMETX TAKU@ FORMU:
(FUNKCIQ ARGUMENTY...)
GDE FUNKCIQ |\TO SIMWOL.tOGDA FREJM KONSTRUIRUETSQ PUTEM WYZOWA FUNKCII;EE PER-
WYM ARGUMENTOM QWLQETSQ BUFER,A OSTALXNYMI ARGUMENTAMI |ARGUMENTY.
aNALOGI^NYMI SREDSTWAMI WY MOVETE UKAZATX BUFERY,KOTORYE DOLVNY OTOBRAVATXSQ
W WYBRANNOM OKNE.sM.rAZDEL 16.5 [iSPOLXZOWANIE TOGO VE OKNA],S.143.pOKAZ W TOM
VE OKNE OBLADAET PRIORITETOM PERED POKAZOM W SPECIALXNOM FREJME;SLEDOWATELXNO,ESLI
WY DOBAWILI IMQ BUFERA K special-display-buffer-names,NO\TO NE WOZYMELO NIKAKOGO
\FFEKTA,PROWERXTE,NE ISPOLXZUETSQ LI DLQ\TOGO VE IMENI BUFERA SREDSTWO POKAZA W TOM
VE OKNE.
17.10 uSTANOWKA PARAMETROW FREJMA
|TOT RAZDEL OPISYWAET KOMANDY DLQ IZMENENIQ STILQ OTOBRAVENIQ WYBRANNOGO FREJMA
I EGO POWEDENIQ W OKONNOJ SREDE.
M-x set-foreground-color h RETi CWET hRETi
zADAET CWET DLQ TEKSTA W WYBRANNOM FREJME.
M-x set-background-color h RETi CWET hRETi
zADAET CWET DLQ FONA W WYBRANNOM FREJME.tAKVE IZMENQET CWET TEKSTA W
NA^ERTANII modeline,^TOBY ONO OSTAWALOSX INWERSIEJ NA^ERTANIQ PO UMOL^A-
NI@.
M-x set-cursor-color h RETi CWET hRETi
zADAET CWET KURSORA W WYBRANNOM FREJME.
M-x set-mouse-color h RETi CWET hRETi
zADAET CWET UKAZATELQ MY[I,KOGDA ON NAHODITSQ NAD WYBRANNYM FREJMOM.
M-x set-border-color h RETi CWET hRETi
zADAET CWET RAMKI WYBRANNOGO FREJMA.
M-x list-colors-display
wYWODIT OPREDELENNYE IMENA CWETOW I POKAZYWAET,KAK\TI CWETA WYGLQDQT.
|TO NESKOLXKO MEDLENNAQ KOMANDA.
M-x auto-raise-mode
pEREKL@^AET AWTOMATI^ESKOE PODNQTIE WYBRANNOGO FREJMA.aWTOMATI^ESKOE
PODNQTIE OZNA^AET,^TO WSQKIJ RAZ,KOGDA WY PEREDWIGAETE MY[X W\TOT FREJM,
ON PODNIMAETSQ.
154 rUKOWODSTWO PO GNU EmacsoBRATITE WNIMANIE,\TO SREDSTWO AWTOMATI^ESKOGO PODNQTIQ REALIZOWANO SA-
MIM Emacs.nEKOTORYE PROGRAMMY UPRAWLENIQ OKNAMI TAKVE REALIZU@T AWTO-
PODNQTIE.eSLI WY WKL@^ITE AWTOPODNQTIE DLQ FREJMOW Emacs W WA[EJ PRO-
GRAMME UPRAWLENIQ X-OKNAMI,\TO BUDET RABOTATX,NO NE POD KONTROLEM Emacs,
I SLEDOWATELXNO,auto-raise-mode NE BUDET IGRATX ROLI.
M-x auto-lower-mode
pEREKL@^AET AWTOMATI^ESKOE OPUSKANIE WYBRANNOGO FREJMA.aWTOMATI^ESKOE
OPUSKANIE OZNA^AET,^TO WSQKIJ RAZ,KOGDA WY PEREDWIGAETE MY[X ZA PREDELY
\TOGO FREJMA,ON PERENOSITSQ WNIZ STEKA X-OKON.
kOMANDA auto-lower-mode NE WLIQET NA AWTOOPUSKANIE,REALIZOWANNOE PRO-
GRAMMOJ UPRAWLENIQ X-OKNAMI.~TOBY KONTROLIROWATX\TO,WY DOLVNY IS-
POLXZOWATX SOOTWETSTWU@]IE SREDSTWA SWOEJ PROGRAMMY UPRAWLENIQ OKNAMI.
M-x set-frame-font hRETi [RIFT hRETi
oPREDELQET [RIFT KAK OSNOWNOJ [RIFT W WYBRANNOM FREJME.oSNOWNOJ [RIFT
ISPOLXZUETSQ DLQ WSEGO OTOBRAVAEMOGO W\TOM FREJME TEKSTA,KROME SLU^AEW,
KOGDA DLQ KAKOGO-TO TEKSTA S POMO]X@ NA^ERTANIQ (SM.rAZDEL 17.13 [nA^ERTA-
NIQ],S.155 ) OPREDELEN DRUGOJ [RIFT.sM.rAZDEL A.7 [{RIFT X],S.392,^TOBY
UZNATX O SPOSOBAH PERE^ISLENIQ DOSTUPNYH W WA[EJ SISTEME [RIFTOW.
wY TAKVE MOVETE USTANOWITX OSNOWNOJ [RIFT FREJMA ^EREZ WSPLYWA@]EE ME-
N@.~TOBY WYZWATX\TO MEN@,NAVMITE S-Mouse-1.
w WERSIQH Emacs,KOTORYE ISPOLXZU@T X toolkit,FUNKCII DLQ USTANOWKI CWETA I [RIF-
TOW NE WLIQ@T NA MEN@,TAK KAK MEN@ OTOBRAVA@TSQ SO SWOIMI SOBSTWENNYMI KLASSAMI
WIDVETOW.~TOBY SMENITX WID MEN@,WY DOLVNY ISPOLXZOWATX X-RESURSY (SM.rAZDEL A.13
[rESURSY X],S.396 ).sM.rAZDEL A.8 [cWETA X],S.393,SWEDENIQ O CWETAH,A TAKVErAZ-
DEL A.7 [{RIFT X],S.392,KASA@]IJSQ WOPROSOW O WYBORE [RIFTA.
dLQ POLU^ENIQ INFORMACII O PARAMETRAH I NASTROJKAH FREJMOW SMOTRITERAZDEL
\Frame Parameters"W The Emacs Lisp Reference Manual.
17.11 pOLOSKI PROKRUTKI
pRI ISPOLXZOWANII X,Emacs OBY^NO SOZDAET POLOSKI PROKRUTKI SLEWA OT KAVDOGO OK-
NA.pOLOSKA PROKRUTKI PROHODIT PO WSEJ WYSOTE OKNA,A WNUTRI EE ESTX PRQMOUGOLXNIK,
PREDSTAWLQ@]IJ POKAZANNU@ W DANNYJ MOMENT ^ASTX BUFERA.pOLNAQ WYSOTA POLOSKI
PROKRUTKI PREDSTAWLQET WS@ DLINU BUFERA.
wY MOVETE ISPOLXZOWATX NA POLOSKE PROKRUTKI Mouse-2 (OBY^NO\TO SREDNQQ KNOPKA),
^TOBY PEREDWINUTX ILI PERETA]ITX WNUTRENNIJ PRQMOUGOLXNIK WWERH ILI WNIZ.eSLI
WY PEREMESTITE EGO K WERHU POLOSKI PROKRUTKI,WY UWIDITE NA^ALO BUFERA.eSLI WY
PEREMESTITE EGO K NIZU POLOSKI PROKRUTKI,TO UWIDITE KONEC BUFERA.
pRAWAQ I LEWAQ KNOPKI MY[I PROKRU^IWA@T NA KONTROLIRUEMOE ^ISLO STROK.Mouse-1
(OBY^NO LEWAQ KNOPKA) PEREME]AET STROKU,NA UROWNE KOTOROJ WY ]ELKNULI,K WERHNEMU
KRA@ OKNA.Mouse-3 (OBY^NO PRAWAQ KNOPKA) PEREME]AET WERHN@@ STROKU OKNA WNIZ K
TOMU UROWN@,GDE WY ]ELKNULI.}ELKAQ POSLEDOWATELXNO NA ODNOM MESTE,WY MOVETE
PROKRU^IWATX NA ODNO I TO VE RASSTOQNIE E]E I E]E.
pOMIMO PROKRUTKI,WY TAKVE MOVETE ]ELKNUTX NA POLOSKE PROKRUTKI S POMO]X@
C-Mouse-2,^TOBY RAZBITX OKNO PO GORIZONTALI.rAZBIENIE DELAETSQ W TOJ STROKE,GDE
WY ]ELKNULI.
wY MOVETE WKL@^ITX ILI WYKL@^ITX REVIM Scroll Bar KOMANDOJ M-x scroll-bar-mode.
bEZ ARGUMENTA,ONA PEREKL@^AET ISPOLXZOWANIE POLOSOK PROKRUTKI.s ARGUMENTOM,ONA
WKL@^AET ISPOLXZOWANIE POLOSOK PROKRUTKI TOGDA I TOLXKO TOGDA,KOGDA ARGUMENT POLO-
VITELEN.|TA KOMANDA PRIMENQETSQ KO WSEM FREJMAM,WKL@^AQ TE,^TO E]E BUDUT SOZDANY.
gLAWA 17:fREJMY I X Windows 155dLQ UPRAWLENIQ NA^ALXNOJ USTANOWKOJ REVIMA Scroll Bar WY MOVETE ISPOLXZOWATX X-RESURS
`verticalScrollBars'.sM.rAZDEL A.13 [rESURSY X],S.396.
~TOBY WKL@^ITX ILI WYKL@^ITX POLOSKI PROKRUTKI TOLXKO DLQ WYBRANNOGO FREJMA,
WOSPOLXZUJTESX KOMANDOJ M-x toggle-scroll-bar.
17.12 pOLOSKI MEN@
wY MOVETE WKL@^ITX ILI WYKL@^ITX POKAZ POLOSOK MEN@ S POMO]X@ KOMANDY M-x
menu-bar-mode.bEZ ARGUMENTOW,\TA KOMANDA PEREKL@^AET REVIM Menu Bar;\TO WTORO-
STEPENNYJ REVIM.s ARGUMENTOM,\TA KOMANDA WKL@^AET REVIM Menu Bar,ESLI ARGUMENT
POLOVITELEN,I WYKL@^AET,ESLI ARGUMENT NEPOLOVITELEN.dLQ UPRAWLENIQ NA^ALXNOJ
USTANOWKOJ REVIMA Menu Bar WY MOVETE ISPOLXZOWATX X-RESURS`menuBarLines'.sM.rAZ-
DEL A.13 [rESURSY X],S.396.pROFESSIONALXNYE POLXZOWATELI ^ASTO WYKL@^A@T POLOSKU
MEN@,OSOBENNO NA TEKSTOWYH TERMINALAH,GDE\TO OSWOBOVDAET ODNU DOPOLNITELXNU@ STRO-
KU DLQ TEKSTA.
sM.rAZDEL 1.4 [pOLOSKA MEN@],S.26,DLQ POLU^ENIQ INFORMACII O TOM,KAK WYZYWATX
KOMANDY S POMO]X@ POLOSKI MEN@.
17.13 iSPOLXZOWANIE RAZNYH NA^ERTANIJ
kOGDA WY ISPOLXZUETE Emacs S SISTEMOJ X,WY MOVETE NASTROITX NESKOLXKO STILEJ OTOB-
RAVENIQ ZNAKOW.wY MOVETE KONTROLIROWATX TAKIE ASPEKTY STILQ:[RIFT,CWET TEKSTA,
CWET FONA I POD^ERKIWANIE.Emacs ^ASTI^NO PODDERVIWAET NA^ERTANIQ W MS-DOS,POZWO-
LQQ WAM KONTROLIROWATX DLQ KAVDOGO NA^ERTANIQ CWETA TEKSTA I FONA (SM.pRILOVENIE C
[MS-DOS],S.403 ).
wY UPRAWLQETE STILEM OTOBRAVENIQ PUTEM OPREDELENIQ IMENOWANNYH NA^ERTANIJ.kAV-
DOE NA^ERTANIE MOVET ZADAWATX [RIFT,CWET TEKSTA,CWET FONA I FLAG POD^ERKIWANIQ;NO
ONO NE OBQZANO ZADAWATX IH WSE.zATEM,UKAZYWAQ NA^ERTANIE ILI NA^ERTANIQ DLQ ZADANNOJ
^ASTI TEKSTA W BUFERE,WY UPRAWLQETE WNE[NIM WIDOM\TOGO TEKSTA.
iSPOLXZUEMYJ DLQ KAVDOGO DANNOGO ZNAKA STILX OTOBRAVENIQ OPREDELQETSQ KOMBINACI-
EJ NESKOLXKIH NA^ERTANIJ.l@BOJ ASPEKT STILQ,NE ZADANNYJ PEREKRYTIQMI ILI SWOJSTWA-
MI TEKSTA,PREDOSTAWLQETSQ SAMIM FREJMOM.
rEVIM Enriched,PREDNAZNA^ENNYJ DLQ REDAKTIROWANIQ FORMATIROWANNOGO TEKSTA,
WKL@^AET NESKOLXKO KOMAND I MEN@ DLQ ZADANIQ NA^ERTANIJ.sM.rAZDEL 21.11.4 [nA-
^ERTANIQ W FORMATIROWANNOM TEKSTE],S.200,^TOBY UZNATX,KAK UKAZATX [RIFT DLQ TEKSTA
W BUFERE.sM.rAZDEL 21.11.5 [cWETA W FORMATIROWANNOM TEKSTE],S.201,O ZADANII CWETOW
TEKSTA I FONA.
dLQ IZMENENIQ WNE[NEGO WIDA NA^ERNANIQ ISPOLXZUJTE BUFER NASTROJKI.sM.rAZ-
DEL 31.2.2.3 [nASTROJKA NA^ERTANIJ],S.347.dLQ OPREDELENIQ ATRIBUTOW KONKRETNYH NA-
^ERTANIJ WY TAKVE MOVETE ISPOLXZOWATX X-RESURSY (SM.rAZDEL A.13 [rESURSY X],S.396).
~TOBY UZNATX,KAKIE NA^ERTANIQ OPREDELENY W DANNYJ MOMENT,I KAK ONI WYGLQDQT,
NABERITE M-x list-faces-display.oDNO NA^ERTANIE MOVET WYGLQDETX PO-RAZNOMU W RAZ-
NYH FREJMAH;DANNAQ KOMANDA POKAZYWAET EGO WID W TOM FREJME,GDE WY EE NABRALI.wOT
PERE^ENX STANDARTNYH OPREDELENNYH NA^ERTANIJ:
default |TO NA^ERTANIE ISPOLXZUETSQ DLQ OBY^NOGO TEKSTA,DLQ KOTOROGO NE OPREDELENO
DRUGOE NA^ERTANIE.
modeline |TO NA^ERTANIE ISPOLXZUETSQ DLQ STROK REVIMA.pO UMOL^ANI@ ONO USTANAW-
LIWAETSQ KAK INWERSIQ NA^ERTANIQ default.sM.rAZDEL 11.7 [pEREMENNYE
IZOBRAVENIQ],S.84.
156 rUKOWODSTWO PO GNU Emacshighlight
|TO NA^ERTANIE ISPOLXZUETSQ W RAZLI^NYH REVIMAH DLQ PODSWETKI ^ASTEJ TEK-
STA.
region |TO NA^ERTANIE PRIMENQETSQ DLQ OTOBRAVENIQ WYDELENNOJ OBLASTI (KOGDA
WKL@^EN REVIM Transient Mark |SMOTRITE NIVE).
secondary-selection
|TO NA^ERTANIE ISPOLXZUETSQ DLQ OTOBRAVENIQ WTORI^NOGO WYDELENIQ (SM.rAZ-
DEL 17.2 [wTORI^NOE WYDELENIE],S.149 ).
bold |TO NA^ERTANIE ISPOLXZUET VIRNYJ WARIANT [RIFTA PO UMOL^ANI@,ESLI ON
ESTX.
italic |TO NA^ERTANIE ISPOLXZUET KURSIWNYJ WARIANT [RIFTA PO UMOL^ANI@,ESLI
ON ESTX.
bold-italic
|TO NA^ERTANIE ISPOLXZUET VIRNYJ KURSIWNYJ WARIANT [RIFTA PO UMOL^A-
NI@,ESLI ON ESTX.
underline
|TO NA^ERTANIE POD^ERKIWAET TEKST.
eSLI WKL@^EN REVIM Transient Mark,TEKST OBLASTI PODSWE^IWAETSQ,KOGDA METKA AK-
TIWNA.dLQ\TOGO ISPOLXZUETSQ NA^ERTANIE S IMENEM region;WY MOVETE UPRAWLQTX STILEM
PODSWETKI,MENQQ STILX\TOGO NA^ERTANIQ (SM.rAZDEL 31.2.2.3 [nASTROJKA NA^ERTANIJ],
S.347 ).sM.rAZDEL 8.2 [Transient Mark],S.64,DLQ POLU^ENIQ BOLX[EJ INFORMACII O
REVIME Transient Mark I AKTIWIZACII I DEAKTIWIZACII METKI.
oDIN PROSTOJ SPOSOB ISPOLXZOWATX RAZNYE NA^ERTANIQ | WKL@^ITX REVIM Font Lock.
|TOT WTOROSTEPENNYJ REVIM,WSEGDA LOKALXNYJ DLQ KONKRETNOGO BUFERA,PODBIRAET NA-
^ERTANIQ W SOOTWETSTWII S SINTAKSISOM REDAKTIRUEMOGO TEKSTA.oN MOVET RASPOZNAWATX
KOMMENTARII I STROKI W BOLX[INSTWE QZYKOW;W NEKOTORYH QZYKAH ON UMEET DAVE RASPOZNA-
WATX I PRAWILXNO PODSWE^IWATX RAZLI^NYE DRUGIE WAVNYE KONSTRUKCII.sM.rAZDEL 17.14
[Font Lock],S.156,DLQ POLU^ENIQ BOLX[EJ INFORMACII O REVIME Font Lock I SINTAKSI^E-
SKOJ PODSWETKE.
wY MOVETE RASPE^ATATX BUFER S PODSWETKOJ,KAKU@ WY WIDITE NA\KRANE,S POMO]X@
KOMANDY ps-print-buffer-with-faces.sM.rAZDEL 30.5 [Postscript],S.332.
17.14 rEVIM Font Lock
rEVIM Font Lock |\TO WTOROSTEPENNYJ REVIM,WSEGDA LOKALXNYJ DLQ KAVDOGO BUFE-
RA,KOTORYJ PODSWE^IWAET REDAKTIRUEMYJ WAMI TEKST,ISPOLXZUQ RAZLI^NYE NA^ERTANIQ
W SOOTWETSTWII S SINTAKSISOM TEKSTA.oN MOVET RASPOZNAWATX KOMMENTARII I STROKI
W BOLX[INSTWE QZYKOW;W NEKOTORYH QZYKAH ON MOVET TAKVE RASPOZNAWATX I PRAWILXNO
PODSWE^IWATX RAZLI^NYE DRUGIE WAVNYE KONSTRUKCII | NAPRIMER,IMENA OPREDELQEMYH
FUNKCIJ I ZAREZERWIROWANNYE KL@^EWYE SLOWA.
kOMANDA M-x font-lock-mode WKL@^AET I WYKL@^AET REVIM Font Lock W SOOTWETSTWII
S ARGUMENTOM I PEREKL@^AET,ESLI ARGUMENT NE ZADAN.fUNKCIQ turn-on-font-lock BEZ-
USLOWNO WKL@^AET REVIM Font Lock.|TO POLEZNO W FUNKCIQH-LOWU[KAH REVIMA.nAPRIMER,
^TOBY ZADEJSTWOWATX REVIM Font Lock WSQKIJ RAZ,KOGDA WY REDAKTIRUETE FAJL NA sI,WY
MOVETE SDELATX TAK:
(add-hook'c-mode-hook'turn-on-font-lock)
~TOBY WKL@^ITX REVIM Font Lock AWTOMATI^ESKI WO WSEH REVIMAH,KOTORYE EGO POD-
DERVIWA@T,ISPOLXZUJTE FUNKCI@ global-font-lock-mode,KAK POKAZANO ZDESX:
gLAWA 17:fREJMY I X Windows 157(global-font-lock-mode 1)
kOGDA WY REDAKTIRUETE TEKST W REVIME Font Lock,PODSWETKA W IZMENENNOJ STROKE OB-
NOWLQETSQ AWTOMATI^ESKI.~A]E WSEGO IZMENENIQ NE OKAZYWA@T WLIQNIQ NA PODSWETKU PO-
SLEDU@]IH STROK,NO INOGDA WSE VE WLIQ@T.~TOBY OBNOWITX PODSWETKU NESKOLXKIH STROK,
ISPOLXZUJTE KOMANDU M-g M-g (font-lock-fontify-block).
w NEKOTORYH OSNOWNYH REVIMAH M-g M-g OBNOWLQET PODSWETKU WSEJ TEKU]EJ FUNKCII.
(kAK IMENNO MOVNO NAJTI TEKU]U@ FUNKCI@,UKAZYWAET PEREMENNAQ font-lock-mark-
block-function.) w DRUGIH OSNOWNYH REVIMAH M-g M-g OBNOWLQET PODSWETKU 16-TI STROK
NAD I POD TO^KOJ.
s ^ISLOWYM ARGUMENTOM n,M-g M-g OBNOWLQET PODSWETKU n STROK NAD I POD TO^KOJ,
NEZAWISIMO OT REVIMA.
~TOBY POLU^ITX WSE PREIMU]ESTWA REVIMA Font Lock,WAM PRIDETSQ WYBRATX TAKOJ
[RIFT PO UMOL^ANI@,U KOTOROGO ESTX VIRNYJ,KURSIWNYJ I VIRNYJ KURSIWNYJ WARIAN-
TY;ILI WAM PONADOBITSQ CWETNOJ MONITOR ILI MONITOR,OTOBRAVA@]IJ MNOGO GRADACIJ
SEROGO.
pEREMENNAQ font-lock-maximum-decoration ZADAET PREDPO^TITELXNYJ UROWENX OFORM-
LENIQ DLQ REVIMOW,KOTORYE PREDOSTAWLQ@T NESKOLXKO UROWNEJ.uROWENX 1 |\TO MINI-
MALXNOE OFORMLENIE;NEKOTORYE REVIMY PODDERVIWA@T DO TREH UROWNEJ.oBY^NOE ZNA-
^ENIE PO UMOL^ANI@ OBOZNA^AET\KAK MOVNO BOLX[E".wY MOVETE UKAZATX CELOE ^ISLO,
KOTOROE PRIMENQETSQ KO WSEM REVIMAM,ILI ZADATX RAZNYE ^ISLA DLQ KONKRETNYH REVI-
MOW;NAPRIMER,^TOBY ISPOLXZOWATX UROWENX 1 DLQ REVIMOW C/C++ I UROWENX PO UMOL^ANI@
W OSTALXNYH SLU^AQH,NAPI[ITE TAK:
(setq font-lock-maximum-decoration
'((c-mode.1) (c++-mode.1)))
w BOLX[IH BUFERAH PODSWETKA MOVET BYTX SLI[KOM MEDLENNOJ,PO\TOMU WY MOVETE
PODAWITX EE.pEREMENNAQ font-lock-maximum-size ZADAET RAZMER BUFERA,SWERH KOTOROGO
PODSWETKA NE DELAETSQ.
pODSWETKA KOMMENTARIEW I STROK (ILI\SINTAKSI^ESKAQ"PODSWETKA) OSNOWYWAETSQ NA
ANALIZE SINTAKSI^ESKOJ STRUKTURY TEKSTA BUFERA.w CELQH UWELI^ENIQ SKOROSTI NEKOTO-
RYE REVIMY,WKL@^AQ REVIM C I REVIM Lisp POLAGA@TSQ NA OSOBOE SOGLA[ENIE:OTKRY-
WA@]AQ SKOBKA W SAMOM LEWOM STOLBCE WSEGDA OBOZNA^AET NA^ALO OPREDELENIQ FUNKCII I,
TAKIM OBRAZOM,WSEGDA NAHODITSQ WNE L@BOJ STROKI ILI KOMMENTARIQ.(sM.rAZDEL 22.4
[oPREDELENIQ FUNKCIJ],S.208.) eSLI WY NE SLEDUETE\TOMU SOGLA[ENI@,REVIM Font Lock
MOVET SDELATX NEPRAWILXNU@ PODSWETKU TEKSTA POSLE OTKRYWA@]EJ SKOBKI W LEWOM STOLB-
CE,KOTORAQ POPADAET W STROKU ILI KOMMENTARIJ.
pEREMENNAQ font-lock-beginning-of-syntax-function (WSEGDA LOKALXNAQ DLQ BUFERA)
UKAZYWAET,KAKIM OBRAZOM REVIM Font Lock MOVET NAJTI POZICI@,KOTORAQ GARANTIROWAN-
NO NAHODITSQ WNE L@BOGO KOMMENTARIQ ILI STROKI.w REVIMAH,ISPOLXZU@]IH SOGLA[ENIE
OB OTKRYWA@]EJ SKOBKE W LEWOM STOLBCE,ZNA^ENIE\TOJ PEREMENNOJ PO UMOL^ANI@ |\TO
beginning-of-defun,^TO WELIT REVIMU Font Lock PRIMENQTX\TO SOGLA[ENIE.eSLI WY
USTANOWITE\TU PEREMENNU@ W nil,Font Lock BOLX[E NE STANET POLAGATXSQ NA\TO SOGLA-
[ENIE.|TO POZWOLQET IZBEVATX NEWERNYH REZULXTATOW,NO CENOJ\TOGO BUDET TO,^TO W
NEKOTORYH SLU^AQH DLQ PODSWETKI PRIDETSQ PROHODITX TEKST BUFERA S SAMOGO NA^ALA.
oBRAZCY PODSWETKI Font Lock UVE SU]ESTWU@T DLQ MNOGIH REVIMOW,NO WY MOVETE
ZAHOTETX RASKRASITX ^TO-TO DOPOLNITELXNO.~TOBY DOBAWITX SWOI SOBSTWENNYE OBRAZCY
PODSWETKI DLQ OPREDELENNOGO REVIMA,WY MOVETE ISPOLXZOWATX FUNKCI@ font-lock-add-
keywords.k PRIMERU,^TOBY WYDELITX W KOMMENTARIQH sI SLOWA`FIXME:',ISPOLXZUJTE
\TO:
(font-lock-add-keywords
'c-mode
'(("\\<\\(FIXME\\):"1 font-lock-warning-face t)))
158 rUKOWODSTWO PO GNU Emacs17.15 rEVIMY PODDERVKI Font Lock
rEVIMY PODDERVKI UBYSTRQ@T REVIM Font Lock W BOLX[IH BUFERAH.eSTX DWA REVIMA
PODDERVKI:REVIM Fast Lock I REVIM Lazy Lock.oNI ISPOLXZU@T DWA RAZNYH METODA
USKORENIQ REVIMA Font Lock.
17.15.1 rEVIM Fast Lock
~TOBY SDELATX REVIM Font Lock BOLEE BYSTRYM DLQ BUFEROW,OBRA]A@]IHSQ K BOLX-
[IM FAJLAM,WY MOVETE ISPOLXZOWATX REVIM Fast Lock.rEVIM Fast Lock SOHRANQET IN-
FORMACI@ O [RIFTAH DLQ KAVDOGO FAJLA W OTDELXNOM FAJLE KE[A;WSQKIJ RAZ,KOGDA WY
OBRA]AETESX K FAJLU,ON ZANOWO S^ITYWAET INFORMACI@ O [RIFTAH IZ FAJLA KE[A WMESTO
TOGO,^TOBY WY^ISLQTX [RIFTY DLQ TEKSTA S NULQ.
kOMANDA M-x fast-lock-mode WKL@^AET I WYKL@^AET REVIM Fast Lock W SOOTWETSTWII S
ARGUMENTOM (BEZ ARGUMENTA,REVIM PEREKL@^AETSQ).wY TAKVE MOVETE SDELATX TAK,^TOBY
REVIM Fast Lock WKL@^ALSQ WSQKIJ RAZ,KOGDA WY ISPOLXZUETE REVIM Font Lock,SLEDU@]IM
OBRAZOM:
(setq font-lock-support-mode'fast-lock-mode)
zAPISYWATX FAJL KE[A DLQ MALENXKIH BUFEROW NE IMEET SMYSLA.pO\TOMU ESTX PE-
REMENNAQ,fast-lock-minimum-size,ZADA@]AQ NAIMENX[IJ RAZMER FAJLA,DLQ KOTOROGO
INFORMACIQ O [RIFTAH KE[IRUETSQ.
pEREMENNAQ fast-lock-cache-directories UKAZYWAET,GDE NUVNO RAZME]ATX FAJLY KE-
[A.eE ZNA^ENIE |\TO SPISOK KATALOGOW,KOTORYE BUDUT ISPROBOWANY;"."OZNA^AET TOT VE
KATALOG,GDE FAJL REDAKTIRUETSQ.zNA^ENIE PO UMOL^ANI@ RAWNO (".""~/.emacs-flc"),
^TO WELIT ISPOLXZOWATX TOT VE KATALOG,ESLI\TO WOZMOVNO,INA^E ISPOLXZOWATX KATALOG
`~/.emacs-flc'.
pEREMENNAQ fast-lock-save-others UKAZYWAET,DOLVEN LI REVIM Fast Lock SOHRANQTX
FAJLY KE[A DLQ FAJLOW,^XIM WLADELXCEM QWLQETESX NE WY.oTLI^NOE OT nil ZNA^ENIE
GOWORIT,^TO DOLVEN (I\TO ZNA^ENIE PO UMOL^ANI@).
17.15.2 rEVIM Lazy Lock
~TOBY USKORITX REVIM Font Lock DLQ BOLX[IH BUFEROW,WY MOVETE ISPOLXZOWATX REVIM
Lazy Lock,KOTORYJ UMENX[AET KOLI^ESTWO TEKSTA,PODLEVA]EGO PODSWETKE.w REVIME Lazy
Lock PODSWETKA BUFERA DELAETSQ PO NEOBHODIMOSTI;ONA PROIZWODITSQ TOLXKO DLQ TEH ^ASTEJ
BUFERA,KOTORYE DOLVNY POQWITXSQ NA\KRANE.i PODSWETKA WA[IH IZMENENIJ ZAMEDLENA;
ONA PROIZWODITSQ,TOLXKO KOGDA Emacs BEZDEJSTWOWAL OPREDELENNYJ NEBOLX[OJ PROMEVUTOK
WREMENI.
kOMANDA M-x lazy-lock-mode WKL@^AET I WYKL@^AET REVIM Lazy Lock W SOOTWETSTWII
S ARGUMENTOM (BEZ ARGUMENTA,REVIM PEREKL@^AETSQ).wY TAKVE MOVETE SDELATX TAK,
^TOBY REVIM Lazy Lock WKL@^ALSQ WSQKIJ RAZ,KOGDA WY ISPOLXZUETE REVIM Font Lock,
SLEDU@]IM OBRAZOM:
(setq font-lock-support-mode'lazy-lock-mode)
iZBEGATX PODSWETKI MALENXKIH BUFEROW NE IMEET SMYSLA.mINIMALXNYJ RAZMER BUFERA,
DLQ KOTOROGO PODSWETKA DELAETSQ PO NEOBHODIMOSTI,OPREDELQETSQ PEREMENNOJ lazy-lock-
minimum-size.mENX[IE BUFERY RASCWE^IWA@TSQ SRAZU,KAK W PROSTOM REVIME Font Lock.
kOGDA WY IZMENQETE BUFER,REVIM Lazy Lock OTKLADYWAET PODSWETKU IZMENENNOGO TEK-
STA.pEREMENNAQ lazy-lock-defer-time ZADAET ^ISLO SEKUND,KOTOROE Emacs DOLVEN OSTA-
WATXSQ NEZANQTYM,PREVDE ^EM NA^ATX PODSWETKU WA[IH IZMENENIJ.eSLI EE ZNA^ENIE RAWNO
0,IZMENENIQ PODSWE^IWA@TSQ NEZAMEDLITELXNO,KAK W PROSTOM REVIME Font Lock.
gLAWA 17:fREJMY I X Windows 159oBY^NO REVIM Lazy Lock PODSWE^IWAET STAW[IE WIDIMYMI FRAGMENTY BUFERA PERED
TEM,KAK ONI WPERWYE POKAZYWA@TSQ NA\KRANE.oDNAKO,ESLI ZNA^ENIE lazy-lock-defer-
on-scrolling NE RAWNO nil,WNOWX WIDIMYJ TEKST PODSWE^IWAETSQ TOLXKO POSLE TOGO,KAK
Emacs BEZDEJSTWOWAL lazy-lock-defer-time SEKUND.
w NEKOTORYH REVIMAH,WKL@^AQ REVIM C I REVIM Emacs Lisp,IZMENENIE SODERVIMO-
GO ODNOJ STROKI IZMENQET KONTEKST POSLEDU@]IH STROK I,SLEDOWATELXNO,TU PODSWETKU,
KOTORAQ DOLVNA DLQ NIH ISPOLXZOWATXSQ.oBY^NO WY DOLVNY NABRATX M-g M-g,^TOBY
OBNOWITX PODSWETKU POSLEDU@]IH STROK.oDNAKO,ESLI WY USTANOWITE PEREMENNU@ lazy-
lock-defer-contextually NE RAWNOJ nil,REVIM Lazy Lock DELAET\TO AWTOMATI^ESKI PO
ISTE^ENII lazy-lock-defer-time SEKUND.
kOGDA Emacs BEZDEJSTWUET PRODOLVITELXNOE WREMQ,Lazy Lock PODSWE^IWAET DOPOLNI-
TELXNYE FRAGMENTY BUFERA,KOTORYE E]E NE POKAZANY,NA SLU^AJ,ESLI WY WYNESETE IH NA
\KRAN POZDNEE.|TO NAZYWAETSQ SKRYTOJ PODSWETKOJ.
pEREMENNAQ lazy-lock-stealth-time OPREDELQET,SKOLXKO MINUT Emacs DOLVEN OSTA-
WATXSQ NEZANQTYM,PREVDE ^EM NA^ATX SKRYTU@ PODSWETKU.zNA^ENIE nil OZNA^AET OTSUT-
STWIE SKRYTOJ PODSWETKI.pEREMENNYE lazy-lock-stealth-lines I lazy-lock-stealth-
verbose ZADA@T DIAPAZON I PODROBNOSTX SKRYTOJ PODSWETKI.
17.15.3 Fast Lock ILI Lazy Lock?
wOT PROSTYE UKAZANIQ,KOTORYE POMOGUT WAM WYBRATX ODIN IZ REVIMOW PODDERVKI Font
Lock.
пЂЏ rEVIM Fast Lock IGRAET ROLX TOLXKO PRI OBRA]ENII K FAJLAM I UNI^TOVENII BUFEROW
(I SWQZANNYH SOBYTIJ);SLEDOWATELXNO,REDAKTIROWANIE BUFERA I PROKRUTKA OKNA NE
BYSTREE I NE MEDLENNEE,^EM W PROSTOM REVIME Font Lock.
пЂЏ rEVIM Fast Lock MEDLENNEE PRI S^ITYWANII FAJLOW KE[A,^EM REVIM Lazy Lock PRI
PODSWETKE BUFERA;SLEDOWATELXNO,REVIM Fast Lock MEDLENNEE PRI OBRA]ENII K FAJLAM,
^EM REVIM Lazy Lock.
пЂЏ rEVIM Lazy Lock RABOTAET WO WREMQ PROKRUTKI OKNA,^TOBY RASKRASITX TEKST,WY-
NOSIMYJ NA\KRAN;SLEDOWATELXNO,PROKRUTKA MEDLENNEE,^EM W PROSTOM REVIME Font
Lock.
пЂЏ rEVIM Lazy Lock NE PODSWE^IWAET BUFER W PROCESSE REDAKTIROWANIQ (ON OTKLADYWAET
PODSWETKU IZMENENIJ);SLEDOWATELXNO,REDAKTIROWANIE W NEM BYSTREE,^EM W PROSTOM
REVIME Font Lock.
пЂЏ rEVIM Fast Lock MOVET BYTX SBIT S TOLKU FAJLOM,NAHODQ]IMSQ POD KONTROLEM SI-
STEMY UPRAWLENIQ WERSIQMI;SLEDOWATELXNO,PODSWETKA BUFERA MOVET PROIZWODITXSQ,
DAVE ESLI DLQ\TOGO FAJLA ESTX FAJL KE[A.
пЂЏ rEVIM Fast Lock RABOTAET TOLXKO S BUFERAMI,OBRA]A@]IMISQ K FAJLAM;REVIM Lazy
Lock RABOTAET S L@BYMI BUFERAMI.
пЂЏ rEVIM Fast Lock SOZDAET FAJLY KE[A;REVIM Lazy Lock NE SOZDAET.
pEREMENNAQ font-lock-support-mode UKAZYWAET,KAKOJ IZ\TIH REVIMOW PODDERVKI SLE-
DUET ISPOLXZOWATX;NAPRIMER,^TOBY SKAZATX,^TO W REVIMAH C/C++ ISPOLXZUETSQ REVIM
Fast Lock,A W OSTALXNYH SLU^AQH |REVIM Lazy Lock,USTANOWITE\TU PEREMENNU@ TAK:
(setq font-lock-support-mode
'((c-mode.fast-lock-mode) (c++-mode.fast-lock-mode)
(t.lazy-lock-mode)))
160 rUKOWODSTWO PO GNU Emacs17.16 rEVIM Highlight Changes
iSPOLXZUJTE M-x highlight-changes-mode,^TOBY WKL@^ITX WTOROSTEPENNYJ REVIM,
KOTORYJ POKAZYWAET S POMO]X@ RAZNYH NA^ERTANIJ (W OSNOWNOM CWETOW),KAKIE ^ASTI TEK-
STA BUFERA IZMENQLISX NEDAWNO.
17.17 dRUGIE WOZMOVNOSTI X Windows
sLEDU@]IE KOMANDY POZWOLQ@T WAM SOZDAWATX I UDALQTX FREJMY,A TAKVE DELATX DRU-
GIE OPERACII NAD NIMI:
C-z mINIMIZIRUET WYBRANNYJ FREJM (iconify-or-deiconify-frame).oBY^NOE
ZNA^ENIE C-z,PRIOSTANOWKA Emacs,BESPOLEZNO POD OKONNOJ SISTEMOJ,PO\TO-
MU W DANNOM SLU^AE U\TOGO KL@^A DRUGAQ PRIWQZKA.
eSLI WY WWEDETE\TU KOMANDU W PIKTOGRAMME FREJMA Emacs,ONA DEMINIMIZI-
RUET\TOT FREJM.
C-x 5 0 uDALQET WYBRANNYJ FREJM (delete-frame).|TO NE DOPUSKAETSQ,ESLI ESTX
TOLXKO ODIN FREJM.
C-x 5 o wYBIRAET DRUGOJ FREJM,PODNIMAET EGO I PERENOSIT W NEGO MY[X,^TOBY ON
OSTAWALSQ WYBRANNYM.eSLI WY POWTORQETE\TU KOMANDU,ONA CIKLI^ESKI PRO-
HODIT PO WSEM FREJMAM NA WA[EM TERMINALE.
17.18 nEOKONNYE TERMINALY
eSLI WA[ TERMINAL NE OBLADAET OKONNOJ SISTEMOJ,KOTORU@ PODDERVIWAET Emacs,TO
ON MOVET POKAZYWATX TOLXKO ODIN FREJM Emacs W ODIN MOMENT WREMENI.oDNAKO,WY WSE
VE MOVETE SOZDAWATX NESKOLXKO FREJMOW Emacs I PEREKL@^ATXSQ MEVDU NIMI.nA TAKIH
TERMINALAH PEREKL@^ENIE FREJMOW WO MNOGOM POHOVE NA PEREKL@^ENIE MEVDU RAZLI^NYMI
KONFIGURACIQMI OKON.
~TOBY SOZDATX NOWYJ FREJM I PEREKL@^ITXSQ W NEGO,ISPOLXZUJTE C-x 5 2;DLQ KRU-
GOWOGO PROHODA PO SU]ESTWU@]IM FREJMAM ISPOLXZUJTE C-x 5 o;^TOBY UDALITX TEKU]IJ
FREJM,ISPOLXZUJTE C-x 5 0.
kAVDYJ FREJM IMEET OTLI^ITELXNYJ NOMER.eSLI WA[ TERMINAL MOVET POKAZYWATX
W ODNO WREMQ TOLXKO ODIN FREJM,TO OKOLO NA^ALA STROKI REVIMA POQWLQETSQ NOMER n
TEKU]EGO FREJMA W FORME`Fn'.
`Fn'NA SAMOM DELE |\TO IMQ FREJMA.wY TAKVE MOVETE UKAZATX DRUGOE IMQ,ESLI
HOTITE,I WY MOVETE WYBIRATX FREJMY PO IMENAM.~TOBY ZADATX NOWOE IMQ DLQ TEKU]EGO
FREJMA,ISPOLXZUJTE KOMANDU M-x set-frame-name hRETi IMQ hRETi,A DLQ WYBORA FREJMA W
SOOTWETSTWII S EGO IMENEM ISPOLXZUJTE M-x select-frame-by-name hRETi IMQ hRETi.uKA-
ZANNOE WAMI IMQ POQWLQETSQ W STROKE REVIMA,KOGDA\TOT FREJM STANOWITSQ WYBRANNYM.
gLAWA 18:pODDERVKA RAZNYH QZYKOW 16118 pODDERVKA RAZNYH QZYKOW
Emacs PODDERVIWAET [IROKIJ SPEKTR NABOROW ZNAKOW RAZNYH QZYKOW,WKL@^AQ EWROPEJ-
SKIE WARIANTY LATINSKOGO ALFAWITA,A TAKVE KITAJSKU@,DEWANGARI (HINDI I MARATHI),
\FIOPSKU@,GRE^ESKU@,IPA,QPONSKU@,KOREJSKU@,LAOSSKU@,RUSSKU@,TAJSKU@,TIBET-
SKU@ I WXETNAMSKU@ PISXMENNOSTI.|TI WOZMOVNOSTI BYLI WNESENY IZ IZMENENNOJ WERSII
Emacs,IZWESTNOJ KAK MULE (OT\MULti-lingual Enhancement to GNU Emacs".
1
)
18.1 wWEDENIE W NABORY ZNAKOW RAZNYH QZYKOW
pOLXZOWATELI\TIH SISTEM PISXMA WYRABOTALI MNOGO BOLEE ILI MENEE STANDARTNYH SI-
STEM KODIROWANIQ DLQ HRANENIQ FAJLOW.wNUTRENNE Emacs ISPOLXZUET EDINU@ MNOGOBAJT-
NU@ KODIROWKU,TAK ^TO W NEJ MOVNO PEREME[IWATX ZNAKI IZ WSEH\TIH SISTEM PISXMA W
ODNOM BUFERE ILI STROKE.|TA KODIROWKA PREDSTAWLQET KAVDYJ ZNAK,NE WHODQ]IJ W ASCII,
KAK POSLEDOWATELXNOSTX BAJT W PROMEVUTKE OT 0200 DO 0377.Emacs PEREWODIT IZ\TOJ MNO-
GOBAJTNOJ KODIROWKI W RAZLI^NYE DRUGIE SISTEMY KODIROWANIQ PRI S^ITYWANII I ZAPISI
FAJLOW,PRI OBMENE DANNYMI S PODPROCESSAMI I (W NEKOTORYH SLU^AQH) W KOMANDE C-q (SM.rAZDEL 18.6 [mNOGOBAJTNYE PREOBRAZOWANIQ],S.164).
kOMANDA C-h h (view-hello-file) WYWODIT FAJL`etc/HELLO',KOTORYJ POKAZYWAET,KAK
SKAZATX\ZDRAWSTWUJTE"NA RAZNYH QZYKAH.|TO ILL@STRIRUET RAZLI^NYE WIDY PISXMENNO-
STI.
dAVE W STRANAH,GDE ISPOLXZU@TSQ\TI ZNAKI,NA KLAWIATURAH OBY^NO NET KLAWI[ DLQ
WSEH IZ NIH.pO\TOMU Emacs PODDERVIWAET RAZLI^NYE METODY WWODA,KAK PRAWILO,ODIN
DLQ KAVDOJ PISXMENNOSTI ILI QZYKA,^TOBY IH BYLO UDOBNO WWODITX.
pREFIKSNYJ KL@^ C-x h RETi ISPOLXZUETSQ DLQ KOMAND,KOTORYE IME@T OTNO[ENIE K
MNOGOBAJTNYM ZNAKAM,SISTEMAM KODIROWANIQ I METODAM WWODA.
18.2 wKL@^ENIE PODDERVKI MNOGOBAJTNYH ZNAKOW
wY MOVETE WKL@^ITX ILI WYKL@^ITX PODDERVKU MNOGOBAJTNYH ZNAKOW LIBO DLQ WSEGO
Emacs,LIBO DLQ OTDELXNOGO BUFERA.kOGDA W BUFERE WYKL@^ENY MNOGOBAJTNYE ZNAKI,
KAVDYJ BAJT W NEM PREDSTAWLQET ODIN ZNAK,DAVE KODY OT 0200 DO 0377.sTARYE SREDSTWA
DLQ PODDERVKI EWROPEJSKIH NABOROW ZNAKOW,ISO Latin-1 I ISO Latin-2,RABOTA@T TAK VE,
KAK ONI RABOTALI W Emacs 19,I KROME TOGO,RABOTA@T DLQ DRUGIH NABOROW ZNAKOW ISO 8859.
oDNAKO,^TOBY ISPOLXZOWATX ISO Latin,NEOBQZATELXNO WYKL@^ATX PODDERVKU MNOGO-
BAJTNYH ZNAKOW;MNOGOBAJTNYJ NABOR ZNAKOW Emacs WKL@^AET WSE\TI ZNAKI,I Emacs
MOVET AWTOMATI^ESKI PEREWODITX IZ NEGO W KODY ISO I NAOBOROT.
~TOBY OTREDAKTIROWATX OPREDELENNYJ FAJL W ODNOBAJTNOM PREDSTAWLENII,OBRATITESX
K NEMU ^EREZ find-file-literally.sM.rAZDEL 14.2 [oBRA]ENIE],S.106.~TOBY PREWRA-
TITX BUFER W MNOGOBAJTNOM PREDSTAWLENII W ODNOBAJTNOE PREDSTAWLENIE TEH VE ZNAKOW,
PRO]E WSEGO SOHRANITX SODERVIMOE\TOGO BUFERA W FAJLE,UNI^TOVITX EGO I SNOWA OBRA-
TITXSQ K\TOMU FAJLU S POMO]X@ find-file-literally.wY TAKVE MOVETE ISPOLXZOWATX
C-x
h RETi c (universal-coding-system-argument) I UKAZATX`raw-text'W KA^ESTWE SISTEMY
KODIROWANIQ DLQ OBRA]ENIQ K FAJLU ILI DLQ EGO SOHRANENIQ.sM.rAZDEL 18.9 [zADANIE
KODIROWANIQ],S.168.oBRA]ENIE K FAJLU KAK K`raw-text'NE WYKL@^AET PREOBRAZOWA-
NIE FORMATA,DEKOMPRESSI@ I AWTOMATI^ESKIJ WYBOR REVIMA,W OTLI^IE OT find-file-
literally.1
mNOGOQZYKOWOE RAS[IRENIE GNU Emacs.(pRIM.PEREWOD^IKA)
162 rUKOWODSTWO PO GNU Emacs~TOBY WYKL@^ITX PODDERVKU MNOGOBAJTNYH ZNAKOW PO UMOL^ANI@,ZAPUSTITE Emacs
S KL@^OM`-unibyte'(SM.rAZDEL A.2 [kL@^I ZAPUSKA],S.386) ILI USTANOWITE PEREMEN-
NU@ SREDY EMACS_UNIBYTE.wY TAKVE MOVETE NASTROITX PARAMETR enable-multibyte-
characters ILI,^TO\KWIWALENTNO,PRQMO USTANOWITX PEREMENNU@ default-enable-
multibyte-characters W WA[EM FAJLE INICIALIZACII,\TO DAET W OSNOWNOM TOT VE\FFEKT,
^TO I`-unibyte'.
wO WREMQ INICIALIZACII NE SOZDA@TSQ MNOGOBAJTNYE STROKI IZ ZNA^ENIJ PEREMENNYH
SREDY,WHOVDENIJ FAJLA`/etc/passwd',etc.,KOTORYE SODERVAT NE WHODQ]IE W ASCII WOSX-
MIBITNYE ZNAKI.oDNAKO,FAJL INICIALIZACII OBY^NO S^ITYWAETSQ KAK MNOGOBAJTNYJ |
KAK WSE FAJLY NA lISPE | DAVE ESLI ZADAN KL@^`-unibyte'.~TOBY IZBEVATX SOZDANIQ
MNOGOBAJTNYH STROK IZ NAHODQ]IHSQ W\TOM FAJLE STROK S NE-ASCII-ZNAKAMI,POMESTITE W
EGO PERWOJ STROKE KOMMENTARIJ S TEKSTOM`-*-unibyte:t;-*-'.dLQ FAJLOW INICIALIZACII
DRUGIH PAKETOW,WRODE Gnus,NUVNO SDELATX TO VE SAMOE.
w STROKE REVIMA POKAZANO,WKL@^ENA LI PODDERVKA MNOGOBAJTNYH ZNAKOW W TEKU]EM
BUFERE.eSLI ONA WKL@^ENA,PERED DWOETO^IEM W NA^ALE STROKI REVIMA STOQT DWA ILI
BOLEE ZNAKA (^A]E WSEGO DWA DEFISA).kOGDA MNOGOBAJTNYE ZNAKI NE WKL@^ENY,PERED
DWOETO^IEM ESTX TOLXKO ODIN DEFIS.
18.3 qZYKOWYE SREDY
wSE PODDERVIWAEMYE NABORY ZNAKOW DOPUSTIMY W BUFERAH Emacs,ESLI WKL@^ENY MNOGO-
BAJTNYE ZNAKI;NET NEOBHODIMOSTI WYBIRATX KONKRETNYJ QZYK,^TOBY UWIDETX EGO ZNAKI W
BUFERE Emacs.oDNAKO,WAVNO WYBRATX QZYKOWU@ SREDU,^TOBY POLU^ITX RAZLI^NYE USTA-
NOWKI PO UMOL^ANI@.nA SAMOM DELE QZYKOWAQ SREDA PREDSTAWLQET WYBOR PREDPO^TITELXNOJ
PISXMENNOSTI (W BOLX[EJ ILI MENX[EJ STEPENI),A NE WYBOR QZYKA.
qZYKOWAQ SREDA OPREDELQET,KAKIE SISTEMY KODIROWANIQ RASPOZNA@TSQ PRI S^ITYWANII
TEKSTA (SM.rAZDEL 18.8 [rASPOZNAWANIE KODIROWANIQ],S.166).|TO OTNOSITSQ K FAJLAM,
PRIHODQ]EJ PO^TE,SETEWYM NOWOSTQM I L@BOMU DRUGOMU TEKSTU,KOTORYJ WY S^ITYWAETE W
Emacs.oNA TAKVE MOVET ZADAWATX SISTEMU KODIROWANIQ,ISPOLXZUEMU@ PO UMOL^ANI@ DLQ
SOZDANIQ FAJLA.kAVDAQ QZYKOWAQ SREDA TAKVE UKAZYWAET PRINIMAEMYJ PO UMOL^ANI@
METOD WWODA.
qZYKOWAQ SREDA WYBIRAETSQ KOMANDOJ M-x set-language-environment.nE IMEET ZNA^E-
NIQ,KAKOJ BUFER QWLQETSQ TEKU]IM WO WREMQ ZAPUSKA\TOJ KOMANDY,POTOMU ^TO EE DEJ-
STWIQ PRIMENQ@TSQ GLOBALXNO KO WSEMU SEANSU Emacs.pODDERVIWAEMYE QZYKOWYE SREDY
WKL@^A@T:
Chinese-BIG5,Chinese-CNS,Chinese-GB,Cyrillic-Alternativnyj,Cyrillic-ISO,
Cyrillic-KOI8,Devanagari,English,Ethiopic,Greek,Hebrew,Japanese,Korean,
Lao,Latin-1,Latin-2,Latin-3,Latin-4,Latin-5,Thai,Tibetan I Vietnamese.
nEKOTORYE OPERACIONNYE SISTEMY POZWOLQ@T WAM UKAZATX ISPOLXZUEMYJ WAMI QZYK PU-
TEM USTANOWKI PEREMENNYH SREDY,OPREDELQ@]IH WA[U MESTNOSTX.Emacs MOVET OBRA-
BATYWATX ODIN RASPROSTRANENNYJ ^ASTNYJ SLU^AJ:ESLI NAZWANIE WA[EJ REGIONALXNOJ
USTANOWKI DLQ TIPOW ZNAKOW SODERVIT STROKU`8859-n',Emacs AWTOMATI^ESKI WYBIRAET
SOOTWETSTWU@]U@ QZYKOWU@ SREDU.
~TOBY POLU^ITX SWEDENIQ OB\FFEKTAH OPREDELENNOJ QZYKOWOJ SREDY QZ-SREDA,ISPOLX-
ZUJTE KOMANDU C-h L QZ-SREDA
h RETi (describe-language-environment).|TO SOOB]IT WAM,
DLQ KAKIH QZYKOW POLEZNA DANNAQ QZYKOWAQ SREDA,I PERE^ISLIT PRIHODQ]IE S NEJ NABORY
ZNAKOW,SISTEMY KODIROWANIQ I METODY WWODA.|TA KOMANDA TAKVE POKAZYWAET OBRAZCY
TEKSTA,KOTORYE ILL@STRIRU@T ISPOLXZUEMYE W\TOJ QZYKOWOJ SREDE SISTEMY PISXMA.pO
UMOL^ANI@ ONA OPISYWAET WYBRANNU@ QZYKOWU@ SREDU.
wY MOVETE NASTROITX DLQ SEBQ L@BU@ QZYKOWU@ SREDU S POMO]X@ OBY^NOJ LOWU[KI
set-language-environment-hook.kOMANDA set-language-environment ZAPUSKAET\TU LO-
gLAWA 18:pODDERVKA RAZNYH QZYKOW 163WU[KU POSLE PODGOTOWKI NOWOJ QZYKOWOJ SREDY.fUNKCII\TOJ LOWU[KI MOGUT OPREDELITX
TEKU]U@ QZYKOWU@ SREDU PO ZNA^ENI@ PEREMENNOJ current-language-environment.
dO NA^ALA PODGOTOWKI NOWOJ QZYKOWOJ SREDY,KOMANDA set-language-environment ZA-
PUSKAET LOWU[KU exit-language-environment-hook.|TA LOWU[KA POLEZNA DLQ OTMENY NA-
STROEK,SDELANNYH S POMO]X@ set-language-environment-hook.k PRIMERU,ESLI WY USTA-
NOWILI S ISPOLXZOWANIEM set-language-environment-hook OSOBYE PRIWQZKI KL@^EJ DLQ
KONKRETNOJ QZYKOWOJ SREDY,WAM STOIT SDELATX TAK,^TOBY exit-language-environment-
hook WOSSTANAWLIWALA NORMALXNYE PRIWQZKI.
18.4 mETODY WWODA
mETOD WWODA |\TO RAZNOWIDNOSTX PREOBRAZOWANIQ ZNAKOW,RAZRABOTANNAQ SPECIALXNO
DLQ INTERAKTIWNOGO WWODA.w Emacs,KAK PRAWILO,KAVDYJ QZYK IMEET SWOJ METOD WWODA;
INOGDA NESKOLXKO QZYKOW,W KOTORYH ISPOLXZU@TSQ ODNI I TE VE ZNAKI,MOGUT RAZDELQTX
ODIN METOD WWODA.eSTX NEMNOGO QZYKOW,KOTORYE PODDERVIWA@T NESKOLXKO METODOW WWODA.
w PROSTEJ[EM SLU^AE METOD WWODA RABOTAET ^EREZ OTOBRAVENIE ASCII-BUKW W DRUGOJ
ALFAWIT.tAKIM SPOSOBOM DEJSTWU@T METODY WWODA DLQ GRE^ESKOGO I RUSSKOGO.
bOLEE MO]NYJ SPOSOB |SOSTAWLENIE:PREOBRAZOWANIE POSLEDOWATELXNOSTI ZNAKOW W ODNU
BUKWU.sOSTAWLENIE ISPOLXZUETSQ WO MNOGIH EWROPEJSKIH METODAH WWODA DLQ SOZNANIQ ODNOJ
NE-ASCII-BUKWY IZ POSLEDOWATELXNOSTI,SOSTOQ]EJ IZ BUKWY,ZA KOTOROJ IDET ZNAK AKCENTA
(ILI NAOBOROT).nAPRIMER,NEKOTORYE METODY WWODA PREOBRAZU@T POSLEDOWATELXNOSTX a'W
ODNU BUKWU S AKCENTOM.w\TIH METODAH WWODA NET SOBSTWENNYH SPECIALXNYH KOMAND;WS<,
^TO ONI DELA@T,|KOMPONU@T POSLEDOWATELXNOSTI PE^ATNYH ZNAKOW.
mETODY WWODA DLQ SILLABI^ESKIH SISTEM PISXMA OBY^NO ISPOLXZU@T POSLEDOWATELXNO
OTOBRAVENIE I ZATEM SOSTAWLENIE.tAKIM SPOSOBOM RABOTA@T METODY WWODA DLQ TAJSKOGO
I KOREJSKOGO.sNA^ALA BUKWY OTOBRAVA@TSQ W SIMWOLY OTDELXNYH ZWUKOW ILI METOK TONA;
ZATEM TAKIE POSLEDOWATELXNOSTI,SOSTAWLQ@]IE CELYJ SLOG,OTOBRAVA@TSQ W ODIN ZNAK
SLOGA.
dLQ KITAJSKOGO I QPONSKOGO TREBU@TSQ BOLEE SLOVNYE METODY.w KITAJSKIH METO-
DAH WWODA WY SNA^ALA WWODITE FONETI^ESKOE NAPISANIE KITAJSKOGO SLOWA (W METODE WWODA
chinese-py,POMIMO PRO^IH) ILI POSLEDOWATELXNOSTX ^ASTEJ ZNAKA (METODY WWODA chinese-
4corner,chinese-sw I DRUGIE).pOSKOLXKU ODNO FONETI^ESKOE NAPISANIE OBY^NO SOOTWET-
STWUET MNOGIM RAZLI^NYM KITAJSKIM ZNAKAM,WY DOLVNY WYBRATX ODNU IZ ALXTERNATIW
S POMO]X@ OSOBYH KOMAND Emacs.tAKIE KL@^I,KAK C-f,C-b,C-n,C-p,I CIFRY IME@T
W\TOJ SITUACII OSOBYE OPREDELENIQ,ISPOLXZUEMYE DLQ WYBORA SREDI ALXTERNATIW.
hTABi
WYWODIT BUFER,POKAZYWA@]IJ WSE WOZMOVNYE WARIANTY.
w QPONSKIH METODAH WWODA WY SNA^ALA WWODITE CELOE SLOWO,ISPOLXZUQ FONETI^ESKOE NA-
PISANIE;POTOM,KOGDA\TO SLOWO UVE W BUFERE,Emacs PREOBRAZUET EGO W ODIN ILI NESKOLXKO
ZNAKOW,ISPOLXZUQ BOLX[OJ SLOWARX.oDNO FONETI^ESKOE NAPISANIE SOOTWETSTWUET MNOGIM
PO-RAZNOMU ZAPISANNYM QPONSKIM SLOWAM,PO\TOMU WY DOLVNY WYBRATX ODIN IZ NIH;DLQ
CIKLI^ESKOGO PROHODA PO ALXTERNATIWAM ISPOLXZUJTE C-n I C-p.
iNOGDA POLEZNO OSTANOWITX DEJSTWIE METODA WWODA,^TOBY TOLXKO ^TO WWEDENNYE WAMI
ZNAKI NE SLIWALISX S POSLEDU@]IMI.nAPRIMER,W METODE WWODA latin-1-postfix POSLE-
DOWATELXNOSTX e'KOMBINIRUETSQ W`e'S AKCENTOM.~TO ESLI WY HOTELI WWESTI IH KAK
RAZDELXNYE ZNAKI?
oDIN SPOSOB | NABRATX AKCENT DWAVDY;\TO SPECIALXNOE SREDSTWO DLQ WWODA BUKWY I
AKCENTA RAZDELXNO.nAPRIMER,e''DAET DWA ZNAKA`e''.dRUGOJ SPOSOB | NABRATX POSLE
`e'E]E ODNU BUKWU,KOTORAQ NE SKOMBINIRUETSQ S NEJ,I SRAZU UDALITX EE.nAPRIMER,WY
MOGLI BY NABRATX e e
h DELi',^TOBY POLU^ITX RAZDELXNYE`e'I`''.
e]E ODIN SPOSOB,BOLEE OB]IJ,NO NE TAKOJ LEGKIJ DLQ NABORA,| ISPOLXZOWATX MEV-
DU DWUMQ ZNAKAMI C-\C-\,^TOBY PREDOTWRATITX IH KOMBINIROWANIE.|TO KOMANDA C-\
(toggle-input-method),PRIMENENNAQ DWAVDY.
164 rUKOWODSTWO PO GNU EmacsC-\C-\OSOBENNO POLEZNA W NARA]IWAEMOM POISKE,POSKOLXKU ONA OSTANAWLIWAET OVIDA-
NIE DALXNEJ[IH ZNAKOW DLQ SOSTAWLENIQ I NA^INAET POISK TOGO,^TO WY UVE NABRALI.
pEREMENNYE input-method-highlight-flag I input-method-verbose-flag UPRAWLQ@T
TEM,KAK METODY WWODA POQSNQ@T PROISHODQ]EE.eSLI input-method-highlight-flag NE
RAWNA nil,^ASTI^NAQ POSLEDOWATELXNOSTX PODSWE^IWAETSQ W BUFERE.eSLI input-method-
verbose-flag NE RAWNA nil,W\HO-OBLASTI POKAZYWAETSQ SPISOK WOZMOVNYH SLEDU@]IH
ZNAKOW (NO NE W TOM SLU^AE,KOGDA WY NAHODITESX W MINIBUFERE).
18.5 wYBOR METODA WWODA
C-\wKL@^AET ILI WYKL@^AET ISPOLXZOWANIE WYBRANNOGO METODA WWODA.
C-x hRETi C-\METOD hRETi
wYBIRAET NOWYJ METOD WWODA DLQ TEKU]EGO BUFERA.
C-h I METOD h RETi
C-h C-\METOD h RETi
oPISYWAET METOD WWODA METOD (describe-input-method).pO UMOL^ANI@,ONA
OPISYWAET TEKU]IJ METOD WWODA (ESLI ON ESTX).tAKOE OPISANIE DOLVNO DAWATX
WAM WSE PODROBNOSTI O TOM,KAK ISPOLXZOWATX L@BOJ KONKRETNYJ METOD WWODA.
M-x list-input-methods
wYWODIT PERE^ENX WSEH PODDERVIWAEMYH METODOW WWODA.
~TOBY WYBRATX METOD WWODA DLQ TEKU]EGO BUFERA,ISPOLXZUJTE C-x
hRETi C-\(set-
input-method).|TA KOMANDA S^ITYWAET IMQ METODA WWODA IZ MINIBUFERA;IMQ OBY^NO
NA^INAETSQ S QZYKOWOJ SREDY,DLQ KOTOROJ\TOT METOD PREDNAZNA^ALSQ.w PEREMENNOJ
current-input-method ZAPISYWAETSQ,KAKOJ METOD WWODA BYL WYBRAN.
mETODY WWODA ISPOLXZU@T DLQ OBOZNA^ENIQ ZNAKOW,NE WHODQ]IH W ASCII,RAZLI^NYE PO-
SLEDOWATELXNOSTI ASCII-ZNAKOW.iNOGDA BYWAET POLEZNO WREMENNO WYKL@^ITX METOD WWODA.
~TOBY SDELATX\TO,NABERITE C-\(toggle-input-method).~TOBY OPQTX ZADEJSTWOWATX ME-
TOD WWODA,NABERITE C-\SNOWA.
eSLI WY NAPE^ATAETE C-\,NO METOD WWODA POKA NE WYBRAN,WAS POPROSQT UKAZATX EGO.
|TO IMEET TOT VE\FFEKT,^TO I ISPOLXZOWANIE C-x
h RETi C-\DLQ ZADANIQ METODA WWODA.
wYBOR QZYKOWOJ SREDY OPREDELQET METOD WWODA,ISPOLXZUEMYJ PO UMOL^ANI@.tOGDA WY
MOVETE WYBRATX EGO W TEKU]EM BUFERE,NABIRAQ C-\.pEREMENNAQ default-input-method
ZADAET METOD WWODA,PRINIMAEMYJ PO UMOL^ANI@ (nil OZNA^AET,^TO TAKOGO NET).
nEKOTORYE METODY WWODA DLQ ALFAWITNYH SISTEM PISXMA RABOTA@T PUTEM
OTOBRAVENIQ KLAWIATURY DLQ\MULQCII RAZLI^NYH RASKLADOK,^ASTO ISPOLXZUEMYH
DLQ\TIH SISTEM PISXMA.kAK PRAWILXNO SDELATX\TO OTOBRAVENIE,ZAWISIT OT
DEJSTWITELXNOJ RASKLADKI WA[EJ KLAWIATURY.~TOBY UKAZATX EE,ISPOLXZUJTE KOMANDU
M-x quail-set-keyboard-layout.
~TOBY PROSMOTRETX PERE^ENX WSEH PODDERVIWAEMYH METODOW WWODA,NABERITE M-x
list-input-methods.pERE^ENX SOOB]AET SWEDENIQ O KAVDOM METODE WWODA,WKL@^AQ STRO-
KU,OBOZNA^A@]U@\TOT METOD WWODA W STROKE REVIMA.
18.6 oDNOBAJTNYE I MNOGOBAJTNYE NE-ASCII-ZNAKI
kOGDA WKL@^ENY MNOGOBAJTNYE ZNAKI,ZNAKI S KODAMI OT 0240 (WOSXMIRI^NOE) DO 0377
(WOSXMIRI^NOE) NA SAMOM DELE NEDOPUSTIMY W BUFERE.dOPUSTIMYE PE^ATNYE ZNAKI,NE
WHODQ]IE W ASCII,IME@T KODY,NA^INA@]IESQ OT 0400.
eSLI WY NABIRAETE SAMOWSTAWLQ@]IJSQ ZNAK W NEDOPUSTIMOM DIAPAZONE OT 0240 DO 0377,
Emacs PREDPOLAGAET,^TO WY NAMEREWALISX ISPOLXZOWATX ODIN IZ NABOROW ZNAKOW Latin-n,I
gLAWA 18:pODDERVKA RAZNYH QZYKOW 165PREOBRAZUET EGO W KOD Emacs,PREDSTAWLQ@]IJ\TOT ZNAK Latin-n.wY UKAZYWAETE,KAKOJ
NABOR ZNAKOW ISO NUVNO DLQ\TOGO PRIMENQTX,SWOIM WYBOROM QZYKOWOJ SREDY (SMOTRITE
WY[E).eSLI WY NE UKAZALI SWOJ WYBOR,PO UMOL^ANI@ ISPOLXZUETSQ Latin-1.
tO VE PROISHODIT,KOGDA WY ISPOLXZUETE C-q DLQ WWODA WOSXMIRI^NOGO KODA W\TOM
DIAPAZONE.
18.7 sISTEMY KODIROWANIQ
nOSITELI RAZLI^NYH QZYKOW WYRABOTALI MNOGO BOLEE ILI MENEE STANDARTNYH SISTEM
KODIROWANIQ DLQ IH PREDSTAWLENIQ.Emacs NE ISPOLXZUET\TI SISTEMY KODIROWANIQ WNU-
TRENNE;WMESTO\TOGO,PRI S^ITYWANII DANNYH ON PREOBRAZUET IH IZ RAZLI^NYH SISTEM
KODIROWANIQ W SWO@ WNUTRENN@@,A PRI ZAPISI ON PREOBRAZUET DANNYE IZ WNUTRENNEJ SI-
STEMY KODIROWANIQ W DRUGIE SISTEMY.pREOBRAZOWANIE WOZMOVNO PRI S^ITYWANII I ZAPISI
FAJLOW,OTPRAWKE ILI POLU^ENII DANNYH S TERMINALA I PRI OBMENE DANNYMI S PODPROCES-
SAMI.
Emacs PRISWAIWAET KAVDOJ SISTEME KODIROWANIQ SWOE IMQ.bOLX[INSTWO SISTEM KODI-
ROWANIQ ISPOLXZU@TSQ DLQ ODNOGO QZYKA,I IMQ TAKOJ SISTEMY KODIROWANIQ NA^INAETSQ
S IMENI QZYKA.nEKOTORYE SISTEMY KODIROWANIQ ISPOLXZU@TSQ DLQ NESKOLXKIH QZYKOW;
IH IMENA OBY^NO NA^INA@TSQ S`iso'.eSTX TAKVE SPECIALXNYE SISTEMY KODIROWANIQ no-
conversion,raw-text I emacs-mule,KOTORYE NE DELA@T PREOBRAZOWANIQ PE^ATNYH ZNAKOW
WOOB]E.
pOMIMO PREOBRAZOWANIJ MEVDU RAZNYMI PREDSTAWLENIQMI NE-ASCII-ZNAKOW,SISTEMA KO-
DIROWANIQ MOVET PROIZWODITX PREOBRAZOWANIE POSLEDOWATELXNOSTI\KONEC-STROKI".Emacs
RABOTAET S TREMQ RAZLI^NYMI SOGLA[ENIQMI O TOM,KAK RAZDELQTX STROKI W FAJLE:PERE-
WODOM STROKI,WOZWRATOM KARETKI I PEREWODOM STROKI I PROSTO WOZWRATOM KARETKI.
C-h C KODIROWANIE hRETi
oPISYWAET SISTEMU KODIROWANIQ KODIROWANIE.
C-h C
h RETi
oPISYWAET SISTEMU KODIROWANIQ,ISPOLXZUEMU@ W DANNYJ MOMENT.
M-x list-coding-systems
wYWODIT PERE^ENX WSEH PODDERVIWAEMYH SISTEM KODIROWANIQ.
kOMANDA C-h C (describe-coding-system) WYWODIT SWEDENIQ O KONKRETNOJ SISTEME KO-
DIROWANIQ.wY MOVETE ZADATX IMQ SISTEMY KODIROWANIQ W KA^ESTWE ARGUMENTA;INA^E,S
PUSTYM ARGUMENTOM,ONA OPI[ET SISTEMY KODIROWANIQ,WYBRANNYE W DANNYJ MOMENT DLQ
RAZLI^NYH CELEJ KAK W TEKU]EM BUFERE,TAK I PRINIMAEMYE PO UMOL^ANI@,A TAKVE PERE-
^ENX PRIORITETOW DLQ RASPOZNAWANIQ SISTEM KODIROWANIQ (SM.rAZDEL 18.8 [rASPOZNAWANIE
KODIROWANIQ],S.166 ).
~TOBY WYWESTI PERE^ENX WSEH PODDERVIWAEMYH SISTEM KODIROWANIQ,NABERITE M-x
list-coding-systems.|TOT PERE^ENX DAET INFORMACI@ O KAVDOJ SISTEME KODIROWANIQ,
WKL@^AQ BUKWU,OBOZNA^A@]U@ EE W STROKE REVIMA (SM.rAZDEL 1.3 [sTROKA REVIMA],S.25).
kAVDAQ SISTEMA KODIROWANIQ IZ PERE^ISLENNYH W\TOM SPISKE |KROME no-conversion,
^TO OZNA^AET NE DELATX NIKAKIH PREOBRAZOWANIJ | UKAZYWAET,KAK PREOBRAZOWYWATX PE-
^ATNYE ZNAKI I NUVNO LI\TO DELATX,NO OSTAWLQET WYBOR PREOBRAZOWANIQ KONCA-STROKI DO
RE[ENIQ,OSNOWANNOM NA SODERVIMOM FAJLA.nAPRIMER,ESLI OKAZALOSX,^TO W FAJLE DLQ
RAZDELENIQ STROK ISPOLXZUETSQ POSLEDOWATELXNOSTX WOZWRAT KARETKI-PEREWOD STROKI,BUDET
ISPOLXZOWANO PREOBRAZOWANIE IZ KONCA-STROKI DOS.
kAVDAQ IZ PERE^ISLENNYH SISTEM KODIROWANIQ IMEET TRI WARIANTA,KOTORYE TO^NO UKA-
ZYWA@T,^TO DELATX DLQ PREOBRAZOWANIQ KONCA-STROKI:
166 rUKOWODSTWO PO GNU Emacs...-unix nE PROIZWODITX PREOBRAZOWANIQ KONCA-STROKI;PREDPOLAGAETSQ,^TO W FAJLE DLQ
RAZDELENIQ STROK ISPOLXZUETSQ PEREWOD STROKI.(|TO SOGLA[ENIE OBY^NO IS-
POLXZUETSQ W SISTEMAH Unix I GNU.)
...-dos pREDPOLAGATX,^TO W FAJLE DLQ RAZDELENIQ STROK ISPOLXZUETSQ WOZWRAT
KARETKI-PEREWOD STROKI,I DELATX SOOTWETSTWU@]EE PREOBRAZOWANIE.(|TO
SOGLA[ENIE OBY^NO ISPOLXZUETSQ W SISTEMAH Microsoft.
2
)
...-mac pREDPOLAGATX,^TO W FAJLE DLQ RAZDELENIQ STROK ISPOLXZUETSQ WOZWRAT KA-
RETKI,I DELATX SOOTWETSTWU@]EE PREOBRAZOWANIE.(|TO SOGLA[ENIE OBY^NO
ISPOLXZUETSQ W SISTEME Macintosh.)
|TI WARIANTY SISTEM KODIROWANIQ OPUSKA@TSQ DLQ KRATKOSTI W WYWODE list-coding-
systems,POSKOLXKU ONI POLNOSTX@ PREDSKAZUEMY.nAPRIMER,SISTEMA KODIROWANIQ iso-
latin-1 IMEET WARIANTY iso-latin-1-unix,iso-latin-1-dos I iso-latin-1-mac.
sISTEMA KODIROWANIQ raw-text HORO[A DLQ FAJLOW,KOTORYE SODERVAT W OSNOWNOM
ASCII-TEKST,NO MOGUT WKL@^ATX BAJTY SO ZNA^ENIQMI WY[E 127,KOTORYE NE PREDNAZNA-
^ALISX DLQ KODIROWANIQ NE-ASCII-ZNAKOW.s raw-text,Emacs KOPIRUET\TI BAJTY BEZ
IZMENENIJ I,^TOBY ONI INTERPRETIROWALISX PRAWILXNO,USTANAWLIWAET W TEKU]EM BU-
FERE enable-multibyte-characters RAWNOJ nil.raw-text OBRABATYWAET PREOBRAZOWANIE
KONCA-STROKI OBY^NYM SPOSOBOM,OSNOWYWAQSX NA UWIDENNYH DANNYH,I IMEET TRI OBY^NYH
WARIANTA DLQ UKAZANIQ NUVNOGO PREOBRAZOWANIQ KONCA-STROKI.
w PROTIWOPOLOVNOSTX\TOMU,SISTEMA KODIROWANIQ no-conversion NE ZADAET NIKAKOGO
PREOBRAZOWANIQ KODOW ZNAKOW WOOB]E | NI DLQ ZNA^ENIJ BAJT,WYHODQ]IH ZA PREDELY
ASCII,NI DLQ KONCA-STROKI.|TO POLEZNO DLQ S^ITYWANIQ I ZAPISI DWOI^NYH FAJLOW,
tar-FAJLOW I DRUGIH,KOTORYE NUVNO PROSMATRIWATX BUKWALXNO.oNA TOVE USTANAWLIWAET
enable-multibyte-characters W ZNA^ENIE nil.
pROSTEJ[IJ SPOSOB OTREDAKTIROWATX FAJL BEZ L@BYH PREOBRAZOWANIJ |WOSPOLXZOWATX-
SQ KOMANDOJ M-x find-file-literally.oNA ISPOLXZUET no-conversion,A TAKVE PODAWLQET
DRUGIE SREDSTWA Emacs,KOTORYE MOGLI BY PREOBRAZOWATX SODERVIMOE FAJLA DO TOGO,KAK
WY EGO UWIDITE.sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
sISTEMA KODIROWANIQ emacs-mule POLAGAET,^TO FAJL SODERVIT NE-ASCII-ZNAKI WO WNU-
TRENNEJ KODIROWKE Emacs.oNA OBRABATYWAET PREOBRAZOWANIE KONCA-STROKI,OSNOWYWAQSX
NA UWIDENNYH DANNYH,I IMEET TRI OBY^NYH WARIANTA DLQ UKAZANIQ NUVNOGO PREOBRAZOWA-
NIQ KONCA-STROKI.
18.8 rASPOZNAWANIE SISTEM KODIROWANIQ
~A]E WSEGO Emacs MOVET RASPOZNATX,KAKU@ SISTEMU KODIROWANIQ ON DOLVEN ISPOLXZO-
WATX DLQ L@BOGO DANNOGO FAJLA,|ESLI WY UKAZALI SWOI PREDPO^TENIQ.
nEKOTORYE SISTEMY KODIROWANIQ MOGUT BYTX RASPOZNANY ILI WYDELENY PO TOMU,KAKIE
POSLEDOWATELXNOSTI ZNAKOW POQWLQ@TSQ SREDI DANNYH.oDNAKO,ESTX SISTEMY KODIROWANIQ,
KOTORYE NE MOGUT BYTX RAZLI^ENY,DAVE POTENCIALXNO.nAPRIMER,NET SPOSOBA OTLI^ITX
Latin-1 OT Latin-2;ONI ISPOLXZU@T ODNI I TE VE ZNA^ENIQ BAJT S RAZNYMI SMYSLAMI.
Emacs SPRAWLQETSQ S TAKOJ SITUACIEJ PRI POMO]I SPISKA PRIORITETOW SISTEM KODI-
ROWANIQ.eSLI WY NE UKAZALI,KAKU@ SISTEMU KODIROWANIQ NADO ISPOLXZOWATX,Emacs WO
WREMQ S^ITYWANIQ FAJLA SWERQET DANNYE S KAVDOJ SISTEMOJ KODIROWANIQ,NA^INAQ S PER-
WOJ PO PRIORITETU I PRODWIGAQSX WNIZ PO SPISKU,POKA NE NAJDET SISTEMU KODIROWANIQ,
PODHODQ]U@ DLQ\TOGO FAJLA.zATEM ON PREOBRAZUET SODERVIMOE FAJLA,PREDPOLAGAQ,^TO
ONO PREDSTAWLENO W\TOJ SISTEME KODIROWANIQ.2
oNO TAKVE PREDPISANO DLQ TEL MIME`text/*'I DRUGIH KONTEKSTOW PERESYLKI PO SETI.|TO OTLI^AETSQ
OT FORMATA SINTAKSISA SSYLOK SGML NA^ALO-ZAPISI/KONEC-ZAPISI,KOTORYJ Emacs NE PODDERVIWAET
NAPRQMU@.
gLAWA 18:pODDERVKA RAZNYH QZYKOW 167sPISOK PRIORITETOW SISTEM KODIROWANIQ ZAWISIT OT WYBRANNOJ QZYKOWOJ SREDY (SM.rAZDEL 18.3 [qZYKOWYE SREDY],S.162).nAPRIMER,ESLI WY ISPOLXZUETE FRANCUZSKIJ,WY,
WEROQTNO,ZAHOTITE,^TOBY Emacs PREDPO^ITAL Latin-1,A NE Latin-2;A ESLI WY ISPOLXZU-
ETE ^E[SKIJ | ^TOBY PREDPO^TENIE OTDAWALOSX Latin-2.|TO ODNA IZ PRI^IN ZADAWATX
QZYKOWU@ SREDU.
oDNAKO,WY MOVETE DETALXNO IZMENQTX SPISOK PRIORITETOW S POMO]X@ KOMANDY M-x
prefer-coding-system.|TA KOMANDA S^ITYWAET IMQ SISTEMY KODIROWANIQ W MINIBUFERE
I DOBAWLQET EE W NA^ALO SPISKA PRIORITETOW,TAK,^TOBY EJ OTDAWALOSX PREDPO^TENIE SREDI
OSTALXNYH.eSLI WY PRIMENQETE\TU KOMANDU NESKOLXKO RAZ,PRI KAVDOM ISPOLXZOWANII W
NA^ALO SPISKA PRIORITETOW DOBAWLQETSQ ODIN\LEMENT.
eSLI WY ISPOLXZUETE SISTEMU KODIROWANIQ,KOTORAQ OPREDELQET TIP PREOBRAZOWANIQ PO-
SLEDOWATELXNOSTI KONEC-STROKI,TAKU@ KAK iso-8859-1-dos,TO\TO OZNA^AET,^TO Emacs
DOLVEN POPYTATXSQ RASPOZNATX PREDPO^TITELXNO iso-8859-1 I ISPOLXZOWATX PREOBRAZOWA-
NIE KONCA-STROKI DOS,ESLI iso-8859-1 BYLA RASPOZNANA.
iNOGDA IMQ FAJLA UKAZYWAET NA TO,KAKAQ SISTEMA KODIROWANIQ DOLVNA DLQ NEGO IS-
POLXZOWATXSQ.|TO SOOTWETSTWIE ZADAET PEREMENNAQ file-coding-system-alist.dLQ DO-
BAWLENIQ\LEMENTOW K\TOMU SPISKU ESTX OSOBAQ FUNKCIQ,modify-coding-system-alist.k
PRIMERU,^TOBY WSE`.txt'-FAJLY S^ITYWALISX I ZAPISYWALISX S ISPOLXZOWANIEM SISTEMY
KODIROWANIQ china-iso-8bit,WY MOVETE WYPOLNITX SLEDU@]EE LISPOWSKOE WYRAVENIE:
(modify-coding-system-alist'file"\\.txt\\'"'china-iso-8bit)
pERWYM ARGUMENTOM DOLVEN BYTX file,WTORYM | REGULQRNOE WYRAVENIE,OPREDELQ@]EE,
K KAKIM FAJLAM\TO OTNOSITSQ,A TRETIJ ARGUMENT GOWORIT,KAKU@ SISTEMU KODIROWANIQ
PRIMENQTX DLQ\TIH FAJLOW.
Emacs UZNA<T,KAKOJ WID PREOBRAZOWANIQ KONCA-STROKI SLEDUET ISPOLXZOWATX,OSNOWYWA-
QSX NA SODERVIMOM FAJLA:ESLI ON WIDIT TOLXKO WOZWRATY KARETKI ILI TOLXKO POSLEDOWA-
TELXNOSTI WOZWRAT KARETKI-PEREWOD STROKI,TO WYBIRAET SOOTWETSTWU@]EE PREOBRAZOWANIE.
wY MOVETE PODAWITX AWTOMATI^ESKOE ISPOLXZOWANIE PREOBRAZOWANIQ KONCA-STROKI,USTANO-
WIW PEREMENNU@ inhibit-eol-conversion W ZNA^ENIE nil.
wY MOVETE UKAZATX SISTEMU KODIROWANIQ DLQ KONKRETNOGO FAJLA,PRIMENQQ KONSTRUK-
CI@`-*-...-*-'W NA^ALE\TOGO FAJLA ILI W SPISKE LOKALXNYH PEREMENNYH W EGO KONCE
(SM.rAZDEL 31.2.5 [pEREMENNYE FAJLA],S.351).wY DELAETE\TO,OPREDELQQ ZNA^ENIE DLQ
\PEREMENNOJ"S IMENEM coding.nA SAMOM DELE W Emacs NET PEREMENNOJ coding;WMESTO
USTANOWKI PEREMENNOJ ON ISPOLXZUET ZADANNU@ SISTEMU KODIROWANIQ DLQ\TOGO FAJLA.
nAPRIMER,`-*-mode:C;coding:latin-1;-*-'WELIT ISPOLXZOWATX SISTEMU KODIROWANIQ
Latin-1 I REVIM C.eSLI WY QWNO UKAZALI SISTEMU KODIROWANIQ W FAJLE,ONA PEREKRYWAET
file-coding-system-alist.
pEREMENNAQ auto-coding-alist |\TO SAMYJ SILXNYJ SPOSOB UKAZATX SISTEMU KODIRO-
WANIQ DLQ OPREDELENNYH OBRAZCOW IMEN FAJLOW;\TA PEREMENNAQ DAVE PEREKRYWAET TEGI
`-*-coding:-*-'W SAMOM FAJLE.Emacs ISPOLXZUET\TO SREDSTWO DLQ tar-FAJLOW I ARHIWOW,
^TOBY IZBEVATX O[IBO^NOJ INTERPRETACII TEGA`-*-coding:-*-'W\LEMENTE ARHIWA KAK
OTNOSQ]EGOSQ KO WSEMU ARHIWNOMU FAJLU.
kOGDA Emacs WYBRAL SISTEMU KODIROWANIQ DLQ BUFERA,ON SOHRANQET EE W buffer-file-
coding-system I PO UMOL^ANI@ ISPOLXZUET\TU SISTEMU KODIROWANIQ DLQ OPERACIJ,KO-
TORYE ZAPISYWA@T\TOT BUFER W FAJL.|TO WKL@^AET KOMANDY save-buffer I write-
region.eSLI WY HOTITE ZAPISYWATX FAJLY IZ\TOGO BUFERA,ISPOLXZUQ DRUGU@ SISTEMU
KODIROWANIQ,WY MOVETE UKAZATX DLQ\TOGO FAJLA NOWU@ SISTEMU KODIROWANIQ S POMO]X@
set-buffer-file-coding-system (SM.rAZDEL 18.9 [zADANIE KODIROWANIQ],S.168).
kOGDA WY POSYLAETE SOOB]ENIE S POMO]X@ REVIMA Mail (SM.gLAWA 26 [pOSYLKA PO-
^TY],S.267 ),U Emacs ESTX ^ETYRE RAZNYH SPOSOBA UZNATX SISTEMU KODIROWANIQ DLQ TEKSTA
SOOB]ENIQ.oN PROBUET ZNA^ENIE buffer-file-coding-system,SOBSTWENNOE DLQ\TOGO BU-
FERA,ESLI ONO NE RAWNO nil.iNA^E,ON ISPOLXZUET ZNA^ENIE sendmail-coding-system,ESLI
168 rUKOWODSTWO PO GNU EmacsONO NE RAWNO nil.tRETIJ SPOSOB | ISPOLXZOWATX SISTEMU KODIROWANIQ,PRINIMAEMU@ PO
UMOL^ANI@ DLQ NOWYH FAJLOW,KOTORAQ UPRAWLQETSQ WA[EJ QZYKOWOJ SREDOJ,ESLI ONA NE
nil.eSLI WSE TRI\TI ZNA^ENIQ RAWNY nil,Emacs KODIRUET ISHODQ]U@ PO^TU,ISPOLXZUQ
SISTEMU KODIROWANIQ Latin-1.
kOGDA WY POLU^AETE NOWU@ PO^TU W Rmail,KAVDOE SOOB]ENIE AWTOMATI^ESKI PEREWODIT-
SQ IZ TOJ SISTEMY KODIROWANIQ,W KOTOROJ ONO BYLO NAPISANO | KAK ESLI BY ONO BYLO
OTDELXNYM FAJLOM.pRI\TOM ISPOLXZUETSQ ZADANNYJ WAMI SPISOK PRIORITETOW SISTEM
KODIROWANIQ.eSLI W SOOB]ENII W FORMATE MIME UKAZAN NABOR ZNAKOW,Rmail POD^INQETSQ
\TOMU UKAZANI@,ESLI rmail-decode-mime-charset NE RAWNA nil.
dLQ S^ITYWANIQ I SOHRANENIQ SAMIH Rmail-FAJLOW Emacs ISPOLXZUET SISTEMU KODIRO-
WANIQ,ZADAWAEMU@ PEREMENNOJ rmail-file-coding-system.zNA^ENIE PO UMOL^ANI@ RAWNO
nil,^TO OZNA^AET,^TO Rmail-FAJLY NE PEREWODQTSQ (ONI S^ITYWA@TSQ I SOHRANQ@TSQ WO
WNUTRENNEJ KODIROWKE Emacs).
18.9 zADANIE SISTEMY KODIROWANIQ
w SLU^AQH,KOGDA Emacs NE MOVET AWTOMATI^ESKI PODOBRATX PRAWILXNU@ SISTEMU KODI-
ROWANIQ,WY MOVETE UKAZATX EE QWNO S POMO]X@ TAKIH KOMAND:
C-x
hRETi f KODIROWANIE hRETi
iSPOLXZOWATX SISTEMU KODIROWANIQ KODIROWANIE DLQ FAJLA,K KOTOROMU OBRA-
]AETSQ TEKU]IJ BUFER.
C-x h RETi c KODIROWANIE hRETi
zADAET SISTEMU KODIROWANIQ KODIROWANIE DLQ NEPOSREDSTWENNO SLEDU@]EJ KO-
MANDY.
C-x h RETi k KODIROWANIE hRETi
iSPOLXZOWATX SISTEMU KODIROWANIQ KODIROWANIE DLQ WWODA S KLAWIATURY.
C-x
h RETi t KODIROWANIE hRETi
iSPOLXZOWATX SISTEMU KODIROWANIQ KODIROWANIE DLQ WYWODA NA TERMINAL.
C-x
h RETi p KOD-WWODA hRETi KOD-WYWODA hRETi
iSPOLXZOWATX SISTEMY KODIROWANIQ KOD-WWODA I KOD-WYWODA DLQ WWODA I WYWODA
PODPROCESSA TEKU]EGO BUFERA.
C-x h RETi x KODIROWANIE hRETi
iSPOLXZOWATX SISTEMU KODIROWANIQ KODIROWANIE DLQ PEREDA^I WYDELENIJ DRU-
GIM PROGRAMMAM I POLU^ENIQ IH IZ DRUGIH PROGRAMM ^EREZ OKONNU@ SISTEMU.
C-x h RETi X KODIROWANIE hRETi
iSPOLXZOWATX SISTEMU KODIROWANIQ KODIROWANIE DLQ PEREDA^I ILI POLU^ENIQ
ODNOGO WYDELENIQ |SLEDU@]EGO |W OKONNU@ SISTEMU ILI IZ NEE.
kOMANDA C-x
h RETi f (set-buffer-file-coding-system) ZADAET SISTEMU KODIROWANIQ
FAJLA DLQ TEKU]EGO BUFERA | DRUGIMI SLOWAMI,UKAZYWAET,KAKU@ SISTEMU KODIROWA-
NIQ SLEDUET ISPOLXZOWATX DLQ SOHRANENIQ ILI POWTORNOGO S^ITYWANIQ\TOGO FAJLA.wY
ZADAETE SISTEMU KODIROWANIQ W MINIBUFERE.tAK KAK\TA KOMANDA PRIMENQETSQ TOLXKO K
FAJLU,K KOTOROMU WY UVE OBRATILISX,ONA WLIQET LI[X NA SPOSOB SOHRANENIQ\TOGO FAJLA.
dRUGOJ SPOSOB UKAZATX SISTEMU KODIROWANIQ DLQ FAJLA |SDELATX\TO WO WREMQ OBRA]E-
NIQ.sNA^ALA ISPOLXZUJTE KOMANDU C-x hRETi c (universal-coding-system-argument);\TA
KOMANDA S^ITYWAET W MINIBUFERE IMQ SISTEMY KODIROWANIQ.pOSLE WYHODA IZ MINIBUFERA
ZADANNAQ SISTEMA KODIROWANIQ PRIMENQETSQ DLQ NEPOSREDSTWENNO SLEDU@]EJ KOMANDY.
tAKIM OBRAZOM,ESLI NEPOSREDSTWENNO SLEDU@]EJ KOMANDOJ BUDET,SKAVEM,C-x C-f,TO
ONA S^ITAET FAJL,ISPOLXZUQ UKAZANNU@ SISTEMU KODIROWANIQ (I ZAPOMINAET\TU SISTEMU
gLAWA 18:pODDERVKA RAZNYH QZYKOW 169KODIROWANIQ DLQ POSLEDU@]EJ ZAPISI FAJLA).iLI,ESLI SLEDU@]EJ KOMANDOJ BUDET C-x
C-w,ONA ZAPI[ET FAJL,ISPOLXZUQ\TU SISTEMU KODIROWANIQ.dRUGIE KOMANDY RABOTY S
FAJLAMI,NA KOTORYE DEJSTWUET ZADANNAQ SISTEMA KODIROWANIQ,WKL@^A@T C-x C-i I C-x
C-v,A TAKVE WARIANTY C-x C-f S POKAZOM W DRUGOM OKNE.
C-x hRETi c TAKVE WLIQET NA PROGRAMMY,NA^INA@]IE PODPROCESSY,WKL@^AQ M-x shell
(SM.rAZDEL 30.2 [oBOLO^KA],S.323).
oDNAKO,ESLI NEPOSREDSTWENNO SLEDU@]AQ KOMANDA NE ISPOLXZUET SISTEMU KODIROWANIQ,
TO C-x h RETi c W REZULXTATE NE IMEET\FFEKTA.
pROSTOJ SPOSOB OBRATITXSQ K FAJLU BEZ PREOBRAZOWANIQ PREDOSTAWLQET KOMANDA M-x
find-file-literally.sM.rAZDEL 14.2 [oBRA]ENIE],S.106.
pEREMENNAQ default-buffer-file-coding-system OPREDELQET WYBOR SISTEMY KODIROWA-
NIQ DLQ WNOWX SOZDAWAEMYH FAJLOW.oNA PRIMENQETSQ,KOGDA WY OBRA]AETESX K NOWOMU
FAJLU ILI SOZDAETE BUFER I ZATEM SOHRANQETE EGO W FAJL.pRI WYBORE QZYKOWOJ SREDY\TA
PEREMENNAQ KAK PRAWILO USTANAWLIWAETSQ W PODHODQ]EE ZNA^ENIE PO UMOL^ANI@.
kOMANDA C-x
h RETi t (set-terminal-coding-system) ZADAET SISTEMU KODIROWANIQ DLQ
TERMINALXNOGO WYWODA.eSLI WY ZADADITE SISTEMU KODIROWANIQ DLQ TERMINALXNOGO WYWO-
DA,WSE WYWODIMYE NA TERMINAL ZNAKI PEREWODQTSQ W\TU SISTEMU.
|TO SREDSTWO POLEZNO DLQ NEKOTORYH TEKSTOWYH TERMINALOW,SDELANNYH S PODDERVKOJ
KAKOGO-TO KONKRETNOGO QZYKA ILI NABORA ZNAKOW | NAPRIMER,EWROPEJSKIH TERMINALOW,
PODDERVIWA@]IH ODIN IZ NABOROW ZNAKOW ISO Latin.pRI ISPOLXZOWANII MNOGOBAJTNOGO
TEKSTA WAM NUVNO UKAZATX SISTEMU KODIROWANIQ,^TOBY Emacs ZNAL,KAKIE ZNAKI\TOT
TERMINAL MOVET NA SAMOM DELE OBRABOTATX.
pO UMOL^ANI@ WYWOD NA TERMINAL NE PREOBRAZUETSQ SOWSEM,ESLI TOLXKO Emacs NE MOVET
PREDUGADATX PRAWILXNU@ SISTEMU KODIROWANIQ DLQ WA[EGO TIPA TERMINALA.
kOMANDA C-x h RETi k (set-keyboard-coding-system) ZADAET SISTEMU KODIROWANIQ DLQ
WWODA S KLAWIATURY.pEREWOD KODOW WWODIMYH S KLAWIATURY ZNAKOW POLEZEN DLQ TERMINA-
LOW,KLAWI[I KOTORYH POSYLA@T GRAFI^ESKIE NE-ASCII-ZNAKI,NAPRIMER,DLQ NEKOTORYH
TERMINALOW,RAZRABOTANNYH DLQ KODIROWKI ISO Latin-1 ILI EE PODMNOVESTW.
pO UMOL^ANI@ WWOD S KLAWIATURY NE PEREWODITSQ.
mEVDU ISPOLXZOWANIEM SISTEMY KODIROWANIQ DLQ PEREWODA WWODA S KLAWIATURY I IS-
POLXZOWANIEM METODA WWODA ESTX NEKOE SHODSTWO:W OBOIH SLU^AQH OPREDELQ@TSQ WWODIMYE
S KLAWIATURY POSLEDOWATELXNOSTI,PREWRA]A@]IESQ S ODIN ZNAK.oDNAKO,METODY WWO-
DA RAZRABOTANY DLQ UDOBNOGO INTERAKTIWNOGO ISPOLXZOWANIQ L@DXMI,I PEREWODIMYE IMI
POSLEDOWATELXNOSTI OBY^NO QWLQ@TSQ POSLEDOWATELXNOSTQMI PE^ATNYH ASCII-ZNAKOW.sI-
STEMY KODIROWANIQ KAK PRAWILO PEREWODQT POSLEDOWATELXNOSTI NEGRAFI^ESKIH ZNAKOW.
kOMANDA C-x h RETi x (set-selection-coding-system) ZADAET SISTEMU KODIROWANIQ DLQ
PEREDA^I WYDELENNOGO TEKSTA OKONNOJ SISTEME I DLQ POLU^ENIQ TEKSTA WYDELENIJ,SDE-
LANNYH W DRUGIH PRILOVENIQH.|TA KOMANDA OTNOSITSQ KO WSEM BUDU]IM WYDELENIQM,
POKA WY NE OTMENITE\TO,SNOWA PRIMENIW\TU KOMANDU.kOMANDA C-x hRETi X (set-next-
selection-coding-system) ZADAET SISTEMU KODIROWANIQ DLQ SLEDU@]EGO WYDELENIQ,SDE-
LANNOGO W Emacs ILI S^ITANNOGO Emacs.
kOMANDA C-x
h RETi p (set-buffer-process-coding-system) ZADAET SISTEMU KODIROWANIQ
DLQ WWODA I WYWODA PODPROCESSA.|TA KOMANDA OTNOSITSQ K TEKU]EMU BUFERU;KAK PRAWI-
LO,KAVDYJ PODPROCESS IMEET SOBSTWENNYJ BUFER,SLEDOWATELXNO,WY MOVETE UKAZYWATX
PEREKODIROWKU WWODA I WYWODA PROCESSA,DAWAQ\TU KOMANDU W SOOTWETSTWU@]EM BUFERE.
pO UMOL^ANI@ WWOD I WYWOD PROCESSOW NE PEREWODITSQ SOWSEM.
pEREMENNAQ file-name-coding-system ZADAET SISTEMU KODIROWANIQ,ISPOLXZUEMU@ DLQ
KODIROWANIQ IMEN FAJLOW.eSLI WY USTANOWITE EE RAWNOJ IMENI SISTEMY KODIROWANIQ
(\TO LISPOWSKIJ SIMWOL ILI STROKA),Emacs STANET KODIROWATX IMENA FAJLOW PRI WSEH
FAJLOWYH OPERACIQH,ISPOLXZUQ\TU SISTEMU KODIROWANIQ.|TO POZWOLQET ISPOLXZOWATX W
170 rUKOWODSTWO PO GNU EmacsIMENAH FAJLOW NE-ASCII-ZNAKI,ILI PO KRAJNEJ MERE TE NE-ASCII-ZNAKI,KOTORYE MOGUT
BYTX ZAKODIROWANY TEKU]EJ SISTEMOJ KODIROWANIQ.
eSLI file-name-coding-system RAWNA nil,Emacs ISPOLXZUET SISTEMU KODIROWANIQ PO
UMOL^ANI@,OPREDELQEMU@ QZYKOWOJ SREDOJ.w QZYKOWOJ SREDE,PRINIMAEMOJ PO UMOL^A-
NI@,L@BYE ZNAKI W IMENAH FAJLOW,NE WHODQ]IE W ASCII,NIKAK OSOBENNO NE KODIRU@TSQ;
ONI POQWLQ@TSQ W FAJLOWOJ SISTEME WO WNUTRENNEM PREDSTAWLENII Emacs.
wNIMANIE:ESLI WY IZMENITE file-name-coding-system (ILI QZYKOWU@ SREDU) W SE-
REDINE SEANSA Emacs,WY MOVETE STOLKNUTXSQ S PROBLEMAMI,ESLI WY UVE OBRATILISX K
FAJLAM,^XI IMENA BYLI ZAKODIROWANY S ISPOLXZOWANIEM STAROJ SISTEMY KODIROWANIQ I
NE MOGUT BYTX PREDSTAWLENY (ILI KODIRU@TSQ INA^E) W NOWOJ SISTEME KODIROWANIQ.eSLI
WY POPYTAETESX SOHRANITX ODIN IZ TAKIH BUFEROW POD IMENEM FAJLA,K KOTOROMU ON OBRA-
]AETSQ,MOVET BYTX ISPOLXZOWANO NEPRAWILXNOE IMQ ILI MOVET WOZNIKNUTX O[IBKA.eSLI
SLU^AETSQ TAKAQ PROBLEMA,ISPOLXZUJTE C-x C-w,^TOBY ZADATX DLQ\TOGO BUFERA NOWOE IMQ
FAJLA.
18.10 nABORY [RIFTOW
{RIFT X Windows OBY^NO OPREDELQET NA^ERTANIE DLQ ODNOGO ALFAWITA ILI PISXMEN-
NOSTI.pO\TOMU DLQ OTOBRAVENIQ POLNOGO SPEKTRA WSEH SISTEM PISXMA,KOTORYE PODDER-
VIWAET Emacs,NEOBHODIMO MNOVESTWO [RIFTOW.w Emacs TAKOE MNOVESTWO NAZYWAETSQ
NABOROM [RIFTOW.nABOR [RIFTOW OPREDELQETSQ KAK SPISOK [RIFTOW,KAVDYJ IZ KOTORYH
PREDNAZNA^AETSQ DLQ RABOTY S ODNIM DIAPAZONOM KODOW ZNAKOW.
kAVDYJ NABOR [RIFTOW IMEET IMQ,KAK I OTDELXNYJ [RIFT.dOSTUPNYE [RIFTY OPRE-
DELQ@TSQ X-SERWEROM;NABORY [RIFTOW OPREDELQ@TSQ WNUTRI SAMOGO Emacs.kAK TOLXKO
WY OPREDELILI NABOR [RIFTOW,WY MOVETE ISPOLXZOWATX EGO W Emacs,UKAZYWAQ EGO IMQ W
L@BOM KONTEKSTE,GDE WY MOGLI BY NAPISATX ODIN [RIFT.rAZUMEETSQ,NABORY [RIFTOW
Emacs MOGUT SODERVATX TOLXKO TE [RIFTY,KOTORYE PODDERVIWA@TSQ X-SERWEROM;ESLI
NEKOTORYE ZNAKI POQWLQ@TSQ NA\KRANE KAK PUSTYE PRQMOUGOLXNIKI,\TO OZNA^AET,^TO W
ISPOLXZUEMOM NABORE [RIFTOW NET [RIFTA DLQ\TIH ZNAKOW.
Emacs SOZDAET DWA NABORA [RIFTOW AWTOMATI^ESKI:STANDARTNYJ NABOR [RIFTOW I
STARTOWYJ NABOR [RIFTOW.sTANDARTNYJ NABOR [RIFTOW SKOREE WSEGO SODERVIT [RIFTY
DLQ [IROKOGO SPEKTRA ZNAKOW,NE WHODQ]IH W ASCII;ODNAKO,PO UMOL^ANI@ Emacs ISPOLX-
ZUET NE EGO.(pO UMOL^ANI@ Emacs STARAETSQ NAJTI [RIFT,KOTORYE IMEET VIRNYJ I
KURSIWNYJ WARIANTY.) wY MOVETE UKAZATX,^TO NUVNO ISPOLXZOWATX STANDARTNYJ NABOR
[RIFTOW,S POMO]X@ KL@^A`-fn'ILI S POMO]X@ X-RESURSA`Font'(SM.rAZDEL A.7 [{RIFT
X],S.392 ).nAPRIMER,
emacs -fn fontset-standard
nABOR [RIFTOW NE OBQZAN ZADAWATX [RIFT DLQ KAVDOGO KODA.eSLI NABOR [RIFTOW NE
OPREDELQET [RIFT DLQ NEKOTOROGO ZNAKA,ILI EGO ON OPREDELQET [RIFT,KOTOROGO NET W
WA[EJ SISTEME,TO ON NE MOVET PRAWILXNO OTOBRAZITX\TOT ZNAK.wMESTO\TOGO ZNAKA BUDET
POKAZAN PUSTOJ PRQMOUGOLXNIK.
wYSOTA I [IRINA NABORA [RIFTOW OPREDELQ@TSQ ASCII-ZNAKAMI (TO ESTX [RIFTAMI,
ISPOLXZUEMYMI W\TOM NABORE DLQ ASCII-ZNAKOW).eSLI DRUGOJ [RIFT W\TOM NABORE IMEET
INU@ WYSOTU ILI [IRINU,TO ZNAKI,PRIPISANNYE K\TOMU [RIFTU,OBREZA@TSQ DO RAZMERA
NABORA [RIFTOW.eSLI highlight-wrong-size-font OTLI^NA OT nil,TO WOKRUG ZNAKOW S
NEPRAWILXNYM RAZMEROM E]E WYWODITSQ PRQMOUGOLXNIK.
18.11 oPREDELENIE NABOROW [RIFTOW
Emacs SOZDAET STANDARTNYJ NABOR [RIFTOW AWTOMATI^ESKI W SOOTWETSTWII S standard-
fontset-spec.iMENEM\TOGO NABORA QWLQETSQ
gLAWA 18:pODDERVKA RAZNYH QZYKOW 171-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard
ILI PROSTO`fontset-standard'DLQ KRATKOSTI.
vIRNYJ,KURSIWNYJ I VIRNYJ KURSIWNYJ WARIANTY STANDARTNOGO NABORA [RIFTOW
SOZDA@TSQ AWTOMATI^ESKI.iH IMENA IME@T`bold'WMESTO`medium',ILI`i'WMESTO`r'ILI
I TO,I DRUGOE.
eSLI WY ZADALI ASCII-[RIFT PO UMOL^ANI@ S POMO]X@ RESURSA`Font'ILI ARGUMENTA
`-fn',Emacs AWTOMATI^ESKI GENERIRUET IZ NEGO NABOR [RIFTOW.|TO STARTOWYJ NABOR
[RIFTOW,I EGO IMQ |fontset-startup.Emacs DELAET\TO,ZAMENQQ W IMENI [RIFTA POLQ
foundry,family,addstyle I averagewidth NA`*',ZAMENQQ charsetregistry NA`fontset',A
POLE charset encoding | NA`startup'I ISPOLXZUQ ZATEM POLU^ENNU@ STROKU DLQ ZADANIQ
NABORA [RIFTOW.
k PRIMERU,ESLI WY ZAPUSTILI Emacs TAKIM OBRAZOM:
emacs -fn"*courier-medium-r-normal-14-140-*-iso8859-1"
Emacs GENERIRUET SLEDU@]IJ NABOR [RIFTOW I ISPOLXZUET EGO DLQ PERWOGO FREJMA:
-*-*-medium-r-normal-*-14-140-*-*-*-*-fontset-startup
w X-RESURSE`Emacs.Font'WY MOVETE UKAZYWATX NABOR [RIFTOW,TO^NO TAK VE,KAK I
OBY^NOE IMQ [RIFTA.nO BUDXTE WNIMATELXNY I NE ZADAWAJTE NABOR [RIFTOW W RESUR-
SE S SIMWOLAMI PODSTANOWKI,KAK`Emacs*Font',| TAKAQ SPECIFIKACIQ PRIMENQETSQ DLQ
RAZLI^NYH CELEJ,NAPRIMER DLQ MEN@,A MEN@ NE MOVET OBRA]ATXSQ S NABORAMI [RIFTOW.
wY MOVETE OPREDELITX DOPOLNITELXNYE NABORY [RIFTOW,ISPOLXZUQ X-RESURSY S IME-
NAMI`Fontset-n',GDE n | ^ISLO,OTS^ITYWAEMOE OT NULQ.zNA^ENIE\TOGO RESURSA DOLVNO
IMETX TAKU@ FORMU:
[ABLON-[RIFTA,[IMQ-KODIROWKI:IMQ-[RIFTA]...
[ABLON-[RIFTA,KROME DWUH POSLEDNIH POLEJ,DOLVEN IMETX FORMU STANDARTNOGO IMENI
X-[RIFTA.dWA POSLEDNIH POLQ DOLVNY IMETX WID`fontset-PSEWDONIM'.
u NABORA [RIFTOW ESTX DWA IMENI,ODNO DLINNOE,A DRUGOE KOROTKOE.dLINNOE IMQ |
\TO [ABLON-[RIFTA.kOROTKOE IMQ |\TO`fontset-PSEWDONIM'.wY MOVETE SSYLATXSQ NA
NABOR [RIFTOW PO L@BOMU IZ\TIH IMEN.
kONSTRUKCIQ`KODIROWKA:[RIFT'OPREDELQET,KAKOJ [RIFT DOLVEN ISPOLXZOWATXSQ (W
\TOM NABORE) DLQ ODNOGO KONKRETNOGO NABORA ZNAKOW.zDESX KODIROWKA |\TO IMQ NABORA
ZNAKOW,A [RIFT |\TO ISPOLXZUEMYJ DLQ NEGO [RIFT.pRI OPREDELENII ODNOGO NABORA
[RIFTOW WY MOVETE PRIMENQTX\TU KONSTRUKCI@ L@BOE ^ISLO RAZ.
dLQ OSTALXNYH NABOROW ZNAKOW Emacs WYBIRAET [RIFT,OSNOWYWAQSX NA [ABLONE-
[RIFTA.oN ZAMENQET`fontset-PSEWDONIM'NA ZNA^ENIQ,OPISYWA@]IE NABOR ZNAKOW.dLQ
[RIFTA ZNAKOW ASCII,`fontset-PSEWDONIM'ZAMENQETSQ NA`ISO8859-1'.
kROME TOGO,KOGDA NESKOLXKO POSLEDOWATELXNYH POLEJ QWLQ@TSQ SIMWOLAMI PODSTANOWKI,
Emacs SVIMAET IH W ODIN SIMWOL.|TO DELAETSQ DLQ PREDOTWRA]ENIQ ISPOLXZOWANIQ AWTO-
MATI^ESKI MAS[TABIROWANNYH [RIFTOW.{RIFTY,POLU^AEMYE MAS[TABIROWANIEM BOLEE
KRUPNOGO [RIFTA,NEPRIGODNY DLQ REDAKTIROWANIQ,A MAS[TABIROWANIE MELKOGO [RIFTA
BESSMYSLENNO,POTOMU ^TO MELKIJ [RIFT LU^[E ISPOLXZOWATX S EGO SOBSTWENNYM RAZMEROM,
^TO Emacs I DELAET.
tAKIM OBRAZOM,ESLI [ABLON-[RIFTA ZADAN TAK:
-*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24
TO SPECIFIKACIQ [RIFTA DLQ ASCII-ZNAKOW BYLA BY TAKOJ:
-*-fixed-medium-r-normal-*-24-*-ISO8859-1
A SPECIFIKACIQ [RIFTA DLQ KITAJSKIH ZNAKOW GB2312 TAKOJ:
-*-fixed-medium-r-normal-*-24-*-gb2312*-*
u WAS MOVET NE OKAZATXSQ KITAJSKIH [RIFTOW,SOOTWETSTWU@]IH PRIWEDENNOJ WY[E
SPECIFIKACII.bOLX[INSTWO DISTRIBUTIWOW X Windows WKL@^A@T TOLXKO KITAJSKIE
172 rUKOWODSTWO PO GNU Emacs[RIFTY S`song ti'ILI`fangsong ti'W POLE family.w TAKOM SLU^AE`Fontset-n'MOV-
NO ZADATX TAKIM OBRAZOM:
Emacs.Fontset-0:-*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24,\
chinese-gb2312:-*-*-medium-r-normal-*-24-*-gb2312*-*
tOGDA SPECIFIKACII WSEH [RIFTOW,KROME KITAJSKIH GB2312,BUDUT IMETX`fixed'W POLE
family,A SPECIFIKACII DLQ KITAJSKIH ZNAKOW GB2312 NESUT W POLE family SIMWOL PODSTA-
NOWKI`*'.
fUNKCIQ,KOTORAQ OBRABATYWAET ZNA^ENIE RESURSA,OPREDELQ@]EGO NABOR [RIFTOW,I
SOZDAET\TOT NABOR,NAZYWAETSQ create-fontset-from-fontset-spec.wY TAKVE MOVETE
WYZYWATX\TU FUNKCI@ QWNO,^TOBY SGENERIROWATX NABOR [RIFTOW.
sM.rAZDEL A.7 [{RIFT X],S.392,DLQ BOLX[EJ INFORMACII OB IMENOWANII [RIFTOW W
X.
18.12 pODDERVKA ODNOBAJTNYH EWROPEJSKIH ZNAKOW
nABORY ZNAKOW ISO 8859 Latin-n OPREDELQ@T KODY ZNAKOW W DIAPAZONE OT 160 DO 255 DLQ
OBRA]ENIQ S AKCENTIROWANNYMI BUKWAMI I ZNAKAMI PREPINANIQ,NEOBHODIMYMI W RAZLI^-
NYH EWROPEJSKIH QZYKAH.eSLI WY WYKL@^ITE PODDERVKU MNOGOBAJTNYH ZNAKOW,Emacs
WSE VE SMOVET RABOTATX S ODNOJ IZ\TIH KODIROWOK.~TOBY UKAZATX,KAKIE IZ\TIH KO-
DOW SLEDUET ISPOLXZOWATX,WYZOWITE M-x set-language-environment I ZADAJTE PODHODQ]U@
QZYKOWU@ SREDU,TAKU@ KAK`Latin-n'.
dLQ POLU^ENIQ BOLX[EJ INFORMACII OB ODNOBAJTNOM REVIME SMOTRITErAZDEL 18.2
[wKL@^ENIE MNOGOBAJTNYH ZNAKOW],S.161.w ^ASTNOSTI,OBRATITE WNIMANIE NA TO,^TO
WA[I FAJLY INICIALIZACII S^ITYWA@TSQ KAK ODNOBAJTNYE,ESLI ONI SODERVAT NE-ASCII-
ZNAKI.
Emacs MOVET TAKVE OTOBRAVATX TAKIE ZNAKI,PRI USLOWII,^TO ONI PODDERVIWA@TSQ
TERMINALOM ILI [RIFTOM.|TO RABOTAET AWTOMATI^ESKI.iLI,ESLI WY ISPOLXZUETE OKON-
NU@ SISTEMU,Emacs MOVET OTOBRAVATX ODNOBAJTNYE ZNAKI ^EREZ NABORY [RIFTOW,POKA-
ZYWAQ W DEJSTWITELXNOSTI\KWIWALENTNYE MNOGOBAJTNYE ZNAKI W SOOTWETSTWII S QZYKOWOJ
SREDOJ.~TOBY ZATREBOWATX\TO,USTANOWITE PEREMENNU@ unibyte-display-via-language-
environment W OTLI^NOE OT nil ZNA^ENIE.
eSLI WA[ TERMINAL NE PODDERVIWAET NABOR ZNAKOW Latin-1,Emacs MOVET OTOBRAVATX IH
KAK ASCII-POSLEDOWATELXNOSTI,KOTORYE PO KRAJNEJ MERE DA@T WAM QSNOE PREDSTAWLENIE O
TOM,^TO\TO ZA ZNAKI.~TOBY SDELATX TAK,ZAGRUZITE BIBLIOTEKU iso-ascii.mOGUT BYTX
REALIZOWANY POHOVIE BIBLIOTEKI I DLQ DRUGIH NABOROW ZNAKOW Latin-n,NO POKA IH U NAS
NET.
oBY^NO NE WHODQ]IE W ISO-8859 ZNAKI (MEVDU 128 I 159 WKL@^ITELXNO) OTOBRAVA@TSQ
KAK WOSXMIRI^NYE UPRAWLQ@]IE POSLEDOWATELXNOSTI.wY MOVETE IZMENITX\TO DLQ NESTAN-
DARTNYH`RAS[IRENNYH'WERSIJ NABOROW ZNAKOW ISO-8859,ISPOLXZUQ FUNKCI@ standard-
display-8bit IZ BIBLIOTEKI disp-table.
eSTX TRI RAZNYH SPOSOBA WWODITX ODNOBAJTNYE NE-ASCII-ZNAKI:
пЂЏ eSLI WA[A KLAWIATURA MOVET GENERIROWATX KODY ZNAKOW OT 128 I WY[E,PREDSTAWLQ@-
]IE ZNAKI,NE WHODQ]IE W ASCII,WYPOLNITE SLEDU@]EE WYRAVENIE,^TOBY Emacs SMOG
IH PONIMATX:
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)
пЂЏ wY MOVETE ISPOLXZOWATX METOD WWODA DLQ WYBRANNOJ QZYKOWOJ SREDY.sM.rAZDEL 18.4
[mETODY WWODA],S.163.kOGDA WY ISPOLXZUETE METOD WWODA W ODNOBAJTNOM BUFERE,
ZADAWAEMYE S EGO POMO]X@ ZNAKI PEREWODQTSQ W ODNOBAJTNOE PREDSTAWLENIE.
gLAWA 18:pODDERVKA RAZNYH QZYKOW 173пЂЏ dLQ WWODA PE^ATNYH ZNAKOW Latin-1 WY MOVETE ISPOLXZOWATX C-x 8 KAK PREFIKS\SO-
STAWLENIQ".C-x 8 UDOBEN DLQ WSTAWKI (W MINIBUFERE,A TAKVE W OSTALXNYH BUFERAH),
DLQ POISKA I WO WSEH DRUGIH KONTEKSTAH,GDE DOPUSKA@TSQ POSLEDOWATELXNOSTI ZNAKOW.
C-x 8 RABOTAET PUTEM ZAGRUZKI BIBLIOTEKI iso-transl.kOGDA\TA BIBLIOTEKA ZA-
GRUVENA,KLAWI[A-MODIFIKATOR
hALTi,ESLI ONA U WAS ESTX,SLUVIT DLQ TOJ VE CELI,
^TO I C-x 8;ISPOLXZUJTE h ALTi WMESTE SO ZNAKOM AKCENTA,^TOBY MODIFICIROWATX SLE-
DU@]U@ BUKWU.kROME TOGO,ESLI U WAS ESTX ZALIPA@]IE KLAWI[I DLQ GENERACII
AKCENTOW Latin-1,TO ONI TOVE OPREDELENY DLQ KOMPONOWKI SO SLEDU@]IM ZNAKOM,ESLI
iso-transl ZAGRUVENA.
174 rUKOWODSTWO PO GNU Emacs
gLAWA 19:oSNOWNYE REVIMY 17519 oSNOWNYE REVIMY
Emacs PREDOSTAWLQET MNOGO RAZLI^NYH OSNOWNYH REVIMOW,KAVDYJ IZ KOTORYH NASTRA-
IWAET Emacs NA REDAKTIROWANIE TEKSTA OPREDELENNOGO WIDA.oSNOWNYE REVIMY QWLQ@TSQ
WZAIMOISKL@^A@]IMI,I KAVDYJ BUFER NAHODITSQ W KAVDYJ MOMENT WREMENI W ODNOM
OSNOWNOM REVIME.sTROKA REVIMA OBY^NO SODERVIT IMQ TEKU]EGO OSNOWNOGO REVIMA W
KRUGLYH SKOBKAH (SM.rAZDEL 1.3 [sTROKA REVIMA],S.25).
nAIMENEE SPECIALIZIROWANNYJ OSNOWNOJ REVIM NAZYWAETSQ Fundamental.|TOT REVIM
NE IMEET SPECIALXNYH REVIMNYH PEREOPREDELENIJ ILI USTANAWLIWAEMYH PEREMENNYH,TAK
^TO KAVDAQ KOMANDA Emacs WEDET SEBQ SAMYM OBY^NYM OBRAZOM I KAVDYJ PARAMETR NA-
HODITSQ W SWOEM SOSTOQNII PO UMOL^ANI@.dLQ REDAKTIROWANIQ NEKOTOROGO TEKSTA OPRE-
DELENNOGO TIPA,TAKOGO KAK KOD NA lISPE ILI ANGLIJSKIJ TEKST,WY DOLVNY PEREKL@^ITX
Emacs W SOOTWETSTWU@]IJ OSNOWNOJ REVIM,TAKOJ KAK REVIM Lisp ILI REVIM Text.
wYBOR OSNOWNOGO REVIMA IZMENQET ZNA^ENIE NESKOLXKIH KL@^EJ TAKIM OBRAZOM,^TOBY
ONI STALI BOLEE PRISPOSOBLENNYM K REDAKTIRUEMOMU QZYKU.oDNI IZ NAIBOLEE ^ASTO IZME-
NQEMYH KL@^EJ |\TO h TABi,hDELi I C-j.pREFIKSNYJ KL@^ C-c OBY^NO SODERVIT KOMANDY,
SPECIFI^NYE DLQ REVIMA.pOMIMO\TOGO,KOMANDY DLQ UPRAWLENIQ KOMMENTARIQMI ISPOLX-
ZU@T REVIM DLQ OPREDELENIQ TOGO,KAKIM OBRAZOM KOMMENTARII DOLVNY OGRANI^IWATXSQ.
mNOGIE OSNOWNYE REVIMY PEREOPREDELQ@T SINTAKSI^ESKIE SWOJSTWA ZNAKOW,POQWLQ@]IHSQ
W BUFERE.sM.rAZDEL 31.6 [sINTAKSIS],S.366.
oSNOWNYE REVIMY DELQTSQ NA TRI OSNOWNYH GRUPPY.rEVIM Lisp (KOTORYJ IMEET
NESKOLXKO WARIANTOW),REVIM C I REVIM Fortran | DLQ SPECIFI^ESKIH QZYKOW PROGRAM-
MIROWANIQ.rEVIM Text,REVIM NroпЂ‹,REVIM T
E
X I REVIM Outline |DLQ REDAKTIROWANIQ
TEKSTA NA ESTESTWENNOM QZYKE.oSTALXNYE OSNOWNYE REVIMY NE PREDNAZNA^ENY DLQ IS-
POLXZOWANIQ S FAJLAMI POLXZOWATELEJ;ONI ISPOLXZU@TSQ W BUFERAH,SOZDAWAEMYH Emacs
DLQ SPECIALXNYH CELEJ,\TO TAKIE REVIMY,KAK REVIM Dired DLQ BUFEROW,SOZDANNYH Dired
(SM.gLAWA 28 [Dired],S.291),REVIM Mail DLQ BUFEROW,SOZDANNYH PRI POMO]I C-x m (SM.gLAWA 26 [pOSYLKA PO^TY],S.267),I REVIM Shell DLQ BUFEROW,ISPOLXZUEMYH DLQ SWQZI S
POD^INENNYM PROCESSOM OBOLO^KI (SM.rAZDEL 30.2.2 [iNTERAKTIWNAQ OBOLO^KA],S.324).
bOLX[INSTWO OSNOWNYH REVIMOW DLQ QZYKOW PROGRAMMIROWANIQ UKAZYWA@T,^TO TOLXKO
PUSTYE STROKI RAZDELQ@T ABZACY.tAKIM OBRAZOM,KOMANDY RABOTY S ABZACAMI OSTA@TSQ
UDOBNYMI.(sM.rAZDEL 21.3 [aBZACY],S.183.) oNI TAK VE ZASTAWLQ@T REVIM Auto Fill
ISPOLXZOWATX OPREDELENIE h TABi DLQ SOZDANIQ OTSTUPA WO WNOWX SOZDAWAEMYH IM STROKAH.
|TO DALETSQ,POSKOLXKU BOLX[INSTWO STROK W PROGRAMME OBY^NO NA^INA@TSQ S OTSTUPA.
(sM.gLAWA 20 [oTSTUPY],S.177.)
19.1 kAK WYBIRA@TSQ OSNOWNYE REVIMY
wY MOVETE WYBRATX OSNOWNOJ REVIM DLQ TEKU]EGO BUFERA QWNO,NO ^A]E Emacs SAM
OPREDELQET,KAKOJ REVIM ISPOLXZOWATX,OSNOWYWAQSX NA IMENI FAJLA ILI NA SPECIALXNOM
TEKSTE W FAJLE.
qWNYJ WYBOR NOWOGO OSNOWNOGO REVIMA DELAETSQ PRI POMO]I KOMANDY M-x.~TOBY
POLU^ITX IMQ KOMANDY DLQ WYBORA REVIMA,DOBAWXTE K IMENI OSNOWNOGO REVIMA OKON^ANIE
-mode.tAKIM OBRAZOM,WY MOVETE WOJTI W REVIM Lisp,WYPOLNIW KOMANDU M-x lisp-mode.
kOGDA WY OBRA]AETESX K FAJLU,Emacs OBY^NO WYBIRAET PRAWILXNYJ OSNOWNOJ REVIM,
OSNOWYWAQSX NA IMENI\TOGO FAJLA.nAPRIMER,FAJLY,^XI IMENA OKAN^IWA@TSQ NA`.S',
REDAKTIRU@TSQ W REVIME s.sOOTWETSTWIE MEVDU IMENEM FAJLA I OSNOWNYM REVIMOM KON-
TROLIRUETSQ PEREMENNOJ auto-mode-alist.eE ZNA^ENIE |\TO SPISOK,KAVDYJ\LEMENT
KOTOROGO IMEET TAKOJ WID:
(REGULQRNOE-WYRAVENIE.FUNKCIQ-REVIMA)
ILI TAKOJ:
176 rUKOWODSTWO PO GNU Emacs(REGULQRNOE-WYRAVENIE FUNKCIQ-REVIMA FLAG)
nAPRIMER,ODIN\LEMENT,OBY^NO NAHODQ]IJSQ W\TOM SPISKE,IMEET WID ("\\.c\\'".c-
mode),I\TO QWLQETSQ SIGNALOM DLQ WYBORA REVIMA s DLQ FAJLOW,^XI IMENA KON^A@TSQ
NA`.S'.(oTMETIM,^TO`\\'NEOBHODIMO PO SINTAKSISU lISPA DLQ TOGO,^TOBY WKL@^ITX
W\TU STROKU ZNAK`\',A ON NUVEN DLQ PODAWLENIQ SPECIALXNOGO ZNA^ENIQ`.'W REGULQRNOM
WYRAVENII.) eSLI\TOT\LEMENT IMEET FORMU (REGULQRNOE-WYRAVENIE FUNKCIQ-REVIMA
FLAG),I FLAG NE nil,TO POSLE WYZOWA FUNKCII-REVIMA SUFFIKS,SOWPAW[IJ S REGULQRNYM-
WYRAVENIEM,OTBRASYWAETSQ,I W SPISKE PROIZWODITSQ POWTORNYJ POISK DRUGOGO SOWPADE-
NIQ.
wY MOVETE UKAZATX,KAKOJ OSNOWNOJ REVIM DOLVEN ISPOLXZOWATXSQ DLQ REDAKTIROWANIQ
OPREDELENNOGO FAJLA,S POMO]X@ TEKSTA SPECIALXNOGO WIDA W PERWOJ NEPUSTOJ STROKE FAJ-
LA.w\TOJ STROKE DOLVNO POQWITXSQ IMQ REVIMA,DO I POSLE NEGO DOLVNY STOQTX STROKI
`-*-'.w\TOJ STROKE TAKVE MOVET POQWITXSQ DRUGOJ TEKST.nAPRIMER,
;-*-Lisp-*-
PRIKAZYWAET Emacs ISPOLXZOWATX REVIM Lisp.tAKOE QWNOE OPREDELENIE OTMENQET ZNA^ENIE
PO UMOL^ANI@,OSNOWANNOE NA IMENI FAJLA.oTMETIM,^TO TO^KA S ZAPQTOJ ISPOLXZUETSQ
DLQ TOGO,^TOBY lISP TRAKTOWAL\TU STROKU KAK KOMMENTARIJ.
dRUGOJ FORMAT OPREDELENIQ REVIMA:
-*- mode:IMQ-REVIMA;-*-
^TO POZWOLQET WAM TAKVE ZADATX LOKALXNYE PEREMENNYE,KAK ZDESX:
-*- mode:IMQ-REVIMA;PER:ZNA^ENIE;...-*-
sM.rAZDEL 31.2.5 [pEREMENNYE FAJLA],S.351,DLQ POLU^ENIQ BOLX[EJ INFORMACII OB
\TOM.
eSLI SODERVIMOE FAJLA NA^INAETSQ S`#!',ON MOVET SLUVITX W KA^ESTWE WYPOLNQEMOJ
KOMANDY OBOLO^KI,KOTORAQ RABOTAET PUTEM ZAPUSKA INTERPRETATORA,NAZWANNOGO W PERWOJ
STROKE\TOGO FAJLA.oSTALXNAQ ^ASTX FAJLA PODAETSQ NA WHOD INTERPRETATORA.
kOGDA WY OBRA]AETESX K PODOBNOMU FAJLU W Emacs,ESLI IMQ FAJLA NE ZADAET OSNOWNOJ
REVIM,Emacs ISPOLXZUET DLQ WYBORA REVIMA IMQ INTERPRETATORA W PERWOJ STROKE.eSLI
PERWAQ STROKA |\TO IMQ PODDERVIWAEMOJ PROGRAMMY-INTERPRETATORA,TAKOJ KAK`perl'
ILI`tcl',Emacs ISPOLXZUET REVIM,PODHODQ]IJ DLQ PROGRAMM DLQ\TOGO INTERPRETATO-
RA.pEREMENNAQ interpreter-mode-alist ZADAET SOOTWETSTWIE MEVDU IMENAMI PROGRAMM-
INTERPRETATOROW I OSNOWNYMI REVIMAMI.
kOGDA PERWAQ STROKA NA^INAETSQ S`#!',WY NE MOVETE (NA MNOGIH SISTEMAH) ISPOLXZOWATX
W NEJ`-*-',POSKOLXKU PRI ZAPUSKE INTERPRETATORA\TO WWELO BY W ZABLUVDENIE SISTEMU.
pO\TOMU W TAKIH FAJLAH Emacs I]ET`-*-'NA WTOROJ STROKE,A NE TOLXKO NA PERWOJ.
kOGDA WY OBRA]AETESX K FAJLU,KOTORYJ NE UKAZYWAET,KAKOJ OSNOWNOJ REVIM ISPOLX-
ZOWATX,ILI KOGDA WY SOZDAETE NOWYJ BUFER PRI POMO]I C-x b,TO ISPOLXZUEMYM OSNOWNYM
REVIMOM QWLQETSQ TOT,^TO OPREDELEN PEREMENNOJ default-major-mode.oBY^NO EE ZNA^E-
NIE |\TO SIMWOL fundamental-mode,KOTORYJ ZADAET REVIM Fudamental.eSLI default-
major-mode RAWNA nil,TO OSNOWNOJ REVIM BERETSQ IZ RANEE WYBRANNOGO BUFERA.
eSLI WY IZMENILI OSNOWNOJ REVIM BUFERA,WY MOVETE WERNUTXSQ K TOMU OSNOWNOMU
REVIMU,KOTORYJ Emacs WYBRAL BY AWTOMATI^ESKI:ISPOLXZUJTE DLQ\TOGO KOMANDU M-x
normal-mode.|TO TA VE FUNKCIQ,KOTORU@ WYZYWAET find-file DLQ WYBORA OSNOWNOGO
REVIMA.oNA TAKVE OBRABATYWAET SPISOK LOKALXNYH PEREMENNYH FAJLA,ESLI ON ESTX.
kOMANDY C-x C-w I set-visited-file-name PEREKL@^A@T W NOWYJ OSNOWNOJ REVIM,
ESLI NOWOE IMQ FAJLA PODRAZUMEWAET WYBOR REVIMA (SM.rAZDEL 14.3 [sOHRANENIE],S.108).
oDNAKO,\TO NE PROISHODIT,ESLI SODERVIMOE BUFERA ZADAET OSNOWNOJ REVIM;I NEKOTORYE
\SPECIALXNYE"OSNOWNYE REVIMY NE DOPUSKA@T IZMENENIQ REVIMA.wY MOVETE WYKL@^ITX
\TU WOZMOVNOSTX PEREKL@^ENIQ REVIMOW,USTANOWIW change-major-mode-with-file-name
W ZNA^ENIE nil.
gLAWA 20:oTSTUPY 17720 oTSTUPY
|TA GLAWA OPISYWAET KOMANDY Emacs,KOTORYE SOZDA@T,UBIRA@T ILI NASTRAIWA@T
OTSTUPY.
hTABi sDELATX OTSTUP TEKU]EJ STROKI,\SOOTWETSTWU@]IJ"REVIMU.
C-j wYPOLNITX hRETi,ZA KOTORYM SLEDUET hTABi (newline-and-indent).
M-^ sLITX DWE STROKI (delete-indentation).|TO OTMENQET DEJSTWIE C-j.
C-M-o rAZBITX STROKU W TO^KE;TEKST NA STROKE POSLE TO^KI STANOWITSQ NOWOJ STROKOJ
S OTSTUPOM DO TOGO STOLBCA,S KOTOROGO ON NA^INAETSQ SEJ^AS (split-line).
M-m pEREDWINUTXSQ (WPERED ILI NAZAD) K PERWOMU NEPUSTOMU ZNAKU NA TEKU]EJ STRO-
KE (back-to-indetation).
C-M-\sDELATX OTSTUP NESKOLXKIH STROK DO ODNOGO I TOGO VE STOLBCA (indent-region).
C-x
h TABi vESTKO SDWINUTX BLOK STROK WLEWO ILI WPRAWO (indent-rigidly).
M-i sDELATX OTSTUP OT TO^KI K SLEDU@]EMU PREDOPREDELENNOMU STOLBCU POZICII
TABULQCII (tab-to-tab-stop).
M-x indent-relative
sDELATX OTSTUP OT TO^KI K MESTU POD TO^KOJ OTSTUPA W PREDYDU]EJ STROKE.
bOLX[INSTWO QZYKOW PROGRAMMIROWANIQ IME@T NEKOTOROE SOGLA[ENIE PO OTSTUPAM.
dLQ lISP-KODA OTSTUP STROK WYPOLNQETSQ SOGLASNO IH WLOVENNOSTI W KRUGLYE SKOBKI.
tA VE SAMAQ OB]AQ IDEQ ISPOLXZUETSQ DLQ KODA NA sI,HOTQ MNOGIE DETALI OTLI^A@TSQ.
w L@BOM QZYKE DLQ SOZDANIQ OTSTUPA W STROKE ISPOLXZUETSQ KOMANDA
hTABi.kAVDYJ
OSNOWNOJ REVIM OPREDELQET\TU KOMANDU TAK,^TOBY ONA WYPOLNQLA SOOTWETSTWU@]IJ\TO-
MU QZYKU OTSTUP.w REVIME Lisp h TABi RASSTAWLQET STROKI W SOOTWETSTWII S IH GLUBINOJ
WLOVENNOSTI W KRUGLYE SKOBKI.wNE ZAWISIMOSTI OT TOGO,W KAKOM MESTE STROKI WY NA-
HODITESX,KOGDA NABIRAETE h TABi,ONA WYRAWNIWAET STROKU CELIKOM.w REVIME s,hTABi
OSU]ESTWLQET UTON^ENNYJ I SLOVNYJ STILX OTSTUPA,KOTORYJ ZNAET O MNOGIH ASPEKTAH
SINTAKSISA sI.
w REVIME Text,
h TABi ZAPUSKAET KOMANDU tab-to-tab-stop,KOTORAQ DELAET OTSTUP K
SLEDU@]EMU STOLBCU POZICII TABULQCII.wY MOVETE USTANOWITX POZICII TABULQCII S
POMO]X@ M-x edit-tab-stops.
20.1 sPOSOBY I KOMANDY OTSTUPA
~TOBY PEREDWINUTXSQ ^EREZ OTSTUP NA STROKE,SDELAJTE M-m (back-to-indentation).
|TA KOMANDA,DANNAQ GDE UGODNO NA STROKE,POME]AET TO^KU NA PERWYJ NEPUSTOJ ZNAK W
\TOJ STROKE.
~TOBY WSTAWITX STROKU S OTSTUPOM PERED TEKU]EJ STROKOJ,SDELAJTE C-a C-o
hTABi.~TO-
BY SDELATX STROKU S OTSTUPOM POSLE TEKU]EJ STROKI,ISPOLXZUJTE C-e C-j.
eSLI WY PROSTO HOTITE WSTAWITX W BUFER SIMWOL TABULQCII,TO WY MOVETE NABRATX C-q
h TABi.
C-M-o (split-line) SDWIGAET TEKST OT TO^KI DO KONCA STROKI WERTIKALXNO WNIZ,TAK
^TO TEKU]AQ STROKA STANOWITSQ DWUMQ STROKAMI.C-M-o SNA^ALA PEREDWIGAET TO^KU WPERED
^EREZ L@BOE KOLI^ESTWO PROBELOW I TABULQCIJ.zATEM ONA WSTAWLQET POSLE TO^KI OGRA-
NI^ITELX STROKI I DOSTATO^NOE KOLI^ESTWO OTSTUPOW,^TOBY DOSTI^X TOGO VE STOLBCA,NA
KOTOROM NAHODITSQ TO^KA.tO^KA OSTAETSQ PERED WSTAWLQEMYM PEREWODOM STROKI;S\TOJ
TO^KI ZRENIQ C-M-o NAPOMINAET C-o.
178 rUKOWODSTWO PO GNU Emacs~TOBY NA^ISTO SOEDINITX DWE STROKI,ISPOLXZUJTE KOMANDU M-^ (delete-indentation).
oNA UDALQET OTSTUP W NA^ALE TEKU]EJ STROKI,A TAK VE OGRANI^ITELX STROKI,ZAMENQQ IH
ODINO^NYM PROBELOM.w OSOBOM SLU^AE (POLEZNOM DLQ KODA NA lISPE) ODINO^NYJ PROBEL
OPUSKAETSQ,ESLI SOEDINQEMYMI ZNAKAMI QWLQ@TSQ POSLEDOWATELXNYE OTKRYWA@]IE ILI
ZAKRYWA@]IE KRUGLYE SKOBKI,ILI ESLI POSLE SLIQNIQ IDET E]E ODNA NOWAQ STROKA.~TOBY
UDALITX PROSTO OTSTUP STROKI,PEREJDITE W NA^ALO STROKI I ISPOLXZUJTE M-\(delete-
horizontal-space),KOTORAQ UDALQET WSE PROBELY I TABULQCII OKOLO KURSORA.
eSLI ESTX PREFIKS ZAPOLNENIQ,M-^ UBIRAET EGO,ESLI ON NAHODITSQ POSLE UDALQEMOGO
PEREWODA STROKI.sM.rAZDEL 21.5.3 [pREFIKS ZAPOLNENIQ],S.187.
iME@TSQ TAKVE KOMANDY DLQ IZMENENIQ OTSTUPOW NESKOLXKIH STROK SRAZU.C-M-\
(indent-region) PRIMENQETSQ DLQ WSEH STROK,KOTORYE NA^INA@TSQ W DANNOJ OBLASTI;ONA
DELAET DLQ KAVDOJ IZ\TIH STROK\OBY^NYJ"OTSTUP,KAK ESLI BY WY NAPE^ATALI hTABi
W NA^ALE STROKI.~ISLOWOJ ARGUMENT OPREDELQET STOLBEC DLQ OTSTUPA,I KAVDAQ STROKA
SDWIGAETSQ WLEWO ILI WPRAWO TAK,^TO EE PERWYJ NEPUSTOJ ZNAK POQWLQETSQ W\TOM STOLBCE.
C-x h TABi (indent-rigidly) cDWIGAET WSE STROKI W OBLASTI WPRAWO W SOOTWETSTWII SO SWOIM
ARGUMENTOM (WLEWO PRI OTRICATELXNOM ARGUMENTE).wSQ GRUPPA STROK VESTKO SDWIGAETSQ W
ODNU STORONU,IMENNO PO\TOMU\TA KOMANDA POLU^ILA TAKOE IMQ.
M-x indent-relative WYPOLNQET OTSTUP TO^KI,OSNOWYWAQSX NA PREDYDU]EJ STROKE
(FAKTI^ESKI,PO POSLEDNEJ NEPUSTOJ STROKE).oNA WSTAWLQET PROBEL W TO^KE,DWIGAQ TO^KU
DO TEH POR,POKA ONA NE WSTANET POD TO^KOJ OTSTUPA W PREDYDU]EJ STROKE.tO^KA OTSTUPA
QWLQETSQ KONCOM POSLEDOWATELXNOSTI PROBELOW ILI KONCOM STROKI.eSLI TO^KA NAHODITSQ
DALX[E WPRAWO,^EM L@BAQ TO^KA OTSTUPA W PREDYDU]EJ STROKE,TO WSE PROBELXNYE ZNAKI
PERED TO^KOJ UDALQ@TSQ,I ISPOLXZUETSQ PERWAQ PRIMENIMAQ TEPERX TO^KA OTSTUPA.eSLI
DAVE POSLE\TOGO NET PRIGODNOJ TO^KI OTSTUPA,indent-relative ZAPUSKAET tab-to-tab-
stop (SMOTRITE SLEDU@]IJ RAZDEL).
indent-relative |\TO OPREDELENIE hTABi W REVIME Indented Text.sM.gLAWA 21 [tEKST],
S.181.
sM.rAZDEL 21.11.6 [oTSTUPY W FORMATIROWANNOM TEKSTE],S.201,DRUGOJ SPOSOB ZADATX
OTSTUPY DLQ ^ASTI WA[EGO TEKSTA.
20.2 pOZICII TABULQCII
dLQ NABORA TABLIC WY MOVETE ISPOLXZOWATX OPREDELENIE
h TABi W REVIME Text,tab-to-
tab-stop.|TA KOMANDA WSTAWLQET PERED TO^KOJ OTSTUP,DOSTATO^NYJ DLQ TOGO,^TOBY
DOSTI^X SLEDU@]EGO STOLBCA POZICII TABULQCII.eSLI WY NAHODITESX NE W REVIME Text,
\TU FUNKCI@ MOVNO NAJTI PO KL@^U M-i.
wY MOVETE PROIZWOLXNO USTANOWITX ISPOLXZUEMYE W M-i POZICII TABULQCII.oNI ZAPO-
MINA@TSQ W PEREMENNOJ S IMENEM tab-stop-list KAK SPISOK NOMEROW STOLBCOW W WOZRASTA-
@]EM PORQDKE.
uDOBNYJ SPOSOB USTANOWITX POZICII TABULQCII | WOSPOLXZOWATXSQ KOMANDOJ M-x
edit-tab-stops,KOTORAQ SOZDAET I WYBIRAET BUFER,SODERVA]IJ OPISANIE USTANOWLEN-
NYH POZICIJ TABULQCII.wY MOVETE OTREDAKTIROWATX\TOT BUFER DLQ OPREDELENIQ DRUGIH
POZICIJ TABULQCII I ZATEM NABRATX C-c C-c,^TOBY SDELATX\TI NOWYE POZICII TABULQ-
CII DEJSTWU@]IMI.edit-tab-stops ZAPOMINAET,KAKOJ BUFER BYL TEKU]IM,KOGDA WY
ZAPUSKALI EE,I ZAPISYWAET POZICII TABULQCII OBRATNO W\TOT BUFER;OBY^NO WSE BUFERY
RAZDELQ@T ODNI I TE VE POZICII TABULQCII,I IZMENENIE IH W ODNOM BUFERE WLIQET NA
WSE,NO ESLI WAM SLU^ITSQ SDELATX tab-stop-list LOKALXNOJ W ODNOM BUFERE,TO edit-tab-
stops BUDET REDAKTIROWATX LOKALXNYE USTANOWKI.
pOKAVEM,KAK WYGLQDIT PREDSTAWLQ@]IJ TABULQCI@ TEKST DLQ OBY^NYH POZICIJ TABU-
LQCII ^EREZ KAVDYE WOSEMX STOLBCOW.
::::::
gLAWA 20:oTSTUPY 1790 1 2 3 4
0123456789012345678901234567890123456789012345678
To install changes,type C-c C-c
pERWAQ STROKA SODERVIT DWOETO^IE W KAVDOJ POZICII TABULQCII.oSTALXNYE STROKI
PREDSTAWLENY PROSTO DLQ TOGO,^TOBY POMO^X WAM PONQTX,GDE NAHODITSQ DWOETO^IE,I
SOOB]ITX,^TO WY MOVETE DELATX.
zAMETIM,^TO POZICII TABULQCII,KOTORYE UPRAWLQ@T tab-to-tab-stop,NE IME@T NI-
^EGO OB]EGO S POKAZANNYMI SIMWOLAMI TABULQCII W BUFERE.sM.rAZDEL 11.7 [pEREMENNYE
IZOBRAVENIQ],S.84,DLQ BOLEE PODROBNOJ INFORMACII NA\TOT S^ET.
20.3 tABULQCIQ PO SRAWNENI@ S PROBELAMI
oBY^NO Emacs ISPOLXZUET DLQ OTSTUPA STROK KAK TABULQCI@,TAK I PROBELY.eSLI WY
ZAHOTITE,TO WSE OTSTUPY BUDUT DELATXSQ TOLXKO PRI POMO]I PROBELOW.~TOBY POTREBOWATX
\TO,USTANOWITE PEREMENNU@ indent-tab-mode RAWNOJ nil.|TO PEREMENNAQ BUFERA;IZME-
NENIE EE WLIQET TOLXKO NA TEKU]IJ BUFER,NO IMEETSQ I ZNA^ENIE PO UMOL^ANI@,KOTOROE
WY TOVE MOVETE IZMENITX.sM.rAZDEL 31.2.4 [lOKALXNYE PEREMENNYE],S.350.
sU]ESTWU@T TAKVE KOMANDY DLQ PREWRA]ENIQ TABULQCII W PROBELY I NAOBOROT,WSEGDA
SOHRANQ@]IE STOLBCY WSEGO NEPUSTOGO TEKSTA.M-x tabify NAHODIT W OBLASTI POSLEDOWA-
TELXNOSTI PROBELOW I PREOBRAZUET W TABULQCI@ L@BU@ POSLEDOWATELXNOSTX,SOSTOQ]U@
PO MENX[EJ MERE IZ TREH PROBELOW,ESLI\TO MOVNO SDELATX BEZ IZMENENIQ OTSTUPA.M-x
untabify ZAMENQET WSE TABULQCII W OBLASTI NA SOOTWETSTWU@]EE ^ISLO PROBELOW.
180 rUKOWODSTWO PO GNU Emacs
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 18121 kOMANDY DLQ ESTESTWENNYH QZYKOW
tERMIN TEKST IMEET DWA [IROKO RASPROSTRANENNYH ZNA^ENIQ W NA[EJ OBLASTI KOMPX@-
TERNOJ NAUKI.oDNO |\TO DANNYE,KOTORYE QWLQ@TSQ POSLEDOWATELXNOSTX@ ZNAKOW.l@BOJ
FAJL,KOTORYJ WY REDAKTIRUETE PRI POMO]I Emacs,|\TO TEKST W\TOM SMYSLE SLOWA.
dRUGOE ZNA^ENIE BOLEE UZKOE:POSLEDOWATELXNOSTX ZNAKOW NA ESTESTWENNOM QZYKE,PREDNA-
ZNA^ENNAQ DLQ ^TENIQ L@DXMI (WOZMOVNO POSLE OBRABOTKI FORMATIROWANIEM),W PROTIWO-
POLOVNOSTX PROGRAMMAM ILI KOMANDAM DLQ PROGRAMMY.
w ESTESTWENNYH QZYKAH PRINQTY STILISTI^ESKIE I SINTAKSI^ESKIE USLOWNOSTI,KOTO-
RYE MOGUT PODDERVIWATXSQ ILI WYGODNO ISPOLXZOWATXSQ KOMANDAMI REDAKTIROWANIQ:\TO
USLOWNOSTI,WKL@^A@]IE ISPOLXZOWANIE SLOW,PREDLOVENIJ,ABZACEW I PROPISNYH BUKW.
dANNAQ GLAWA OPISYWAET KOMANDY Emacs DLQ WSEH\TIH WE]EJ.sU]ESTWU@T TAKVE KOMAN-
DY DLQ ZAPOLNENIQ,^TO OZNA^AET PERESTROJKU STROK ABZACEW TAKIM OBRAZOM,^TOBY ONI
BYLI PRIBLIZITELXNO RAWNOJ DLINY.kOMANDY DLQ PEREME]ENIQ ILI UNI^TOVENIQ SLOW,
PREDLOVENIJ I ABZACEW,PREDNAZNA^ENNYE W PERWU@ O^EREDX DLQ REDAKTIROWANIQ TEKSTA,
^ASTO BYWA@T POLEZNYMI I DLQ REDAKTIROWANIQ PROGRAMM.
Emacs IMEET NESKOLXKO OSNOWNYH REVIMOW DLQ REDAKTIROWANIQ TEKSTA NA ESTESTWENNOM
QZYKE.eSLI FAJL SODERVIT NESLOVNYJ ^ISTYJ TEKST,ISPOLXZUJTE REVIM Text,KOTORYJ
BYSTRO NASTRAIWAET Emacs NA SINTAKSI^ESKIE USLOWNOSTI TEKSTA.rEVIM Outline PREDO-
STAWLQET OSOBYE KOMANDY DLQ DEJSTWIJ S SO STRUKTURIROWANNYM TEKSTOM.sM.rAZDEL 21.8
[rEVIM Outline],S.190.
dLQ TEKSTA,KOTORYJ SODERVIT WSTROENNYE KOMANDY DLQ PROGRAMM FORMATIROWANIQ,
Emacs IMEET DRUGIE OSNOWNYE REVIMY,SWOJ DLQ KAVDOGO FORMATA.tAKIM OBRAZOM,DLQ
WWODA W T
E
X WY DOLVNY ISPOLXZOWATX REVIM T
E
X (SM.rAZDEL 21.9 [rEVIM TeX],S.194).
dLQ WWODA W nroпЂ‹ |REVIM NroпЂ‹.
wMESTO ISPOLXZOWANIQ PROGRAMMY FORMATIROWANIQ,WY MOVETE REDAKTIROWATX FORMA-
TIROWANNYJ TEKST W STILE WYSIWYG (\what you see is what you get")
1
S POMO]X@ REVIMA
Enriched.tOGDA FORMATIROWANIE POQWLQETSQ NA\KRANE W Emacs WO WREMQ REDAKTIROWANIQ.
sM.rAZDEL 21.11 [fORMATIROWANNYJ TEKST],S.198.
21.1 sLOWA
w Emacs SU]ESTWU@T KOMANDY DLQ PEREDWIVENIQ PO SLOWAM ILI WOZDEJSTWIQ NA NIH.pO
SOGLA[ENI@,WSE KL@^I DLQ\TOGO QWLQ@TSQ Meta-ZNAKAMI.
M-f pEREJTI WPERED ^EREZ SLOWO (forward-word).
M-b pEREJTI NAZAD ^EREZ SLOWO (backward-word).
M-d uNI^TOVITX WPERED WSE WPLOTX DO KONCA SLOWA (kill-word).
M-
h DELi uNI^TOVITX NAZAD WSE WPLOTX DO NA^ALA SLOWA (backward-kill-word).
M-@ pOMETITX KONEC SLEDU@]EGO SLOWA (mark-word).
M-t pERESTAWITX DWA SLOWA ILI PERENESTI ODNO SLOWO ^EREZ DRUGIE SLOWA
(transpose-words).
zAMETXTE,KAK\TI KL@^I OBRAZU@T RQD,KOTORYJ SOOTWETSTWUET KL@^AM,RABOTA@]IM
SO ZNAKAMI:C-f,C-b,C-d,hDELi I C-t.M-@ SOOTWETSTWUET C-@,KOTORAQ INA^E NAZYWAETSQ
C-h SPCi.
kOMANDY M-f (forward-word) and M-b (backward-word) PEREDWIGA@T WPERED ILI NAZAD
^EREZ SLOWA.tAKIM OBRAZOM,\TI Meta-ZNAKI ANALOGI^NY C-f I C-b,KOTORYE PEREDWIGA@T1
~TO WY WIDITE,TO I POLU^AETE.(pRIM.PEREWOD^IKA)
182 rUKOWODSTWO PO GNU Emacs^EREZ ODINO^NYE ZNAKI W TEKSTE.aNALOGIQ RASPROSTRANQETSQ NA ^ISLOWYE ARGUMENTQ,KOTO-
RYE SLUVAT S^ET^IKAMI POWTOROW.M-f S OTRICATELXNYM ARGUMENTOM PEREDWIGAET NAZAD,A
M-b S OTRICATELXNYM ARGUMENTOM PEREDWIGAET WPERED.dWIVENIE WPERED OSTANAWLIWAETSQ
SRAZU POSLE POSLEDNEJ BUKWY SLOWA,TOGDA KAK DWIVENIE NAZAD OSTANAWLIWAETSQ SRAZU PERED
PERWOJ BUKWOJ.
M-d (kill-word) UNI^TOVAET SLOWO POSLE TO^KI.tO^NEE,ONA UNI^TOVAET WSE OT TO^KI
DO TOGO MESTA,KUDA PEREMESTILA BY KOMANDA M-f.tAKIM OBRAZOM,ESLI TO^KA NAHODITSQ
W SEREDINE SLOWA,M-d UNI^TOVAET TOLXKO ^ASTX SLOWA POSLE TO^KI.eSLI MEVDU TO^KOJ I
SLEDU@]IM SLOWOM NAHODQTSQ KAKIE-TO ZNAKI PREPINANIQ,TO ONI UNI^TOVA@TSQ WMESTE SO
SLOWOM.(eSLI WY HOTITE UNI^TOVITX TOLXKO SLEDU@]EE SLOWO,NO NE UNI^TOVATX ZNAKI
PREPINANIQ PERED NIM,TO PROSTO SDELAJTE M-f,^TOBY PEREJTI NA KONEC,I UNI^TOVXTE
SLOWO W OBRATNOM NAPRAWLENII PRI POMO]I M-hDELi.) M-d TRAKTUET ARGUMENTY TO^NO TAK
VE,KAK M-f.
M-h DELi (backward-kill-word) UNI^TOVAET SLOWO PERED TO^KOJ.oNA UNI^TOVAET WSE OT
TO^KI NAZAD K TOMU MESTU,KUDA PEREDWINULA BY M-b.eSLI TO^KA NAHODITSQ POSLE PROBELA
W`FOO,BAR',TO UNI^TOVAETSQ`FOO,'.(eSLI WY HOTITE UNI^TOVITX PROSTO`FOO',SDELAJTE
M-b M-d WMESTO M-hDELi.)
M-t (transpose-words) MENQET MESTAMI SLOWO,STOQ]EE PERED TO^KOJ ILI SODERVA]EE
EE,SO SLEDU@]IM SLOWOM.rAZGRANI^ITELXNYE ZNAKI MEVDU SLOWAMI NE SDWIGA@TSQ.nA-
PRIMER,`FOO,BAR'PREWRA]AETSQ W`BAR,FOO',A NE W`BAR FOO,'.dLQ BOLEE PODROBNOJ
INFORMACII O PERESTANOWKAH I ARGUMENTAH KOMAND PERESTANOWKI SMOTRITErAZDEL 13.2
[pERESTANOWKA],S.101.
~TOBY PODEJSTWOWATX NA SLEDU@]IE n SLOW S POMO]X@ OPERACII,KOTORAQ PRIMENQETSQ
MEVDU TO^KOJ I METKOJ,WY MOVETE LIBO USTANOWITX METKU W TO^KE I ZATEM PEREDWINUTX
TO^KU ^EREZ SLOWA,LIBO ISPOLXZOWATX KOMANDU M-@ (mark-word),KOTORAQ NE PEREME]AET
TO^KU,NO USTANAWLIWAET METKU TUDA,KUDA EE PEREDWINULA BY KOMANDA M-f.M-@ PRINIMA-
ET ^ISLOWOJ ARGUMENT,KOTORYJ GOWORIT,^EREZ SKOLXKO SLOW NUVNO POMESTITX METKU.w
REVIME Transient Mark\TA KOMANDA AKTIWIZIRUET METKU.
pONQTIE O SINTAKSISE U KOMAND,RABOTA@]IH SO SLOWAMI,POLNOSTX@ UPRAWLQETSQ SIN-
TAKSI^ESKOJ TABLICEJ.l@BOJ ZNAK MOVET BYTX OB_QWLEN,NAPRIMER,KAK RAZDELITELX SLOW.
sM.rAZDEL 31.6 [sINTAKSIS],S.366.
21.2 pREDLOVENIQ
kOMANDY Emacs DLQ DEJSTWIJ NAD PREDLOVENIQMI I ABZACAMI W BOLX[INSTWE SWOEM
PRIDANY Meta-KL@^AM,^TOBY ONI BYLI PODOBNY KOMANDAM RABOTY SO SLOWAMI.
M-a pEREJTI NAZAD K NA^ALU PREDLOVENIQ (backward-sentence).
M-e pEREJTI WPERED K KONCU PREDLOVENIQ (forward-sentence).
M-k uNI^TOVITX WPERED DO KONCA PREDLOVENIQ (kill-sentence).
C-x h DELi uNI^TOVITX WSE W OBRATNOM NAPRAWLENII DO NA^ALA PREDLOVENIQ (backward-
kill-sentence).
kOMANDY M-a I M-e (backward-sentence I forward-sentence) PEREDWIGA@T TO^KU K
NA^ALU I K KONCU TEKU]EGO PREDLOVENIQ,SOOTWETSTWENNO.oNI WYBRANY TAK,^TOBY NA-
POMINATX C-a I C-e,KOTORYE SDWIGA@T K KONCU I NA^ALU STROKI.w OTLI^IE OT NIH,
M-a I M-e PRI POWTORENII ILI S ZADANNYMI ^ISLOWYMI ARGUMENTAMI PEREDWIGA@T ^EREZ
POSLEDOWATELXNYE PREDLOVENIQ.
pEREME]ENIE NAZAD ^EREZ PREDLOVENIE POME]AET TO^KU NEPOSREDSTWENNO PERED PERWYM
ZNAKOM\TOGO PREDLOVENIQ;PEREME]ENIE WPERED POME]AET TO^KU SRAZU POSLE ZNAKA PREPI-
NANIQ,ZAWER[A@]EGO PREDLOVENIE.nI ODNA IZ\TIH KOMAND NE PEREME]AET ^EREZ PROPUSKI
NA GRANICAH PREDLOVENIJ.
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 183tO^NO TAK VE,KAK C-a I C-e IME@T SOOTWETSTWU@]U@ IM KOMANDU UNI^TOVENIQ C-k,TAK
I M-a I M-e IME@T SOOTWETSTWU@]U@ KOMANDU UNI^TOVENIQ M-k (kill-sentence),KOTORAQ
UNI^TOVAET WSE OT TO^KI DO KONCA PREDLOVENIQ.s ARGUMENTOM,RAWNYM MINUS EDINICE,
ONA UNI^TOVAET W OBRATNOM NAPRAWLENII DO NA^ALA PREDLOVENIQ.bOLX[IE ARGUMENTY
SLUVAT DLQ PODS^ETA POWTOROW.eSTX TAKVE OSOBAQ KOMANDA C-x
hDELi (backward-kill-
sentence) DLQ UNI^TOVENIQ W OBRATNOM NAPRAWLENII K NA^ALU PREDLOVENIQ.oNA UDOBNA,
KOGDA WY MENQETE SWOE RE[ENIE W PROCESSE SO^INENIQ TEKSTA.
kOMANDY RABOTY S PREDLOVENIQMI PREDPOLAGA@T,^TO WY SLEDUETE SOGLA[ENI@ AMERI-
KANSKIH MA[INISTOK | STAWITX W KONCE PREDLOVENIQ DWA PROBELA;ONI S^ITA@T PREDLO-
VENIE OKON^ENNYM,ESLI TAM ESTX ZNAKI`.',`?'ILI`!',ZA KOTORYMI SLEDUET KONEC STROKI
ILI DWA PROBELA;W SEREDINE DOPUSTIMO L@BOE ^ISLO ZNAKOW`)',`]'ILI`"'.pREDLOVENIE
TAKVE NA^INAETSQ ILI KON^AETSQ,ESLI NA^INAETSQ ILI KON^AETSQ ABZAC.
pEREMENNAQ sentence-end UPRAWLQET RASPOZNAWANIEM KONCA PREDLOVENIQ.|TO REGULQR-
NOE WYRAVENIE,KOTOROE SOOTWETSTWUET POSLEDNIM NESKOLXKIM ZNAKAM PREDLOVENIQ WMESTE
S PROBELAMI,SLEDU@]IMI ZA PREDLOVENIEM.eGO NORMALXNOE ZNA^ENIE TAKOWO:
"[.?!][]\"')]*\\($\\|\t\\|\\)[\t\n]*"
|TOT PRIMER OB_QSNQETSQ W RAZDELE O REGULQRNYH WYRAVENIQH.sM.rAZDEL 12.5 [rEGULQR-
NYE WYRAVENIQ],S.91.
eSLI WY HOTITE ISPOLXZOWATX MEVDU PREDLOVENIQMI TOLXKO ODIN PROBEL,WAM NUVNO
USTANOWITX sentence-end W TAKOE ZNA^ENIE:
"[.?!][]\"')]*\\($\\|\t\\|\\)[\t\n]*"
wAM NUVNO TAKVE USTANOWITX PEREMENNU@ sentence-end-double-space RAWNOJ nil,^TOBY
KOMANDY ZAPOLNENIQ OVIDALI I OSTAWLQLI W KONCE PREDLOVENIJ TOLXKO ODIN PROBEL.zA-
METXTE,^TO PRI\TOM NEWOZMOVNO OTLI^ITX TO^KI,ZAWER[A@]IE PREDLOVENIQ,I TO^EK W
SOKRA]ENIQH.
21.3 aBZACY
kOMANDY Emacs DLQ RABOTY S ABZACAMI |\TO TAKVE Meta-KL@^I.
M-{ pEREJTI NAZAD K NA^ALU PREDYDU]EGO ABZACA (backward-paragraph).
M-} pEREMESTITXSQ WPERED K KONCU SLEDU@]EGO ABZACA (forward-paragraph).
M-h pOSTAWITX TO^KU I METKU WOKRUG\TOGO ILI SLEDU@]EGO ABZACA (mark-
paragraph).
M-{ DWIGAET TO^KU W NA^ALO TEKU]EGO ILI PREDYDU]EGO ABZACA,W TO WREMQ KAK M-} DWI-
GAET EE K KONCU TEKU]EGO ILI SLEDU@]EGO ABZACA.aBZACY RAZDELQ@TSQ PUSTYMI STROKAMI
I STROKAMI KOMAND FORMATIROWANIQ TEKSTA,KOTORYE W SWO@ O^EREDX NE QWLQ@TSQ ^ASTX@
KAKOGO-LIBO ABZACA.w REVIME Fundamental,NO NE W REVIME Text,STROKA S OTSTUPOM TAK-
VE NA^INAET NOWYJ ABZAC.(eSLI PERED ABZACEM STOIT PUSTAQ STROKA,DANNYE KOMANDY
S^ITA@T\TU PUSTU@ STROKU NA^ALOM ABZACA.)
w OSNOWNYH REVIMAH DLQ PROGRAMM,ABZACY NA^INA@TSQ I KON^A@TSQ TOLXKO PUSTYMI
STROKAMI.|TO DELAET KOMANDY DLQ ABZACEW PO-PREVNEMU UDOBNYMI,DAVE HOTQ ABZACEW KAK
TAKOWYH NET.
kOGDA IMEETSQ PREFIKS ZAPOLNENIQ,ABZACY OGRANI^IWA@TSQ WSEMI STROKAMI,KOTORYE
NE NA^INA@TSQ S\TOGO PREFIKSA.sM.rAZDEL 21.5 [zAPOLNENIE],S.185.
kOGDA WY ZAHOTITE OPERIROWATX S ABZACEM,WY MOVETE ISPOLXZOWATX KOMANDU M-h (mark-
paragraph),^TOBY USTANOWITX WOKRUG NEGO OBLASTX.tAKIM OBRAZOM,NAPRIMER,M-h C-w
UNI^TOVAET ABZAC WOKRUG ILI POSLE TO^KI.kOMANDA M-h STAWIT TO^KU W NA^ALE ABZACA,
SODERVA]EGO TO^KU,I METKU W EGO KONCE.w REVIME Transient Mark ONA AKTIWIZIRUET
METKU.eSLI TO^KA NAHODITSQ MEVDU ABZACAMI (W OBLASTI PUSTYH STROK ILI NA GRANICE),
184 rUKOWODSTWO PO GNU EmacsTO TO^KOJ I METKOJ OKRUVAETSQ ABZAC,SLEDU@]IJ ZA TO^KOJ.eSLI PERWOJ STROKE ABZACA
PRED[ESTWU@T PUSTYE STROKI,TO ODNA IZ\TIH PUSTYH STROK WKL@^AETSQ W OBLASTX.
tO^NYM OPREDELENIEM GRANIC ABZACA UPRAWLQ@T DWE PEREMENNYE:paragraph-separate
I paragraph-start.zNA^ENIE paragraph-start |\TO REGULQRNOE WYRAVENIE,KOTOROE
DOLVNO SOOTWETSTWOWATX L@BOJ STROKE,KOTORAQ LIBO NA^INAET,LIBO RAZDELQET ABZACY.
zNA^ENIE paragraph-separate |\TO E]E ODNO REGULQRNOE WYRAVENIE,KOTOROE DOLV-
NO SOOTWETSTWOWATX TOLXKO STROKAM,KOTORYE RAZDELQ@T ABZAC,NO NE QWLQ@TSQ ^ASTX@
KAKOGO-LIBO ABZACA (NAPRIMER,PUSTYE STROKI).sTROKI,KOTORYE NA^INA@T NOWYJ ABZAC I
SODERVATSQ W NEM,DOLVNY SOOTWETSTWOWATX TOLXKO paragraph-start,NO NE paragraph-
separate.nAPRIMER,W REVIME Fundamental,paragraph-start RAWNA"[\t\n\f]",A
paragraph-separate |\TO"[\t\f]*$".
oBY^NO VELATELXNO,^TOBY GRANICY STRANIC RAZDELQLI ABZACY.zNA^ENIQ PO UMOL^A-
NI@\TIH PEREMENNYH RASPOZNA@T OBY^NYJ RAZDELITELX STRANIC.
21.4 sTRANICY
o^ENX ^ASTO FAJLY PREDSTAWLQ@TSQ RAZDELENNYMI NA STRANICY S POMO]X@ ZNAKOW PRO-
GONA (ILI PEREWODA) STRANICY (ASCII Control-L,WOSXMIRI^NYJ KOD 014).kOGDA WY PE^ATA-
ETE FAJL,\TOT ZNAK PRINUDITELXNO RAZBIWAET STRANICU;TAKIM OBRAZOM,KAVDAQ STRANICA
FAJLA BUDET NA^INATXSQ NA NOWOM LISTE BUMAGI.bOLX[INSTWO KOMAND Emacs RASSMATRIWA-
@T ZNAK-RAZDELITELX STRANIC TO^NO TAK VE,KAK L@BYE DRUGIE ZNAKI:WY MOVETE WSTAWITX
IH PRI POMO]I C-q C-l ILI UDALITX S POMO]X@ hDELi.tAKIM OBRAZOM,WY SWOBODNY W WY-
BORE,DELITX NA STRANICY WA[ FAJL ILI NET.oDNAKO,IZ-ZA TOGO,^TO DELENIE NA STRANICY
^ASTO QWLQETSQ SMYSLOWYM DELENIEM FAJLA,TO PREDUSMOTRENY KOMANDY DLQ PEREME]ENIQ
PO STRANICAM I DLQ DEJSTWIJ NAD NIMI.
C-x [ sMESTITX TO^KU K PREDYDU]EJ STRANICE (backward-page).
C-x ] sMESTITX TO^KU K SLEDU@]EJ STRANICE (forward-page).
C-x C-p pOSTAWITX TO^KU I METKU PO KRAQM\TOJ (ILI DRUGOJ) STRANICY (mark-page).
C-x l sOS^ITATX STROKI W\TOJ STRANICE (count-lines-page).
kOMANDA C-x [ (backward-page) DWIGAET TO^KU K POZICII NEPOSREDSTWENNO POSLE PRE-
DYDU]EGO RAZDELITELQ STRANICY.eSLI TO^KA UVE NAHODITSQ SRAZU POSLE RAZDELITELQ,TO
KOMANDA PROPUSKAET\TU STRANICU I OSTANAWLIWAETSQ NA PRED[ESTWU@]EJ EJ.~ISLOWOJ AR-
GUMENT SLUVIT W KA^ESTWE S^ET^IKA POWTOROW.kOMANDA C-x ] (forward-page) PEREDWIGAET
TO^KU WPERED,PROPUSKAQ SLEDU@]IJ RAZDELITELX STRANIC.
kOMANDA C-x C-p (mark-page) STAWIT TO^KU W NA^ALE TEKU]EJ STRANICY,A METKU W EE
KONCE.rAZDELITELX STRANIC W KONCE WKL@^AETSQ W OBLASTX (METKA SLEDUET ZA NIM).rAZDE-
LITELX STRANIC W NA^ALE NE WKL@^AETSQ (TO^KA SLEDUET ZA NIM).C-x C-p C-w DAET UDOBNYJ
SPOSOB UNI^TOVITX STRANICU ILI PEREMESTITX EE W DRUGOE MESTO.eSLI WY SDWINITESX K
RAZDELITEL@ E]E ODNOJ STRANICY S POMO]X@ C-x [ I C-x ],A ZATEM WOSSTANOWITE UNI^TO-
VENNU@ STRANICU,WSE STRANICY BUDUT SNOWA PRAWILXNO RAZGRANI^INY.C-x C-p WKL@^AET
W OBLASTX TOLXKO RAZDELITELX SLEDU@]EJ STRANICY IMENNO DLQ\TOGO.
~ISLOWOJ ARGUMENT DLQ C-x C-p ISPOLXZUETSQ DLQ UKAZANIQ STRANICY,K KOTOROJ NEOB-
HODIMO OTPRAWITXSQ,OTNOSITELXNO TEKU]EJ.nOLX OZNA^AET TEKU]U@ STRANICU.eDINICA
OZNA^AET SLEDU@]U@ STRANICU,A пЂЂ1 |PREDYDU]U@.
kOMANDA C-x l (count-lines-page) HORO[A DLQ PRINQTIQ RE[ENIQ,GDE RAZORWATX STRA-
NICU NA DWE.oNA PE^ATAET W\HO-OBLASTI OB]EE ^ISLO STROK W TEKU]EJ STRANICE I ZATEM
DELIT EE NA TE,KOTORYE PRED[ESTWU@T TEKU]EJ STROKE,I NA TE,^TO SLEDU@T ZA NEJ,KAK W
PRIMERE:
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 185Page has 96 (72+25) lines
2
zAMETXTE,^TO ZNA^ENIE SUMMY NA EDINICU MENX[E;\TO WERNO,ESLI TO^KA NE STOIT W NA^ALE
STROKI.
pEREMENNAQ page-delimiter GOWORIT,GDE NA^INAETSQ STRANICA.eE ZNA^ENIE |\TO REGU-
LQRNOE WYRAVENIE,SOOTWETSTWU@]EE NA^ALU STROKI,KOTORAQ RAZDELQET STRANICY.oBY^-
NOE ZNA^ENIE\TOJ PEREMENNOJ RAWNO"^\f",^TO SOOTWETSTWUET ZNAKU PEREWODA STRANICY W
NA^ALE STROKI.
21.5 zAPOLNENIE TEKSTA
zAPOLNENIE TEKSTA OZNA^AET RAZBIENIE EGO NA STROKI OPREDELENNOJ DLINY.Emacs MOVET
DELATX ZAPOLNENIE DWUMQ SPOSOBAMI.w REVIME Auto Fill,WSTAWKA TEKSTA S POMO]X@ SA-
MOWSTAWLQ@]IHSQ ZNAKOW TAKVE AWTOMATI^ESKI ZAPOLNQET EGO.eSTX TAKVE QWNYE KOMANDY
DLQ ZAPOLNENIQ,KOTORYE WY MOVETE ISPOLXZOWATX,KOGDA REDAKTIROWANIE TEKSTA OSTAWLQET
EGO NEZAPOLNENNYM.kOGDA WY REDAKTIRUETE FORMATIROWANNYJ TEKST,WY MOVETE ZADATX
STILX ZAPOLNENIQ KAVDOGO FRAGMENTA (SM.rAZDEL 21.11 [fORMATIROWANNYJ TEKST],S.198).
21.5.1 rEVIM Auto Fill
rEVIM Auto Fill |\TO WTOROSTEPENNYJ REVIM,W KOTOROM STROKI OBRYWA@TSQ AWTOMA-
TI^ESKI,KOGDA STANOWQTSQ SLI[KOM DLINNYMI.rAZRYW PROISHODIT TOLXKO TOGDA,KOGDA
WY NABIRAETE
h SPCi ILI hRETi.
M-x auto-fill-mode
wKL@^ENIE I WYKL@^ENIE REVIMA Auto Fill.
h SPCi
h RETi w REVIME Auto Fill PRERYWAET STROKU,ESLI\TO NUVNO.
M-x auto-fill-mode WKL@^AET REVIM Auto Fill,ESLI ON BYL OTKL@^EN,ILI WYKL@^AET,
ESLI ON BYL WKL@^EN.s POLOVITELXNYM ARGUMENTOM ONA WSEGDA WKL@^AET REVIM Auto
Fill,A OTRICATELXNYM | WSEGDA OTKL@^AET.wY MOVETE WIDETX,KOGDA REVIM Auto Fill
DEJSTWUET,PO PRISUTSTWI@ SLOWA`Fill'W STROKE REVIMA WNUTRI KRUGLYH SKOBOK.rEVIM
Auto Fill | WTOROSTEPENNYJ REVIM,WKL@^AEMYJ ILI WYKL@^AEMYJ DLQ KAVDOGO BUFERA
OTDELXNO.sM.rAZDEL 31.1 [wTOROSTEPENNYE REVIMY],S.341.
w REVIME Auto Fill STROKI AWTOMATI^ESKI RAZRYWA@TSQ NA PROBELAH,KOGDA ONI STANO-
WQTSQ DLINNEE VELAEMOJ WELI^INY.pRERYWANIE I PERERASPOLOVENIE STROKI PROISHODIT,
TOLXKO KOGDA WY NABIRAETE h SPCi ILI hRETi.eSLI WY HOTITE WSTAWITX PROBEL ILI ZNAK
NOWOJ STROKI S ZAPRETOM PRERYWANIQ STROKI,NABERITE C-q hSPCi ILI C-q C-j (NAPOMNIM,
^TO ZNAK NOWOJ STROKI |\TO NA SAMOM DELE control-J).C-o TAKVE WSTAWLQET NOWU@ STROKU
BEZ PRERYWANIQ STROKI.
rEVIM Auto Fill HORO[O RABOTAET S REVIMAMI DLQ QZYKOW PROGRAMMIROWANIQ,TAK KAK
ON DELAET W NOWYH STROKAH OTSTUP S POMO]X@
h TABi.eSLI STROKA,ZAKAN^IWA@]AQSQ KOM-
MENTARIEM,POLU^ILASX SLI[KOM DLINNOJ,TO TEKST KOMMENTARIQ RAZBIWAETSQ NA DWE STRO-
KI.wOZMOVNO,W KONCE PERWOJ STROKI I W NA^ALE WTOROJ WSTAWQTSQ NOWYE OGRANI^ITE-
LI KOMMENTARIEW,TAKIM OBRAZOM,^TOBY KAVDAQ STROKA STALA OTDELXNYM KOMMENTARIEM;
\TIM WYBOROM UPRAWLQET PEREMENNAQ comment-multi-line (SM.rAZDEL 22.7 [kOMMENTARII],
S.219 ).
aDAPTIWNOE ZAPOLNENIE (SMOTRITE SLEDU@]IJ RAZDEL) RABOTAET S REVIMOM Auto Fill TAK
VE,KAK S QWNYMI KOMANDAMI ZAPOLNENIQ.oNO AWTOMATI^ESKI BERET PREFIKS ZAPOLNENIQ
IZ WTOROJ ILI PERWOJ STROKI ABZACA.2
sTRANICA SODERVIT 96 (72+25) STROK.(pRIM.PEREWOD^IKA)
186 rUKOWODSTWO PO GNU EmacsrEVIM Auto Fill NE PEREZAPOLNQET CELYE ABZACY;ON MOVET PRERYWATX STROKI,NO NE
MOVET IH OB_EDINQTX.tAKIM OBRAZOM,REDAKTIROWANIE W SEREDINE ABZACA MOVET PRIWESTI
K SOZDANI@ ABZACA,KOTORYJ NEPRAWILXNO ZAPOLNEN.pROSTEJ[IM SPOSOBOM SDELATX ABZAC
SNOWA PRAWILXNO ZAPOLNENNYM OBY^NO SLUVIT PRIMENENIE QWNYH KOMANDY ZAPOLNENIQ.
mNOGIE POLXZOWATELI L@BQT REVIM Auto Fill I HOTQT ISPOLXZOWATX EGO WO WSEH TEKSTOWYH
FAJLAH.rAZDEL O FAJLAH INICIALIZACII RASSKAZYWAET,KAK USTROITX,^TOBY\TO BYLO DLQ
WAS POSTOQNNYM.sM.rAZDEL 31.7 [fAJL INICIALIZACII],S.366.
21.5.2 qWNYE KOMANDY ZAPOLNENIQ
M-q zAPOLNITX TEKU]IJ ABZAC (fill-paragraph).
C-x f uSTANOWITX STOLBEC ZAPOLNENIQ (set-fill-column).
M-x fill-region
zAPOLNITX KAVDYJ ABZAC W OBLASTI (fill-region).
M-x fill-region-as-paragraph
zAPOLNITX OBLASTX,RASSMATRIWAQ EE KAK ODIN ABZAC.
M-s oTCENTRIROWATX STROKU.
~TOBY PEREZAPOLNITX ODIN ABZAC,ISPOLXZUJTE KOMANDU M-q (fill-paragraph).oNA
DEJSTWUET NA ABZAC,W KOTOROM NAHODITSQ TO^KA,ILI NA ABZAC POSLE TO^KI,ESLI ONA STOIT
MEVDU ABZACAMI.pEREZAPOLNENIE RABOTAET PUTEM UDALENIQ WSEH RAZRYWOW STROK I WSTAWKI
NOWYH W TEH MESTAH,GDE\TO TREBUETSQ.
~TOBY PEREZAPOLNITX MNOGO ABZACEW,ISPOLXZUJTE M-x fill-region,KOTORAQ DELIT OB-
LASTX NA ABZACY I ZAPOLNQET KAVDYJ IZ NIH.
kOMANDY M-q I fill-region ISPOLXZU@T DLQ NAHOVDENIQ GRANIC ABZACA TOT VE SAMYJ
KRITERIJ,^TO I M-h (SM.rAZDEL 21.3 [aBZACY],S.183).dLQ BOLX[EGO KONTROLQ,WY MOVETE
ISPOLXZOWATX M-x fill-region-as-paragraph,KOTORAQ PEREZAPOLNQET WSE MEVDU TO^KOJ I
METKOJ.|TA KOMANDA UDALQET W OBLASTI WSE PUSTYE STROKI,PO\TOMU OTDELXNYE BLOKI
TEKSTA W REZULXTATE OB_EDINQ@TSQ W ODIN BLOK.
~ISLOWOJ ARGUMENT DLQ M-q PRIWODIT K TOMU,^TO POMIMO ZAPOLNENIQ,TEKST E]E I
WYRAWNIWAETSQ.|TO ZNA^IT,^TO WSTAWLQ@TSQ DOPOLNITELXNYE PROBELY,^TOBY PRAWYJ
KRAJ STROKI POPADAL TO^NO W STOLBEC ZAPOLNENIQ.~TOBY UNI^TOVITX DOPOLNITELXNYE
PROBELY,ISPOLXZUJTE M-q BEZ ARGUMENTA.(aNALOGI^NO I DLQ fill-region.) dRUGOJ SPOSOB
UPRAWLQTX WYRAWNIWANIEM ILI WYBRATX DRUGIE STILI ZAPOLNENIQ SOSTOIT W PRIMENENII
SWOJSTWA TEKSTA justification;SMOTRITE rAZDEL 21.11.7 [fORMAT wYRAWNIWANIE],S.202.
kOMANDA M-s (center-line) CENTRIRUET TEKU]U@ STROKU W PREDELAH TEKU]EGO STOLBCA
ZAPOLNENIQ.s ARGUMENTOM n,ONA CENTRIRUET NESKOLXKO STROK OTDELXNO I PEREHODIT ^EREZ
NIH.
mAKSIMALXNAQ [IRINA STROKI DLQ ZAPOLNENIQ SODERVITSQ W PEREMENNOJ fill-column.
iZMENENIE ZNA^ENIQ fill-column DELAET EE LOKALXNOJ DLQ TEKU]EGO BUFERA;DO\TOGO MO-
MENTA DEJSTWUET ZNA^ENIE PO UMOL^ANI@.iZNA^ALXNO ONO RAWNO 70.sM.rAZDEL 31.2.4
[lOKALXNYE PEREMENNYE],S.350.nAILEG^AJ[IJ SPOSOB USTANOWITX fill-column | IS-
POLXZOWATX KOMANDU C-x f (set-fill-column).zAPU]ENNAQ S ^ISLOWYM ARGUMENTOM,ONA
ISPOLXZUET EGO W KA^ESTWE NOWOGO STOLBCA ZAPOLNENIQ.pROSTO S C-u W KA^ESTWE ARGUMENTA,
ONA USTANAWLIWAET fill-column SOOTWETSTWENNO TEKU]EJ GORIZONTALXNOJ POZICII TO^KI.
kOMANDY Emacs OBY^NO RASSMATRIWA@T TO^KU,ZA KOTOROJ SLEDU@T DWA PROBELA ILI
PEREWOD STROKI,KAK KONEC PREDLOVENIQ;TO^KA,POSLE KOTOROJ IDET TOLXKO ODIN PROBEL,
UKAZYWAET NA SOKRA]ENIE I NE QWLQETSQ KONCOM PREDLOVENIQ.~TOBY SOHRANITX RAZGRA-
NI^ENIE MEVDU DWUMQ\TIMI WARIANTAMI ISPOLXZOWANIQ TO^KI,KOMANDY ZAPOLNENIQ NE
OBRYWA@T STROKU POSLE TO^KI,ZA KOTOROJ IDET TOLXKO ODIN PROBEL.
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 187eSLI PEREMENNAQ sentence-end-double-space RAWNA nil,TO KOMANDY ZAPOLNENIQ OVI-
DA@T I OSTAWLQ@T W KONCE PREDLOVENIJ TOLXKO ODIN PROBEL.oBY^NO\TA PEREMENNAQ
RAWNA t,PO\TOMU KOMANDY ZAPOLNENIQ NASTAIWA@T NA POSTANOWKE DWUH PROBELAH W KONCE
PREDLOVENIQ,KAK OB_QSNENO WY[E.sM.rAZDEL 21.2 [pREDLOVENIQ],S.182.
eSLI PEREMENNAQ colon-double-space NE RAWNA nil,KOMANDY ZAPOLNENIQ STAWQT POSLE
DWOETO^IQ DWA PROBELA.
21.5.3 pREFIKS ZAPOLNENIQ
~TOBY ZAPOLNITX ABZAC,W KOTOROM KAVDAQ STROKA NA^INAETSQ S OSOBOGO MARKERA (KO-
TORYJ MOVET NESKOLXKIMI PROBELAMI,^TO DAET ABZAC S OTSTUPOM),ISPOLXZUJTE TAK NA-
ZYWAEMYJ PREFIKS ZAPOLNENIQ.pREFIKS ZAPOLNENIQ |\TO CEPO^KA ZNAKOW,S KOTOROJ,PO
PREDPOLOVENI@ Emacs,NA^INAETSQ KAVDAQ STROKA,I KOTORAQ NE WKL@^AETSQ W ZAPOLNE-
NIE.wY MOVETE ZADATX PREFIKS ZAPOLNENIQ QWNO;KROME TOGO,Emacs MOVET WY^ISLQTX EGO
AWTOMATI^ESKI (SM.rAZDEL 21.5.4 [aDAPTIWNOE ZAPOLNENIE],S.188).
C-x.uSTANOWITX PREFIKS ZAPOLNENIQ (set-fill-prefix).
M-q zAPOLNITX ABZAC S TEKU]IM PREFIKSOM ZAPOLNENIQ (fill-paragraph).
M-x fill-individual-paragraphs
zAPOLNITX OBLASTX,RASSMATRIWAQ KAVDOE IZMENENIE OTSTUPA KAK NA^ALO NOWOGO
ABZACA.
M-x fill-nonuniform-paragraphs
zAPOLNITX OBLASTX,S^ITAQ NA^ALOM NOWOGO ABZACA TOLXKO STROKI-RAZDELITELI
ABZACEW.
~TOBY ZADATX PREFIKS ZAPOLNENIQ,PEREDWINXTESX K STROKE,KOTORAQ NA^INAETSQ S VE-
LAEMOGO PREFIKSA,POSTAWXTE TO^KU W KONEC PREFIKSA I DAJTE KOMANDU C-x.(set-fill-
prefix).pOSLE C-x STOIT TO^KA.~TOBY WYKL@^ITX PREFIKS ZAPOLNENIQ,OPREDELITE
PUSTOJ PREFIKS:NABERITE C-x.,KOGDA TO^KA NAHODITSQ W NA^ALE STROKI.
kOGDA PREFIKS ZAPOLNENIQ W DEJSTWII,KOMANDY ZAPOLNENIQ UNI^TOVA@T EGO W KAVDOJ
STROKE PERED ZAPOLNENIEM I WSTAWLQ@T EGO W KAVDU@ STROKU POSLE ZAPOLNENIQ.rEVIM
Auto Fill TAKVE AWTOMATI^ESKI WSTAWLQET W KAVDU@ WNOWX SOZDANNU@ STROKU PREFIKS ZA-
POLNENIQ.kOMANDA C-o WSTAWLQET W SOZDANNYE EJ STROKI PREFIKS ZAPOLNENIQ,KOGDA WY
ISPOLXZUETE EE W NA^ALE STROKI (SM.rAZDEL 4.7 [pUSTYE STROKI],S.39).s DRUGOJ STORONY,
KOMANDA M-^ UNI^TOVAET PREFIKS (ESLI ON ESTX) POSLE UDALQEMOGO PEREWODA STROKI (SM.gLAWA 20 [oTSTUPY],S.177).
nAPRIMER,ESLI fill-column RAWNA 40 I WY USTANOWILI PREFIKS ZAPOLNENIQ RAWNYM`;;
',TO M-q W TAKOM TEKSTE:
;;|TO PRIMER
;;ABZACA WNUTRI
;;KOMMENTARIQ W STILE lISPA.
DAET SLEDU@]EE:
;;|TO PRIMER ABZACA WNUTRI KOMMENTARIQ
;;W STILE lISPA.
sTROKI,NE NA^INA@]IESQ S PREFIKSA ZAPOLNENIQ,RASSMATRIWA@TSQ KAK NA^INA@]IE
ABZAC I W M-q,I W KOMANDAH RABOTY S ABZACAMI;\TO DAET HORO[IE REZULXTATY DLQ ABZACEW
S WISQ]IM OTSTUPOM (WSE STROKI,KROME PERWOJ,IME@T OTSTUP).sTROKI,STAW[IE PUSTYMI
ILI IME@]IMI OTSTUP POSLE UDALENIQ PREFIKSA,TAKVE RAZDELQ@T ILI NA^INA@T ABZAC;
\TO IMENNO TO,^TO WY HOTITE,ESLI WY PI[ETE KOMMENTARII,SOSTOQ]IE IZ NESKOLXKIH
ABZACEW,S OGRANI^ITELEM KOMMENTARIQ NA KAVDOJ STROKE.
188 rUKOWODSTWO PO GNU EmacswY MOVETE ISPOLXZOWATX M-x fill-individual-paragraphs,^TOBY USTANOWITX PREFIKS
ZAPOLNENIQ DLQ KAVDOGO ABZACA AWTOMATI^ESKI.|TA KOMANDA DELIT OBLASTX NA ABZACY,
S^ITAQ L@BOE IZMENENIE WELI^INY OTSTUPA NA^ALOM NOWOGO ABZACA,I ZAPOLNQET KAVDYJ
IZ\TIH ABZACEW.tAKIM OBRAZOM,WSE STROKI ODNOGO\ABZACA"IME@T ODINAKOWYJ OTSTUP.
iMENNO\TOT OTSTUP SLUVIT PREFIKSOM ZAPOLNENIQ DLQ KAVDOGO ABZACA.
M-x fill-nonuniform-paragraphs |\TO POHOVAQ KOMANDA,KOTORQ DELIT OBLASTX NA
ABZACY DRUGIM SPOSOBOM.oNA RASSMATRIWAET TOLXKO STROKI-RAZDELITELI ABZACEW (KAK
OPREDELENO paragraph-separate) W KA^ESTWE NA^INA@]IH NOWYJ ABZAC.pOSKOLXKU\TO
OZNA^AET,^TO STROKI ODNOGO ABZACA MOGUT IMETX RAZNYJ OTSTUP,W KA^ESTWE PREFIKSA
ZAPOLNENIQ ISPOLXZUETSQ OTSTUP NAIMENX[EGO SREDI WSEH STROK\TOGO ABZACA RAZMERA.|TO
DAET HORO[IE REZULXTATY DLQ STILEJ,W KOTORYH PERWAQ STROKA ABZACA IMEET BOLX[IJ ILI
MENX[IJ OTSTUP,^EM OSTALXNAQ ^ASTX ABZACA.
pREFIKS ZAPOLNENIQ HRANITSQ W PEREMENNOJ fill-prefix.eE ZNA^ENIE |\TO LIBO
STROKA,LIBO nil,KOGDA PREFIKSA ZAPOLNENIQ NET.w KAVDOM BUFERE DLQ\TOJ PEREMENNOJ
ESTX SWOE ZNA^ENIE;EE IZMENENIE WOZDEJSTWUET TOLXKO NA TEKU]IJ BUFER,NO IMEETSQ I
ZNA^ENIE PO UMOL^ANI@,KOTOROE WY TAKVE MOVETE IZMENITX.sM.rAZDEL 31.2.4 [lOKALXNYE
PEREMENNYE],S.350.
sWOJSTWO TEKSTA indentation PREDOSTAWLQET DRUGOJ SPOSOB UPRAWLENIQ WELI^INOJ OT-
STUPA ABZACA.sM.rAZDEL 21.11.6 [fORMAT oTSTUP],S.201.
21.5.4 aDAPTIWNOE ZAPOLNENIE
kOMANDY ZAPOLNENIQ MOGUT W NEKOTORYH SLU^AQH AWTOMATI^ESKI WY^ISLQTX PODHODQ]IJ
DLQ ABZACA PREFIKS ZAPOLNENIQ:PROPUSKI ILI OPREDELENNAQ PUNKTUACIQ W NA^ALE STROKI
RASPROSTRANQ@TSQ NA WSE STROKI ABZACA.
eSLI W ABZACE ESTX DWE ILI BOLEE STROKI,PREFIKS ZAPOLNENIQ BERETSQ IZ WTOROJ,NO
TOLXKO ESLI ON TAKVE POQWLQETSQ I W PERWOJ.
eSLI W ABZACE ESTX TOLXKO ODNA STROKA,KOMANDY ZAPOLNENIQ MOGUT WZQTX PREFIKS IZ
\TOJ STROKI.zDESX SLOVNO PRINQTX RE[ENIE,POTOMU ^TO W TAKOM SLU^AE RAZUMNYMI MOGUT
OKAZATXSQ TRI WARIANTA:
пЂЏ iSPOLXZOWATX PREFIKS PERWOJ STROKI DLQ WSEH STROK\TOGO ABZACA.
пЂЏ sDELATX W POSLEDU@]IH STROKAH OTSTUP IZ PROPUSKOW TAKIM OBRAZOM,^TOBY ONI WY-
ROWNQLISX PO TEKSTU,SLEDU@]EMU POSLE PREFIKSA NA PERWOJ,NO NE KOPIROWATX W DEJ-
STWITELXNOSTI PREFIKS PERWOJ STROKI.
пЂЏ nE PREDPRINIMATX NIKAKIH OSOBENNYH DEJSTWIJ DLQ WTOROJ I POSLEDU@]IH STROK.
wSE TRI\TIH STILQ FORMATIROWANIQ PRIMENQ@TSQ ^ASTO.pO\TOMU KOMANDY ZAPOLNENIQ
PQTA@TSQ WYQSNITX,KAKOJ BY WAM PONRAWILSQ,OSNOWYWAQSX NA POQWLQ@]EMSQ PREFIKSE I
NA OSNOWNOM REVIME.kAK\TO DELAETSQ,OPISANO NIVE.
eSLI PREFIKS,OBNARUVENNYJ NA PERWOJ STROKE,SOOTWETSTWUET REGULQRNOMU WYRAVENI@
adaptive-fill-first-line-regexp,ILI ON OKAZALSQ POSLEDOWATELXNOSTX@,NA^INA@]EJ
KOMMENTARIJ (\TO ZAWISIT OT OSNOWNEGO REVIMA),TO DLQ ZAPOLNENIQ ABZACA ISPOLXZUETSQ
\TOT NAJDENNYJ PREFIKS,PRI USLOWII,^TO ON NE BUDET DEJSTWOWATX KAK NA^ALO ABZACA W
SLEDU@]IH STROKAH.
iNA^E,NAJDENNYJ PREFIKS PREOBRAZUETSQ W\KWIWALENTNOE ^ISLO PROBELOW,I W KA^ESTWE
PREFIKSA ZAPOLNENIQ DLQ OSTAW[IHSQ STROK ISPOLXZU@TSQ\TI PROBELY,PRI USLOWII,^TO
ONI NE BUDUT DEJSTWOWATX KAK NA^ALO ABZACA W SLEDU@]IH STROKAH.
w REVIME Text I W DRUGIH REVIMAH,GDE ABZACY RAZDELQ@TSQ TOLXKO PUSTYMI STROKAMI
I PEREWODAMI STRANICY,PREFIKS,WYBIRAEMYJ ADAPTIWNYM ZAPOLNENIEM,NIKOGDA NE WEDET
SEBQ KAK NA^ALO ABZACA,PO\TOMU ON WSEGDA MOVET ISPOLXZOWATXSQ DLQ ZAPOLNENIQ.
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 189pEREMENNAQ adaptive-fill-regexp OPREDELQET,KAKIE WIDY NA^ALA STROKI MOGUT SLU-
VITX PREFIKSOM ZAPOLNENIQ:ISPOLXZU@TSQ L@BYE ZNAKI W NA^ALE STROKI,SOOTWETSTWU@-
]IE\TOMU REGULQRNOMU WYRAVENI@.eSLI WY USTANOWITE PEREMENNU@ adaptive-fill-mode
RAWNOJ nil,PREFIKS ZAPOLNENIQ NIKOGDA NE WYBIRAETSQ AWTOMATI^ESKI.
wY MOVETE ZADATX BOLEE SLOVNYE METODY AWTOMATI^ESKOGO WYBORA PREFIKSA ZAPOLNE-
NIQ,USTANOWIW PEREMENNU@ adaptive-fill-function W ZNA^ENIE FUNKCII.|TA FUNKCIQ
WYZYWAETSQ,KOGDA TO^KA NAHODITSQ S LEWOGO KRAQ STROKI,I ONA DOLVNA WERNUTX PODHODQ-
]IJ PREFIKS ZAPOLNENIQ.eSLI ONA WOZWRA]ET nil,\TO OZNA^AET,^TO ONA NE UWIDELA W\TOJ
STROKE PREFIKS ZAPOLNENIQ.
21.6 kOMANDY PREOBRAZOWANIQ REGISTRA
w Emacs ESTX KOMANDY DLQ PEREWODA ODINO^NYH SLOW ILI L@BOGO PROIZWOLXNOGO TEKSTA
W WERHNIJ ILI W NIVNIJ REGISTR.
M-l pEREWESTI SLEDU@]EE SLOWO W NIVNIJ REGISTR (downcase-word).
M-u pEREWESTI SLEDU@]EE SLOWO W WERHNIJ REGISTR (upcase-word).
M-c sDELATX PERWU@ BUKWU SLEDU@]EGO SLOWA ZAGLAWNOJ,A OSTALXNYE |STRO^NYMI
(capitalize-word).
C-x C-l pEREWESTI OBLASTX W NIVNIJ REGISTR (downcase-region).
C-x C-u pEREWESTI OBLASTX W WERHNIJ REGISTR (upcase-region).
kOMANDY PREOBRAZOWANIQ SLOW NAIBOLEE POLEZNY.M-l (downcase-word) PEREWODIT SLOWO
POSLE TO^KI W NIVNIJ REGISTR,PEREDWIGAQ TO^KU ZA NEGO.tAKIM OBRAZOM,POWTORENIE M-l
PEREWODIT POSLEDU@]IE SLOWA.M-u (upcase-word) PEREWODIT WSE SLOWO W PROPISNYE BUKWY,
W TO WREMQ KAK M-c (capitalize-word) STAWIT PERWU@ BUKWU SLOWA W WERHNEM REGISTRE,A
OSTALXNYE | W NIVNEM REGISTRE.wSE\TI KOMANDY PEREWODQT NESKOLXKO SLOW ZA ODIN RAZ,
ESLI IM PRIDATX ARGUMENT.oNI OSOBENNO UDOBNY DLQ PEREWODA BOLX[OGO OB_EMA TEKSTA,
NABRANNOGO POLNOSTX@ W WERHNEM REGISTRE,W SME[ANNYJ REGISTR,POTOMU ^TO WY MOVETE
DWIGATXSQ PO TEKSTU,ISPOLXZUQ M-l,M-u ILI M-c,KOGDA\TO NEOBHODIMO,I ISPOLXZUQ INOGDA
M-f,^TOBY PROPUSTITX SLOWO.
kOGDA ZADAN OTRICATELXNYJ ARGUMENT,KOMANDY PEREWODA REGISTRA W SLOWAH PRIMENQ-
@TSQ K SOOTWETSTWU@]EMU ^ISLU SLOW PERED TO^KOJ,NE SDWIGAQ EE SAMU.|TO UDOBNO,KOGDA
WY TOLXKO ^TO NABRALI SLOWO W NEPRAWILXNOM REGISTRE:WY MOVETE DATX KOMANDU PEREWODA
REGISTRA I PRODOLVATX NABOR.
eSLI KOMANDA PEREWODA REGISTRA W SLOWAH DAETSQ W SEREDINE SLOWA,TO ONA PRIMENQETSQ
TOLXKO K ^ASTI SLOWA,KOTORAQ SLEDUET ZA TO^KOJ.|TO O^ENX POHOVE NA TO,^TO DELAET M-d
(kill-word).s OTRICATELXNYM ARGUMENTOM,PEREWOD REGISTRA PRIMENQETSQ TOLXKO K ^ASTI
SLOWA PERED TO^KOJ.
dRUGIE KOMANDY PEREWODA REGISTRA |\TO C-x C-u (upcase-region) I C-x C-l
(downcase-region),KOTORYE PEREWODQT WSE MEVDU TO^KOJ I METKOJ W ZADANNYJ REGISTR.
tO^KA I METKA NE SDWIGA@TSQ.
kOMANDY PEREWODA REGISTRA W OBLASTI,upcase-region I downcase-region,OBY^NO ZA-
BLOKIROWANY.|TO OZNA^AET,^TO ONI ZAPRA[IWA@T PODTWERVDENIE,ESLI WY PYTAETESX IH
ISPOLXZOWATX.pRI PODTWERVDENII WY MOVETE WKL@^ITX\TI KOMANDY,TOGDA ONI BOLX[E
NE BUDUT ZAPRA[IWATX PODTWERVDENIQ.sM.rAZDEL 31.4.11 [bLOKIROWANIE KOMANDY],S.364.
190 rUKOWODSTWO PO GNU Emacs21.7 rEVIM Text
kOGDA WY REDAKTIRUETE TEKSTOWYE FAJLOW NA ESTESTWENNOM QZYKE,WAM BUDET UDOBNEE
WOSPOLXZOWATXSQ REVIMOM Text,A NE Fundamental.~TOBY WOJTI W REVIM Text,NABERITE
M-x text-mode.
w REVIME Text ABZACY RAZDELQ@TSQ TOLXKO PUSTYMI STROKAMI I RAZDELITELQMI STRA-
NIC.w REZULXTATE ABZACY MOGUT IMETX OTSTUP,I ADAPTIWNOE ZAPOLNENIE MOVET OPRE-
DELITX,KAKOJ OTSTUP DOLVEN ISPOLXZOWATXSQ DLQ ZAPOLNENIQ ABZACA.sM.rAZDEL 21.5.4
[aDAPTIWNOE ZAPOLNENIE],S.188.
w REVIME Text
h TABi ZAPUSKAET FUNKCI@ indent-relative (SM.gLAWA 20 [oTSTUPY],
S.177 ),^TOBY WAM BYLO UDOBNO DELATX OTSTUP KAK W PREDYDU]EJ STROKE.kOGDA W PREDYDU-
]EJ STROKE NET OTSTUPA,indent-relative ZAPUSKAET tab-to-tab-stop,KOTORAQ ISPOLXZUET
USTANAWLIWAEMYE WAMI POZICII TABULQCII (SM.rAZDEL 20.2 [pOZICII TABULQCII],S.178).
rEVIM Text WYKL@^AET SREDSTWA,SWQZANNYE S KOMMENTARIQMI,KROME TEH SLU^AEW,KOGDA
WY QWNO WYZOWETE IH.oN IZMENQET SINTAKSI^ESKU@ TABLICU TAKIM OBRAZOM,^TO TO^KI
NE RASSMATRIWA@TSQ KAK ^ASTX SLOWA,TOGDA KAK ZNAK ZABOQ,POD^ERKIWANIE I APOSTROFY
S^ITA@TSQ TAKOWYMI.
eSLI WY DELAETE OTSTUP W PERWOJ STROKE ABZACA,WAM NUVNO ISPOLXZOWATX REVIM
Paragraph-Indent Text WMESTO REVIMA Text.w\TOM REVIME WAM NE OBQZATELXNO STAWITX
MEVDU ABZACAMI PUSTYE STROKI,POTOMU ^TO OTSTUPA W PERWOJ STROKE DOSTATO^NO DLQ NA^A-
LA NOWOGO ABZACA;ODNAKO,ABZACY,W KOTORYH KAVDAQ STROKA IMEET OTSTUP,NE PODDERVIWA-
@TSQ.~TOBY WOJTI W\TOT REVIM,ISPOLXZUJTE M-x paragraph-indent-text-mode.
rEVIM Text I WSE REVIMY,OSNOWANNYE NA NEM,OPREDELQ@T M-h TABi KAK KOMANDU ispell-
complete-word,KOTORAQ PROIZWODIT ZAWER[ENIE ^ASTI SLOWA PERED TO^KOJ W DANNOM BUFERE,
ISPOLXZUQ ORFOGRAFI^ESKIJ SLOWARX KAK PROSTRANSTWO WOZMOVNYH SLOW.sM.rAZDEL 13.4
[pRAWOPISANIE],S.102.
wHOD W REVIM Text ZAPUSKAET LOWU[KU text-mode-hook.dRUGIE OSNOWNYE REVIMY,
RODSTWENNYE S REVIMOM Text,TAKVE ZAPUSKA@T\TU LOWU[KU I POTOM SWOI LOWU[KI;K NIM
OTNOSQTSQ REVIM Paragraph-Indent Text,REVIM NroпЂ‹,REVIM T
E
X,REVIM Outline I REVIM
Mail.fUNKCII LOWU[KI text-mode-hook MOGUT PROWERITX ZNA^ENIE major-mode,^TOBY
UZNATX,W KAKOJ IZ\TIH REVIMOW WY NA SAMOM DELE WHODITE.sM.rAZDEL 31.2.3 [lOWU[KI],
S.349.
21.8 rEVIM Outline
rEVIM Outline |\TO OSNOWNOJ REVIM,O^ENX POHOVIJ NA REVIM Text,NO PREDNAZNA-
^ENNYJ DLQ REDAKTIROWANIQ STRUKTURIROWANNOGO TEKSTA.oN POZWOLQET WAM DELATX ^ASTI
TEKSTA WREMENNO NEWIDIMYMI,TAK ^TO WY MOVETE WIDETX PROSTO PROSMOTRETX STRUKTURU
TEKSTA.nABERITE M-x outline-mode,^TOBY WKL@^ITX REVIM Outline W TEKU]EM BUFERE.
kOGDA REVIM Outline DELAET STROKU NEWIDIMOJ,\TA STROKA NE POQWLQETSQ NA\KRANE.
|KRAN IMEET TO^NO TAKOJ VE WID,KAK ESLI BY NEWIDIMAQ STROKA BYLA UDALENA,ZA IS-
KL@^ENIEM TOGO,^TO W KONCE PREDYDU]EJ WIDIMOJ STROKI POQWLQETSQ MNOGOTO^IE (TOLXKO
ODNO,NEZAWISIMO OT TOGO,SKOLXKO NEWIDIMYH STROK SLEDUET DALX[E).
kOMANDY REDAKTIROWANIQ,RABOTA@]IE SO STROKAMI,TAKIE KAK C-n I C-p,TRAKTU@T
TEKST NEWIDIMOJ STROKI KAK ^ASTX PREDYDU]EJ WIDIMOJ.uNI^TOVENIE POLNOJ WIDIMOJ
STROKI,WKL@^AQ OGRANI^IWA@]IJ EE ZNAK NOWOJ STROKI,NA SAMOM DELE UNI^TOVAET WMESTE
S NEJ WSE SLEDU@]IE NEWIDIMYE STROKI.
wTOROSTEPENNYJ REVIM Outline PREDOSTAWLQET TE VE KOMANDY,^TO I OSNOWNOJ RE-
VIM Outline,NO WY MOVETE ISPOLXZOWATX EGO SOWMESTNO S DRUGIMI OSNOWNYMI REVIMA-
MI.~TOBY WKL@^ITX WTOROSTEPENNYJ REVIM Outline W TEKU]EM BUFERE,NABERITE M-x
outline-minor-mode.wY TAKVE MOVETE UKAZATX\TO W TEKSTE FAJLA S POMO]X@ LOKALXNOJ
PEREMENNOJ W FORME`mode:outline-minor'(SM.rAZDEL 31.2.5 [pEREMENNYE FAJLA],S.351).
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 191oSNOWNOJ REVIM,REVIM Outline,PREDOSTAWLQET OSOBYE PRIWQZKI KL@^EJ NA PREFIKSE
C-c.wTOROSTEPENNYJ REVIM Outline PREDOSTAWLQET POHOVIE PRIWQZKI S C-c @ W KA^E-
STWE PREFIKSA;\TO NUVNO,^TOBY UMENX[ITX RISK KONFLIKTA SO SPECIALXNYMI KOMANDAMI
OSNOWNOGO REVIMA.(iSPOLXZUEMYJ PREFIKS UPRAWLQETSQ PEREMENNOJ outline-minor-mode-
prefix.)
pRI WHODE W REVIM Outline ZAPUSKAETSQ LOWU[KA text-mode-hook SRAZU POSLE LOWU[KI
outline-mode-hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).
21.8.1 fORMAT SHEM TEKSTA
rEVIM Outline PREDPOLAGAET,^TO STROKI W BUFERE DELQTSQ NA DWA TIPA:STROKI ZAGOLOW-
KA I STROKI TELA.sTROKI ZAGOLOWKA PREDSTAWLQET TEMU W SHEME TEKSTA.oNI NA^INA@TSQ
S ODNOJ ILI BOLEE ZWEZDO^EK;^ISLO ZWEZDO^EK OPREDELQET GLUBINU ZAGOLOWKA W STRUKTURE
TEKSTA.tAKIM OBRAZOM,STROKA ZAGOLOWKA S ODNOJ ZWEZDO^KOJ |\TO OSNOWNAQ TEMA;WSE
STROKI ZAGOLOWKA S DWUMQ ZWEZDO^KAMI MEVDU\TOJ STROKOJ I SLEDU@]EJ STROKOJ ZAGOLOWKA
S ODNOJ ZWEZDO^KOJ QWLQ@TSQ EE PODTEMAMI I TAK DALEE.l@BAQ STROKA,KOTORAQ NE QWLQETSQ
STROKOJ ZAGOLOWKA,|\TO STROKA TELA.sTROKI TELA OTNOSQTSQ K PRED[ESTWU@]EJ STROKE
ZAGOLOWKA.wOT PRIMER:
* eDA
|TO TELO,KOTOROE
GOWORIT ^TO-TO O EDE.
** wKUSNAQ EDA
|TO TELO ZAGOLOWKA WTOROGO UROWNQ.
** pROTIWNAQ EDA
zDESX TOVE MOGLO BY
BYTX TELO NA
NESKOLXKIH STROKAH.
*** oB]EPIT
* pRI@T
e]E ODNA TEMA PERWOGO UROWNQ SO SWOEJ STROKOJ ZAGOLOWKA.
sTROKA ZAGOLOWKA WMESTE SO WSEMI POSLEDU@]IMI STROKAMI TELA W SOWOKUPNOSTI NA-
ZYWA@TSQ WHOVDENIEM.sTROKA ZAGOLOWKA WMESTE SO WSEMI SLEDU@]IMI BOLEE GLUBOKIMI
ZAGOLOWKAMI I IH STROKAMI TELA NAZYWAETSQ PODDEREWOM.
wY MOVETE NASTROITX KRITERIJ DLQ RAZLI^ENIQ STROK ZAGOLOWKA,USTANOWIW PEREMEN-
NU@ outline-regexp.l@BAQ STROKA,^XE NA^ALO SODERVIT SOWPADENIE S\TIM REGULQR-
NYM WYRAVENIEM,RASSMATRIWAETSQ KAK STROKA ZAGOLOWKA.sOOTWETSTWIQ,KOTORYE NA-
^INA@TSQ S SEREDINY STROKI (NE W NA^ALE),NE RASSMATRIWA@TSQ.dLINA TEKSTA SOOT-
WETSTWIQ OPREDELQET UROWENX ZAGOLOWKA:BOLEE DLINNOE SOOTWETSTWIE SOZDAET GLUBVE WLO-
VENNYJ UROWENX.nAPRIMER,ESLI PROGRAMMA FORMATIROWANIQ IMEET KOMANDY`@chapter',
`@section'I`@subsection'DLQ DELENIQ DOKUMENTA NA GLAWY I RAZDELY,WY MOVETE SDELATX
\TI STROKI WOSPRINIMAEMYMI W KA^ESTWE STROK ZAGOLOWKA,USTANOWIW outline-regexp RAW-
NOJ`"@chap\\|@\\(sub\\)*section"'.oBRATITE WNIMANIE NA HITROSTX:SLOWA`chapter'
I`section'IME@T RAWNU@ DLINU,NO OPREDELIW REGULQRNOE WYRAVENIE KAK SOWPADA@]EE
TOLXKO S`chap',MY GARANTIRUEM,^TO DLINA TEKSTA,SOOTWETSTWU@]EGO ZAGOLOWKU GLAWY,
BUDET KORO^E;TAKIM OBRAZOM,REVIM Outline BUDET ZNATX,^TO RAZDELY SODERVATSQ W GLAWAH.
|TO RABOTAET,ESLI NIKAKAQ DRUGAQ KOMANDA NE NA^INAETSQ S`@chap'.
eSTX WOZMOVNOSTX IZMENITX PRAWILO PODS^ETA UROWNQ STROK ZAGOLOWKA,PUTEM USTANOWKI
PEREMENNOJ outline-level.zNA^ENIE outline-level DOLVNO BYTX FUNKCIEJ,NE PRINIMA-
192 rUKOWODSTWO PO GNU Emacs@]EJ ARGUMENTOW I WOZWRA]A@]EJ NOMER UROWNQ TEKU]EGO ZAGOLOWKA.nEKOTORYE OSNOWNYE
REVIMY,NAPRIMER REVIMY C,NroпЂ‹ I Emacs Lisp,USTANAWLIWA@T\TU PEREMENNU@,^TOBY
IMI MOVNO BYLO POLXZOWATXSQ SO WTOROSTEPENNYM REVIMOM Outline.
21.8.2 kOMANDY PEREME]ENIQ PO STRUKTURE
rEVIM Outline PREDOSTAWLQET OSOBYE KOMANDY PEREME]ENIQ,KOTORYE PEREDWIGA@T NA-
ZAD I WPERED PO STROKAM ZAGOLOWKOW.
C-c C-n pEREDWINUTX TO^KU K SLEDU@]EJ WIDIMOJ STROKE ZAGOLOWKA (outline-next-
visible-heading).
C-c C-p pEREDWINUTX TO^KU K PREDYDU]EJ WIDIMOJ STROKE ZAGOLOWKA (outline-
previous-visible-heading).
C-c C-f pEREDWINUTX TO^KU K SLEDU@]EJ WIDIMOJ STROKE ZAGOLOWKA TOGO VE UROWNQ,^TO
I STROKA,NA KOTOROJ NAHODITSQ TO^KA (outline-forward-same-level).
C-c C-b pEREDWINUTX TO^KU K PREDYDU]EJ WIDIMOJ STROKE ZAGOLOWKA\TOGO VE UROWNQ
(outline-backward-same-level).
C-c C-u pEREDWINUTX TO^KU NAZAD K WIDIMOJ STROKE ZAGOLOWKA BOLEE NIZKOGO UROWNQ
(outline-up-heading).
C-c C-n (outline-next-visible-heading) PEREHODIT WNIZ NA SLEDU@]U@ STROKU ZAGO-
LOWKA.C-c C-p (outline-previous-visible-heading) PEREDWIGAET ANALOGI^NO,NO NAZAD.
oBE PRINIMA@T ^ISLOWOJ ARGUMENT KAK S^ET^IK POWTOROW.iMENA\TIH KOMAND POD^ER-
KIWA@T,^TO NEWIDIMYE ZAGOLOWKI PROPUSKA@TSQ,NO\TO NA SAMOM DELE NE SPECIALXNAQ
OSOBENNOSTX.wSE KOMANDY REDAKTIROWANIQ,KOTORYE PROSMATRIWA@T STROKI,IGNORIRU@T
NEWIDIMYE STROKI AWTOMATI^ESKI.
bOLEE MO]NYE KOMANDY DWIVENIQ PONIMA@T UROWNEWU@ STRUKTURU ZAGOLOWKOW.C-c C-f
(outline-forward-same-level) I C-c C-b (outline-backward-same-level) PEREDWIGA@T OT
ODNOJ STROKI ZAGOLOWKA K DRUGOJ WIDIMOJ STROKE ZAGOLOWKA TOJ VE SAMOJ GLUBINY W STRUK-
TURE.C-c C-u (outline-up-heading) PEREDWIGAET NAZAD K DRUGOMU ZAGOLOWKU,KOTORYJ
IMEET MENX[U@ GLUBINU WLOVENNOSTI.
21.8.3 kOMANDY UPRAWLENIQ WIDIMOSTX@ STRUKTURY
~TOBY SDELATX STROKI WIDIMYMI ILI NEWIDIMYMI,ISPOLXZU@TSQ DRUGIE SPECIALXNYE
KOMANDY REVIMA Outline.wSE IH IMENA NA^INA@TSQ LIBO S hide,LIBO S show.bOLX[INSTWO
IZ NIH SOSTAWLQ@T PARY PROTIWOPOLOVNOSTEJ.oNI NE MOGUT BYTX OTMENENY;WMESTO\TOGO
WY MOVETE PROIZWESTI OTMENU BEZOTNOSITELXNO K WIDIMOSTI TEKSTA.iZMENENIE WIDIMOSTI
STROK PROSTO NE ZAPISYWAETSQ MEHANIZMOM OTMENY.
C-c C-t sDELATX WSE STROKI TELA W BUFERE NEWIDIMYMI (hide-body).
C-c C-a sDELATX WSE STROKI W BUFERE WIDIMYMI (show-all).
C-c C-d sDELATX WSE POD\TIM ZAGOLOWKOM NEWIDIMYM,NO NE SAM\TOT ZAGOLOWOK (hide-
subtree).
C-c C-s sDELATX WSE POD\TIM ZAGOLOWKOM WIDIMYM,WKL@^AQ TELO,PODZAGOLOWKI I IH
TELA (show-subtree).
C-c C-l sDELATX TELO\TOJ STROKI ZAGOLOWKA I WSE EGO PODZAGOLOWKI NEWIDIMYMI (hide-
leaves).
C-c C-k sDELATX WSE PODZAGOLOWKI\TOGO ZAGOLOWKA WIDIMYMI NA WSEH UROWNQH (show-
branches).
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 193C-c C-i sDELATX NEPOSREDSTWENNYE PODZAGOLOWKI (NA ODIN UROWENX WNIZ)\TOGO ZAGOLOWKA
WIDIMYMI (show-children).
C-c C-c sDELATX TELO\TOGO ZAGOLOWKA NEWIDIMYM (hide-entry).
C-c C-e sDELATX TELO\TOGO ZAGOLOWKA WIDIMYM (show-entry).
C-c C-q sKRYTX WSE,KROME n WERHNIH UROWNEJ STROK ZAGOLOWKOW (hide-sublevels).
C-c C-o sKRYTX WSE,KROME ZAGOLOWKA ILI TELA,W KOTOROM NAHODITSQ TO^KA,I ZAGOLOW-
KOW,WEDU]IH OTS@DA K WERHNEMU UROWN@ STRUKTURY (hide-other).
dWE KOMANDY,KOTORYE STROGO PROTIWOPOLOVNY,|\TO C-c C-c (hide-entry) I C-c
C-e (show-entry).oNI PRIMENQ@TSQ,KOGDA TO^KA RASPOLOVENA NA ZAGOLOWKE,I OTNOSQTSQ
TOLXKO K STROKAM TELA\TOGO ZAGOLOWKA.pODTEMY I IH TELA NE ZATRAGIWA@TSQ.
dWE BOLEE MO]NYE PROTIWOPOLOVNOSTI |\TO C-c C-d (hide-subtree) I C-c C-s (show-
subtree).oBE PREDPOLAGA@T ISPOLXZOWANIE,KOGDA TO^KA NAHODITSQ NA ZAGOLOWKE,I OBE
PRIMENQ@TSQ KO WSEM STROKAM PODDEREWA\TOGO ZAGOLOWKA:EGO TELU,WSEM EGO PODZAGOLOWKAM,
KAK PRQMYM,TAK I KOSWENNYM,I WSEM IH TELAM.dRUGIMI SLOWAMI,PODDEREWO SODERVIT
WSE,^TO SLEDUET ZA\TIM ZAGOLOWKOM,WPLOTX DO (NO NE WKL@^AQ) SLEDU@]EGO ZAGOLOWKA TOGO
VE SAMOGO ILI BOLEE WYSOKOGO RANGA.
pROMEVUTO^NOE SOSTOQNIE MEVDU WIDIMYM I NEWIDIMYM PODDEREWOM |\TO KOGDA WI-
DIMY WSE PODZAGOLOWKI,NO NE WIDIMO NI ODNO TELO.dLQ OSU]ESTWLENIQ\TOGO ESTX DWE
KOMANDY,W ZAWISIMOSTI OT TOGO,HOTITE LI WY SKRYTX TELA ILI SDELATX WIDIMYMI PODZA-
GOLOWKI.|TO C-c C-l (hide-leaves) I C-c C-k (show-branches).
kOMANDA C-c C-i (show-children) NEMNOGO SLABEE show-branches.oNA DELAET WIDI-
MYMI TOLXKO NEPOSREDSTWENNYE PODZAGOLOWKI | TE,^TO NA ODIN UROWENX NIVE.bOLEE
GLUBOKIE PODZAGOLOWKI OSTA@TSQ NEWIDIMYMI,ESLI ONI BYLI TAKOWYMI.
dWE KOMANDY PROIZWODQT DEJSTWIE,OHWATYWA@]EE WESX FAJL.C-c C-t (hide-body) DE-
LAET WSE STROKI TELA NEWIDIMYMI,TAK ^TO WY WIDITE PROSTO SHEMU TEKSTA.C-c C-a (show-
all) DELAET WSE STROKI WIDIMYMI.|TI KOMANDY MOGUT RASSMATRIWATXSQ KAK PARA PROTI-
WOPOLOVNYH,HOTQ C-c C-a PRIMENQETSQ NE TOLXKO K STROKAM TELA.
kOMANDA C-c C-q (hide-sublevels) SKRYWAET WSE ZAGOLOWKI,KROME ZAGOLOWKOW WERHNEGO
UROWNQ.s ^ISLOWYM ARGUMENTOM n,ONA SKRYWAET WSE,KROME STROK ZAGOLOWKOW n WERHNIH
UROWNEJ.
kOMANDA C-c C-o (hide-other) SKRYWAET WSE,KROME ZAGOLOWKA ILI TEKSTA TELA,W KO-
TOROM NAHODITSQ TO^KA,I IH RODITELEJ (ZAGOLOWKOW,WEDU]IH OTS@DA K WERHNEMU UROWN@
STRUKTURY).
iSPOLXZOWANIE MNOGOTO^IJ W KONCE WIDIMYH STROK MOVET BYTX OTKL@^ENO PUTEM USTA-
NOWKI selective-display-ellipses RAWNOJ nil.tOGDA NE BUDET QWNOGO UKAZANIQ NA SU]E-
STWOWANIE NEWIDIMYH STROK.
kOGDA NARA]IWAEMYJ POISK NAHODIT TEKST,KOTORYJ SKRYT REVIMOM Outline,ON DELAET
\TU ^ASTX BUFERA WIDIMOJ.eSLI WY WYJDITE IZ POISKA W\TOJ POZICII,TEKST OSTANETSQ
WIDIMYM.
21.8.4 pROSMOTR ODNOJ SHEMY W NESKOLXKIH WIDAH
wY MOVETE PROSMOTRETX DWA WIDA ODNOJ SHEMY ODNOWREMENNO W RAZNYH OKNAH.~TOBY
SDELATX TAK,WY DOLVNY SOZDATX KOSWENNYJ BUFER,ISPOLXZUQ M-x make-indirect-buffer.
pERWYJ ARGUMENT\TOJ KOMANDY |\TO IMQ SU]ESTWU@]EGO BUFERA Outline,A WTOROJ AR-
GUMENT |\TO IMQ,KOTOROE BUDET ISPOLXZOWATXSQ DLQ NOWOGO KOSWENNOGO BUFERA.sM.rAZDEL 15.6 [kOSWENNYE BUFERY],S.139.
kOGDA KOSWENNYJ BUFER SOZDAN,WY MOVETE POKAZATX EGO W OKNE,KAK OBY^NO,S POMO]X@
C-x 4 b ILI DRUGIH KOMAND Emacs.kOMANDY REVIMA Outline DLQ POKAZA ILI SKRYWANIQ
194 rUKOWODSTWO PO GNU Emacs^ASTEJ TEKSTA DEJSTWU@T W KAVDOM BUFERE NEZAWISIMO;W REZULXTATE KAVDYJ BUFER MOVET
IMETX SWOJ WID.eSLI WY HOTITE POLU^ITX BOLEE DWUH WIDOW ODNOJ I TOJ VE SHEMY,SOZDAJTE
DOPOLNITELXNYE KOSWENNYE BUFERY.
21.9 rEVIM T
E
X
T
E
X |\TO MO]NAQ PROGRAMMA KOMPX@TERNOGO NABORA,NAPISANNAQ dONALXDOM kNUTOM.
oN TAKVE QWLQETSQ SWOBODNYM PROGRAMMNYM PRODUKTOM,KAK I GNU Emacs.LaT
E
X |\TO
UPRO]ENNYJ FORMAT WWODA DLQ T
E
X,REALIZOWANNYJ NA MAKROSAH T
E
X.oN RASPROSTRANQ-
ETSQ WMESTE S T
E
X.SliT
E
X |\TO OSOBAQ FORMA LaT
E
X.
w Emacs ESTX SPECIALXNYJ REVIM T
E
X DLQ REDAKTIROWANIQ WHODNYH T
E
X-FAJLOW.oN
PREDUSMATRIWAET SREDSTWA DLQ PROWERKI SBALANSIROWANNOSTI OGRANI^ITELEJ I DLQ WYZOWA
T
E
X DLQ WSEGO FAJLA ILI EGO ^ASTI.
rEVIM T
E
X IMEET TRI WARIANTA:REVIM Plain T
E
X,REVIM LaT
E
X I REVIM SliT
E
X (TRI
\TIH OSNOWNYH REVIMA OTLI^A@]IHSQ DRUG OT DRUGA LI[X SLEGKA).oNI PREDNAZNA^ENY
DLQ REDAKTIROWANIQ TREH RAZLI^NYH WHODNYH FORMATOW.kOMANDA M-x tex-mode PROWE-
RQET SODERVIMOE BUFERA,^TOBY OPREDELITX,NE QWLQETSQ LI\TO WHODOM DLQ LaT
E
X ILI
SliT
E
X;ESLI\TO TAK,ONA WYBIRAET PODHODQ]IJ REVIM.eSLI SODERVIMOE FAJLA NE OKAZA-
LOSX NI LaT
E
X,NI SliT
E
X,ONA WYBIRAET REVIM T
E
X.eSLI SODERVIMOGO FAJLA OKAZALOSX
NEDOSTATO^NO DLQ OPREDELENIQ FORMATA,TO ISPOLXZUETSQ REVIM,ZADAWAEMYJ PEREMENNOJ
tex-default-mode.
kOGDA M-x tex-mode DELAET NEPRAWILXNOE PREDPOLOVENIE,WY MOVETE ISPOLXZOWATX KO-
MANDY M-x plain-tex-mode,M-x latex-mode I M-x slitex-mode DLQ QWNOGO WYBORA KON-
KRETNOGO WARIANTA REVIMA T
E
X.
21.9.1 kOMANDY REDAKTIROWANIQ REVIMA T
E
X
zDESX PERE^ISLENY SPECIALXNYE KOMANDY,PREDUSMOTRENNYE W REVIME T
E
X DLQ REDAK-
TIROWANIQ TEKSTA FAJLA.
"wSTAWITX SOGLASNO KONTEKSTU LIBO`',LIBO`"',LIBO`'(tex-insert-quote).
C-j wSTAWITX RAZRYW ABZACA (DWA PEREWODA STROKI) I PROWERITX PREDYDU]IJ ABZAC
NA NESBALANSIROWANNYE FIGURNYE SKOBKI ILI ZNAKI DOLLARA (tex-terminate-
paragraph).
M-x tex-validate-region
pROWERITX KAVDYJ ABZAC W BUFERE NA NESBALANSIROWANNYE FIGURNYE SKOBKI
ILI ZNAKI DOLLARA.
C-c { wSTAWITX`{}'I RASPOLOVITX TO^KU MEVDU NIMI (tex-insert-braces).
C-c } pEREJTI WPERED ZA SLEDU@]U@ NEPARNU@ ZAKRYWA@]U@ FIGURNU@ SKOBKU (up-
list).
zNAK`"'OBY^NO NE ISPOLXZUETSQ W T
E
X;MY ISPOLXZUEM`',^TOBY OTKRYTX KAWY^KI,I
`',^TOBY ZAKRYTX.~TOBY OBLEG^ITX REDAKTIROWANIE S U^ETOM\TOGO SOGLA]ENIQ O FORMA-
TIROWANII,REVIM T
E
X ZAMENQET OBY^NOE ZNA^ENIE KLAWI[I"NA KOMANDU,WSTAWLQ@]U@
PARU ODINO^NYH PROSTYH ILI OBRATNYH KAWY^EK (tex-insert-quote).eSLI GOWORITX TO^-
NO,\TA KOMANDA WSTAWLQET`'POSLE PROPUSKA ILI OTKRYWA@]EJ FIGURNOJ SKOBKI,`"'POSLE
OBRATNOJ KOSOJ ^ERTY I`'POSLE WSEH OSTALXNYH ZNAKOW.
eSLI WAM NUVEN ZNAK`"'SAM PO SEBE W NEOBY^NOM KONTEKSTE,ISPOLXZUJTE DLQ EGO WSTAWKI
C-q.tAKVE,"c ^ISLOWYM ARGUMENTOM WSEGDA WSTAWLQET UKAZANNOE ^ISLO ZNAKOW`"'.wY
MOVETE WYKL@^ITX SREDSTWO RASKRYTIQ",UBRAW\TU PRIWQZKU IZ LOKALXNOJ RASKLADKI (SM.rAZDEL 31.4 [pRIWQZKI KL@^EJ],S.356).
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 195zNAK`$'IMEET W REVIME T
E
X OSOBYJ SINTAKSI^ESKIJ KOD,KOTORYJ PERETENDUET NA PO-
NIMANIE SPOSOBA,KOTORYM OGRANI^ITELI MATEMATI^ESKOJ MODY T
E
X SOOTWETSTWU@T DRUG
DRUGU.kOGDA WY WWODITE`$',KOTORYJ ISPOLXZUETSQ DLQ WYHODA IZ MATEMATI^ESKOJ MODY,
NA SEKUNDU OTOBRAVAETSQ POZICIQ PARNOGO`$',KOTORYJ WWODIL W MATEMATI^ESKU@ MODU.
|TO TO VE SAMOE SREDSTWO,KOTOROE POKAZYWAET OTKRYWA@]U@ FIGURNU@ SKOBKU,SOOTWET-
STWU@]U@ WSTAWLENNOJ ZAKRYWA@]EJ.oDNAKO,NET SPOSOBA UZNATX,QWLQETSQ LI`$'WHODOM
ILI WYHODOM IZ MATEMATI^ESKOJ MODY;PO\TOMU KOGDA WY WWODITE`$',KOTORYJ WHODIT W
MATEMATI^ESKU@ MODU,POKAZYWAETSQ POZICIQ PREDYDU]EGO`$',KAK ESLI BY ONA BYLA ONI
SOSTAWLQLI PARU,DAVE ESLI FAKTI^ESKI ONI NE OTNOSQTSQ DRUG K DRUGU.
T
E
X ISPOLXZUET FIGURNYE SKOBKI KAK OGRANI^ITELI,KOTORYE OBQZANY SOSTAWLQTX PARY.
nEKOTORYE POLXZOWATELI PREDPO^ITA@T PODDERVIWATX FIGURNYE SKOBKI WSE WREMQ SBALAN-
SIROWANNYMI,A NE WSTAWLQTX IH PO OTDELXNOSTI.iSPOLXZUJTE C-c { (tex-insert-braces),
^TOBY WSTAWITX PARU FIGURNYH SKOBOK.|TA KOMANDA OSTAWLQET TO^KU MEVDU DWUMQ\TI-
MI SKOBKAMI,^TOBY WY MOGLI WSTAWITX TEKST WNUTRX.pOTOM ISPOLXZUJTE KOMANDU C-c }
(up-list),^TOBY PEREJTI WPERED ^EREZ ZAKRYWA@]U@ FIGURNU@ SKOBKU.
sU]ESTWU@T DWE KOMANDY DLQ KONTROLQ SOOTWETSTWIQ FIGURNYH SKOBOK.C-j (tex-
terminate-paragraph) PROWERQET ABZAC PERED TO^KOJ I WSTAWLQET DWA OGRANI^ITELQ NOWOJ
STROKI DLQ NA^ALA NOWOGO ABZACA.eSLI BUDET NAJDENO KAKOE-TO NESOOTWETSTWIE,ONA NA-
PE^ATAET SOOB]ENIE W\HO-OBLASTI.M-x tex-validate-region PROWERQET OBLASTX,ABZAC ZA
ABZACEM.o[IBKI PERE^ISLQ@TSQ W BUFERE`*Occur*',I WY MOVETE ISPOLXZOWATX W NEM C-c
C-c ILI Mouse-2,^TOBY PEREJTI K KONKRETNOMU NESOOTWETSTWI@.
zAMETXTE,^TO KOMANDY Emacs PODS^ITYWA@T W REVIME T
E
X NE TOLXKO FIGURNYE SKOBKI,
NO I KWADRATNYE I KRUGLYE.dLQ PROWERKI SINTAKSISA T
E
X\TO NE SOWSEM KORREKTNO.tEM
NE MENEE,KRUGLYE I KWADRATNYE SKOBKI,SKOREE WSEGO,ISPOLXZU@TSQ W TEKSTE W KA^ESTWE
PARNYH RAZDELITELEJ,I BUDET POLEZNO,ESLI RAZLI^NYE KOMANDY DWIVENIQ I AWTOMATI^E-
SKOGO POKAZA PAR BUDUT S NIMI RABOTATX.
21.9.2 kOMANDY REDAKTIROWANIQ REVIMA LaT
E
X
rEVIM LaT
E
X I EGO WARIACIQ,REVIM SliT
E
X,PREDOSTAWLQ@T NESKOLXKO DOPOLNITELXNYH
WOZMOVNOSTEJ,NE OTNOSQ]IHSQ K plain T
E
X.
C-c C-o wSTAWLQET`\begin'I`\end'DLQ BLOKA LaT
E
X I POME]AET TO^KU NA STROKE MEV-
DU NIMI (tex-latex-block).
C-c C-e zAKRYWAET SAMYJ WNUTRENNIJ E]E NE ZAKRYTYJ BLOK LaT
E
X (tex-close-latex-
block).
w LaT
E
X DLQ GRUPPIROWKI BLOKOW TEKSTA ISPOLXZU@TSQ KOMANDY`\begin'I`\end'.~TO-
BY WSTAWITX`\begin'I PARNU@`\end'(NA NOWOJ STROKE POSLE`\begin'),ISPOLXZUJTE C-c
C-o (tex-latex-block).mEVDU DWUMQ\TIMI STROKAMI WSTAWLQETSQ PUSTAQ STROKA,I NA
NEJ OSTAWLQETSQ TO^KA.pRI WWODE TIPA BLOKA WY MOVETE ISPOLXZOWATX ZAWER[ENIE;^TOBY
ZADATX IMENA DOPOLNITELXNYH TIPOW BLOKOW,USTANOWITE PEREMENNU@ latex-block-names.
nAPRIMER,DOBAWITX`theorem',`corollary'I`proof'MOVNO TAKIM OBRAZOM:
(setq latex-block-names'("theorem""corollary""proof"))
wO WHODNOM TEKSTE LaT
E
X KOMANDY`\begin'I`\end'DOLVNY SOOTWETSTWOWATX DRUG
DRUGU.wY MOVETE ISPOLXZOWATX C-c C-e (tex-close-latex-block),^TOBY AWTOMATI^ESKI
WSTAWITX`\end',SOOTWETSTWU@]U@ POSLEDNEJ`\begin',OSTAW[EJ BEZ PARY.|TA KOMANDA
DELAET DLQ`\end'OTSTUP W SOOTWETSTWII S EE`\begin'.eSLI TO^KA NAHODITSQ W NA^ALE
STROKI,ONA WSTAWLQET POSLE`\end'NOWU@ STROKU,
21.9.3 kOMANDY PE^ATI DLQ T
E
X
wY MOVETE WYZWATX T
E
X KAK POD^INENNYJ PROCESS Emacs LIBO DLQ WSEGO SODERVIMOGO
BUFERA,LIBO TOLXKO NA OBLASTX,ZA ODIN RAZ.zAPUSK T
E
X TAKIM SPOSOBOM TOLXKO W ODNOJ
196 rUKOWODSTWO PO GNU EmacsGLAWE DAET UDOBNYJ METOD UWIDETX,KAK WYGLQDQT WA[I IZMENENIQ,NE TRATQ WREMQ NA
FORMATIROWANIE WSEGO FAJLA.
C-c C-r wYZWATX T
E
X DLQ TEKU]EJ OBLASTI WMESTE S ZAGOLOWOKOM BUFERA (tex-region).
C-c C-b wYZYWATX T
E
X DLQ WSEGO TEKU]EGO BUFERA (tex-buffer).
C-c
hTABi wYZYWATX BibT
E
X DLQ TEKU]EGO FAJLA (tex-bibtex-file).
C-c C-f wYZYWATX T
E
X DLQ TEKU]EGO FAJLA (tex-file).
C-c C-l pEREMESTITX CENTR OKNA,POKAZYWA@]EGO WYWOD POD^INENNOGO T
E
X,^TOBY MOV-
NO BYLO UWIDETX POSLEDN@@ STROKU (tex-recenter-output-buffer).
C-c C-k uNI^TOVITX PODPROCESS T
E
X (tex-kill-job).
C-c C-p pE^ATATX WYWOD IZ POSLEDNEJ KOMANDY C-c C-r,C-c C-b ILI C-c C-f (tex-
print).
C-c C-v zAPUSTITX PREDWARITELXNYJ PROSMOTR WYWODA POSLEDNEJ KOMANDY C-c C-r,C-c
C-b ILI C-c C-f (tex-view).
C-c C-q pOKAZATX O^EREDX PRINTERA (tex-show-print-queue).
wY MOVETE PROPUSTITX TEKU]IJ BUFER ^EREZ POD^INENNYJ T
E
X S POMO]X@ C-c C-b
(tex-buffer).oTFORMATIROWANNYJ WYWOD POQWLQETSQ WO WREMENNOM FAJLE;^TOBY NAPE-
^ATATX EGO,NABERITE C-c C-p (tex-print).pOTOM WY MOVETE ISPOLXZOWATX C-c C-q (tex-
show-printer-queue),^TOBY UWIDETX,KAK SKORO WA[ WYWOD BUDET NAPE^ATAN.eSLI WA[
TERMINAL MOVET POKAZYWATX WYHODNYE FAJLY T
E
X,WY MOVETE PROSMOTRETX WYWOD NA TER-
MINALE S POMO]X@ KOMANDY C-c C-v (tex-view).
wY MOVETE UKAZATX KATALOG DLQ ZAPUSKA T
E
X,USTANOWIW PEREMENNU@ tex-directory.
zNA^ENIEM PO UMOL^ANI@ QWLQETSQ".".eSLI PEREMENNAQ SREDY TEXINPUTS SODERVIT OTNO-
SITELXNYE IMENA KATALOGOW,ILI WA[I FAJLY SODERVAT KOMANDY`\input'S OTNOSITELXNY-
MI IMENAMI,TO tex-directory DOLVNA BYTX RAWNA".",ILI WY POLU^ITE NEPRAWILXNYE
REZULXTATY.w PROTIWNOM SLU^AE,MOVNO BEZ OPASENIQ ZADATX KAKOJ-TO DRUGOJ KATALOG,
NAPRIMER,"/tmp".
eSLI WY HOTITE UKAZATX,KAKIE KOMANDY OBOLO^KI NUVNO ISPOLXZOWATX W POD^INENNOM
PROCESSE T
E
X,WY MOVETE SDELATX\TO USTANOWKOJ ZNA^ENIJ PEREMENNYH tex-run-command,
latex-run-command,slitex-run-command,tex-dvi-print-command,tex-dvi-view-command
I tex-show-queue-command.wY OBQZANY USTANOWITX ZNA^ENIE tex-dvi-view-command DLQ
WA[EGO KONKRETNOGO TERMINALA;\TA PEREMENNAQ NE IMEET ZNA^ENIQ PO UMOL^ANI@.dRUGIE
PEREMENNYE IME@T ZNA^ENIQ PO UMOL^ANI@,KOTORYE MOGUT PODOJTI (A MOGUT I NE PODOJTI)
DLQ WA[EJ SISTEMY.
oBY^NO IMQ FAJLA,PEREDAWAEMOE\TIM KOMANDAM,PI[ETSQ W KONCE KOMANDNOJ STRO-
KI:NAPRIMER,`latex IMQ-FAJLA'.oDNAKO W NEKOTORYH SLU^AQH IMQ FAJLA DOLVNO BYTX
WSTAWLENO W KOMANDU;\TO MOVET PONADOBITXSQ,K PRIMERU,KOGDA WAM NUVNO PREDOSTAWITX
IMQ FAJLA W KA^ESTWE ARGUMENTA KOMANDE,^EJ WYWOD NAPRAWLQETSQ DRUGOJ PROGRAMME.wY
MOVETE UKAZATX,W KAKOE MESTO SLEDUET PODSTAWITX IMQ FAJLA,S POMO]X@ ZNAKA`*'W KO-
MANDNOJ STROKE.nAPRIMER,
(setq tex-dvi-print-command"dvips -f * | lpr")
tERMINALXNYJ WYWOD T
E
X,WKL@^A@]IJ WSE SOOB]ENIQ OB O[IBKAH,POQWLQETSQ W BUFE-
RE S IMENEM`*tex-shell*'.eSLI T
E
X POLU^IL O[IBKU,WY MOVETE PEREKL@^ITXSQ W\TOT
BUFER I PODATX EMU KAKOJ-TO WWOD (\TO RABOTAET KAK W REVIME Shell,SM.rAZDEL 30.2.2
[iNTERAKTIWNAQ OBOLO^KA],S.324 ).bEZ PEREKL@^ENIQ W\TOT BUFER,WY MOVETE PROKRUTITX
EGO S POMO]X@ C-c C-l TAK,^TO POSLEDNQQ STRO^KA W NEM STANET WIDIMOJ.
nABERITE C-c C-k (tex-kill-job),^TOBY UNI^TOVITX PROCESS T
E
X,ESLI WY PONIMAETE,
^TO EGO WYWOD UVE BESPOLEZEN.iSPOLXZOWANIE C-c C-b ILI C-c C-r TAKVE UNI^TOVAET
L@BOJ RABOTA@]IJ PROCESS T
E
X.
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 197wY TAKVE MOVETE PROPUSTITX PROIZWOLXNU@ OBLASTX ^EREZ POD^INENNYJ T
E
X,NABRAW
C-c C-r (tex-region).oDNAKO,\TO NENADEVNO,POTOMU ^TO BOLX[INSTWO WHODNYH FAJLOW
T
E
X SODERVAT W NA^ALE KOMANDY,USTANAWLIWA@]IE KAKIE-TO PARAMETRY I OPREDELQ@]IE
MAKROSY,BEZ KOTORYH DALXNEJ[AQ ^ASTX FAJLA NE OTFORMATIRUETSQ PRAWILXNO.dLQ TOGO,
^TOBY RE[ITX\TU PROBLEMU,C-c C-r POZWOLQET WAM OBOZNA^ITX ^ASTX FAJLA KAK SODER-
VA]U@ WAVNYE KOMANDY;ONA WSTAWLQETSQ PERED ZADANNOJ OBLASTX@ KAK ^ASTX WWODA T
E
X.
oBOZNA^ENNAQ ^ASTX FAJLA NAZYWAETSQ ZAGOLOWKOM.
~TOBY OBOZNA^ITX GRANICY ZAGOLOWKA W REVIME Plain T
E
X,WY WSTAWLQETE W FAJL DWE
SPECIALXNYE STROKI.wSTAWXTE`%**start of header'PERED ZAGOLOWKOM I`%*end of header'
POSLE NEGO.oBE DOLVNY POQWITXSQ POLNOSTX@ NA ODNOJ STROKE,NO PERED NIMI ILI POSLE
NIH DOPUSKAETSQ DRUGOJ TEKST.sTROKI,SODERVA]IE\TI FRAZY,WKL@^A@TSQ W ZAGOLO-
WOK.eSLI`%**start of header'NE POQWITSQ W PREDELAH PERWYH 100 STROK BUFERA,C-c C-r
PREDPOLAGAET,^TO ZAGOLOWKA NET.
w REVIME LaT
E
X ZAGOLOWOK NA^INAETSQ S KOMANDY`\documentstyle'I ZAKAN^IWAETSQ
KOMANDOJ`\begin{document}'.LaT
E
X TREBUET,^TOBY WY ISPOLXZOWALI\TI KOMANDY W
L@BOM SLU^AE,TAK ^TO DLQ OPREDELENIQ ZAGOLOWKA NE TREBUETSQ DELATX NI^EGO OSOBENNOGO.
kOMANDY (tex-buffer) I (tex-region) DELA@T SWO@ RABOTU WO WREMENNOM KATALOGE,
I IM NEDOSTUPNY WSPOMOGATELXNYE FAJLY,NUVNYE T
E
X DLQ PEREKRESTNYH SSYLOK;\TI
KOMANDY W OB]EM SLU^AE NE PODHODQT DLQ OBRABOTKI OKON^ATELXNOJ KOPII,W KOTOROJ WSE
PEREKRESTNYE SSYLKI DOLVNY BYTX PRAWILXNYMI.
kOGDA WAM NUVNY WSPOMOGATELXNYE FAJLY DLQ PEREKRESTNYH SSYLOK,ISPOLXZUJTE C-c
C-f (tex-file),KOTORAQ ZAPUSKAET T
E
X DLQ FAJLA TEKU]EGO BUFERA W KATALOGE\TOGO FAJLA.
pERED ZAPUSKOM T
E
X ONA PREDLAGAET SOHRANITX WSE IZMENENNYE BUFERY.w OB]EM SLU^AE,
WY DOLVNY ISPOLXZOWATX (tex-file) DWAVDY,^TOBY POLU^ITX PRAWILXNYE PEREKRESTNYE
SSYLKI.
zNA^ENIE PEREMENNOJ tex-start-options-string ZADAET KL@^I DLQ ZAPUSKA T
E
X.zNA-
^ENIE PO UMOL^ANI@ WELIT T
E
X RABOTATX W BEZOSTANOWO^NOM REVIME.~TOBY ZAPUSTITX
T
E
X INTERAKTIWNO,USTANOWITE\TU PEREMENNU@ RAWNOJ"".
bOLX[IE DOKUMENTY T
E
X ^ASTO RAZBIWA@T NA NESKOLXKO FAJLOW | ODIN GLAWNYJ PL@S
PODFAJLY.zAPUSK T
E
X DLQ PODFAJLA KAK PRAWILO NE SRABOTAET;WY DOLVNY ZAPUSKATX
EGO DLQ GLAWNOGO FAJLA.~TOBY SDELATX tex-file POLEZNOJ PRI REDAKTIROWANII PODFAJLA,
WY MOVETE USTANOWITX PEREMENNU@ tex-main-file RAWNOJ IMENI GLAWNOGO FAJLA.tOGDA
tex-file ZAPUSTIT T
E
X DLQ\TOGO FAJLA.
nAIBOLEE UDOBNYJ SPOSOB ISPOLXZOWANIQ tex-main-file |UKAZATX EE W PERE^NE LOKALX-
NYH PEREMENNYH W KAVDOM IZ PODFAJLOW.sM.rAZDEL 31.2.5 [pEREMENNYE FAJLA],S.351.
s LaT
E
X-FAJLAMI WY MOVETE ISPOLXZOWATX BibT
E
X,^TOBY OBRABOTATX WSPOMOGATELX-
NYE FAJLY DLQ FAJLA TEKU]EGO BUFERA.BibT
E
X NAHODIT BIBLIOGRAFI^ESKIE CITATY W
BAZE DANNYH I PODGOTAWLIWAET PROCITIROWANNYE SSYLKI DLQ RAZDELA BIBLIGRAFII.kOMAN-
DA C-c TAB (tex-bibtex-file) ZAPUSKAET KOMANDU OBOLO^KI (tex-bibtex-command),^TOBY
POLU^ITX`.bbl'-FAJL DLQ FAJLA TEKU]EGO BUFERA.wOOB]E GOWORQ,WAM NUVNO SNA^ALA
SDELATX C-c C-f (tex-file),^TOBY POLU^ITX`.aux'-FAJL,ZATEM SDELATX C-c TAB (tex-
bibtex-file) I POSLE\TOGO POWTORITX C-c C-f (tex-file) E]E RAZ,^TOBY SGENERIROWATX
PRAWILXNYE PEREKRESTNYE SSYLKI.
pRI WHODE W L@BU@ RAZNOWIDNOSTX REVIMA T
E
X ZAPUSKA@SQ LOWU[KI text-mode-hook I
tex-mode-hook.zATEM ZAPUSKA@SQ plain-tex-mode-hook ILI latex-mode-hook,^TO POD-
HODIT.dLQ SliT
E
X-FAJLOW ZAPUSKAETSQ LOWU[KA slitex-mode-hook.pRI STARTE OBOLO^KI
T
E
X ZAPUSKAETSQ tex-shell-hook.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
21.10 rEVIM NroпЂ‹
rEVIM NroпЂ‹ |\TO REVIM,POHOVIJ NA REVIM Text,NO MODIFICIROWANNYJ DLQ UPRAWLE-
NIQ KOMANDAMI nroпЂ‹,PRISUTSTWU@]IMI W TEKSTE.wYZOWITE M-x nroff-mode,^TOBY WOJTI
198 rUKOWODSTWO PO GNU EmacsW\TOT REVIM.oN OTLI^AETSQ OT REVIMA Text TOLXKO NESKOLXKIMI WOZMOVNOSTQMI.wSE
STROKI KOMAND nroпЂ‹ S^ITA@TSQ RAZDELITELEM ABZACEW,TAK ^TO ZAPOLNENIE NIKOGDA NE IS-
KAZIT KOMANDY nroпЂ‹.sTRANICY RAZDELQ@TSQ KOMANDAMI`.bp'.kOMMENTARII NA^INA@TSQ
S OBRATNOJ KOSOJ ^ERTY I DWOJNYH KAWY^EK.tAKVE PREDUSMOTRENY TRI SPECIALXNYE KO-
MANDY,KOTORYH NET W REVIME Text:
M-n pEREJTI NA NA^ALO SLEDU@]EJ STROKI,KOTORAQ NE QWLQETSQ KOMANDOJ nroпЂ‹
(forward-text-line).aRGUMENT SLUVIT S^ET^IKOM POWTOROW.
M-p pOHOVA NA M-n,NO SDWIGAET WWERH (backward-text-line).
M-?nAPE^ATATX W\HO-OBLASTI ^ISLO TEKSTOWYH STROK (STROK,KOTORYE NE QWLQ@TSQ
KOMANDAMI nroпЂ‹) W TEKU]EJ OBLASTI (count-text-lines).
dRUGOE SWOJSTWO REVIMA NroпЂ‹ |\TO TO,^TO WY MOVETE WKL@^ATX REVIM Electric NroпЂ‹.
|TO WTOROSTEPENNYJ REVIM,KOTORYJ WY MOVETE WKL@^ATX ILI WYKL@^ATX PRI POMO]I
M-x electric-nroff-mode (SM.rAZDEL 31.1 [wTOROSTEPENNYE REVIMY],S.341).eSLI\TOT
REVIM WKL@^EN,TO KAVDYJ RAZ,KOGDA WY NABIRAETE h RETi DLQ OKON^ANIQ STROKI,KOTORAQ
SODERVIT KOMANDU nroпЂ‹,OTKRYWA@]U@ NEKOTORYJ WID GRUPPY,W SLEDU@]U@ STROKU AWTO-
MATI^ESKI WSTAWLQETSQ SOOTWETSTWU@]AQ ZAKRYWA@]AQ GRUPPU KOMANDA nroпЂ‹.nAPRIMER,
ESLI WY NAHODITESX W NA^ALE STROKI I NABERETE.( b h RETi,TO W NOWU@ STROKU,SLEDU@]U@
ZA TO^KOJ,BUDET WSTAWLENA SOOTWETSTWU@]AQ KOMANDA`.)b'.
eSLI S REVIMOM NroпЂ‹ WY ISPOLXZUETE WTOROSTEPENNYJ REVIM Outline (SM.rAZDEL 21.8
[rEVIM Outline],S.190 ),STROKAMI ZAGOLOWKOW BUDUT STROKI WIDA`.H'S POSLEDU@]IM ^IS-
LOM (UROWNEM ZAGOLOWKA).
wHOD W REVIM NroпЂ‹ ZAPUSKAET LOWU[KU text-mode-hook,A ZATEM LOWU[KU nroff-mode-
hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).
21.11 rEDAKTIROWANIE FORMATIROWANNOGO TEKSTA
rEVIM Enriched |\TO WTOROSTEPENNYJ REVIM DLQ REDAKTIROWANIQ FAJLOW,KOTORYE
SODERVAT FORMATIROWANNYJ TEKST W STILE WYSIWYG,KAK W TEKSTOWOM PROCESSORE.nA
DANNYJ MOMENT FORMATIROWANNYJ TEKST W REVIME Enriched MOVET ZADAWATX [RIFTY,CWE-
TA,POD^ERKIWANIE,POLQ I TIPY ZAPOLNENIQ I WYRAWNIWANIQ.w BUDU]EM MY PLANIRUEM
REALIZOWATX TAKVE I DRUGIE WOZMOVNOSTI DLQ FORMATIROWANIQ.
rEVIM Enriched |\TO WTOROSTEPENNYJ REVIM (SM.rAZDEL 31.1 [wTOROSTEPENNYE RE-
VIMY],S.341 ).kAK PRAWILO ON ISPOLXZUETSQ WMESTE S REVIMOM Text (SM.rAZDEL 21.7
[rEVIM Text],S.190 ).oDNAKO,WY MOVETE TAKVE ISPOLXZOWATX EGO I S DRUGIMI OSNOWNYMI
REVIMAMI,TAKIMI KAK REVIM Outline I REVIM Paragraph-Indent Text.
pOTENCIALXNO Emacs MOVET SOHRANQTX FAJLY S FORMATIROWANNYM TEKSTOM WO MNOGIH
FORMATAH.nA TEKU]IJ MOMENT REALIZOWAN TOLXKO ODIN FORMAT:text/enriched,KOTORYJ
OPREDELQETSQ PROTOKOLOM MIME.sM.RAZDEL\Format Conversion"W the Emacs Lisp Reference
Manual,DLQ POLU^ENIQ PODROBNOSTEJ O TOM,KAK Emacs RASPOZNAET I PREBRAZUET FORMATY
FAJLOW.
dISTRIBUTIW Emacs SODERVIT FAJL S FORMATIROWANNYM TEKSTOM,KOTORYJ MOVET SLU-
VITX PRIMEROM.oN NAZYWAETSQ`etc/enriched.doc'.|TOT FAJL SODERVIT OBRAZCY,ILL@-
STRIRU@]IE WSE WOZMOVNOSTI,OPISANNYE W\TOM RAZDELE.w NEM TAKVE ESTX PERE^ENX IDEJ
DLQ BUDU]IH ULU^[ENIJ.
21.11.1 zAPROS NA REDAKTIROWANIE FORMATIROWANNOGO TEKSTA
kOGDA WY OBRA]AETESX K FAJLU,KOTORYJ BYL SOHRANEN W FORMATE text/enriched,Emacs
AWTOMATI^ESKI PREOBRAZUET INFORMACI@ O FORMATIROWANII IZ\TOGO FAJLA WO WNUTRENNIJ
FORMAT Emacs (SWOJSTWA TEKSTA) I WKL@^AET REVIM Enriched.
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 199~TOBY SOZDATX NOWYJ FAJL S FORMATIROWANNYM TEKSTOM,OBRATITESX SNA^ALA K NESU]E-
STWU@]EMU FAJLU,A PERED TEM KAK NA^ATX REDAKTIROWANIE NABERITE M-x enriched-mode.
|TA KOMANDA WKL@^AET REVIM Enriched.dELAJTE\TO DO TOGO,KAK WY NA^NETE WSTAWLQTX
TEKST,^TOBY WSTAWLQEMYJ TEKST NAWERNQKA OBRABATYWALSQ PRAWILXNO.
w BOLEE OB]EM WIDE,KOMANDA enriched-mode WKL@^AET REVIM Enriched,ESLI ON BYL WY-
KL@^EN,I WYKL@^AET EGO,ESLI ON BYL WKL@^EN.zAPU]ENNAQ S ^ISLOWYM ARGUMENTOM,\TA
KOMANDA WKL@^AET REVIM Enriched,ESLI ARGUMENT POLOVITELEN,I WYKL@^AET W PROTIWNOM
SLU^AE.
kOGDA WY SOHRANQETE BUFER PRI ZADEJSTWOWANNOM REVIME Enriched,Emacs AWTOMATI^E-
SKI PREOBRAZUET TEKST K FORMATU text/enriched WO WREMQ ZAPISI W FAJL.kOGDA WY SNOWA
OBRATITESX K\TOMU FAJLU,Emacs AWTOMATI^ESKI RASPOZNAET FORMAT,PREOBRAZUET TEKST
OBRATNO I SNOWA WKL@^IT REVIM Enriched.
oBY^NO POSLE OBRA]ENIQ K FAJLU W FORMATE text/enriched,Emacs PEREZAPOLNQET KAV-
DYJ ABZAC TAK,^TOBY ON UME]ALSQ PO ZADANNOMU PRAWOMU POL@.wY MOVETE WYKL@^ITX\TO
PEREZAPOLNENIE,^TOBY S\KONOMITX WREMQ,USTANOWIW PEREMENNU@ enriched-fill-after-
visiting W ZNA^ENIE nil ILI ask.
oDNAKO,PRI OBRA]ENII K FAJLU,ZAPISANNOMU W FORMATE Enriched,NET NUVDY W PERE-
ZAPOLNENII,POSKOLXKU Emacs SOHRANQET USTANOWKI PRAWOGO POLQ WMESTE S TEKSTOM.
dELAQ DOBAWLENIQ K enriched-translations,WY MOVETE WNOSITX POMETKI DLQ SOHRANE-
NIQ DOPOLNITELXNYH SWOJSTW TEKSTA,KOTORYE Emacs OBY^NO NE SOHRANQET.zAMETXTE,^TO
STANDART text/enriched TREBUET,^TOBY IMENA WSEH NESTANDARTNYH POMETOK NA^INALISX S
`x-',NAPRIMER`x-read-only'.|TO POZWOLQET BYTX UWERENNYM W TOM,^TO ONI NE BUDUT
KONFLIKTOWATX SO STANDARTNYMI POMETKAMI,DOBAWLENNYMI POZVE.
21.11.2 vESTKIE I GIBKIE PEREWODY STROK
Emacs RAZLI^AET W FORMATIROWANNOM TEKSTE DWA RAZNYH WIDA PEREWODOW STROK:VESTKIE
I GIBKIE.
vESTKIE PEREWODY STROK ISPOLXZU@TSQ DLQ RAZDELENIQ ABZACEW,ILI PUNKTOW PERE^NQ,
ILI WEZDE,GDE STROKA DOLVNA WSEGDA RAZRYWATXSQ WNE ZAWISIMOSTI OT POLEJ.kOMANDY
h RETi (newline) I C-o (open-line) WSTAWLQ@T VESTKIE PEREWODY STROK.
gIBKIE PEREWODY STROK PRIMENQ@TSQ DLQ TOGO,^TOBY UMESTITX TEKST W PREDELY POLEJ.
wSE KOMANDY ZAPOLNENIQ,WKL@^AQ Auto Fill,WSTAWLQ@T GIBKIE PEREWODY STROK,I ONI
UDALQ@T WSEGDA TOLXKO GIBKIE PEREWODY STROK.
hOTQ VESTKIE I GIBKIE PEREWODY STROK WYGLQDQT ODINAKOWO,WAVNO POMNITX OB IH RAZ-
LI^II.nE ISPOLXZUJTE
hRETi,^TOBY RAZORWATX STROKU W SEREDINE ZAPOLNENNOGO ABZACA,ILI
INA^E WY POLU^ITE VESTKIE PEREWODY STROK,KOTORYE POSLUVAT BARXEROM POSLEDU@]EMU
ZAPOLNENI@.wMESTO\TOGO POZWOLXTE RAZBIWATX STROKI REVIMU Auto Fill,^TOBY PRI IZME-
NENII TEKSTA ILI POLEJ Emacs MOG PRAWILXNO PEREZAPOLNITX STROKI.sM.rAZDEL 21.5.1
[Auto Fill],S.185.
s DRUGOJ STORONY,W TABLICAH I PERE^NQH,GDE STROKI DOLVNY WSEGDA OSTAWATXSQ TAKI-
MI,KAK WY IH NABRALI,WY MOVETE ISPOLXZOWATX DLQ ZAWER[ENIQ STROK hRETi.dLQ TAKIH
STROK WY TAKVE MOVETE USTANOWITX STILX WYRAWNIWANIQ W unfilled.sM.rAZDEL 21.11.7
[fORMAT wYRAWNIWANIE],S.202.
21.11.3 rEDAKTIROWANIE INFORMACII O FORMATE
eSTX DWA SPOSOBA IZMENITX INFORMACI@ O FORMATE DLQ FAJLA S FORMATIROWANNYM
TEKSTOM:KOMANDAMI KLAWIATURY ILI S POMO]X@ MY[I.
pROSTEJ[IJ SPOSOB DOBAWITX SWOJSTWA K WA[EMU DOKUMENTU | WOSPOLXZOWATXSQ MEN@
Text Properties.wY MOVETE POPASTX W\TO MEN@ DWUMQ PUTQMI:IZ MEN@ Edit W POLOSKE
200 rUKOWODSTWO PO GNU EmacsMEN@ ILI S POMO]X@ C-mouse-2 (PRIVMITE KLAWI[U hCTRLi I NAVMITE SREDN@@ KNOPKU
MY[I).
bOLX[INSTWO PUNKTOW IZ MEN@ Text Properties WEDUT K DRUGIM PODMEN@.pODMEN@ OPI-
SANY W POSLEDU@]IH RAZDELAH.nEKOTORYE PUNKTY ZAPUSKA@T KOMANDY NEPOSREDSTWENNO:
Remove Properties
uDALQET IZ OBLASTI WSE SWOJSTWA TEKSTA,S KOTORYMI RABOTAET MEN@ Text Prop-
erties (facemenu-remove-props).
Remove All
uDALQET WSE SWOJSTWA TEKSTA IZ OBLASTI (facemenu-remove-all).
List Properties
pERE^ISLQET WSE SWOJSTWA TEKSTA DLQ ZNAKA POSLE TO^KI (list-text-
properties-at).
Display Faces
pOKAZYWAET PERE^ENX WSEH OPREDELENNYH NA^ERTANIJ.
Display Colors
pOKAZYWAET PERE^ENX WSEH OPREDELENNYH CWETOW.
21.11.4 nA^ERTANIQ W FORMATIROWANNOM TEKSTE
w PODMEN@ Faces PERE^ISLENY RAZNYE NA^ERTANIQ Emacs,WKL@^AQ bold,italic I
underline.wYBOR ODNOGO IZ NIH DOBAWLQET\TO NA^ERTANIE K OBLASTI.sM.rAZDEL 17.13
[nA^ERTANIQ],S.155.wY TAKVE MOVETE ZADATX NA^ERTANIQ S POMO]X@ TAKIH KOMAND KLA-
WIATURY:
M-g d gOWORIT,^TO OBLASTX ILI SLEDU@]IJ WSTAWLENNYJ ZNAK DOLVNY POQWITXSQ W
NA^ERTANII default (facemenu-set-default).
M-g b gOWORIT,^TO OBLASTX ILI SLEDU@]IJ WSTAWLENNYJ ZNAK DOLVNY POQWITXSQ W
NA^ERTANII bold (facemenu-set-bold).
M-g i gOWORIT,^TO OBLASTX ILI SLEDU@]IJ WSTAWLENNYJ ZNAK DOLVNY POQWITXSQ W
NA^ERTANII italic (facemenu-set-italic).
M-g l gOWORIT,^TO OBLASTX ILI SLEDU@]IJ WSTAWLENNYJ ZNAK DOLVNY POQWITXSQ W
NA^ERTANII bold-italic (facemenu-set-bold-italic).
M-g u gOWORIT,^TO OBLASTX ILI SLEDU@]IJ WSTAWLENNYJ ZNAK DOLVNY POQWITXSQ W
NA^ERTANII underline (facemenu-set-underline).
M-g o NA^ERTANIE h RETi
gOWORIT,^TO OBLASTX ILI SLEDU@]IJ WSTAWLENNYJ ZNAK DOLVNY POQWITXSQ W
ZADANNOM NA^ERTANII (facemenu-set-face).
eSLI WY ISPOLXZUETE\TI KOMANDY S PREFIKSNYM ARGUMENTOM |ILI,W REVIME Transient
Mark,ESLI OBLASTX NE AKTIWNA | TO ONI ZADA@T NA^ERTANIE DLQ SLEDU@]EGO SAMOWSTAW-
LQ@]EGOSQ WWODA.sM.rAZDEL 8.2 [Transient Mark],S.64.|TO OTNOSITSQ KAK K KOMANDAM
KLAWIATURY,TAK I K KOMANDAM MEN@.
rEVIM Enriched OPREDELQET DWA DOPOLNITELXNYH NA^ERTANIQ:fixed I excerpt.oNI
SOOTWETSTWU@T KODAM,ISPOLXZUEMYM W FORMATE FAJLOW text/enriched.
nA^ERTANIE excerpt PREDNAZNA^ENO DLQ CITAT.oNO SOWPADAET S NA^ERTANIEM italic,
ESLI WY EGO NE PERENASTROILI (SM.rAZDEL 31.2.2.3 [nASTROJKA NA^ERTANIJ],S.347).
nA^ERTANIE fixed OZNA^AET\iSPOLXZOWATX DLQ\TOJ ^ASTI TEKSTA RAWNO[IRINNYJ
[RIFT".w NASTOQ]EE WREMQ Emacs PODDERVIWAET TOLXKO RAWNO[IRINNYE [RIFTY;SLE-
DOWATELXNO,POMETKA fixed POKA NE TAK NEOBHODIMA.oDNAKO,W BUDU]IH WERSIQH Emacs
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 201MY PLANIRUEM REALIZOWATX PODDERVKU [RIFTOW PEREMENNOJ [IRINY,I DRUGIE SISTEMY,
SPOSOBNYE OTOBRAVATX FORMAT text/enriched,MOGUT NE ISPOLXZOWATX PO UMOL^ANI@ RAW-
NO[IRINNYJ [RIFT.pO\TOMU ESLI WY HOTITE,^TOBY KAKAQ-TO ^ASTX TEKSTA POQWLQLASX
IMENNO S RAWNO[IRINNYM [RIFTOM,WAM SLEDUT ZADATX DLQ\TOJ ^ASTI NA^ERTANIE fixed.
nA^ERTANIE fixed OBY^NO OPREDELENO TAK,^TO DLQ NEGO ISPOLXZUETSQ DRUGOJ [RIFT,OT-
LI^A@]IJSQ OT [RIFTA PO UMOL^ANI@.oDNAKO,NA RAZNYH SISTEMAH USTANOWLENY RAZNYE
[RIFTY,PO\TOMU WAM MOVET PONADOBITXSQ NASTROITX\TO.
eSLI WA[TERMINAL NE UMEET OTOBRAVATX RAZNYE NA^ERTANIQ,U WAS NE POLU^ITSQ IH UWI-
DETX,NO WY WSE VE SMOVETE REDAKTIROWATX DOKUMENTY,SODERVA]IE IH.wY DAVE SMOVETE
DOBAWITX W TEKST NA^ERTANIQ I CWETA.oNI STANUT WIDIMY,KOGDA FAJL BUDUT PROSMATRI-
WATX NA TERMINALE,KOTORYJ SPOSOBEN IH OTOBRAZITX.
21.11.5 cWETA W FORMATIROWANNOM TEKSTE
wY MOVETE UKAZATX CWETA BUKW I FONA DLQ FRAGMENTOW TEKSTA.eSTX MEN@ DLQ ZADANIQ
CWETA TEKSTA I MEN@ DLQ ZADANIQ CWETA FONA.oBA MEN@ CWETOW PERE^ISLQ@T WSE CWETA,
KOTORYE WY ISPOLXZOWALI W REVIME Enriched W TEKU]EM SEANSE Emacs.
eSLI WY ZADAETE CWET S PREFIKSNYM ARGUMENTOM | ILI,W REVIME Transient Mark,
ESLI OBLASTX NE AKTIWNA | TO\TOT CWET PRIMENQETSQ DLQ SAMOWSTAWLQEMOGO WWODA.sM.rAZDEL 8.2 [Transient Mark],S.64.w PROTIWNOM SLU^AE\TA KOMANDA OTNOSITSQ K OBLASTI.
oBA MEN@ CWETOW SODERVAT DOPOLNITELXNYJ PUNKT:`Other'.wY MOVETE ISPOLXZOWATX
\TOT PUNKT DLQ ZADANIQ CWETA,KOTORYJ NE PERE^ISLEN W MEN@;IMQ CWETA S^ITYWAETSQ
W MINIBUFERE.~TOBY PROSMOTRETX PERE^ENX DOSTUPNYH CWETOW I IH IMENA,ISPOLXZUJ-
TE PUNKT`Display Colors'W MEN@ Text Properties (SM.rAZDEL 21.11.3 [rEDAKTIROWANIE
FORMATA],S.199 ).
l@BOJ CWET,ZADANNYJ TAKIM SPOSOBOM ILI UPOMQNUTYJ W S^ITANNOM FAJLE S FORMATI-
ROWANNYM TEKSTOM,DOBAWLQETSQ W OBA MEN@ CWETOW I SOHRANQETSQ TAM NA PROTQVENII WSEGO
SEANSA Emacs.
dLQ ZADANIQ CWETOW NET PRIWQZOK KL@^EJ,NO WY MOVETE UKAZYWATX IH PRI POMO]I
RAS[IRENNYH KOMAND M-x facemenu-set-foreground I M-x facemenu-set-background.oBE
\TI KOMANDY S^ITYWA@T IMQ CWETA W MINIBUFERE.
21.11.6 oTSTUPY W FORMATIROWANNOM TEKSTE
pRI REDAKTIROWANII FORMATIROWANNOGO TEKSTA WY MOVETE ZADATX RAZLI^NYE WELI^INY
OTSTUPA DLQ PRAWOGO ILI LEWOGO KRAQ CELOGO ABZACA ILI EGO ^ASTI.uKAZANNYE WAM POLQ AW-
TOMATI^ESKI U^ITYWA@TSQ KOMANDY Emacs DLQ ZAPOLNENIQ (SM.rAZDEL 21.5 [zAPOLNENIE],
S.185 ) I RAZRYWA STROK.
pODMEN@ Indentation PREDOSTAWLQET UDOBNYJ INTERFEJS DLQ UKAZANIQ\TIH SWOJSTW.oNO
SODERVIT ^ETYRE PUNKTA:
Indent More
uWELI^IWAET OTSTUP OBLASTI NA 4 STOLBCA (increase-left-margin).w REVI-
ME Enriched\TA KOMANDA TAKVE DOSTUPNA NA C-x
hTABi;ESLI WY PREDOSTAWITE
^ISLOWOJ ARGUMENT,TO ON GOWORIT,SKOLXKO STOLBCOW NUVNO DOBAWITX K POL@
(OTRICATELXNYJ ARGUMENT UMENX[AET ^ISLO STOLBCOW).
Indent Less
uDALQET 4 STOLBCA OTSTUPA IZ OBLASTI.
Indent Right More
sUVAET OBLASTX,DELAQ S PRAWOGO KRAQ OTSTUP W 4 STOLBCA.
202 rUKOWODSTWO PO GNU EmacsIndent Right Less
uDALQET 4 STOLBCA OTSTUPA S PRAWOGO KRAQ.
wY MOVETE ISPOLXZOWATX\TI KOMANDY NESKOLXKO RAZ DLQ UWELI^ENIQ ILI UMENX[ENIQ
WELI^INY OTSTUPA.
nAIBOLEE ^ASTYJ SPOSOB PRIMENENIQ\TIH KOMAND | IZMENQTX OTSTUP CELOGO ABZACA.
oDNAKO\TO NE EDINSTWENNOE IH PRIMENENIE.wY MOVETE POMENQTX RAZMERY POLEJ W L@BOJ
TO^KE;NOWYE ZNA^ENIQ PROQWLQ@TSQ W KONCE\TOJ STROKI (DLQ PRAWOGO POLQ) ILI W NA^ALE
SLEDU@]EJ (DLQ LEWOGO POLQ).
|TO POZWOLQET FORMATIROWATX ABZACY S WISQ]IMI OTSTUPAMI,^TO OZNA^AET,^TO OTSTUP
PERWOJ STROKI MENX[E OTSTUPA POSLEDU@]IH STROK.~TOBY USTANOWITX WISQ]IJ OTSTUP,
UWELI^XTE OTSTUP OBLASTI,NA^INA@]EJSQ POSLE PERWOGO SLOWA ABZACA I PRODOLVA@]EJSQ
DO EGO KONCA.
oTSTUP W PERWOJ STROKE ABZACA DELAETSQ PRO]E.uSTANOWITE POLE DLQ WSEGO ABZACA TAM,
GDE WY HOTELI BY WIDETX EGO DLQ TELA ABZACA,A ZATEM UWELI^XTE OTSTUP PERWOJ STROKI,
DOBAWIW PROBELY ILI ZNAKI TABULQCII.
iNOGDA W REZULXTATE REDAKTIROWANIQ ZAPOLNENIE ABZACA SBIWAETSQ | ^ASTI ABZACA MO-
GUT WYJTI ZA LEWYE ILI PRAWYE POLQ.kOGDA TAKOE PROISHODIT,WOSPOLXZUJTESX M-q (fill-
paragraph),^TOBY PEREZAPOLNITX\TOT ABZAC.
~ISLO STOLBCOW,KOTORYE DOBAWLQ@T ILI UDALQ@T IZ OTSTUPA\TI KOMANDY,ZADAETSQ
PEREMENNOJ standard-indent.eE ZNA^ENIE RAWNO PO UMOL^ANI@ ^ETYREM.oB]EE PRAWOE
POLE,PRINIMAEMOE PO UMOL^ANI@ DLQ REVIMA Enriched,KONTROLIRUETSQ PEREMENNOJ fill-
column,KAK OBY^NO.
pREFIKS ZAPOLNENIQ,ESLI ON ZADAN,DEJSTWUET SOWMESTNO S UKAZANNYM OTSTUPOM ABZACA:
C-x.NE WKL@^AET PROPUSK IZ UKAZANNOGO OTSTUPA W NOWOE ZNA^ENIE PREFIKSA ZAPOLNENIQ,
A KOMANDY ZAPOLNENIQ I]UT PREFIKS ZAPOLNENIQ W KAVDOJ STROKE POSLE OTSTUPA.sM.rAZDEL 21.5.3 [pREFIKS ZAPOLNENIQ],S.187.
21.11.7 wYRAWNIWANIE W FORMATIROWANNOM TEKSTE
pRI REDAKTIROWANII FORMATIROWANNOGO TEKSTA WY MOVETE ZADAWATX RAZLI^NYE STILI
WYRAWNIWANIQ ABZACEW.uKAZANNYJ WAMI STILX AWTOMATI^ESKI U^ITYWAETSQ KOMANDAMI
Emacs DLQ ZAPOLNENIQ.
pODMEN@ JustiпЂЊcation PREDOSTAWLQET UDOBNYJ INTERFEJS DLQ UKAZANIQ STILQ WYRAWNI-
WANIQ.oNO SODERVIT PQTX PUNKTOW:
Flush Left
|TO NAIBOLEE RASPROSTRANENNYJ STILX WYRAWNIWANIQ (PO KRAJNEJ MERE DLQ
ANGLIJSKOGO QZYKA).sTROKI WYRAWNIWA@TSQ PO LEWOMU POL@,NO OSTAWLQ@TSQ
NEROWNYMI S PRAWOGO KRAQ.
Flush Right
|TO WYRAWNIWAET KAVDU@ STROKU PO PRAWOMU POL@.eSLI NEOBHODIMO,SLEWA
DOBAWLQ@TSQ PROBELY I ZNAKI TABULQCII,^TOBY PRAWYE KONCY STROK WYSTRAI-
WALISX W LINI@.
Full |TO WYRAWNIWAET TEKST PO OBOIM KONCAM STROK.wYROWNENNYJ TAKIM OBRAZOM
TEKST SMOTRITSQ KRASIWO W PE^ATNOJ KNIGE,GDE WSE PROBELY MOVNO NASTROITX
ODINAKOWO,NO SMOTRITSQ NE TAK HORO[O S RAWNO[IRINNYM [RIFTOM NA\KRANE.
wOZMOVNO,BUDU]IE WERSII Emacs POZWOLQT NASTRAIWATX [IRINU PROBELOW W
STROKE,^TOBY DOSTI^X\LEGANTNOGO WYRAWNIWANIQ.
Center |TO CENTRIRUET KAVDU@ STROKU MEVDU TEKU]IMI POLQMI.
gLAWA 21:kOMANDY DLQ ESTESTWENNYH QZYKOW 203None |TO WYKL@^AET ZAPOLNENIE POLNOSTX@.kAVDAQ STROKA BUDET OSTAWATXSQ TA-
KOJ,KAK WY EE NAPISALI;FUNKCII ZAPOLNENIQ I AWTOMATI^ESKOGO ZAPOLNENIQ
NE BUDUT IMETX\FFEKTA W TEKSTE S TAKOJ USTANOWKOJ.wY WSE VE MOVETE DE-
LATX OTSTUP SLEWA.w NEZAPOLNENNYH OBLASTQH WSE PEREWODY STROK S^ITA@TSQ
VESTKIMI (SM.rAZDEL 21.11.2 [vESTKIE I GIBKIE PEREWODY STROK],S.199).
w REVIME Enriched WY TAKVE MOVETE ZADAWATX STILX WYRAWNIWANIQ S KLAWIATURY,IS-
POLXZUQ PREFIKSNYJ ZNAK M-j:
M-j c
M-S cENTRIRUET OBLASTX (set-justification-center).
M-j u dELAET OBLASTX NEWYROWNENNOJ (set-justification-none).
M-j l wYRAWNIWAET OBLASTX SLEWA (set-justification-left).
M-j r wYRAWNIWAET OBLASTX SPRAWA (set-justification-right).
M-j f wYRAWNIWAET OBLASTX POLNOSTX@ (set-justification-full).
sTILI WYRAWNIWANIQ PRIMENQ@TSQ K CELYM ABZACAM.wSE KOMANDY DLQ IZMENENIQ WY-
RAWNIWANIQ DEJSTWU@T NA ABZAC,SODERVA]IJ TO^KU,ILI,ESLI OBLASTX AKTIWNA,NA WSE
ABZACY,PERESEKA@]IESQ S OBLASTX@.
sTILX WYRAWNIWANIQ PO UMOL^ANI@ ZADAETSQ PEREMENNOJ default-justification.eE
ZNA^ENIEM DOLVEN BYTX ODIN IZ SIMWOLOW left,right,full,center ILI none.
21.11.8 uSTANOWKA DRUGIH SWOJSTW TEKSTA
mEN@ Other Properties POZWOLQET WAM DOBAWLQTX ILI UDALQTX TRI DRUGIH POLEZNYH
SWOJSTWA TEKSTA:read-only,invisible I intangible.sWOJSTWO intangible ZAPRE]AET
DWIVENIE TO^KI WNUTRI\TOGO TEKSTA,SWOJSTWO TEKSTA invisible DELAET TEKST NEWIDIMYM,
A SWOJSTWO read-only ZAPRE]AET IZMENENIE TEKSTA.
dLQ DOBAWLENIQ KAVDOGO IZ\TIH OSOBYH SWOJSTW K OBLASTI ESTX PUNKT MEN@.pOSLEDNIJ
PUNKT MEN@,`Remove Special',UDALQET WSE\TI OSOBYE SWOJSTWA IZ TEKSTA OBLASTI.
nA DANNYJ MOMENT SWOJSTWA invisible I intangible NE SOHRANQ@TSQ W FORMATE
text/enriched.sWOJSTWO read-only SOHRANQETSQ,NO ONO NE WHODIT W STANDART FORMATA
text/enriched,PO\TOMU DRUGIE REDAKTORY MOGUT EGO IGNORIROWATX.
21.11.9 pRINUDITELXNOE WKL@^ENIE REVIMA Enriched
oBY^NO Emacs ZNAET,KOGDA WY REDAKTIRUETE FORMATIROWANNYJ TEKST,POSKOLXKU ON
RASPOZNAET SPECIALXNYE POMETKI,ISPOLXZOWANNYE W FAJLE,K KOTOROMU WY OBRATILISX.
oDNAKO,BYWA@T SITUACII,W KOTORYH WY DOLVNY PREDPRINQTX OSOBYE MERY,^TOBY PREOB-
RAZOWATX SODERVIMOE FAJLA ILI WKL@^ITX REVIM Enriched:
пЂЏ kOGDA WY OBRA]AETESX K FAJLU,KOTORYJ BYL SOZDAN KAKIM-TO DRUGIM REDAKTOROM,
Emacs MOVET NE RASPOZNATX\TOT FAJL KAK OTFORATIROWANNYJ W text/enriched.w TAKOM
SLU^AE,KOGDA WY OBRA]AETESX K FAJLU,WY UWIDITE KOMANDY FORMATIROWANIQ,A NE
FORMATIROWANNYJ TEKST.nABERITE M-x format-decode-buffer,^TOBY PEREWESTI IH.
пЂЏ kOGDA WY WSTAWLQETE FAJL W BUFER,A NE OBRA]AETESX K NEMU.Emacs DELAET NEOBHO-
DIMYE PREOBRAZOWANIQ WSTAWLQEMOGO TEKSTA,NO NE WKL@^AET REVIM Enriched.eSLI WY
HOTITE SDELATX\TO,WWEDITE M-x enriched-mode.
kOMANDA format-decode-buffer PEREWODIT TEKST IZ RAZLI^NYH FORMATOW WO WNUTREN-
NIJ FORMAT Emacs.oNA PROSIT WAS UKAZATX FORMAT,IZ KOTOROGO DELATX PREOBRAZOWANIE;
ODNAKO,KAK PRAWILO WY MOVETE PROSTO NAVATX
h RETi,^TO WELIT Emacs PREDPOLOVITX FOR-
MAT SAMOMU.
204 rUKOWODSTWO PO GNU EmacseSLI WY HOTITE PROSMOTRETX NA TEKST W text/enriched-FAJLE BUKWALXNO,KAK POSLE-
DOWATELXNOSTX ZNAKOW,A NE KAK FORMATIROWANNYJ TEKST,WOSPOLXZUJTESX KOMANDOJ M-x
find-file-literally.oNA OBRA]AETSQ K FAJLU,KAK I find-file,NO NE PROIZWODIT PRE-
OBRAZOWANIE FORMATA.oNA TAKVE PODAWLQET PREOBRAZOWANIE KODOW ZNAKOW (SM.rAZDEL 18.7
[sISTEMY KODIROWANIQ],S.165 ) I AWTOMATI^ESKU@ RASPAKOWKU (SM.rAZDEL 14.11 [sVATYE
FAJLY],S.133 ).~TOBY WYKL@^ITX PREOBRAZOWANIE FORMATA,NO POZWOLITX PEREWOD KODOW
ZNAKOW I/ILI AWTOMATI^ESKU@ RASPAKOWKU,ESLI ONA NUVNA,ISPOLXZUJTE format-find-file
S PODHODQ]IMI ARGUMENTAMI.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 20522 rEDAKTIROWANIE PROGRAMM
w Emacs ESTX MNOGO KOMAND,PREDNAZNA^ENNYH DLQ PONIMANIQ SINTAKSISA QZYKOW PRO-
GRAMMIROWANIQ,TAKIH KAK lISP I sI.|TI KOMANDY MOGUT:
пЂЏ pEREDWIGATX ILI UNI^TOVATX SBALANSIROWANNYE WYRAVENIQ ILI s-WYRAVENIQ (SM.rAZDEL 22.2 [sPISKI],S.206).
пЂЏ pEREDWIGATX ^EREZ ILI POME^ATX WYRAVENIQ WERHNEGO UROWNQ |OPREDELENIQ FUNKCIJ
W lISPE,FUNKCII W sI (SM.rAZDEL 22.4 [oPREDELENIQ FUNKCIJ],S.208).
пЂЏ pOKAZYWATX,KAK SBALANSIROWANY KRUGLYE SKOBKI (SM.rAZDEL 22.6 [pARNOSTX],S.218).
пЂЏ wSTAWLQTX,UNI^TOVATX ILI WYRAWNIWATX KOMMENTARII (SM.rAZDEL 22.7 [kOMMENTA-
RII],S.219 ).
пЂЏ sLEDOWATX OBY^NYM SOGLA[ENIQM OB OTSTUPAH,PRINQTYH W QZYKE (SM.rAZDEL 22.5
[oTSTUPY W PROGRAMMAH],S.208 ).
kOMANDY DLQ SLOW,PREDLOVENIJ I ABZACEW O^ENX UDOBNY PRI REDAKTIROWANII PROGRAMM,
DAVE HOTQ IH TRADICIONNYM PRIMENENIEM QWLQETSQ REDAKTIROWANIE TEKSTOW NA ESTESTWEN-
NOM QZYKE.bOLX[INSTWO SIMWOLOW SODERVAT SLOWA (SM.rAZDEL 21.1 [sLOWA],S.181);PREDLO-
VENIQ MOGUT BYTX NAJDENY W STROKAH ILI KOMMENTARIQH (SM.rAZDEL 21.2 [pREDLOVENIQ],
S.182 ).aBZACY TAK TAKOWYE NE PRISUTSTWU@T W KODE,NO KOMANDY RABOTY S ABZACAMI
TEM NE MENEE POLEZNY,TAK KAK OSNOWNYE REVIMY DLQ QZYKOW PROGRAMMIROWANIQ OPREDELQ-
@T ABZACY KAK KUSKI TEKSTA,NA^INA@]IESQ I ZAKAN^IWA@]IESQ PUSTYMI STROKAMI (SM.rAZDEL 21.3 [aBZACY],S.183).rAZUMNOE ISPOLXZOWANIE PUSTYH STROK DLQ ULU^[ENIQ ^I-
TAEMOSTI PROGRAMMY BUDET TAKVE PREDOSTAWLQTX KOMANDAM,OPERRIRU@]IM S ABZACAMI,
INTERESNYE KUSKI TEKSTA DLQ RABOTY.
sREDSTWO WYBORO^NOGO POKAZA POLEZNO DLQ PROSMOTRA OB]EJ STRUKTURY FUNKCII (SM.rAZDEL 11.4 [wYBORO^NYJ POKAZ],S.83).|TO SREDSTWO DELAET TAK,^TO NA\KRANE POQWLQ@TSQ
TOLXKO TE STROKI,OTSTUP W KOTORYH MENX[E ZADANNOJ WELI^INY.
22.1 oSNOWNYE REVIMY DLQ QZYKOW PROGRAMMIROWANIQ
Emacs TAKVE IMEET OSNOWNYE REVIMY DLQ QZYKOW PROGRAMMIROWANIQ lISP,Scheme
(WARIANT lISPA),Awk,sI,sI++,fORTRAN,Icon,Java,Objective-C,pASKALX,Perl,Pike,
CORBA IDL,I Tcl.eSTX TAKVE OSNOWNOJ REVIM DLQ Make-FAJLOW,NAZYWAEMYJ REVIMOM
MakeпЂЊle.wTOROJ ALXTERNATIWNYJ REVIM DLQ Perl NAZYWAETSQ REVIMOM CPerl.
w IDEALE,OSNOWNOJ REVIM DOLVEN BYTX REALIZOWAN DLQ KAVDOGO QZYKA PROGRAMMIROWA-
NIQ,KOTORYJ WY MOVETE POVELATX REDAKTIROWATX PRI POMO]I Emacs;NO ^ASTO REVIM DLQ
ODNOGO QZYKA MOVET OBSLUVIWATX DRUGIE QZYKI SO SHOVIM SINTAKSISOM.sU]ESTWU@]IE
REVIMY DLQ QZYKOW |\TO TE,KOTORYE KTO-TO WZQL NA SEBQ TRUD NAPISATX.
eSTX NESKOLXKO RAZNOWIDNOSTEJ REVIMA Lisp,KOTORYE OTLI^A@TSQ SPOSOBOM WZAIMODEJ-
STWIQ S ISPOLNENIEM lISPA.sM.rAZDEL 23.8 [wY^ISLENIE lISPA],S.254.
kAVDYJ IZ OSNOWNYH REVIMOW DLQ QZYKA PROGRAMMIROWANIQ OPREDELQET KL@^
hTABi DLQ
ZAPUSKA FUNKCII,DELA@]EJ OTSTUP,KOTOROJ IZWESTNY SOGLA[ENIQ OB OTSTUPAH DLQ\TOGO
QZYKA I KOTORAQ SOOTWETSTWENNO IZMENQET OTSTUP TEKU]EJ STROKI.nAPRIMER,W REVIME s,
h TABi PRIWQZAN K c-indent-line.C-j OBY^NO OPREDELQETSQ TAK,^TOBY DELATX hRETi,ZA KO-
TORYM SLEDUET h TABi;TAKIM OBRAZOM,\TA KOMANDA TOVE DELAET OTSTUP W REVIMOZAWISIMOM
WIDE.
w BOLX[INSTWE QZYKOW PROGRAMMIROWANIQ OTSTUP ^ASTO IZMENQETSQ OT STROKI K STROKE.
sLEDOWATELXNO,OSNOWNYE REVIMY DLQ TAKIH QZYKOW PEREPRIWQZYWA@T
hDELi TAK,^TOBY
ON TRAKTOWAL ZNAK TABULQCII KAK\KWIWALENTNOE KOLI^ESTWO PROBELOW (ISPOLXZUQ KOMANDU
backward-delete-char-untabify).|TO POZWOLQET STIRATX OTSTUP PO ODNOMU STOLBCU,NE
ZABOTQSX O TOM,SDELAN LI ON S POMO]X@ PROBELOW ILI ZNAKOW TABULQCII.~TOBY UDALITX W
\TIH REVIMAH ZNAK TABULQCII PERED TO^KOJ,ISPOLXZUJTE C-b C-d.
206 rUKOWODSTWO PO GNU EmacsrEVIMY QZYKOW PROGRAMMIROWANIQ OPREDELQ@T,^TO ABZACY RAZDELQ@TSQ TOLXKO PUSTY-
MI STROKAMI,TAK ^TO KOMANDY RABOTY S ABZACAMI OSTA@TSQ POLEZNYMI.rEVIM Auto Fill,
WKL@^ENNYJ W OSNOWNOM REVIME QZYKA PROGRAMMIROWANIQ,DELAET OTSTUP W SOZDAWAEMYH
IM NOWYH STROKAH.
wKL@^ENIE OSNOWNOGO REVIMA ZAPUSKAET OBY^NU@ LOWU[KU,NAZYWAEMU@ LOWU[KOJ RE-
VIMA,KOTORAQ QWLQETSQ ZNA^ENIEM LISPOWSKOJ PEREMENNOJ.dLQ KAVDOGO OSNOWNOGO REVIMA
ESTX SWOQ LOWU[KA,I IMQ\TOJ LOWU[KI WSEGDA SOSTAWLQETSQ IZ IMENI KOMANDY,ZAPUSKA-
@]EJ\TOT REVIM,I SLOWA`-hook'.nAPRIMER,WKL@^ENIE REVIMA s ZAPUSKAET LOWU[KU
c-mode-hook,TOGDA KAK WKL@^ENIE REVIMA Lisp ZAPUSKAET LOWU[KU lisp-mode-hook.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
22.2 sPISKI I s-WYRAVENIQ
pO SOGLA[ENI@,KL@^I Emacs DLQ RABOTY SO SBALANSIROWANNYMI WYRAVENIQMI OBY^NO
QWLQ@TSQ Control-Meta-ZNAKAMI.pO DEJSTWI@ ONI STREMQTSQ POHODITX NA SWOI Control-
I Meta-ANALOGI.oBY^NO S^ITAETSQ,^TO\TI KOMANDY IME@T OTNO[ENIE K WYRAVENIQM W
QZYKAH PROGRAMMIROWANIQ,NO ONI MOGUT OKAZATXSQ POLEZNYMI W L@BOM QZYKE,W KOTOROM
SU]ESTWUET KAKAQ-LIBO RAZNOWIDNOSTX KRUGLYH SKOBOK (WKL@^AQ ESTESTWENNYE QZYKI).
|TI KOMANDY DELQTSQ NA DWA KLASSA.nEKOTORYE IME@T DELO TOLXKO SO SPISKAMI (ZA-
KL@^ENNYMI W SKOBKI GRUPPAMI).oNI NE WIDQT NI^EGO,KROME KRUGLYH,KWADRATNYH ILI
FIGURNYH SKOBOK (TEH,KOTORYE DOLVNY BYTX SBALANSIROWANY W QZYKE,S KOTORYM WY RABO-
TAETE) I UPRAWLQ@]IH SIMWOLOW,KOTORYE MOGUT BYTX ISPOLXZOWANY,^TOBY\KRANIROWATX
\TI SKOBKI.
dRUGIE KOMANDY IME@T DELO S WYRAVENIQMI ILI s-WYRAVENIQMI.sLOWO`s-WYRAVENIE'
PROISHODIT OT s-expression,STAROGO TERMINA DLQ WYRAVENIQ W lISPE.nO W Emacs PONQTIE
`s-WYRAVENIE'NE OGRANI^IWAETSQ lISPOM.oNO OBOZNA^AET WYRAVENIE W L@BOM QZYKE,NA
KOTOROM NAPISANA WA[A PROGRAMMA.kAVDYJ QZYK PROGRAMMIROWANIQ IMEET SWOJ SOBSTWEN-
NYJ OSNOWNOJ REVIM,KOTORYJ NASTRAIWAET SINTAKSI^ESKIE TABLICY TAK,^TO WYRAVENIQ
NA\TOM QZYKE RASSMATRIWA@TSQ KAK s-WYRAVENIQ.
oBY^NO s-WYRAVENIE WKL@^AET W SEBQ SIMWOLY,^ISLA I STROKOWYE KONSTANTY,A TAKVE
WSE,^TO SODERVITSQ W KRUGLYH,KWADRATNYH ILI FIGURNYH SKOBKAH.
w QZYKAH,KOTORYE ISPOLXZU@T PREFIKSNYE I INFIKSNYE OPERATORY,TAKIH KAK sI,NE
WSE WYRAVENIQ MOGUT BYTX s-WYRAVENIQMI.nAPRIMER,REVIM s NE RASPOZNAET`foo + bar'
KAK s-WYRAVENIE,NESMOTRQ NA TO,^TO\TO QWLQETSQ WYRAVENIEM sI;ON RASPOZNAET`foo'
KAK ODNO s-WYRAVENIE I`bar'KAK DRUGOE,SO ZNAKOM`+'W KA^ESTWE PUNKTUACII MEVDU NIMI.
|TO FUNDAMENTALXNAQ NEODNOZNA^NOSTX:KAK`foo + bar',TAK I`foo'QWLQ@TSQ ZAKONNYMI
KANDIDATAMI NA s-WYRAVENIE,^EREZ KOTOROE NUVNO PEREDWINUTXSQ,ESLI TO^KA NAHODITSQ
NA`f'.zAMETXTE,^TO`(foo + bar)'|\TO EDINOE s-WYRAVENIE W REVIME s.
nEKOTORYE QZYKI IME@T TUMANNU@ FORMU SINTAKSISA WYRAVENIJ,I NIKTO NE POZABO-
TILSQ O TOM,^TOBY Emacs EGO PRAWILXNO PONIMAL.
22.3 kOMANDY RABOTY SO SPISKAMI I s-WYRAVENIQMI
C-M-f pEREDWINUTXSQ WPERED ^EREZ s-WYRAVENIE (forward-sexp).
C-M-b pEREDWINUTXSQ NAZAD ^EREZ s-WYRAVENIE (backward-sexp).
C-M-k uNI^TOVITX s-WYRAVENIE WPERED (kill-sexp).
C-M-h DELi uNI^TOVITX s-WYRAVENIE NAZAD (backward-kill-sexp).
C-M-u pEREJTI WWERH I NAZAD PO STRUKTURE SPISKA (backward-up-list).
C-M-d pEREJTI WNIZ I WPERED PO STRUKTURE SPISKA (down-list).
gLAWA 22:rEDAKTIROWANIE PROGRAMM 207C-M-n pEREDWINUTXSQ WPERED ^EREZ SPISOK (forward-list).
C-M-p pEREDWINUTXSQ NAZAD ^EREZ SPISOK (backward-list).
C-M-t pERESTAWITX WYRAVENIQ (transpose-sexps).
C-M-@ pOSTAWITX METKU POSLE SLEDU@]EGO WYRAVENIQ (mark-sexp).
~TOBY PEREDWINUTXSQ WPERED ^EREZ s-WYRAVENIE,ISPOLXZUJTE C-M-f (forward-sexp).
eSLI PERWAQ ZNA^A]AQ LITERA POSLE TO^KI |\TO OTKRYWA@]IJ OGRANI^ITELX (`('W lISPE;
`(',`['ILI`{'W sI),TO C-M-f PEREDWIGAET ZA PARNYJ ZAKRYWA@]IJ OGRANI^ITELX.eSLI
\TOT ZNAK NA^INAET SIMWOL,STROKU ILI ^ISLO,TO C-M-f PEREDWIGAET ^EREZ NIH.
kOMANDA C-M-b (backward-sexp) DWIGAET NAZAD ^EREZ s-WYRAVENIE.pODROBNYE PRAWILA
POHOVI NA OPISANNYE WY[E DLQ C-M-f,NO S PROTIWOPOLOVNYM NAPRAWLENIEM.eSLI PERED
s-WYRAVENIEM STOQT KAKIE-LIBO PREFIKSNYE SIMWOLY (W lISPE\TO ODINO^NAQ KAWY^KA,
OBRATNAQ KAWY^KA I ZAPQTAQ),TO C-M-b PEREHODIT I ^EREZ NIH.kOMANDY DLQ s-WYRAVENIJ
PEREDWIGA@TSQ ^EREZ KOMMENTARII,KAK\TO DELAETSQ DLQ PROPUSKOW W BOLX[INSTWE REVI-
MOW.
C-M-f ILI C-M-b S ARGUMENTOM POWTORQ@T OPERACI@ ZADANNOE ^ISLO RAZ;S OTRICATELX-
NYM ARGUMENTOM,ONI PEREME]A@T W PROTIWOPOLOVNOM NAPRAWLENII.
uNI^TOVENIE CELOGO s-WYRAVENIQ MOVET BYTX SDELANO PRI POMO]I C-M-k (kill-sexp)
ILI C-M-hDELi (backward-kill-sexp).C-M-k UNI^TOVAET ZNAKI,^EREZ KOTORYE PEREDWINULA
BY C-M-f,A C-M-hDELi UNI^TOVAET ZNAKI,^EREZ KOTORYE PEREDWINULA BY C-M-b.
kOMANDY DLQ SPISKOW PEREDWIGA@T ^EREZ SPISKI,KAK I KOMANDY s-WYRAVENIJ,NO LEGKO
PERESKAKIWA@T ^EREZ L@BOE KOLI^ESTWO DRUGIH WIDOW s-WYRAVENIJ (SIMWOLY,STROKI I
TAK DALEE).|TO C-M-n (forward-list) I C-M-p (backward-list).oNI POLEZNY W OSNOWNOM
TEM,^TO OBY^NO IGNORIRU@T KOMMENTARII (TAK KAK KOMMENTARII KAK PRAWILO NE SODERVAT
NIKAKIH SPISKOW).
C-M-n I C-M-p OSTA@TSQ NA ODNOM UROWNE SKOBOK,KOGDA\TO WOZMOVNO.~TOBY PERE-
DWINUTXSQ WWERH NA ODIN (ILI n) UROWENX,ISPOLXZUJTE C-M-u (backward-up-list).C-M-u
DWIGAET NAZAD I WWERH MIMO ODNOGO NEPARNOGO OTKRYWA@]EGO OGRANI^ITELQ.pOLOVITELX-
NYJ ARGUMENT SLUVIT S^ET^IKOM POWTOROW;OTRICATELXNYJ ARGUMENT MENQET NAPRAWLENIE
DWIVENIQ I TAKVE ZAPRA[IWAET POWTORENIE,TAKIM OBRAZOM,W\TOM SLU^AE DWIVENIE PRO-
ISHODIT WPERED I WWERH NA ODIN ILI BOLX[E UROWNEJ.
~TOBY PEREDWINUTXSQ WNIZ PO STRUKTURE SPISKOW,ISPOLXZUJTE C-M-d (down-list).w
REVIME Lisp,GDE`('|\TO EDINSTWENNYJ OTKRYWA@]IJ OGRANI^ITELX,\TO PO^TI TO VE SA-
MOE,^TO I POISK`('.kOLI^ESTWO UROWNEJ SKOBOK,NA KAKOE SLEDUET SPUSTITXSQ,OPREDELQET
ARGUMENT.
kOMANDA C-M-t (transpose-sexp),KOTORAQ PERENOSIT PREDYDU]EE s-WYRAVENIE ^EREZ
SLEDU@]EE,OT^ASTI KAVETSQ SLU^AJNO S@DA POPAW[EJ,NO TEM NE MENEE ONA O^ENX UDOBNA.
aRGUMENT SLUVIT DLQ PODS^ETA ^ISLA POWTOROW,A OTRICATELXNYJ ARGUMENT PERETASKIWAET
WYRAVENIE W OBRATNOM NAPRAWLENII (TAKIM OBRAZOM OTMENQQ DEJSTWIE C-M-t S POLOVI-
TELXNYM ARGUMENTOM).aRGUMENT,RAWNYJ NUL@,WMESTO TOGO ^TOBY NI^EGO NE DELATX,
PERESTAWLQET MESTAMI s-WYRAVENIQ,KON^A@]IESQ POSLE TO^KI I METKI.
~TOBY USTANOWITX OBLASTX WOKRUG SLEDU@]EGO s-WYRAVENIQ W BUFERE,ISPOLXZUJTE
C-M-@ (mark-sexp),KOTORAQ STAWIT POMETKU W TO VE SAMOE MESTO,KUDA DOLVNA BY BY-
LA PEREDWINUTXSQ C-M-f.C-M-@ WOSPRINIMAET ARGUMENT TAK VE,KAK C-M-f.w ^ASTNOSTI,
OTRICATELXNYJ ARGUMENT UDOBEN DLQ USTANOWKI METKI W NA^ALE PREDYDU]EGO s-WYRAVENIQ.
pONIMANIE SINTAKSISA KOMANDAMI DLQ SPISKOW I s-WYRAVENIJ POLNOSTX@ UPRAWLQETSQ
SINTAKSI^ESKOJ TABLICEJ.l@BOJ ZNAK MOVET BYTX OB_QWLEN,NAPRIMER,OTKRYWA@]IM
OGRANI^ITELEM I DEJSTWOWATX KAK OTKRYWA@]AQ KRUGLAQ SKOBKA.sM.rAZDEL 31.6 [sINTAK-
SIS],S.366.
208 rUKOWODSTWO PO GNU Emacs22.4 oPREDELENIQ FUNKCIJ
w Emacs,ZAKL@^ENNYE W SKOBKI GRUPPY NA WERHNEM UROWNE W BUFERE NAZYWA@TSQ OPRE-
DELENIQMI FUNKCIJ.|TO NAZWANIE PROISHODIT OT TOGO FAKTA,^TO BOLX[INSTWO SPISKOW
WERHNEGO UROWNQ W lISP-FAJLE |\TO\KZEMPLQRY SPECIALXNOJ FORMY defun,NO L@BAQ
GRUPPA WERHNEGO UROWNQ,ZAKL@^ENNAQ W SKOBKI,NA QZYKE Emacs PONIMAETSQ KAK OPREDELE-
NIE FUNKCII,NEZAWISIMO OT EE SODERVANIQ I OT ISPOLXZUEMOGO QZYKA PROGRAMMIROWANIQ.
nAPRIMER,TELO FUNKCII W sI |\TO OPREDELENIE FUNKCII.
C-M-a pEREDWINUTXSQ K NA^ALU TEKU]EGO ILI PRED[ESTWU@]EGO OPREDELENIQ FUNKCII
(beginning-of-defun).
C-M-e pEREDWINUTXSQ W KONEC TEKU]EGO ILI SLEDU@]EGO OPREDELENIQ FUNKCII (end-
of-defun).
C-M-h pOMETITX OBLASTX WOKRUG WSEGO TEKU]EGO ILI SLEDU@]EGO OPREDELENIQ FUNKCII
(mark-defun).
kOMANDY DWIVENIQ K NA^ALU ILI KONCU TEKU]EGO OPREDELENIQ FUNKCII |\TO C-M-a
(beginning-of-defun) I C-M-e (end-of-defun).
eSLI WY POVELAETE PROIZWESTI KAKIE-TO DEJSTWIQ NAD TEKU]IM OPREDELENIEM FUNKCII,
ISPOLXZUJTE C-M-h (mark-defun),KOTORAQ STAWIT TO^KU W NA^ALE I METKU W KONCE TEKU]EGO
ILI SLEDU@]EGO OPREDELENIQ FUNKCII.nAPRIMER,\TO PROSTEJ[IJ SPOSOB POLU^ITX GOTO-
WOE DLQ PEREME]ENIQ W DRUGOE MESTO OPREDELENIE FUNKCII.w REVIME s,C-M-h ZAPUSKAET
FUNKCI@ c-mark-function,KOTORAQ PO^TI\KWIWALENTNA mark-defun;RAZLI^IE SOSTOIT W
TOM,^TO ONA PEREHODIT ^EREZ OB_QWLENIQ ARGUMENTOW,IMQ FUNKCII I TIP WOZWRA]AEMYH
DANNYH,TAK ^TO FUNKCIQ sI OKAZYWAETSQ WNUTRI OBLASTI POLNOSTX@.sM.rAZDEL 8.4
[pOMETKA OB_EKTOW],S.65.
Emacs PREDPOLAGAET,^TO L@BYE OTKRYWA@]IE SKOBKI,NAJDENNYE W SAMOM LEWOM STOLB-
CE,|\TO NA^ALO OPREDELENIQ FUNKCII.pO\TOMU NIKOGDA NE STAWXTE OTKRYWA@]IE SKOBKI
S LEWOGO KRAQ W lISP-FAJLE,ESLI ONI NE QWLQ@TSQ NA^ALOM SPISKA WERHNEGO UROWNQ.nIKO-
GDA NE STAWXTE OTKRYWA@]U@ FIGURNU@ SKOBKU ILI DRUGOJ OTKRYWA@]IJ OGRANI^ITELX
W NA^ALE STROKI W PROGRAMME NA sI,ESLI TOLXKO ONI NE NA^INA@T TELO FUNKCII.bOLX-
[INSTWO WOZMOVNYH PROBLEM WOZNIKAET,KOGDA WY HOTITE POSTAWITX OTKRYWA@]IJ OGRA-
NI^ITELX W NA^ALE STROKI WNUTRI STROKOWOJ KONSTANTY.~TOBY IZBEVATX NEPRIQTNOSTEJ,
POSTAWXTE\KRANIRU@]IJ ZNAK (`\'W sI I Emacs Lisp,`/'W NEKOTORYH DRUGIH DIALEKTAH
lISPA) PERED OTKRYWA@]IM OGRANI^ITELEM.|TO NE POWLIQET NA SODERVIMOE STROKI.
w O^ENX DALEKOM PRO[LOM ORIGINALXNYJ Emacs NAHODIL OPREDELENIQ FUNKCIJ,DWIGAQSX
WWERH PO UROWNQM SKOBOK DO TEH POR,POKA NE DOHODIL DO UROWNQ,OT KOTOROGO NEKUDA BYLO
IDTI DALX[E.|TO WSEGDA TREBOWALO PROSMOTRA POLNOGO PUTI OBRATNO DO NA^ALA BUFERA,
DAVE DLQ MALENXKOJ FUNKCII.~TOBY USKORITX\TU OPERACI@,Emacs BYL IZMENEN,I TEPERX
ON PREDPOLAGAET,^TO L@BOJ ZNAK`('(ILI L@BOJ DRUGOJ,PRIPISANNYJ K SINTAKSI^ESKOMU
KLASSU OTKRYWA@]EGO OGRANI^ITELQ) NA LEWOJ GRANICE STROKI |\TO NA^ALO OPREDELENIQ
FUNKCIJ.|TA\WRISTIKA PO^TI WSEGDA PRAWILXNA I POZWOLQET IZBEVATX RESURSOEMKOGO
PROSMOTRA;ODNAKO,ONA TREBUET WYPOLNENIQ OPISANNYH WY[E SOGLA[ENIJ.
22.5 oTSTUPY W PROGRAMMAH
nAILU^[IJ SPOSOB SOHRANITX PRAWILXNOSTX OTSTUPOW W PROGRAMME |\TO ISPOLXZOWATX
Emacs DLQ SOZDANIQ NOWYH OTSTUPOW PO MERE WNESENIQ IZMENENIJ.w Emacs ESTX KOMANDY
DLQ SOZDANIQ PRAWILXNOGO OTSTUPA ODINO^NOJ STROKI,ZADANNOGO ^ISLA STROK ILI WSEH
STROK WNUTRI ODNOJ GRUPPY,ZAKL@^ENNOJ W SKOBKI.
Emacs TAKVE PREDOSTAWLQET PROGRAMMU STRUKTURNOJ PE^ATI DLQ lISPA,REALIZOWANNU@
W BIBLIOTEKE pp.|TA PROGRAMMA PEREFORMATIRUET LISPOWSKIJ OB_EKT,WYBIRAQ OTSTUPY
TAKIM OBRAZOM,^TOBY REZULXTAT HORO[O WYGLQDEL I UDOBNO ^ITALSQ.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 20922.5.1 oSNOWNYE KOMANDY DLQ OTSTUPOW W PROGRAMMAH
hTABi uSTANOWITX OTSTUP TEKU]EJ STROKI.
C-j |KWIWALENT hRETi,ZA KOTORYM SLEDUET hTABi (newline-and-indent).
oSNOWNAQ KOMANDA OTSTUPA |\TO h TABi,KOTORAQ DAET TEKU]EJ STROKE PRAWILXNYJ OT-
STUP,OSNOWYWAQSX NA OTSTUPE PREDYDU]IH STROK.fUNKCIQ,KOTORU@ ZAPUSKAET hTABi,
ZAWISIT OT OSNOWNOGO REVIMA;W REVIME Lisp\TO lisp-indent-line,W REVIME s\TO c-
indent-line I TAK DALEE.|TI FUNKCII PONIMA@T RAZLI^NYE SINTAKSISY RAZNYH QZYKOW,
NO WSE ONI DELA@T PRIMERNO ODNO I TO VE.h TABi W OSNOWNOM REVIME L@BOGO QZYKA PROGRAM-
MIROWANIQ WSTAWLQET ILI UDALQET PROBELXNYE ZNAKI W NA^ALE TEKU]EJ STROKI,NEZAWISIMO
OT TOGO,GDE W STROKE RASPOLAGAETSQ TO^KA.eSLI TO^KA NAHODITSQ SREDI PROBELXNYH ZNAKOW
W NA^ALE STROKI,h TABi OSTAWLQET EE POSLE NIH;W PROTIWNOM SLU^AE hTABi OSTAWLQET TO^KU
FIKSIROWANNOJ PO OTNO[ENI@ K OKRUVA@]IM EE ZNAKAM.
~TOBY WSTAWITX W TO^KE ZNAK TABULQCII,ISPOLXZUJTE C-q h TABi.
pRI WWODE NOWOGO KODA ISPOLXZUJTE C-j (newline-and-indent),KOTORAQ\KWIWALENTNA
h RETi,ZA KOTOROJ SLEDUET hTABi.C-j SOZDAET PUSTU@ STROKU,A ZATEM DAET EJ SOOTWETSTWU@-
]IJ OTSTUP.
h TABi SOZDAET OTSTUP WO WTOROJ I SLEDU@]IH STROKAH TELA GRUPPY,ZAKL@^ENNOJ W SKOB-
KI,TAK,^TO KAVDAQ OKAZYWAETSQ POD PREDYDU]EJ;PO\TOMU,ESLI WY IZMENQETE OTSTUP
ODNOJ STROKI NA NESTANDARTNYJ,TO STROKI NIVE BUDUT STREMITXSQ SLEDOWATX EMU.tA-
KOE POWEDENIE UDOBNO W TEH SLU^AQH,KOGDA WY ZAMENQETE STANDARTNYJ REZULXTAT hTABi,
POSKOLXKU WY NA[LI EGO NE\STETI^NYM DLQ KAKOJ-TO STROKI.
pOMNITE,^TO OTKRYWA@]IE KRUGLYE I FIGURNYE SKOBKI ILI DRUGIE OTKRYWA@]IE
OGRANI^ITELI NA LEWOM KRAE RASSMATRIWA@TSQ Emacs (I PRAWILAMI OTSTUPA) KAK NA^A-
LO FUNKCII.pO\TOMU WY NIKOGDA NE DOLVNY STAWITX OTKRYWA@]IJ OGRANI^ITELX,NE
QWLQ@]IJSQ NA^ALOM FUNKCII,W NULEWOM STOLBCE,DAVE WNUTRI STROKOWOJ KONSTANTY.|TO
OGRANI^ENIE VIZNENNO WAVNO DLQ SKOROSTI RABOTY KOMAND OTSTUPA;WY DOLVNY PROSTO
PRINQTX EGO.dLQ BOLEE PODROBNOJ INFORMACII OB\TOM SMOTRITE rAZDEL 22.4 [oPREDELE-
NIQ FUNKCIJ],S.208.
22.5.2 oTSTUP W NESKOLXKIH STROKAH
eSLI WY HOTITE POMENQTX OTSTUP NESKOLXKIH STROK KODA,KOTORYE BYLI IZMENENY ILI
PEREDWINUTY NA DRUGOJ UROWENX W STRUKTURE SPISKOW,WY IMEETE W SWOEM RASPORQVENII
NESKOLXKO KOMAND.
C-M-q sDELATX NOWYJ OTSTUP WO WSEH STROKAH W PREDELAH ODNOGO SPISKA (indent-sexp).
C-u
h TABi sDWINUTX WESX SPISOK VESTKO W STORONU TAK,^TOBY EGO PERWAQ STROKA POLU^ILA
NADLEVA]IJ OTSTUP.
C-M-\sDELATX NOWYJ OTSTUP WO WSEH STROKAH W OBLASTI (indent-region).
wY MOVETE WNOWX SDELATX OTSTUP SODERVIMOGO ODINO^NOGO SPISKA,PEREMESTIW TO^KU W
EGO NA^ALO I NABRAW C-M-q (\TO KOMANDA indent-sexp W REVIME Lisp,c-indent-exp W REVI-
ME s;ONA TAKVE PRIWQZANA K DRUGIM PODHODQ]IM FUNKCIQM W DRUGIH REVIMAH).oTSTUP
STROKI,NA KOTOROJ NA^INAETSQ\TO s-WYRAVENIE,NE IZMENQETSQ;PO\TOMU IZMENQETSQ TOLX-
KO OTNOSITELXNYJ OTSTUP W PREDELAH SPISKA,A NE EGO POZICIQ.~TOBY ISPRAWITX TAKVE I
EGO POZICI@,NABERITE hTABi PERED C-M-q.
eSLI OTNOSITELXNYJ OTSTUP WNUTRI SPISKA PRAWILXNYJ,NO OTSTUP EGO PERWOJ STROKI
|NET,PEREJDITE K\TOJ STROKE I NABERITE C-u hTABi.hTABi S ^ISLOWYM ARGUMENTOM DELAET
W TEKU]EJ STROKE OBY^NYJ OTSTUP,A ZATEM IZMENQET OTSTUP WO WSEH STROKAH W GRUPPE,NA-
^INAQ S TEKU]EJ,NA TU VE SAMU@ WELI^INU.dRUGIMI SLOWAMI,ONA OBNOWLQET OTSTUP CELOJ
210 rUKOWODSTWO PO GNU EmacsGRUPPY KAK NEDELIMOJ EDINICY.|TO RAZUMNO,HOTQ I NE IZMENQET STROKI,KOTORYE NA^I-
NA@TSQ WNUTRI STROKOWYH KONSTANT,ILI STROKI PREPROCESSORA sI,KOGDA\TO PROISHODIT
W REVIME s.
mOVNO UKAZATX DIAPAZON STROK,W KOTORYH SLEDUET WNOWX SDELATX OTSTUP,DRUGIM SPO-
SOBOM | S POMO]X@ OBLASTI.kOMANDA C-M-\(indent-region) PRIMENQET hTABi K KAVDOJ
STROKE,^EJ PERWYJ ZNAK NAHODITSQ MEVDU TO^KOJ I METKOJ.
22.5.3 nASTROJKA OTSTUPOW DLQ lISPA
oBRAZEC OTSTUPA DLQ LISPOWSKOGO WYRAVENIQ MOVET ZAWISETX OT FUNKCII,WYZYWAEMOJ
\TIM WYRAVENIEM.dLQ KAVDOJ LISPOWSKOJ FUNKCII WY MOVETE WYBIRATX SREDI NESKOLX-
KIH PREDOPREDELENNYH OBRAZCOW OTSTUPA ILI OPREDELITX PROIZWOLXNYJ OTSTUP S POMO]X@
PROGRAMMY NA lISPE.
sTANDARTNYJ [ABLON OTSTUPA TAKOW:WTORAQ STROKA WYRAVENIQ SDWIGAETSQ POD PERWYJ
ARGUMENT,ESLI ON NAHODITSQ NA TOJ VE SAMOJ STROKE,^TO I NA^ALO WYRAVENIQ;W PROTIWNOM
SLU^AE WTORAQ STROKA SDWIGAETSQ POD IMQ FUNKCII.kAVDAQ SLEDU@]AQ STROKA IMEET TOT
VE OTSTUP,^TO I PREDYDU]AQ STROKA S TOJ VE GLUBINOJ WLOVENNOSTI.
eSLI PEREMENNAQ lisp-indent-offset NE RAWNA nil,TO ONA PEREKRYWAET OBY^NYJ [A-
BLON OTSTUPA DLQ WTOROJ STROKI WYRAVENIQ,TAK ^TO TAKIE STROKI WSEGDA SDWIGA@TSQ
WPRAWO NA lisp-indent-offset STOLBCOW DALX[E,^EM SODERVA]IJ IH SPISOK.
sTANDARTNYJ [ABLON PEREKRYWAETSQ W NEKOTORYH OPREDELENNYH FUNKCIQH.dLQ FUNK-
CIJ,^XI IMENA NA^INA@TSQ S def,OTSTUP WTOROJ STROKI WSEGDA DELAETSQ NA lisp-body-
indention DOPOLNITELXNYH STOLBCOW DALX[E OTKRYWA@]EJ SKOBKI,NA^INA@]EJ WYRAVE-
NIE.
sTANDARTNYJ [ABLON MOVET PEREKRYWATXSQ RAZLI^NYMI SPOSOBAMI DLQ OTDELXNYH
FUNKCIJ SOGLASNO SWOJSTWU IMENI\TOJ FUNKCII lisp-indent-function.eSTX ^ETYRE WA-
RIANTA DLQ\TOGO SWOJSTWA:
nil |TO TO VE SAMOE,^TO I OTSUTSTWIE SWOJSTWA;ISPOLXZUETSQ STANDARTNYJ [ABLON
OTSTUPA.
defun {ABLON,ISPOLXZUEMYJ DLQ IMEN FUNKCIJ,KOTORYE NA^INA@TSQ S def,TAKVE
ISPOLXZUETSQ I DLQ\TOJ FUNKCII.
^ISLO,n pERWYE n ARGUMENTOW\TOJ FUNKCII S^ITA@TSQ OTLI^ITELXNYMI ARGUMENTAMI,
OSTALXNYE RASSMATRIWA@TSQ KAK TELO WYRAVENIQ.sTROKA W\TOM WYRAVENII
OTSTUPAETSQ W SOOTWETSTWII S TEM,QWLQETSQ LI W NEJ PERWYJ ARGUMENT OTLI^I-
TELXNYM ILI NET.eSLI ARGUMENT QWLQETSQ ^ASTX@ TELA,TO STROKA OTSTUPAETSQ
NA lisp-body-indent STOLBCOW BOLX[E,^EM OTKRYWA@]AQ SKOBKA,NA^INA@-
]AQ SODERVA]EE EE WYRAVENIE.eSLI ARGUMENT QWLQETSQ OTLI^ITELXNYM,I
\TO PERWYJ ILI WTOROJ ARGUMENT,TO OTSTUP DELAETSQ NA WDWOE BOLX[EE ^ISLO
DOPOLNITELXNYH STOLBCOW.eSLI ARGUMENT OTLI^ITELEN I NE QWLQETSQ PERWYM
ILI WTORYM,TO DLQ\TOJ STROKI PRIMENQETSQ STANDARTNYJ [ABLON.
SIMWOL,SIMWOL
SIMWOL DOLVEN BYTX IMENEM FUNKCII;\TA FUNKCIQ WYZYWAETSQ DLQ WY^ISLENIQ
OTSTUPA STROKI W PREDELAH\TOGO WYRAVENIQ.fUNKCIQ POLU^AET DWA ARGUMENTA:
SOSTOQNIE zNA^ENIE,WOZWRA]AEMOE IZ parse-partial-sexp (\TO PRIMITIW
lISPA DLQ PODS^ETA WELI^INY OTSTUPOW I WLOVENNOSTEJ),KOGDA ONA
DELAET RAZBOR WPLOTX DO NA^ALA\TOJ STROKI.
POZICIQ pOZICIQ,S KOTOROJ NA^INAETSQ STROKA,W KOTOROJ DELAETSQ OTSTUP.
oNA DOLVNA WOZWRA]ATX LIBO ^ISLO,KOTOROE RAWNO KOLI^ESTWU STOLBCOW OTSTU-
PA DLQ\TOJ STROKI,LIBO SPISOK,^EJ GOLOWNOJ\LEMENT QWLQETSQ TAKIM ^ISLOM.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 211oTLI^IE MEVDU WOZWRA]ENIEM ^ISLA I WOZWRA]ENIEM SPISKA ZAKL@^AETSQ W
TOM,^TO ^ISLO GOWORIT,^TO WSE SLEDU@]IE STROKI TOGO VE UROWNQ WLOVENNO-
STI DOLVNY POLU^ATX TAKOJ VE OTSTUP,KAK\TA STROKA;SPISOK GOWORIT,^TO
SLEDU@]IE STROKI MOGUT TREBOWATX OTLI^NYE OTSTUPY.|TO WAVNO,ESLI OT-
STUPY PODS^ITYWA@TSQ S POMO]X@ C-M-q;ESLI ZNA^ENIE |\TO ^ISLO,TO C-M-q
NE NUVDAETSQ W PERES^ETE OTSTUPA DLQ SLEDU@]IH STROK DO KONCA SPISKA.
22.5.4 kOMANDY DLQ OTSTUPOW W sI
wOT KOMANDY DLQ SOZDANIQ OTSTUPOW W REVIME C I RODSTWENNYH S NIM:
C-c C-q oBNOWLQET OTSTUP W TEKU]EM OPREDELENII FUNKCII WERHNEGO UROWNQ ILI SOBI-
RAET W ODNO CELOE OB_QWLENIE TIPA (c-indent-defun).
C-M-q oBNOWLQET OTSTUP W KAVDOJ STROKE SBALANSIROWANNOGO WYRAVENIQ,KOTOROE SLE-
DUET POSLE TO^KI (c-indent-exp).pREFIKSNYJ ARGUMENT PODAWLQET PROWERKU
O[IBOK I WYWOD PREDUPREVDENIJ O NEDOPUSTIMOM SINTAKSISE.
h TABi oBNOWLQET OTSTUP W TEKU]EJ STROKE I/ILI W NEKOTORYH SLU^AQH WSTAWLQET ZNAK
TABULQCII (c-indent-command).
eSLI c-tab-always-indent RAWNA t,\TA KOMANDA WSEGDA OBNOWLQET OTSTUP TE-
KU]EJ STROKI I NE DELAET NI^EGO BOLX[E.|TO PRINIMAETSQ PO UMOL^ANI@.
eSLI\TA PEREMENNAQ RAWNA nil,DANNAQ KOMANDA OBNOWLQET OTSTUP TEKU]EJ
STROKI,TOLXKO ESLI TO^KA NAHODITSQ S LEWOGO KRAQ ILI NA OTSTUPE;W PROTIW-
NOM SLU^AE ONA WSTAWLQET TABULQCI@ (ILI\KWIWALENTNOE ^ISLO PROBELOW,ESLI
indent-tabs-mode RAWNA nil).
l@BOE DRUGOE ZNA^ENIE (NE nil ILI t) OZNA^AET,^TO NUVNO WSEGDA OBNOWLQTX
OTSTUP STROKI,A TAKVE WSTAWLQTX ZNAK TABULQCII,ESLI TO^KA NAHODITSQ WNU-
TRI KOMMENTARIQ,STROKI ILI DIREKTIWY PREPROCESSORA.
C-u hTABi oBNOWLQET OTSTUP TEKU]EJ STROKI W SOOTWETSTWII S EE SINTAKSISOM;KROME TOGO,
VESTKO SME]AET WSE OSTALXNYE STROKI WYRAVENIQ,NA^INA@]EGOSQ NA TEKU]EJ
STROKE.sM.rAZDEL 22.5.2 [mNOGOSTRO^NYJ OTSTUP],S.209.
~TOBY OBNOWITX OTSTUP WSEGO TEKU]EGO BUFERA,NABERITE C-x h C-M-\.|TO SNA^ALA
WYDELQET WESX BUFER KAK OBLASTX,A ZATEM OBNOWLQET OTSTUP W\TOJ OBLASTI.
~TOBY OBNOWITX OTSTUP W TEKU]EM BLOKE,ISPOLXZUJTE C-M-u C-M-q.|TA KOMANDA PERE-
ME]AET K NA^ALU BLOKA I DELAET W NEM OTSTUP.
22.5.5 nASTROJKA OTSTUPA W sI
rEVIM C I RODSTWENNYE REVIMY ISPOLXZU@T PROSTOJ,NO GIBKIJ MEHANIZM DLQ NASTROJ-
KI OTSTUPA.|TOT MEHANIZM RABOTAET W DWA\TAPA:SNA^ALA STROKI KLASSIFICIRU@TSQ
SINTAKSI^ESKI W SOOTWETSTWII S IH SODERVIMYM I KONTEKSTOM;ZATEM KAVDOMU WIDU SIN-
TAKSI^ESKIH KONSTRUKCIJ PRIWQZYWAETSQ ZNA^ENIE SDWIGA,KOTORYJ WY MOVETE NASTROITX.
22.5.5.1 {AG 1 |SINTAKSI^ESKIJ ANALIZ
nA PERWOM [AGE MEHANIZM OTSTUPOW W sI SMOTRIT NA STROKU PERED TOJ,W KOTOROJ WY W
DANNYJ MOMENT DELAETE OTSTUP,I OPREDELQET SINTAKSI^ESKIE KOMPONENTY KONSTRUKCII NA
\TOJ STROKE.oN STROIT SPISOK\TIH SINTAKSI^ESKIH KOMPONENTOW,GDE KAVDYJ KOMPONENT
SODERVIT SINTAKSI^ESKIJ SIMWOL I,INOGDA,POZICI@ W BUFERE.nEKOTORYE SINTAKSI^ESKIE
SIMWOLY OPISYWA@T GRAMMATI^ESKIE\LEMENTY,NAPRIMER statement I substatement;DRU-
GIE OPISYWA@T POLOVENIQ W SOSTAWE GRAMMATI^ESKIH\LEMENTOW,NAPRIMER class-open I
knr-argdecl.
212 rUKOWODSTWO PO GNU EmacspO IDEE,STROKA KODA NA sI WSEGDA IMEET OTSTUP OTNOSITELXNO OTSTUPA KAKOJ-TO STROKI
WY[E PO\TOMU BUFERU.|TO PREDSTAWLQETSQ POZICIEJ W BUFERE W SPISKE SINTAKSI^ESKIH
KOMPONENTOW.
wOT PRIMER.pREDPOLOVIM,^TO U NAS ESTX SLEDU@]IJ KOD W BUFERE S REVIMOM C++
(NOMERA STROK W DEJSTWITELXNOSTI NE POQWLQ@TSQ W BUFERE):
1:void swap (int& a,int& b)
2:{
3:int tmp = a;
4:a = b;
5:b = tmp;
6:}
eSLI WY NABERETE C-c C-s (^TO ZAPUSKAET KOMANDU c-show-syntactic-information) NA
STROKE 4,BUDET POKAZAN REZULXTAT RABOTY MEHANIZMA OTSTUPOW DLQ\TOJ STROKI:
((statement.32))
|TO UKAZYWAET NA TO,^TO DANNAQ STROKA QWLQETSQ OPERATOROM,I ONA IMEET OTSTUP
OTNOSITELXNO POZICII 32 W BUFERE,TO ESTX OTNOSITELXNO`i'W int NA STROKE 3.eSLI WY
PEREMESTITE KURSOR K STROKE 3 I NABERETE C-c C-s,\TO POKAVET SLEDU@]EE:
((defun-block-intro.28))
|TO UKAZYWAET NA TO,^TO STROKA int |\TO PERWYJ OPERATOR W BLOKE,I ONA IMEET
OTSTUP OTNOSITELXNO POZICII 28,TO ESTX FIGURNOJ SKOBKI SRAZU POSLE ZAGOLOWKA FUNKCII.
wOT E]E ODIN PRIMER:
1:int add (int val,int incr,int doit)
2:{
3:if (doit)
4:{
5:return (val + incr);
6:}
7:return (val);
8:}
eSLI W STROKE 4 NABRATX C-c C-s,WY UWIDITE WOT ^TO:
((substatement-open.43))
|TO GOWORIT,^TO DANNAQ FIGURNAQ SKOBKA OTKRYWAET BLOK PODOPERATORA.kSTATI,
PODOPERATOR |\TO STROKA POSLE OPERATOROW if,else,while,do,switch,for,try,catch,
finally ILI synchronized.
wNUTRI KOMAND DLQ OTSTUPA W sI,POSLE TOGO KAK STROKA SINTAKSI^ESKI PROANALICIRO-
WANA,OPISANIE REZULXTATOW ANALIZA HRANITSQ W SPISKE W PEREMENNOJ c-syntactic-context.
kAVDYJ\LEMENT\TOGO SPISKA |\TO SINTAKSI^ESKIJ KOMPONENT:PARA,SODERVA]AQ SIN-
TAKSI^ESKIJ SIMWOL I (WOZMOVNO) SOOTWETSTWU@]U@ EMU POZICI@ W BUFERE.w SPISKE
KOMPONENT MOVET NESKOLXKO\LEMENTOW;KAK PRAWILO TOLXKO ODIN IZ NIH IMEET POZICI@ W
BUFERE.
22.5.5.2 {AG 2 |PODS^ET OTSTUPA
mEHANIZMA OTSTUPOW W sI WY^ISLQET WELI^INU OTSTUPA DLQ TEKU]EJ STROKI,ISPOLXZUQ
SPISOK SINTAKSI^ESKIH KOMPONENTOW,c-syntactic-context,POLU^ENNYJ IZ SINTAKSI^ESKO-
GO ANALIZA.kAVDYJ KOMPONENT |\TO PARA,KOTORAQ SODERVIT SINTAKSI^ESKIJ SIMWOL I
MOVET SODERVATX POZICI@ W BUFERE.
kAVDYJ KOMPONENT DAET WKLAD W OKON^ATELXNYJ OTSTUP STROKI DWUMQ PUTQMI.wO-
PERWYH,SINTAKSI^ESKIJ SIMWOL OPREDELQET\LEMENT c-offsets-alist,\TO ASSOCIATIWNYJ
gLAWA 22:rEDAKTIROWANIE PROGRAMM 213SPISOK,STAWQ]IJ W SOOTWETSTWIE SINTAKSI^ESKIM SIMWOLAM WELI^INY SDWIGA.sDWIG KAV-
DOGO SINTAKSI^ESKOGO SIMWOLA DOBAWLQETSQ K OB]EMU OTSTUPU.wO-WTORYH,ESLI KOMPONENT
WKL@^AET POZICI@ W BUFERE,K OTSTUPU DOBAWLQETSQ NOMER STOLBCA\TOJ POZICII.wSE\TI
SDWIGI I NOMERA STOLBCOW S SUMME DA@T OB]IJ OTSTUP.
sLEDU@]IE PRIMERY DEMONSTRIRU@T RABOTU MEHANIZMA OTSTUPOW W QZYKE sI:
1:void swap (int& a,int& b)
2:{
3:int tmp = a;
4:a = b;
5:b = tmp;
6:}
pREDPOLOVIM,^TO TO^KA NAHODITSQ NA STROKE 3,I WY NAVIMAETE
hTABi,^TOBY OBNOWITX
W\TOJ STROKE OTSTUP.kAK OB_QSNQLOSX WY[E (SM.rAZDEL 22.5.5.1 [sINTAKSI^ESKIJ ANALIZ],
S.211 ),SINTAKSI^ESKIM KOMPONETOM\TOJ STROKI BUDET:
((defun-block-intro.28))
w DANNOM SLU^AE PRI PODS^ETE OTSTUPA SNA^ALA PROSMATRIWAETSQ defun-block-intro
W ASSOCIATIWNOM SPISKE c-offsets-alist.pREDPOLOVIM,^TO TAM NAJDENO ^ISLO 2;ONO
DOBAWLQETSQ K OB]EMU (INICIALIZIROWANNOMU NULEM),WYDAWAQ OB]EJ OBNOWLENNYJ OTSTUP
W 2 PROBELA.
sLEDU@]IJ [AG |NAJTI NOMER STOLBCA DLQ POZICII 28 W BUFERE.pOSKOLXKU FIGURNAQ
SKOBKA W POZICII 28 RASPOLOVENA W NULEWOM STOLBCE,K OB]EMU ^ISLU DOBAWLQETSQ 0.tAK
KAK W\TOJ STROKE ESTX TOLXKO ODIN SINTAKSI^ESKIJ KOMPONET,OB]IJ OTSTUP DLQ\TOJ
STROKI RAWEN DWUM PROBELAM.
1:int add (int val,int incr,int doit)
2:{
3:if (doit)
4:{
5:return(val + incr);
6:}
7:return(val);
8:}
eSLI WY NAVMETE
hTABi W STROKE 4,POWTORQETSQ TAKOJ VE PROCESS,NO S INYMI DANNYMI.
sPISOK SINTAKSI^ESKIH KOMPONENTOW DLQ\TOJ STROKI TAKOW:
((substatement-open.43))
zDESX PERWOE,^TO DELAETSQ DLQ POS^ETA OTSTUPA,| I]ETSQ SIMWOL substatement-open
W c-offsets-alist.bUDEM S^ITATX,^TO SDWIG DLQ\TOGO SIMWOLA RAWEN 2.w\TOM MESTE
PROMEVUTO^NOE OB]EE ZNA^ENIE RAWNO 2 (0 + 2 = 2).zATEM K NEMU DOBAWLQETSQ NOMER
STROKI POZICII 43 W BUFERE,GDE STOIT`i'IZ if NA STROKE 3.|TOT ZNAK RASPOLOVEN WO
WTOROM STOLBCE NA STROKE.iTOGO W SUMME POLU^AETSQ 4 PROBELA.
eSLI PRI ANALIZE STROKI POQWLQETSQ SINTAKSI^ESKIJ SIMWOL,KOTORYJ OTSUTSTWUET W
c-offsets-alist,ON IGNORIRUETSQ;I\TO QWLQETSQ O[IBKOJ,ESLI KROME TOGO PEREMENNAQ
c-strict-syntax-p OTLI^NA OT nil.
22.5.5.3 iZMENENIE STILQ OTSTUPOW
eSTX DWA SPOSOBA NASTROITX STILX OTSTUPOW DLQ REVIMOW,PODOBNYH REVIMU C.wO-
PERWYH,WY MOVETE WYBRATX ODIN IZ PREDOPREDELENNYH STILEJ,KAVDYJ IZ KOTORYH ZADAET
SDWIGI DLQ WSEH SINTAKSI^ESKIH SIMWOLOW.dLQ BOLX[EJ GIBKOSTI WY MOVETE NASTOITX
OBRABOTKU OTDELXNYH SINTAKSI^ESKIH SIMWOLOW.sM.rAZDEL 22.5.5.4 [sINTAKSI^ESKIE SIM-
WOLY],S.214,PERE^ENX WSEH OPREDELENNYH SINTAKSI^ESKIH SIMWOLOW.
214 rUKOWODSTWO PO GNU EmacsM-x c-set-style hRETi STILX hRETi
wYBIRAET PREDOPREDELENNYJ STILX STILX.~TOBY POLU^ITX PERE^ENX PODDER-
VIWAEMYH STILEJ,NABERITE PRI WWODE STILQ ZNAK?;^TOBY UZNATX,KAK WYGLQ-
DIT TOT ILI INOJ STILX,WYBERITE EGO I PRIMENITE DLQ FRAGMENTA KODA NA
sI.
C-c C-o SIMWOL h RETi SDWIG hRETi
uSTANAWLIWAET SDWIG DLQ SINTAKSI^ESKOGO SIMWOLA SIMWOL (c-set-offset).
wTOROJ ARGUMENT,SDWIG,UKAZYWAET NOWU@ WELI^INU SDWIGA.
rAZMER OTSTUPA DLQ KAVDOGO SINTAKSI^ESKOGO SIMWOLA UPRAWLQETSQ PEREMENNOJ c-
offsets-alist.eE ZNA^ENIE |\TO ASSOCIATIWNYJ SPISOK,I KAVDYJ\LEMENT\TOGO SPISKA
IMEET FORMU (SINTAKSI^ESKIJ-SIMWOL.SDWIG).iZMENQQ SDWIGI DLQ RAZNYH SINTAKSI-
^ESKIH SIMWOLOW,WY MOVETE NASTRAIWATX OTSTUPY W MELX^AJ[IH PODROBNOSTQH.~TOBY
IZMENITX\TOT ASSOCIATIWNYJ SPISOK,ISPOLXZUJTE c-set-offset (SMOTRITE NIVE).
zNA^ENIE KAVDOGO SDWIGA W c-offsets-alist MOVET BYTX CELYM ^ISLOM,IMENEM FUNK-
CII ILI PEREMENNOJ,SPISKOM ILI ODNIM IH SIMWOLOW +,-,++,--,* ILI/,OBOZNA^A@]IH
POLOVITELXNYE ILI OTRICATELXNYE KRATNYE PEREMENNOJ c-basic-offset.tAKIM OBRAZOM,
ESLI WY HOTITE POMENQTX UROWNI OTSTUPOW S TREH PROBELOW NA DWA PROBELA,USTANOWITE
c-basic-offset W ZNA^ENIE 3.
iSPOLXZOWANIE FUNKCII W KA^ESTWE ZNA^ENIQ SDWIGA PREDOSTAWLQET POLNU@ GIBKOSTX W
NASTROJKE OTSTUPOW.|TA FUNKCIQ WYZYWAETSQ S ODNIM ARGUMENTOM,SODERVA]IM PARU IZ
SINTAKSI^ESKOGO SIMWOLA I POZICII W BUFERE,ESLI ONA ESTX.fUNKCIQ DOLVNA WOZWRA]ATX
CELOE ^ISLO,RAWNOE SDWIGU.
eSLI ZNA^ENIEM SDWIGA QWLQETSQ SPISOK,EGO\LEMENTY OBRABATYWA@TSQ W SOOTWETSTWII
S OPISANNYMI WY[E PRAWILAMI,POKA NE NAJDENO OTLI^NOE OT nil ZNA^ENIE.tOGDA\TO
ZNA^ENIE DOBAWLQETSQ K OB]EMU OTSTUPU OBY^NYM SPOSOBOM.oSNOWNOE PRIMENENIE\TOGO
SOSTOIT W SLOVENII REZULXTATOW NESKOLXKIH FUNKCIJ.
kOMANDA C-c C-o (c-set-offset) |\TO PROSTEJ[IJ SPOSOB USTANOWITX SDWIGI,KAK
INTERAKTIWNO,TAK I W WA[EM FAJLE`~/.emacs'.sNA^ALA UKAVITE SINTAKSI^ESKIJ SIMWOL,
A POTOM VELAEMYJ SDWIG.sM.rAZDEL 22.5.5.4 [sINTAKSI^ESKIE SIMWOLY],S.214,PERE^ENX
DOPUSTIMYH SINTAKSI^ESKIH SIMWOLOW I IH ZNA^ENIJ.
22.5.5.4 sINTAKSI^ESKIE SIMWOLY
|TO TABLICA DOPUSTIMYH SINTAKSI^ESKIH SIMWOLOW DLQ OTSTUPOW REVIMA C I RODSTWEN-
NYH S NIM REVIMOW I IH SINTAKSI^ESKIE ZNA^ENIQ.oBY^NO WSEM\TIM SIMWOLAM PRIPISY-
WAETSQ SDWIG W c-offsets-alist.
string wNUTRI STROKI,ZANIMA]EJ NESKOLXKO STROK W BUFERE.
c wNUTRI MNOGOSTRO^NOGO BLO^NOGO KOMMENTARIQ W STILE sI.
defun-open
nA FIGURNOJ SKOBKE,KOTORAQ OTKRYWAET OPREDELENIE FUNKCII.
defun-close
nA FIGURNOJ SKOBKE,KOTORAQ ZAKRYWAET OPREDELENIE FUNKCII.
defun-block-intro
nA PERWOJ STROKE OPREDELENIQ FUNKCII WERHNEGO UROWNQ.
class-open
nA FIGURNOJ SKOBKE,KOTORAQ OTKRYWAET OPREDELENIE KLASSA.
class-close
nA FIGURNOJ SKOBKE,KOTORAQ ZAKRYWAET OPREDELENIE KLASSA.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 215inline-open
nA FIGURNOJ SKOBKE,KOTORAQ OTKRYWAET OPREDELQEMYJ WNUTRI KLASSA inline-
METOD.
inline-close
nA FIGURNOJ SKOBKE,KOTORAQ ZAKRYWAET OPREDELQEMYJ WNUTRI KLASSA inline-
METOD.
extern-lang-open
nA FIGURNOJ SKOBKE,KOTORAQ OTKRYWAET BLOK NA WNE[NEM QZYKE.
extern-lang-close
nA FIGURNOJ SKOBKE,KOTORAQ ZAKRYWAET BLOK NA WNE[NEM QZYKE.
func-decl-cont
nA OBLASTI MEVDU SPISKOM ARGUMENTOW W OPREDELENII FUNKCII I OTKRYWA@-
]EJ\TO OPREDELENIE FIGURNOJ SKOBKOJ (ISKL@^AQ OPREDELENIQ FUNKCIJ W STI-
LE K&R).w sI WY NE MOVETE PISATX ZDESX NI^EGO,KROME PROBELXNYH ZNAKOW
I KOMMENTARIEW;W sI++ I Java W\TOM KONTEKTE MOGUT POQWLQTXSQ OB_QWLENIQ
throws I DRUGIE WE]I.
knr-argdecl-intro
nA PERWOJ STROKE OB_QWLENIQ ARGUMENTOW W STILE K&R sI.
knr-argdecl
nA ODNOJ IZ POSLEDU@]IH STROK OB_QWLENIQ ARGUMENTOW W STILE K&R sI.
topmost-intro
nA PERWOJ STROKE OPREDELENIQ KONSTRUKCII SAMOGO WERHNEGO UROWNQ.
topmost-intro-cont
nA OSTALXNYH STROKAH OPREDELENIQ SAMOGO WERHNEGO UROWNQ.
member-init-intro
nA PERWOJ STROKE SPISKA INICIALIZACIJ ^LENOW.
member-init-cont
nA POSLEDU@]IH STROKAH SPISKA INICIALIZACIJ ^LENOW.
inher-intro
nA PERWOJ STROKE SPISKA MNOVESTWENNOGO NASLEDOWANIQ.
inher-cont
nA ODNOJ IH POSLEDU@]IH STROK MNOVESTWENNOGO NASLEDOWANIQ.
block-open
nA OTKRYWA@]EJ FIGURNOJ SKOBKE OPERATORNOGO BLOKA.
block-close
nA ZAKRYWA@]EJ FIGURNOJ SKOBKE OPERATORNOGO BLOKA.
brace-list-open
nA OTKRYWA@]EJ FIGURNOJ SKOBKE SPISKA MASSIWA enum ILI static.
brace-list-close
nA ZAKRYWA@]EJ FIGURNOJ SKOBKE SPISKA MASSIWA enum ILI static.
brace-list-intro
nA PERWOJ STROKE SPISKA MASSIWA enum ILI static.
brace-list-entry
nA ODNOJ IH POSLEDU@]IH STROK SPISKA MASSIWA enum ILI static.
216 rUKOWODSTWO PO GNU Emacsbrace-entry-open
nA ODNOJ IZ POSLEDU@]IH STROK SPISKA MASSIWA enum ILI static,KOGDA STROKA
NA^INAETSQ S OTKRYWA@]EJ FIGURNOJ SKOBKI.
statement
nA OBY^NOM OPERATORE.
statement-cont
nA STROKE PRODOLVENIQ OPERATORA.
statement-block-intro
nA PERWOJ STROKE NOWOGO OPERATORNOGO BLOKA.
statement-case-intro
nA PERWOJ STROKE\BLOKA"case.
statement-case-open
nA PERWOJ STROKE BLOKA case,NA^INA@]EJSQ S FIGURNOJ SKOBKI.
inexpr-statement
nA OPERATORNOM BLOKE WNUTRI WYRAVENIQ.|TO ISPOLXZUETSQ DLQ RAS[IRENIQ
GNU W QZYKE sI I DLQ DLQ SPECIALXNYH FUNKCIJ Pike,KOTORYE PRINIMA@T W
KA^ESTWE ARGUMENTA OPERATORNYJ BLOK.
inexpr-class
nA OPREDELENII KLASSA WNUTRI WYRAVENIQ.|TO ISPOLXZUETSQ DLQ ANONOIMNYH
KLASSOW I ANONOIMNYH INICIALIZATOROW MASSIWOW W Java.
substatement
nA PERWOJ STROKE POSLE if,while,for,do ILI else.
substatement-open
nA FIGURNOJ SKOBKE,OTKRYWA@]EJ BLOK PODOPERATORA.
case-label
nA METKE case ILI default.
access-label
nA METKAH DOSTUPA sI++ private,protected ILI public.
label nA OBY^NOJ METKE.
do-while-closure
nA while,KOTORYJ ZAWER[AET KONSTRUKCI@ do-while.
else-clause
nA else KONSTRUKCII if-else.
catch-clause
nA STROKAH catch I finally W KONSTRUKCIQH try...catch W sI++ I Java.
comment-intro
nA STROKE,SODERVA]EJ TOLXKO NA^ALO KOMMENTARIQ.
arglist-intro
nA PERWOJ STROKE SPISKA ARGUMENTOW.
arglist-cont
nA ODNOJ IZ POSLEDU@]IH STROK SPISKA ARGUMENTOW,KOGDA NA STROKE S OTKRY-
WA@]EJ SPISOK ARGUMENTOW KRUGLOJ SKOBKOJ NET NI ODNOGO ARGUMENTA.
arglist-cont-nonempty
nA ODNOJ IZ POSLEDU@]IH STROK SPISKA ARGUMENTOW,KOGDA NA STROKE S OTKRY-
WA@]EJ SPISOK ARGUMENTOW KRUGLOJ SKOBKOJ ESTX HOTQ BY ODIN ARGUMENT.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 217arglist-close
nA ZAKRYWA@]EJ KRUGLOJ SKOBKE SPISKA ARGUMENTOW.
stream-op
nA ODNOJ STROK PRODOLVENIQ KONSTRUKCII POTOKOWOGO OPERATORA.
inclass nA KONSTRUKCII,WLOVENNOJ W OPREDELENIE KLASSA.oTSTUP OTNOSITELEN OTKRY-
WA@]EJ FIGURNOJ SKOBKE OPREDELENIQ KLASSA.
inextern-lang
nA KONSTRUKCII,WLOVENNOJ W BLOK NA WNE[NEM QZYKE.
inexpr-statement
nA PERWOJ STROKE OPERATORNOGO BLOKA WNUTRI WYRAVENIQ.|TO NUVNO DLQ RAS-
[IRENIQ GCC W QZYKE sI,KOTOROE ISPOLXZUET SINTAKSIS ({...}).|TO TAKVE
NUVNO DLQ SPECIALXNYH FUNKCIJ W Pike,PRINIMA@]IH W KA^ESTWE ARGUMENTA
OPERATORNYJ BLOK.
inexpr-class
nA PERWOJ STROKE OPREDELENIQ KLASSA WNUTRI WYRAVENIQ.|TO ISPOLXZUETSQ
DLQ ANONOIMNYH KLASSOW I ANONOIMNYH INICIALIZATOROW MASSIWOW W Java.
cpp-macro
nA NA^ALE MAKROSA PREPROCESSORA.
friend nA OB_QWLENII sI++ friend.
objc-method-intro
nA PERWOJ STROKE OPREDELENIQ METODA Objective-C.
objc-method-args-cont
nA ODNOJ IZ STROK PRODOLVENIQ OPREDELENIQ METODA Objective-C.
objc-method-call-cont
nA ODNOJ IZ STROK PRODOLVENIQ WYZOWA METODA Objective-C.
inlambda kAK inclass,NO PRIMENQETSQ WNUTRI LQMBDA-FUNKCIJ (T.E.ANONIMNYH).iS-
POLXZUETSQ TOLXKO W Pike.
lambda-intro-cont
nA STROKE,PRODOLVA@]EJ ZAGOLOWOK LQMBDA-FUNKCII,MEVDU KL@^EWYM SLOWOM
lambda I TELOM FUNKCII.iSPOLXZUETSQ TOLXKO W Pike.
22.5.5.5 pEREMENNYE,UPRAWLQ@]IE OTSTUPAMI W sI
|TOT RAZDEL OPISYWAET DOPOLNITELXNYE PEREMENNYE,KOTORYE UPRAWLQ@T POWEDENIEM
OTSTUPOW W REVIME C I RODSTWENNYH S NIM REVIMAH.
c-offsets-alist
aSSOCIATIWNYJ SPISOK SINTAKSI^ESKIH SIMWOLOW I IH SDWIGOW.wY NE DOLV-
NY MENQTX EGO PRQMO,DELAJTE\TO ^EREZ c-set-offset.sM.rAZDEL 22.5.5.3
[iZMENENIE STILQ OTSTUPOW],S.213,DLQ PODROBNOSTEJ.
c-style-alist
pEREMENNAQ DLQ OPREDELENIQ STILEJ OTSTUPOW;SMOTRITE NIVE.
c-basic-offset
bAZOWYJ SDWIG,ISPOLXZUEMYJ SIMWOLAMI + I - W c-offsets-alist.
c-special-indent-hook
lOWU[KA DLQ SPECIALXNYH PODSTROEK OTSTUPOW,OPREDELQEMYH POLXZOWATELEM.
|TA LOWU[KA WYZYWAETSQ POSLE TOGO,KAK W STROKE UVE SDELAN OTSTUP REVIMOM
C ILI RODSTWENNYM S NIM REVIMOM.
218 rUKOWODSTWO PO GNU EmacspEREMENNAQ c-style-alist ZADAET PREDOPREDELENNYE STILI OTSTUPOW.kAVDYJ\LE-
MENT IMEET FORMU (IMQ USTANOWKA-PEREMENNOJ...),GDE IMQ |\TO IMQ STILQ.kAVDAQ
USTANOWKA-PEREMENNOJ IMEET FORMU (PEREMENNAQ.ZNA^ENIE);PEREMENNAQ |\TO ODNA IZ
NASTROE^NYH PEREMENNYH,ISPOLXZUEMYH REVIMOM C,A ZNA^ENIE |\TO ZNA^ENIE DLQ\TOJ
PEREMENNOJ,KOGDA ISPOLXZUETSQ WYBRANNYJ STILX.
kOGDA PEREMENNAQ RAWNA c-offsets-alist,\TO OSOBYJ SLU^AJ:ZNA^ENIE DOBAWLQETSQ W
NA^ALO ZNA^ENIQ c-offsets-alist,A NE ZAME]AET EGO.sLEDOWATELXNO,ZNA^ENIE NE OBQZANO
UKAZYWATX KAVDYJ SINTAKSI^ESKIJ SIMWOL | MOVNO NAPISATX TOLXKO TE,DLQ KOTORYH
STILX OTLI^EN OT PRINIMAEMOGO PO UMOL^ANI@.
oTSTUPY STROK,SODERVA]IH TOLXKO KOMMENTARII,TAKVE PODWERVENY WLIQNI@ PERE-
MENNOJ c-comment-only-line-offset (SM.rAZDEL 22.15.5 [kOMMENTARII W sI],S.239).
22.5.5.6 sTILI OTSTUPOW W sI
sTILX sI |\TO NABOR NASTROEK STILQ OTSTUPOW.Emacs POSTAWLQETSQ S NESKOLXKIMI
PREDOPREDELENNYMI STILQMI OTSTUPOW DLQ C I RODSTWENNYH REVIMOW,WKL@^AQ gnu,k&r,
bsd,stroustrup,linux,python,java,whitesmith,ellemtel I cc-mode.pO UMOL^ANI@
PRIMENQETSQ STILX gnu.
~TOBY WYBRATX NUVNYJ WAM STILX,ISPOLXZUJTE KOMANDU M-x c-set-style.zADAWAJTE
IMQ STILQ W KA^ESTWE ARGUMENTA (REGISTR NE IMEET ZNA^ENIQ).wYBRANNYJ STILX PRIMENQ-
ETSQ TOLXKO K NOWYM BUFERAM,NO NE K TEM,^TO WY UVE REDAKTIRUETE.wY TAKVE MOVETE
USTANOWITX PEREMENNU@ c-default-style,^TOBY UKAZATX STILX DLQ RAZLI^NYH OSNOWNYH
REVIMOW.eE ZNA^ENIEM DOLVEN BYTX ASSOCIATIWNYJ SPISOK,GDE KAVDYJ\LEMENT ZADAET
ODIN OSNOWNOJ REVIM I STILX OTSTUPOW,KOTORYJ DLQ NEGO NUVNO ISPOLXZOWATX.nAPRIMER,
(setq c-default-style
'((java-mode."java") (other."gnu")))
OPREDELQET QWNYJ WYBOR DLQ REVIMA Java I WELIT PRINIMATX STILX`gnu'PO UMOL^ANI@
DLQ OSTALXNYH C-PODOBNYH REVIMOW.
~TOBY OPREDELITX NOWYJ STILX OTSTUPOW W sI,WYZOWITE FUNKCI@ c-add-style:
(c-add-style IMQ ZNA^ENIQ PRIMENITX-SRAZU)
zDESX IMQ |\TO IMQ NOWOGO STILQ (STROKA),A ZNA^ENIQ |\TO ASSOCIATIWNYJ SPISOK,^XI
\LEMENTY IME@T FORMU (PEREMENNAQ.ZNA^ENIE).zADAWAEMYE WAMI PEREMENNYE DOLVNY
BYTX SREDI OPISANNYH W\TOM RUKOWODSTWE (SM.rAZDEL 22.5.5.5 [pEREMENNYE DLQ OTSTUPOW
W sI],S.217 ).
eSLI PRIMENITX-SRAZU NE RAWNA nil,c-add-style PEREKL@^AET W NOWYJ STILX SRAZU
POSLE EGO OPREDELENIQ.
22.6 aWTOMATI^ESKOE OTOBRAVENIE PARNYH SKOBOK
sPOSOBNOSTX Emacs NAHODITX PARNYE SKOBKI PREDNAZNA^AETSQ DLQ TOGO,^TOBY AWTOMA-
TI^ESKI POKAZYWATX,KAK SKOBKI W TEKSTE SOOTWETSTWU@T DRUG DRUGU.wSQKIJ RAZ,KOGDA
WY NABIRAETE SAMOWSTAWLQ@]IJSQ ZNAK,KOTORYJ QWLQETSQ ZAKRYWA@]IM OGRANI^ITELEM,
KURSOR NA MGNOWENIE PEREDWIGAETSQ W POLOVENIE SOOTWETSTWU@]EGO OTKRYWA@]EGO OGRANI-
^ITELQ,PRI USLOWII,^TO ON NAHODITSQ NA\KRANE.eSLI EGO NET NA\KRANE,TO W\HO-OBLASTI
POKAZYWAETSQ NEMNOGO TEKSTA,NA^INA@]EGOSQ S OTKRYWA@]EGO OGRANI^ITELQ.w L@BOM
SLU^AE WY MOVETE SKAZATX,KAKAQ GRUPPA ZAKRYWAETSQ.
w lISPE AWTOMATI^ESKOE SOOTWETSTWIE PRIMENQETSQ TOLXKO K KRUGLYM SKOBKAM.w sI
ONO PRIMENQETSQ TAKVE K FIGURNYM I KWADRATNYM SKOBKAM.Emacs UZNAET,KAKIE ZNAKI
RASSMATRIWATX KAK PARNYE OGRANI^ITELI,OSNOWYWAQSX NA SINTAKSI^ESKOJ TABLICE,KOTORAQ
USTANAWLIWAETSQ OSNOWNYM REVIMOM.sM.rAZDEL 31.6 [sINTAKSIS],S.366.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 219eSLI OTRYWA@]IJ I ZAKRYWA@]IJ OGRANI^ITELI NE SOOTWETSTWU@T DRUG DRUGU,KAK
NAPRIMER W`[x)',W\HO-OBLASTI POQWLQETSQ PREDUPREVDA@]EE SOOB]ENIE.pRAWILXNYE
PARY OPISYWA@TSQ W SINTAKSI^ESKOJ TABLICE.
oTOBRAVENIEM PARNYH SKOBOK UPRAWLQ@T TRI PEREMENNYE.blink-matching-paren
WKL@^AET ILI WYKL@^AET\TU WOZMOVNOSTX;nil WYKL@^AET,A ZNA^ENIE PO UMOL^ANI@,
RAWNOE t,WKL@^AET EE.blink-matching-delay GOWORIT,SKOLXKO SEKUND NUVNO OVIDATX;
PO UMOL^ANI@\TO 1,NO NA NEKOTORYH SISTEMAH POLEZNO ZADATX ^ASTX SEKUNDY.blink-
matching-paren-distance UKAZYWAET,SKOLXKO ZNAKOW W OBRATNOM NAPRAWLENII NADO ISSLE-
DOWATX,^TOBY NAJTI PARNYJ OTKRYWA@]IJ OGRANI^ITELX.eSLI PARA NE BUDET NAJDENA NA
TAKOM RASSTOQNII,TO SKANIROWANIE OSTANAWLIWAETSQ I NI^EGO NE OTOBRAVAETSQ.|TO DELA-
ETSQ DLQ TOGO,^TOBY IZBEVATX BOLX[IH ZATRAT WREMENI NA POISK PARNOGO OGRANI^ITELQ W
TOM SLU^AE,ESLI PARY NE SU]ESTWUET.pO UMOL^ANI@ ONA RAWNA 12000.
pRI ISPOLXZOWANII X Windows WY MOVETE ZAPROSITX BOLEE MO]NU@ ALXTERNATIWNU@
RAZNOWIDNOSTX AWTOMATI^ESKOGO POKAZA PARNYH SKOBOK,WKL@^IW REVIM Show Paren.|TOT
REVIM WYKL@^AET OBY^NYJ SPOSOB OTOBRAVENIQ PARNYH SKOBOK I ISPOLXZUET WMESTO NEGO
PODSWETKU SOWPADENIJ.kOGDA TO^KA NAHODITSQ POSLE ZAKRYWA@]EJ SKOBKI,PODWE^IWA@TSQ
\TA ZAKRYWA@]AQ SKOBKA I PARNAQ EJ OTKRYWA@]AQ;INA^E,ESLI TO^KA NAHODITSQ PERED OT-
KRYWA@]EJ SKOBKOJ,PODSWE^IWAETSQ PARNAQ SKOBKA.(pODSWE^IWATX OTKRYWA@]U@ SKOBKU
POSLE TO^KI NE NUVNO,POTOMU ^TO POWERH\TOGO ZNAKA NAHODITSQ KURSOR.) dLQ WKL@^ENIQ
I WYKL@^ENIQ\TOGO REVIMA ISPOLXZUJTE KOMANDU M-x show-paren-mode.
22.7 uPRAWLENIE KOMMENTARIQMI
pOSKOLXKU KOMMENTARII QWLQ@TSQ WESXMA WAVNOJ ^ASTX@ PROGRAMMIROWANIQ,Emacs
PREDOSTAWLQET OSOBYE KOMANDY DLQ REDAKTIROWANIQ I WSTAWKI KOMMENTAREW.
22.7.1 kOMANDY DLQ KOMMENTARIEW
kOMANDY KOMMENTARIEW WSTAWLQ@T,UNI^TOVA@T I WYRAWNIWA@T KOMMENTARII:
M-;wSTAWITX ILI WYROWNQTX KOMMENTARIJ W TEKU]EJ STROKE (indent-for-
comment).
C-x;uSTANOWITX STOLBEC KOMMENTARIQ (set-comment-column).
C-u - C-x;
uNI^TOVITX KOMMENTARIJ W TEKU]EJ STROKE (kill-comment).
C-M-j pODOBNA hRETi,ZA KOTOROJ SLEDUET WSTAWKA ILI WYRAWNIWANIE KOMMENTARIQ
(indent-new-comment-line).
M-x comment-region
dOBAWITX ILI UDALITX OGRANI^ITELI KOMMENTARIEW NA WSEH STROKAH OBLASTI.
kOMANDA,KOTORAQ SOZDAET KOMMENTARII,NAZYWAETSQ M-;(indent-for-comment).eSLI
NA STROKE E]E NET KOMMENTARIQ,TO SOZDAETSQ NOWYJ KOMMENTARIJ,WYROWNENNYJ PO OSOBOMU
STOLBCU,NAZYWAEMOMU STOLBCOM KOMMENTARIQ.kOMMENTARIJ SOZDAETSQ WSTAWKOJ STROKI,
S KOTOROJ,KAK DUMAET Emacs,DOLVNY NA^INATXSQ KOMMENTARII (ZNA^ENIE comment-start,
SMOTRITE NIVE).tO^KA OSTAWLQETSQ ZA\TOJ STROKOJ.eSLI TEKST W STROKE TEKSTA PROSTI-
RAETSQ DALX[E STOLBCA KOMMENTARIQ,TO DELAETSQ OTSTUP DO PODHODQ]EJ GRANICY (OBY^NO
WSTAWLQETSQ PO KRAJNEJ MERE ODIN PROBEL).eSLI OSNOWNOJ REVIM OPREDELIL STROKU,ZA-
WER[A@]U@ KOMMENTARIJ,TO ONA WSTAWLQETSQ POSLE TO^KI,^TOBY SOHRANITX PRAWILXNYJ
SINTAKSIS.
M-;MOVET BYTX ISPOLXZOWANA TAKVE I DLQ WYRAWNIWANIQ SU]ESTWU@]EGO KOMMENTARIQ.
eSLI STROKA UVE SODERVIT NA^ALO KOMMENTARIQ,TO M-;PROSTO PEREDWIGAET ZA NEGO TO^KU I
220 rUKOWODSTWO PO GNU EmacsDELAET OTSTUP DO PRINQTOJ POZICII.iSKL@^ENIE:KOMMENTARII,NA^INA@]IESQ W STOLBCE
0,NE SDWIGA@TSQ.
nEKOTORYE OSNOWNYE REVIMY IME@T OSOBYE PRAWILA OTSTUPA DLQ NEKOTORYH WIDOW KOM-
MENTARIEW W OPREDELENNYH KONTEKSTAH.nAPRIMER,W KODE NA lISPE,KOMMENTARII,NA^INA@-
]IESQ S DWOJNOJ TO^KI S ZAPQTOJ,IME@T OTSTUP TAKOJ VE,KAK ESLI BY ONI BYLI STROKAMI
KODA,A NE OTSTUP DO STOLBCA KOMMENTARIQ.kOMMENTARII,NA^INA@]IESQ S TREH TO^EK S
ZAPQTOJ,PREDPOLAGAETSQ RASPOLAGATX S LEWOJ GRANICY STROKI.Emacs PONIMAET\TI SOGLA-
[ENIQ,WYPOLNQQ OTSTUP KOMMENTARIQ S DWOJNOJ TO^KOJ S ZAPQTOJ,ISPOLXZUQ hTABi I NE
IZMENQQ OTSTUP KOMMENTARIQ S TROJNOJ TO^KOJ S ZAPQTOJ WOOB]E.
;;|TA PROSTO PRIMER FUNKCII
;;;zDESX GODQTSQ I 2,I 3 TO^KI S ZAPQTOJ.
(defun foo (x)
;;;a TEPERX PERWAQ ^ASTX FUNKCII
;;sLEDU@]AQ STROKA DOBAWLQET EDINICU.
(1+ x));|TA STROKA DOBAWLQET EDINICU.
dLQ KOMMENTARIQ W KODE NA sI,KOTOROMU NA EGO STROKE PRED[ESTWU@T TOLXKO PROBELX-
NYE ZNAKI,DELAETSQ TAKOJ VE OTSTUP,KAK DLQ STROKI KODA.
dAVE KOGDA SU]ESTWU@]IJ KOMMENTARIJ IMEET PRAWILXNYJ OTSTUP,M-;PO-PREVNEMU
POLEZNA DLQ PEREHODA SRAZU K NA^ALU KOMMENTARIQ.
kOMANDA C-u - C-x;(kill-comment) UNI^TOVAET KOMMENTARIJ W TEKU]EJ STROKE,ESLI
ON TAM ESTX.oTSTUP PERED NA^ALOM KOMMENTARIQ TAKVE UNI^TOVAETSQ.eSLI NA\TOJ
STROKE NET KOMMENTARIQ,TO NI^EGO NE DELAETSQ.~TOBY PERENESTI KOMMENTARIJ W DRUGU@
STROKU,PEREDWINXTESX W KONEC\TOJ STROKI,SDELAJTE C-y I ZATEM M-;,^TOBY ZANOWO EGO
WYROWNQTX.zAMETXTE,^TO C-u - C-x;|\TO NE OTDELXNYJ KL@^;\TO C-x;(set-comment-
column) S OTRICATELXNYM ARGUMENTOM.|TA KOMANDA ZAPROGRAMMIROWANA TAKIM OBRAZOM,
^TO KOGDA ONA POLU^AET OTRICATELXNYJ ARGUMENT,ONA WYZYWAET kill-comment.oDNAKO,
kill-comment |\TO DOPUSTIMAQ KOMANDA,KOTORU@ WY MOVETE NEPOSREDSTWENNO PRIWQZATX
K KL@^U,ESLI WY\TOGO HOTITE.
22.7.2 mNOGOSTRO^NYE KOMMENTARII
eSLI WY NABIRAETE KOMMENTARIJ I OBNARUVIWAETE,^TO HOTELI BY PRODOLVITX EGO NA
DRUGOJ STROKE,TO WY MOVETE ISPOLXZOWATX KOMANDU C-M-j (indent-new-comment-line).
oNA ZAWER[AET NABRANNYJ WAMI KOMMENTARIJ,ZATEM SOZDAET NOWU@ PUSTU@ STROKU I NA^I-
NAET NOWYJ KOMMENTARIJ,S OTSTUPOM POD STARYM KOMMENTARIEM.kOGDA DEJSTWUET REVIM
Auto Fill,TO PEREHOD ZA STOLBEC ZAPOLNENIQ WO WREMQ NABORA KOMMENTARIQ PRIWODIT K TO-
MU,^TO KOMMENTARIJ BUDET PRODOLVATXSQ IMENNO TAKIM OBRAZOM.eSLI WO WREMQ NABORA
C-M-j TO^KA NAHODITSQ NE W KONCE STROKI,TO TEKST W OSTAW[EJSQ ^ASTI STROKI STANOWITSQ
^ASTX@ NOWOJ STROKI KOMMENTARIQ.
~TOBY PREWRATITX SU]ESTWU@]IE STROKI W STROKI KOMMENTARIEW,ISPOLXZUJTE KOMANDU
M-x comment-region.oNA DOBAWLQET OGRANI^ITELI K STROKAM,KOTORYE NA^INA@TSQ W OB-
LASTI,DELAQ IH TAKIM OBRAZOM KOMMENTARIQMI.s OTRICATELXNYM ARGUMENOM,ONA DELAET
OBRATNOE |UDALQET OGRANI^ITELI KOMMENTARIEW IZ STROK OBLASTI.
s POLOVITELXNM ARGUMENTOM,comment-region POWTORQET POSLEDNIJ ZNAK IZ DOBAWLQE-
MOJ POSLEDOWATELXNOSTI,NA^INA@]EJ KOMMENTARIJ.tAKIM OBRAZOM,W REVIME Lisp,C-u 2
M-x comment-region DOBAWIT`;;'NA KAVDU@ STROKU.pOWTORENIE OGRANI^ITELEJ KOMMEN-
TARIQ |\TO SPOSOB PRIWLE^ENIQ K NEMU WNIMANIQ.w lISPE DLQ POLU^ENIQ PRAWILXNYH
OTSTUPOW WY DOLVNY ISPOLXZOWATX ARGUMENT,RAWNYJ DWUM,MEVDU OPREDELENIQMI FUNK-
CIJ,I TREM |WNUTRI OPREDELENIJ FUNKCIJ.
pEREMENNAQ comment-padding UKAZYWAET,SKOLXKO PROBELOW DOLVNA WSTAWITX comment-
region W KAVDU@ STROKU MEVDU OGRANI^ITELEM KOMMENTARIQ I IZNA^ALXNYM TEKSTOM\TOJ
STROKI.pO UMOL^ANI@\TO 1.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 22122.7.3 pARAMETRY UPRAWLENIQ KOMMENTARIQMI
sTOLBEC KOMMENTARIQ HRANITSQ W PEREMENNOJ comment-column.wY MOVETE QWNO USTA-
NOWITX EE NA NUVNOE ^ISLO.iLI WY MOVETE ISPOLXZOWATX KOMANDU C-x;(set-comment-
column),KOTORAQ USTANAWLIWAET STOLBEC KOMMENTARIQ RAWNYM TOMU STOLBCU,GDE NAHODIT-
SQ TO^KA.C-u C-x;USTANAWLIWAET STOLBEC KOMMENTARIQ TAK,^TOBY ON SOOTWETSTWOWAL
POSLEDNEMU KOMMENTARI@ PERED TO^KOJ W\TOM BUFERE,I ZATEM DELAET M-;,^TOBY WYRAW-
NQTX STROKU TEKU]EGO KOMMENTARIQ POD PREDYDU]U@.oTMETIM,^TO C-u - C-x;ZAPUSKAET
FUNKCI@ kill-comment,KAK OPISANO WY[E.
pEREMENNAQ comment-column |\TO SOBSTWENNAQ PEREMENNAQ KAVDOGO BUFERA:USTANOWKA
EE WLIQET TOLXKO NA TEKU]IJ BUFER,NO SU]ESTWUET I ZNA^ENIE PO UMOL^ANI@,KOTOROE WY
TAKVE MOVETE IZMENITX S POMO]X@ setq-default.sM.rAZDEL 31.2.4 [lOKALXNYE PERE-
MENNYE],S.350.mNOGIE OSNOWNYE REVIMY INICIALIZIRU@T\TU PEREMENNU@ DLQ TEKU]EGO
BUFERA.
kOMANDY RABOTY S KOMMENTARIQMI RASPOZNA@T KOMMENTARII,OSNOWYWAQSX NA REGULQR-
NOM WYRAVENII,KOTOROE QWLQETSQ ZNA^ENIEM PEREMENNOJ comment-start-skip.uBEDITESX,
^TO\TO REGULQRNOE WYRAVENIE NE SOOTWETSTWUET PUSTOJ STROKE.oNO MOVET SOOTWETSTWO-
WATX ^EMU-TO BOLX[EMU,^EM PROSTO OGRANI^ITEL@,NA^INA@]EMU KOMMENTARIJ,W SAMOM
STROGOM ZNA^ENII\TOGO SLOWA;NAPRIMER,W REVIME s ZNA^ENIE\TOJ PEREMENNOJ RAWNO
"/\\*+ *",^TO SOOTWETSTWUET DOPOLNITELXNYM ZWEZDO^KAM I PROBELAM POSLE SAMOGO`/*'.
(oBRATITE WNIMANIE,`\\'TREBUETSQ W SINTAKSISE lISPA DLQ TOGO,^TOBY WKL@^ITX W STRO-
KU`\',KOTORAQ NUVNA,^TOBY OTMENITX DLQ PERWOJ ZWEZDO^KI EE SPECIALXNOE ZNA^ENIE W
SINTAKSISE REGULQRNYH WYRAVENIJ.sM.rAZDEL 12.5 [rEGULQRNYE WYRAVENIQ],S.91.)
kOGDA KOMANDA DLQ KOMMENTARIEW SOZDAET NOWYJ KOMMENTARIJ,ONA WSTAWLQET W EGO
NA^ALO ZNA^ENIE comment-start.zNA^ENIE comment-end WSTAWLQETSQ POSLE TO^KI,TAK ^TO
ONO BUDET SLEDOWATX ZA TEKSTOM,KOTORYJ WY WSTAWITE W\TOT KOMMENTARIJ.w REVIME s
comment-start IMEET ZNA^ENIE"/*",A comment-end IMEET ZNA^ENIE"*/".
pEREMENNAQ comment-multi-line UPRAWLQET TEM,KAK WEDET SEBQ C-M-j (indent-new-
comment-line) PRI ISPOLXZOWANII WNUTRI KOMMENTARIQ.eSLI comment-multi-line RAWNA
nil,KAK\TO OBY^NO I BYWAET,TO KOMMENTARIJ NA TEKU]EJ STROKE ZAWER[AETSQ,A NA NOWOJ
STROKE NA^INAETSQ NOWYJ KOMMENTARIJ.eSLI comment-multi-line OTLI^NA OT nil,TO NO-
WAQ SLEDU@]AQ STROKA PODGOTAWLIWAETSQ KAK ^ASTX TOGO VE SAMOGO KOMMENTARIQ,KOTORYJ
NAHODILSQ NA PERWOJ STROKE.|TO WYPOLNQETSQ SLEDU@]IM OBRAZOM:W STAROJ STROKE NE
WSTAWLQETSQ OGRANI^ITELX KOMMENTARIQ,I W NOWU@ STROKU NE WSTAWLQESQ NA^ALO KOMMEN-
TARIQ.w TEH QZYKAH,GDE RABOTA@T MNOGOSTRO^NYE KOMMENTARII,WYBOR ZNA^ENIJ DLQ\TOJ
PEREMENNOJ |DELO WA[EGO WKUSA.
pEREMENNAQ comment-indent-function DOLVNA SODERVATX FUNKCI@,KOTORAQ BUDET WY-
ZYWATXSQ DLQ PODS^ETA OTSTUPA WO WNOWX WSTAWLQEMOM KOMMENTARII ILI DLQ WYRAWNIWANIQ
SU]ESTWU@]EGO KOMMENTARIQ.|TA FUNKCIQ WYZYWAETSQ BEZ ARGUMENTA,NO S TO^KOJ W NA-
^ALE KOMMENTARIQ ILI W KONCE STROKI,ESLI WSTAWLQETSQ NOWYJ KOMMENTARIJ.oNA DOLVNA
WOZWRATITX NOMER STOLBCA,W KOTOROM DOLVEN NA^INATXSQ KOMMENTARIJ.nAPRIMER,W RE-
VIME Lisp\TA FUNKCIQ-LOWU[KA DLQ SOZDANIQ OTSTUPA OSNOWYWAET SWOE RE[ENIE NA TOM,
SKOLXKO TO^EK S ZAPQTOJ NA^INA@T SU]ESTWU@]IJ KOMMENTARIJ,I NA KODE W PREDYDU]IH
STROKAH.
22.8 rEDAKTIROWANIE BEZ RAZBALANSIROWANNYH SKOBOK
M-( pOSTAWITX SKOBKI WOKRUG SLEDU@]EGO s-WYRAVENIQ (ILI s-WYRAVENIJ) (insert-
parentheses).
M-) pEREDWINUTXSQ ^EREZ SLEDU@]U@ ZAKRYWA@]U@ SKOBKU I SDELATX NOWYJ OTSTUP
(move-past-close-and-reindent).
222 rUKOWODSTWO PO GNU EmacskOMANDY M-( (insert-parentheses) I M-) (move-past-close-and-reindent) SOZDANY
DLQ OBLEG^ENIQ TAKOGO WIDA REDAKTIROWANIQ,PRI KOTOROM SKOBKI WSEGDA OSTA@TSQ SBA-
LANSIROWANNYMI.M-( WSTAWLQET PARU SKOBOK,LIBO WMESTE,KAK W`()',LIBO,ESLI ZADAN
ARGUMENT,WOKRUG SLEDU@]IH NESKOLXKIH s-WYRAVENIJ,I OSTAWLQET TO^KU POSLE OTKRYTOJ
SKOBKI.tO^KA OSTAETSQ POSLE OTKRYWA@]EJ SKOBKI.kOMANDA M-) PEREME]AETSQ ^EREZ
ZAKRYWA@]U@ SKOBKU,UDALQQ L@BOJ PRED[ESTWU@]IJ EJ OTSTUP I DELAQ POSLE NEE OTSTUP
PRI POMO]I C-j.
nAPRIMER,WMESTO NABORA ( F O O ),WY MOVETE NABRATX M-( F O O,^TO IMEET TOT VE
SAMYJ\FFEKT,ZA ISKL@^ENIEM TOGO,^TO KURSOR OSTAETSQ PERED ZAKRYWA@]EJ SKOBKOJ.
M-( MOVET WSTAWLQTX PERED OTKRYWA@]EJ SKOBKOJ PROBEL W ZAWISIMOSTI OT SINTAKSI-
^ESKOGO KLASSA PREDYDU]EGO ZNAKA.uSTANOWITE parens-require-spaces W ZNA^ENIE nil,
ESLI WY HOTITE PODAWITX\TO.
22.9 zAWER[ENIE DLQ IMEN SIMWOLOW
oBY^NO ZAWER[ENIE PROISHODIT W MINIBUFERE.nO ODIN IZ WIDOW ZAWER[ENIQ DOSTUPEN
WO WSEH BUFERAH:ZAWER[ENIE DLQ IMEN SIMWOLOW.
M-hTABi (lisp-complete-symbol) ZAPUSKAET KOMANDU,ZAWER[A@]U@ ^ASTI^NO NABRAN-
NYJ SIMWOL PERED TO^KOJ,ISPOLXZUQ MNOVESTWO IMEN SIMWOLOW,IME@]IH SMYSL W\TOM
KONTEKSTE.wSE DOPOLNQ@]IE ZNAKI,OPREDELQEMYE PO ^ASTI^NOMU IMENI,WSTAWLQ@TSQ W
TO^KE.
eSLI ^ASTI^NOE IMQ W BUFERE IMEET BOLEE ODNOGO WOZMOVNOGO ZAWER[ENIQ,I U NIH
NET OB]IH DOPOLNQ@]IH ZNAKOW,W DRUGOM OKNE POKAZYWAETSQ PERE^ENX WSEH WOZMOVNYH
ZAWER[ENIJ.
w BOLX[INSTWE OSNOWNYH REVIMOW DLQ QZYKOW PROGRAMMIROWANIQ,M-hTABi ZAPUSKAET KO-
MANDU complete-symbol,KOTORAQ PREDOSTAWLQET DWA TIPA ZAWER[ENIQ.oBY^NO ONA DELAET
ZAWER[ENIQ,OSNOWYWAQSX NA TABLICE TEGOW (SM.rAZDEL 22.13 [tEGI],S.224);S ^ISLOWYM
ARGUMENTOM (NEZAWISIMO OT EGO ZA^ENIQ),ONA DELAET ZAWER[ENIE,OSNOWYWAQSX NA IMENAH,
PERE^ISLENNYH W UKAZATELE PONQTIJ W Info-FAJLE DLQ\TOGO QZYKA.pO\TOMU ^TOBY ZAWER-
[ITX IMQ SIMWOLA,OPREDELENNOGO W WA[EJ SOBSTWENNOJ PROGRAMME,ISPOLXZUJTE M-
hTABi
BEZ ARGUMENTA;^TOBY ZAWER[ITX IMQ STANDARTNOJ BIBLIOTE^NOJ FUNKCII,ISPOLXZUJTE
C-u M-h TABi.kONE^NO,OSNOWANNOE NA Info ZAWER[ENIE RABOTAET,TOLXKO ESLI ESTX Info-FAJL
DLQ STANDARTNOJ BIBLIOTEKI FUNKCIJ WA[EGO QZYKA,I TOLXKO ESLI ON USTANOWLEN W WA[EJ
SISTEME.
w REVIME Emacs-Lisp PROSTRANSTWO IMEN DLQ ZAWER[ENIQ OBY^NO SOSTOIT IZ NETRIWI-
ALXNYH SIMWOLOW,PRISUTSTWU@]IH W DANNYJ MOMENT W Emacs | TEH,^TO IME@T OPRE-
DELENIE FUNKCII,ZNA^ENIE ILI SWOJSTWA.oDNAKO,ESLI NEPOSREDSTWENNO PERED NA^ALOM
^ASTI^NOGO SIMWOLA ESTX OTKRYWA@]AQ SKOBKA,W KA^ESTWE ZAWER[ENIJ RASSMATRIWA@TSQ
TOLXKO SIMWOLY S OPREDELENIEM FUNKCII.kOMANDA,REALIZU@]AQ\TO,NAZYWAETSQ lisp-
complete-symbol.
w REVIME Text I RODSTWENNYH S NIM,M-hTABi ZAWER[AET SLOWA,OSNOWYWAQSX NA SLOWARE
PROGRAMMY PROWERKI PRAWOPISANIQ.sM.rAZDEL 13.4 [pRAWOPISANIE],S.102.
22.10 rEVIM Which Function
rEVIM Which Function |\TO WTOROSTEPENNYJ REVIM,KOTORYJ POKAZYWAET W STROKE
REVIMA IMQ TEKU]EJ FUNKCII PO MERE TOGO,KAK WY PEREDWIGAETESX PO BUFERU.
~TOBY WKL@^ITX (ILI WYKL@^ITX) REVIM Which Function,ISPOLXZUJTE KOMANDU M-x
which-function-mode.|TO GLOBALXNAQ KOMANDA;ONA PRIMENQETSQ KO WSEM BUFERAM,KAK
K SU]ESTWU@]IM,TAK I K TEM,^TO E]E BUDUT SOZDANY.oDNAKO,\TO ZATRAGIWAET TOLXKO
OPREDELENNYE OSNOWNYE REVIMY,PERE^ISLENNYE W ZNA^ENII which-func-modes.(eSLI\TO
gLAWA 22:rEDAKTIROWANIE PROGRAMM 223ZNA^ENIE t,TO REVIM Which Function PRIMENQETSQ KO WSEM OSNOWNYM REVIMAM,KOTORYE
ZNA@T,KAK\TO PODDERVIWAETSQ |K OSNOWNYM REVIMAM,PODDERVIWA@]IM Imenu.)
22.11 kOMANDY DOKUMENTACII
kOGDA WY REDAKTIRUETE KOD NA lISPE,PREDNAZNA^ENNYJ DLQ ZAPUSKA W Emacs,WY MO-
VETE ISPOLXZOWANY KOMANDY C-h f (describe-function) I C-h v (describe-variable) DLQ
PE^ATI DOKUMENTACII O FUNKCIQH I PEREMENNYH,KOTORYE WY HOTITE WYZWATX.|TI KOMAN-
DY ISPOLXZU@T MINIBUFER DLQ S^ITYWANIQ IMENI FUNKCII ILI PEREMENNOJ I POKAZYWA@T
DOKUMENTACI@ W OKNE.
dLQ BOLX[EGO UDOBSTWA\TI KOMANDY PREDOSTAWLQ@T ARGUMENTY PO UMOL^ANI@,OSNO-
WANNYE NA KODE W OKRESTNOSTI TO^KI.C-h f USTANAWLIWAET ZNA^ENIE PO UMOL^ANI@ RAWNYM
FUNKCII,WYZWANNOJ W SPISKE SAMOGO GLUBOKOGO UROWNQ,SODERVA]EM TO^KU.C-h v ISPOLX-
ZUET W KA^ESTWE ZNA^ENIQ PO UMOL^ANI@ IMQ SIMWOLA,NAHODQ]EGOSQ WOKRUG ILI RQDOM S
TO^KOJ.
dLQ KODA NA Emacs Lisp WY TAKVE MOVETE ISPOLXZOWATX REVIM Eldoc.|TOT WTOROSTEPEN-
NYJ REVIM POSTOQNNO POKAZYWAET W\HO-OBLASTI SPISOK ARGUMENTOW DLQ FUNKCII,KOTORAQ
WYZYWAETSQ W TO^KE.(dRUGIMI SLOWAMI,ON NAHODIT WYZOW FUNKCII,KOTORYJ SODERVIT
TO^KU,I POKAZYWAET SPISOK ARGUMENTOW\TOJ FUNKCII.) rEVIM Eldoc PRIMENIM TOLXKO
K REVIMAM Emacs Lisp I Lisp Interaction.dLQ WKL@^ENIQ I WYKL@^ENIQ\TOGO REVIMA
ISPOLXZUJTE KOMANDU M-x eldoc-mode.
dLQ sI,lISPA I DRUGIH QZYKOW WY MOVETE ISPOLXZOWATX C-h C-i (info-lookup-symbol),
^TOBY PROSMOTRETX DOKUMENTACI@ Info PO KAKOMU-TO SIMWOLU.wY ZADAETE SIMWOL W MINI-
BUFERE;PO UMOL^ANI@ BERETSQ SIMWOL,NAHODQ]IJSQ W BUFERE W TO^KE.gDE ISKATX DOKU-
MENTACI@ PO SIMWOLAM |W KAKIH Info-FAJLAH I KAKIH IMENNYH UKAZATELQH |OPREDELQET
OSNOWNOJ REVIM.wY MOVETE TAKVE ISPOLXZOWATX M-x info-lookup-file DLQ NAHOVDENIQ
DOKUMENTACII DLQ IMENI FAJLA.
wY MOVETE PRO^ITATX\STRANICU man"DLQ KOMANDY OPERACIONNOJ SISTEMY,BIBLIOTE^-
NOJ FUNKCII ILI SISTEMNOGO WYZOWA S POMO]X@ KOMANDY M-x manual-entry.dLQ FORMA-
TIROWANIQ STRANICY ONA ZAPUSKAET PROGRAMMU man I,ESLI POZWOLQET WA[A OPERACIONNAQ
SISTEMA,DELAET\TO ASINHRONNO,^TOBY WY MOGLI PRODOLVATX REDAKTIROWANIE,POKA STRA-
NICA FORMATIRUETSQ.(MS-DOS I MS-Windows 3 NE DOPUSKA@T ASINHRONNYH PODPROCESSOW,
TAK ^TO NA\TIH SISTEMAH WY NE MOVETE REDAKTIROWATX,KOGDA Emacs OVIDAET,POKA man
ZAKON^IT RABOTU.) rEZULXTAT NAPRAWLQETSQ W BUFER S IMENEM`*Man TEMA*'.|TI BUFERY IS-
POLXZU@T OSOBYJ OSNOWNOJ REVIM,REVIM Man,KOTORYJ OBLEG^AET PROKRUTKU I PROSMOTR
DRUGIH STRANIC man.dLQ POLU^ENIQ PODROBNOSTEJ NABERITE C-h m W BUFERE STRANICY
man.
dLQ DLINNYH STRANIC PRAWILXNAQ USTANOWKA NA^ERTANIJ MOVET ZANQTX ZNA^ITELXNOE
WREMQ.pO UMOL^ANI@ Emacs ISPOLXZUET W STRANICAH man NA^ERTANIQ,ESLI MOVET POKAZY-
WATX RAZNYE [RIFTY ILI CWETA.wY MOVETE WYKL@^ITX ISPOLXZOWANIE RAZNYH NA^ERTANIJ
W STRANICAH man,USTANOWIW PEREMENNU@ Man-fontify-manpage-flag RAWNOJ nil.
eSLI WY WSTAWITE TEKST STRANICY man W BUFER Emacs KAKIM-TO DRUGIM SPOSOBOM,WY
MOVETE ISPOLXZOWATX KOMANDU M-x Man-fontify-manpage,^TOBY PROIZWESTI TE VE PREOB-
RAZOWANIQ,^TO DELAET M-x manual-entry.
pROEKT GNU NADEETSQ KOGDA-NIBUDX ZAMENITX BOLX[INSTWO STRANIC man NA LU^[E OR-
GANIZOWANNYE RUKOWODSTWA,KOTORYE WY MOVETE PROSMATRIWATX S POMO]X@ Info.sM.rAZ-
DEL 7.7 [dRUGIE SPRAWKI],S.60.pOSKOLXKU\TOT PROCESS ZAWER[EN LI[X ^ASTI^NO,^ITATX
STRANICY man WSE E]E POLEZNO.
224 rUKOWODSTWO PO GNU Emacs22.12 vURNALY IZMENENIJ
kOMANDA Emacs C-x 4 a DOBAWLQET W VURNAL IZMENENIJ NOWU@ ZAPISX DLQ FAJLA,KOTO-
RYJ WY REDAKTIRUETE (add-change-log-entry-other-window).
fAJL VURNALA IZMENENIJ SODERVIT HRONOLOGI^ESKOE OPISANIE TOGO,PO^EMU I KOGDA WY
IZMENQLI PROGRAMMU,SOSTOQ]EE IZ POSLEDOWATELXNOSTI ZAPISEJ,OPISYWA@]IH OTDELXNYE
IZMENENIQ.kAK PRAWILO ONO HRANITSQ W FAJLE S IMENEM`ChangeLog'W TOM VE SAMOM
KATALOGE,W KOTOROM NAHODITSQ FAJL,KOTORYJ WY REDAKTIRUETE,ILI W ODNOM IZ EGO RO-
DITELXSKIH KATALOGOW.eDINSTWENNYJ FAJL`ChangeLog'MOVET ZAPISYWATX IZMENENIQ DLQ
WSEH FAJLOW W EGO KATALOGE I WO WSEH EGO PODKATALOGAH.
zAPISX W VURNALE IZMENENIJ NA^INAETSQ SO STROKI ZAGOLOWKA,KOTORAQ SODERVIT WA[E
IMQ,WA[ ADRES\LEKTRONNOJ PO^TY (POLU^AEMYJ IZ PEREMENNOJ user-mail-address) I
TEKU]U@ DATU I WREMQ.kROME\TIH STROK ZAGOLOWKA,KAVDAQ STROKA W VURNALE IZMENENIJ
NA^INAETSQ S PROBELA ILI TABULQCII.oSNOWNAQ ^ASTX ZAPISI SOSTOIT IZ PUNKTOW,KAVDYJ
IZ KOTORYH NA^INAETSQ SO STROKI,NA^INA@]EJSQ S PROPUSKA I ZWEZDO^KI.wOT PRIMER DWUH
ZAPISEJ,OBE DATIROWANY MAEM 1993 GODA I OBE SODERVAT DWA PUNKTA:
1993-05-25 Richard Stallman <rms@gnu.org>
* man.el:Rename symbols`man-*'to`Man-*'.
(manual-entry):Make prompt string clearer.
* simple.el (blink-matching-paren-distance):
Change default to 12,000.
1993-05-24 Richard Stallman <rms@gnu.org>
* vc.el (minor-mode-map-alist):Don't use it if it's void.
(vc-cancel-version):Doc fix.
(pREDYDU]IE WERSII Emacs ISPOLXZOWALI DRUGOJ FORMAT DATY.)
oDNA ZAPISX MOVET OPISYWATX NESKOLXKO IZMENENIJ;KAVDOE IZMENENIE DOLVNO OPISY-
WATXSQ W OTDELXNOM PUNKTE.oBY^NO MEVDU PUNKTAMI DOLVNA BYTX PUSTAQ STROKA.kOGDA
PUNKTY SWQZANY MEVDU SOBOJ (^ASTI ODNOGO IZMENENIQ W RAZNYH MESTAH),GRUPPIRUJTE
IH,NE OSTAWLQQ MEVDU NIMI PUSTU@ STROKU.wTORAQ ZAPISX WY[E SODERVIT DWA PUNKTA,
SGRUPPIROWANNYH TAKIM SPOSOBOM.
C-x 4 a OBRA]AETSQ K FAJLU VURNALA IZMENENIJ I SOZDAET NOWU@ ZAPISX,ESLI TOLXKO
POSLEDNIJ PO WREMENI PUNKT NE DATIROWAN SEGODNQ[NIM DNEM I NE NESET WA[E IMQ.tAK-
VE ONA SOZDAET NOWYJ PUNKT DLQ TEKU]EGO FAJLA.dLQ MNOGIH QZYKOW ONA MOVET DAVE
PREDPOLOVITX IMQ IZMENENNOJ FUNKCII ILI OB_EKTA.
k FAJLU VURNALA IZMENENIJ OBRA]A@TSQ W REVIME Change Log.w\TOM OSNOWNOM RE-
VIME KAVDAQ SWQZKA SGRUPPIROWANNYH PUNKTOW S^ITAETSQ ODNIM ABZACEM,A KAVDAQ ZAPISX
S^ITAETSQ STRANICEJ.|TO OBLEG^AET REDAKTIROWANIE ZAPISEJ.C-j I AWTOMATI^ESKOE ZA-
POLNENIE DELA@T W KAVDOJ NOWOJ STROKE TAKOJ VE OTSTUP,KAK W PREDYDU]EJ;\TO UDOBNO
DLQ WWODA SODERVIMOGO ZAPISEJ.
sISTEMY UPRAWLENIQ WERSIQMI DA@T DRUGOJ SPOSOB OTSLEVIWANIQ IZMENENIJ W WA[EJ
PROGRAMME I WEDENIQ VURNALA IZMENENIJ.sM.rAZDEL 14.7.3.3 [bUFER VURNALA],S.119.
22.13 tABLICY TEGOW
tABLICA TEGOW |\TO OPISANIE TOGO,KAK MNOGOFAJLOWAQ PROGRAMMA RAZBIWAETSQ NA FAJ-
LY.oNA PERE^ISLQET IMENA FAJLOW-KOMPONENTOW I IMENA I POZICII FUNKCIJ (ILI DRUGIH
gLAWA 22:rEDAKTIROWANIE PROGRAMM 225IMENOWANNYH POD_EDINIC) W KAVDOM FAJLE.oB_EDINENIE SWQZANNYH FAJLOW DELAET WOZ-
MOVNYM POISK ILI ZAMENU WO WSEH FAJLAH S POMO]X@ ODNOJ KOMANDY.zAPISX IMEN FUNK-
CIJ I POZICIJ DELAET WOZMOVNOJ KOMANDU M-.,KOTORAQ NAHODIT OPREDELENIE,OTYSKIWAQ
SWEDENIQ O TOM,W KAKOM FAJLE ONO NAHODITSQ.
tABLICY TEGOW HRANQTSQ W FAJLAH,IMENUEMYH FAJLAMI TABLIC TEGOW.oB]EPRINQTOE
IMQ DLQ FAJLA TABLICY TEGOW |`TAGS'.
kAVDYJ\LEMENT W TABLICE TEGOW ZAPISYWAET IMQ ODNOGO TEGA,IMQ FAJLA,W KOTOROM
\TOT TEG OPREDELEN (QWNO),I MESTOPOLOVENIE OPREDELENIQ TEGA W\TOM FAJLE.
kAKIE IMENNO IMENA IZ OPISANNYH FAJLOW ZAPISYWA@TSQ W TABLICE TEGOW,ZAWISIT OT
QZYKA PROGRAMMIROWANIQ OPISANNOGO FAJLA.oBY^NO ONI WKL@^A@T WSE FUNKCII I POD-
PROGRAMMY,MOGUT TAKVE WKL@^ATX GLOBALXNYE PEREMENNYE,TIPY DANNYH I ^TO-NIBUDX
E]E OTNOSQ]EESQ K DELU.kAVDOE ZAPISANNOE IMQ NAZYWAETSQ TEGOM.
22.13.1 sINTAKSIS TEGOW ISHODNOGO FAJLA
w NAIBOLEE POPULQRNYH QZYKAH SINTAKSIS TEGOW OPREDELQETSQ SLEDU@]IM OBRAZOM:
пЂЏ w PROGRAMME NA sI,L@BAQ FUNKCIQ sI ILI typedef |\TO TEG,TEGOM QWLQ@TSQ I
OPREDELENIQ struct,union I enum.oPREDELENIQ MAKROSOW (#define) I KONSTANT (enum)
TAKVE QWLQ@TSQ TEGAMI,ESLI TOLXKO WY NE ZADALI PRI SOZDANII TABLICY TEGOW KL@^
`-no-defines'.aNALOGI^NO,TEGAMI QWLQ@TSQ GLOBALXNYE PEREMENNYE,ESLI TOLXKO WY
NE ZADALI KL@^`-no-globals'.iSPOLXZOWANIE`-no-globals'I`-no-defines'MOVET
SDELATX FAJLY TABLIC TEGOW GORAZDO MENX[E.
пЂЏ w KODE NA sI++,POMIMO WSEH TEGOW KODA sI RASPOZNA@TSQ TAKVE FUNKCII-^LENY I,
WOZMOVNO,PEREMENNYE-^LENY,ESLI WY ISPOLXZUETE KL@^`-members'.tEGI DLQ PERE-
MENNYH I FUNKCIJ W KLASSAH IMENU@TSQ KAK`KLASS::PEREMENNAQ'I`KLASS::FUNKCIQ'.
пЂЏ w KODE NA Java,TEGI WKL@^A@T WSE KONSTRUKCII,RASPOZNAWAEMYE W sI++ PL@S KON-
STRUKCII extends I implements.tEGI DLQ PEREMENNYH I FUNKCIJ W KLASSAH IMENU@T-
SQ KAK`KLASS.PEREMENNAQ'I`KLASS.FUNKCIQ'.
пЂЏ w TEKSTE DLQ LaT
E
X,TEGAMI SLUVAT ARGUMENTY KAVDOJ IZ KOMAND\chapter,
\section,\subsection,\subsubsection,\eqno,\label,\ref,\cite,\bibitem,\part,
\appendix,\entry ILI\index.
dRUGIE KOMANDY TOVE MOGUT SOZDAWATX TEGI,ESLI WY UKAVETE IH W PEREMENNOJ SRE-
DY TEXTAGS PERED WYZOWOM etags.zNA^ENIEM\TOJ PEREMENNOJ SREDY DOLVEN BYTX
RAZDELENNYJ DWOETO^IQMI SPISOK IMEN KOMAND.
TEXTAGS="def:newcommand:newenvironment"
export TEXTAGS
ZADAET (S ISPOLXZOWANIEM SINTAKSISA Bourne shell),^TO KOMANDY`\def',`\newcommand'
I`\newenvironment'TAKVE OPREDELQ@T TEGI.
пЂЏ w KODE NA lISPE L@BAQ FUNKCIQ,OPREDELENNAQ ^EREZ defun,L@BAQ PEREMENNAQ,OPRE-
DELENNAQ ^EREZ defvar ILI defconst,I WOOB]E PERWYJ ARGUMENT L@BOGO WYRAVENIQ,
KOTOROE NA^INAETSQ S`(def'W NULEWOM STOLBCE,QWLQ@TSQ TEGOM.
пЂЏ w KODE NA Scheme TEGI WKL@^A@T WSE OPREDELQEMOE S POMO]X@ def ILI KONSTRUKCII,
^XE IMQ NA^INAETSQ S`def'.oNI TAKVE WKL@^A@T PEREMENNYE,USTANOWLENNYE S POMO-
]X@ set!NA WERHNEM UROWNE FAJLA.
pODDERVIWA@TSQ TAKVE NESKOLXKO DRUGIH QZYKOW:
пЂЏ w KODE ASSEMBLERA,TEGI |\TO METKI,POQWLQ@]IESQ W NA^ALE STROKI,ZA KOTORYMI
IDET DWOETO^IE.
пЂЏ wO WHODNYH FAJLAH Bison ILI Yacc KAVDOE PRAWILO OPREDELQET KONSTRUIRUEMYJ IM
NETERMINAL KAK TEG.~ASTI FAJLA,SODERVA]IE KOD NA sI,ANALIZIRU@TSQ KAK KOD sI.
226 rUKOWODSTWO PO GNU EmacsпЂЏ w KODE NA Cobol TEGAMI SLUVAT IMENA PARAGRAFOW;TO ESTX L@BYE SLOWA,KOTORYE
NA^INA@TSQ W STOLBCE 8,I POSLE KOTORYH STOIT TO^KA.
пЂЏ w KODE NA Erlang TEGAMI SLUVAT OPREDELENNYE W FAJLE FUNKCII,ZAPISI I MAKROSY.
пЂЏ w fORTRAN-KODE TEGAMI QWLQ@TSQ FUNKCII,PODPROGRAMMY I BLOKI DANNYH.
пЂЏ w KODE NA pASKALE TEGAMI BUDUT OPREDELENNYE W FAJLE FUNKCII I PROCEDURY.
пЂЏ w KODE NA Perl TEGAMI QWLQ@TSQ PROCEDURY,OPREDELQEMYE KL@^EWYM SLOWOM sub.
пЂЏ w KODE NA Postscript TEGAMI QWLQ@TSQ FUNKCII.
пЂЏ w KODE NA pROLOGE TEGI POQWLQ@TSQ NA LEWOJ GRANICE.
wY TAKVE MOVETE GENERIROWATX TEGI,OSNOWYWAQSX NA SOPOSTAWLENII REGULQRNYH WYRA-
VENIJ (SM.rAZDEL 22.13.2 [sOZDANIE TABLICY TEGOW],S.226),^TOBY OBRABOTATX DRUGIE
FORMATY I QZYKI.
22.13.2 sOZDANIE TABLICY TEGOW
dLQ SOZDANIQ FAJLA TABLICY TEGOW ISPOLXZUETSQ PROGRAMMA etags.oNA ZNAET NESKOLXKO
QZYKOW,KAK OPISANO W PREDYDU]EM RAZDELE.etags ZAPUSKAETSQ SLEDU@]IM OBRAZOM:
etags WHODNYE-FAJLY...
pROGRAMMA etags S^ITYWAET UKAZANNYE FAJLY I ZAPISYWAET TABLICU TEGOW POD IMENEM
`TAGS'W TEKU]EM RABO^EM KATALOGE.etags RASPOZNAET QZYK,ISPOLXZUEMYJ WO WHODNOM
FAJLE,OSNOWYWAQSX NA IMENI\TOGO FAJLA I EGO SODERVANII.wY MOVETE UKAZATX QZYK S
POMO]X@ KL@^A`-language=IMQ',OPISANNOGO NIVE.
eSLI DANNYE TABLICY TEGOW STANOWQTSQ USTAREW[IMI IZ-ZA IZMENENIJ W OPISANNYH W
TABLICE FAJLAH,TO TABLICA TEGOW OBNOWLQETSQ TEM VE SPOSOBOM,^TO BYL PRIMENEN DLQ EE
NA^ALXNOGO SOZDANIQ.nET NEOBHODIMOSTI DELATX\TO ^ASTO.
eSLI TABLICA TEGOW NE W SOSTOQNII ZAPISATX TEG ILI ZAPISYWAET EGO NE DLQ TOGO FAJLA,
TO Emacs MOVET NE NAJTI EGO OPREDELENIE.oDNAKO,ESLI POZICIQ,ZAPISANNAQ W TABLICU
TEGOW,STANOWITSQ NEMNOGO NEWERNOJ (IZ-ZA NEKOTOROGO REDAKTIROWANIQ W FAJLE,W KOTOROM
NAHODITSQ OPREDELENIE\TOGO TEGA),TO EDINSTWENNYM SLEDSTWIEM BUDET SLEGKA ZAMEDLENNYJ
POISK TEGA.dAVE ESLI HRANQ]AQSQ POZICIQ SOWSEM NEPRAWILXNA,Emacs WSE-TAKI NAJDET
TEG,NO DLQ\TOGO ON DOLVEN BUDET OBSLEDOWATX WESX FAJL.
tAKIM OBRAZOM,WAM NUVNO OBNOWLQTX TABLICU TEGOW,KOGDA WY OPREDELQETE NOWYE TEGI,
KOTORYE WY HOTITE WNESTI W SPISOK,ILI KOGDA WY PEREME]AETE OPREDELENIQ TEGOW IZ ODNOGO
FAJLA W DRUGOJ,ILI KOGDA IZMENENIQ STANOWQTSQ SU]ESTWENNYMI.oBY^NO NET NUVDY
OBNOWLQTX TABLICU TEGOW POSLE KAVDOGO REDAKTIROWANIQ ILI DAVE KAVDYJ DENX.
oDNA TABLICA TEGOW MOVET KAK BY WKL@^ATX DRUGU@.iMQ WKL@^AEMOGO FAJLA TEGOW
UKAZYWAETSQ S POMO]X@ KL@^A`-include=FAJL'PRI SOZDANII WKL@^A@]EGO FAJLA.pO-
SLEDNIJ FAJL ZATEM WEDET SEBQ TAK,KAK ESLI BY ON SODERVAL WSE FAJLY,ZADANNYE WO
WKL@^ENNOM FAJLE,TAK VE KAK I TE FAJLY,KOTORYE ON SODERVIT NEPOSREDSTWENNO.
eSLI PRI ZAPUSKE etags WY ZADADITE ISHODNYE FAJLY PO OTNOSITELXNYM IMENAM,FAJL
TEGOW BUDET SODERVATX IMENA FAJLOW,OTNOSITELXNYE K KATALOGU,W KOTOROM\TOT FAJL TEGOW
BYL IZNA^ALXNO ZAPISAN.tOGDA WY SMOVETE PEREMESTITX WSE DEREWO KATALOGOW,SODERVA]EE
I FAJL TEGOW,I ISHODNYE FAJLY,I FAJL TEGOW WSE RAWNO BUDET PRAWILXNO SSYLATXSQ NA
ISHODNYE FAJLY.
eSLI W KA^ESTWE ARGUMENTOW etags WY ZADADITE ABSOL@TNYE IMENA FAJLOW,TO FAJL
TEGOW BUDET SODERVATX ABSOL@TNYE IMENA.tOGDA FAJL TEGOW BUDET TAK VE SSYLATXSQ
NA TE VE ISHODNYE FAJLY,DAVE ESLI WY PEREMESTITE EGO,DO TEH POR,POKA ISHODNYE
FAJLY OSTA@TSQ NA STAROM MESTE.aBSOL@TNYE IMENA FAJLOW NA^INA@TSQ S`/',ILI S
`USTROJSTWO:/'W MS-DOS I MS-Windows.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 227kOGDA WY HOTITE SOZDATX TABLICY TEGOW DLQ O^ENX BOLX[OGO ^ISLA FAJLOW,U WAS MOGUT
WOZNIKNUTX PROBLEMY S IH PERE^ISLENIEM W KOMANDNOJ STROKE,POSKOLXKU NEKOTORYE SISTE-
MY NAKLADYWA@T OGRANI^ENIE NA EE DLINU.pROSTEJ[IJ SPOSOB OBOJTI\TO OGRANI^ENIE
| SKAZATX etags S^ITYWATX IMENA FAJLOW SO STANDARTNOGO WWODA,NABRAW DEFIS NA MESTE
IMEN FAJLOW,KAK ZDESX:
find.-name"*.[chCH]"-print | etags -
iSPOLXZUJTE KL@^`-language=IMQ'DLQ QWNOGO UKAZANIQ QZYKA.wY MOVETE PEREME[I-
WATX\TI KL@^I S IMENAMI FAJLOW;KAVDYJ OTNOSITSQ K IMENA FAJLA,KOTOROE SLEDUET ZA
NIM.zADAJTE`-language=auto',^TOBY WELETX etags PRODOLVATX SAMOJ PREDPOLAGATX QZYK
PO IMENI I SODERVIMOMU FAJLA.zADAJTE`-language=none',^TOBY POLNOSTX@ WYKL@^ITX
SPECIFI^NU@ DLQ QZYKA OBRABOTKU;TOGDA etags RASPOZNAET TEGI TOLXKO PO SOPOSTAWLENI@
S REGULQRNYM WYRAVENIEM.`etags -help'PE^ATAET PERE^ENX QZYKOW,KOTORYE ZNAET etags,
I PRAWILA PREDPOLOVENIQ QZYKA PO IMENI FAJLA.
kL@^`-regex'PREDOSTAWLQET OB]IJ SPOSOB RASPOZNAWANIQ TEGOW,OSNOWANYJ NA SOPO-
STAWLENII S REGULQRNYM WYRAVENIEM.wY MOVETE SWOBODNO PEREME[IWATX\TI KL@^I S
IMENAMI FAJLOW.kAVDYJ KL@^`-regex'DOBAWLQETSQ K PRED[ESTWU@]IM I PRIMENQETSQ
TOLXKO K POSLEDU@]IM FAJLAM.sINTAKSIS TAKOW:
-regex=/regexp-TEG[/regexp-IMQ]/
GDE regexp-TEG ISPOLXZUETSQ DLQ NAHOVDENIQ STROK TEGOW.oNO WSEGDA ZACEPLENNOE,TO
ESTX WEDET SEBQ TAK,KAK ESLI BY W NA^ALE STOQLO`^'.eSLI WY HOTITE U^ESTX OTSTUPY,
PROSTO NAZOWITE SOWPADENIEM PROIZWOLXNOE KOLI^ESTWO PROPUSKOW,NA^AW WA[E REGULQRNOE
WYRAVENIE S`[\t]*'.zNAK`\'W REGULQRNYH WYRAVENIQH\KRANIRUET SLEDU@]IJ ZNAK,
A`\t'OBOZNA^AET SIMWOL TABULQCII.oBRATITE WNIMANIE,etags NE OBRABATYWAET DRUGIE
UPRAWLQ@]IE POSLEDOWATELXNOSTI sI DLQ SPECIALXNYH ZNAKOW.
etags PRIDERVIWAETSQ TOGO VE SINTAKSISA REGULQRNYH WYRAVENIJ,^TO I Emacs,NO S
WWEDENIEM OPERATORA INTERWALA,KOTORYJ RABOTAET KAK W grep I ed.sINTAKSIS OPERATORA
INTERWALA TAKOJ:`\{m,n\}',\TO OZNA^AET,^TO NUVNO NAJTI SOWPADENIE S PREDYDU]IM
WYRAVENIEM PO MENX[EJ MERE m RAZ I WPLOTX DO n RAZ.
regexp-TEG NE DOLVNO SOWPADATX S BOLX[IM ^ISLOM ZNAKOW,^EM\TO NEOBHODIMO DLQ
RASPOZNAWANIQ NUVNOGO WAM TEGA.eSLI SOOTWETSTWIE TAKOWO,^TO regexp-TEG NEIZBEVNO
SOWPADAET S BOLX[IM,^EM NUVNO,^ISLOM ZNAKOW,WY MOVETE NAJTI POLEZNYM DOBAWITX
regexp-IMQ,^TOBY SUZITX OBLASTX TEGA.wY MOVETE NAJTI PRIMERY NIVE.
kL@^`-R'UDALQET WSE REGULQRNYE WYRAVENIQ,OPREDELENNYE KL@^AMI`-regex'.oN
PRIMENQETSQ K SLEDU@]IM ZA NIM IMENAM FAJLOW,KAK WY MOVETE WIDETX IZ SLEDU@]EGO
PRIMERA:
etags -regex=/reg1/voo.doo -regex=/reg2/\
bar.ber -R -lang=lisp los.er
zDESX etags WYBIRAET QZYK DLQ ANALIZA`voo.doo'I`bar.ber'W SOOTWETSTWII S IH SODERVI-
MYM.etags TAKVE ISPOLXZUET reg1 DLQ RASPOZNAWANIQ DOPOLNITELXNYH TEGOW W`voo.doo'
I OBA WYRAVENIQ reg1 I reg2 DLQ RASPOZNAWANIQ DOPOLNITELXNYH TEGOW W`bar.ber'.dLQ
RASPOZNAWANIQ TEGOW W`los.er'etags ISPOLXZUET PRAWILA TEGOW DLQ lISPA I NE ISPOLXZUET
REGULQRNYE WYRAVENIQ.
wOT E]E NESKOLXKO PRIMEROW.rEGULQRNYE WYRAVENIQ WZQTY W KAWY^KI,^TOBY OBOLO^KA
NE INTERPRETIROWALA IH PO-SWOEMU.
пЂЏ sDELATX TEGI DLQ MAKROSA DEFVAR W ISHODNYH FAJLAH Emacs:
-regex='/[\t]*DEFVAR_[A-Z_\t(]+"\([^"]+\)"/'
пЂЏ sDELATX TEGI DLQ VHDL-FAJLOW (\TOT PRIMER | ODNA STROKA,RAZBITAQ ZDESX DLQ
PRAWILXNOGO FORMATIROWANIQ):
-language=none
-regex='/[\t]*\(ARCHITECTURE\|CONFIGURATION\) +[^ ]* +OF/'
228 rUKOWODSTWO PO GNU Emacs-regex='/[\t]*\(ATTRIBUTE\|ENTITY\|FUNCTION\|PACKAGE\
\( BODY\)?\|PROCEDURE\|PROCESS\|TYPE\)[\t]+\([^\t(]+\)/\3/'
пЂЏ sDELATX TEGI DLQ FAJLOW NA Tcl (\TOT POSLEDNIJ PRIMER POKAZYWAET ISPOLXZOWANIE
ARGUMENTA regexp-IMQ):
-lang=none -regex='/proc[\t]+\([^\t]+\)/\1/'
~TOBY POLU^ITX PERE^ENX DRUGIH DOSTUPNYH KL@^EJ etags,WYPOLNITE etags --help.
22.13.3 wYBOR TABLICY TEGOW
Emacs HRANIT W KAVDYJ MOMENT ODNU WYBRANNU@ TABLICU TEGOW,I WSE KOMANDY DLQ
RABOTY S TABLICAMI TEGOW ISPOLXZU@T\TU WYBRANNU@ TABLICU.~TOBY WYBRATX TABLICU
TEGOW,NABERITE M-x visit-tags-table,KOTORAQ S^ITAET IMQ FAJLA TABLICY TEGOW KAK
ARGUMENT.iMQ`TAGS'W KATALOGE PO UMOL^ANI@ ISPOLXZUETSQ KAK IMQ FAJLA PO UMOL^ANI@.
wSE,^TO DELAET\TA KOMANDA,| SOHRANQET IMQ FAJLA W PEREMENNOJ tags-file-name.
Emacs FAKTI^ESKI NE S^ITYWAET SODERVIMOE TABLICY TEGOW DO TEH POR,POKA WY NE POPY-
TAETESX ISPOLXZOWATX EGO.sAMOSTOQTELXNAQ USTANOWKA\TOJ PEREMENNOJ TAK VE HORO[A,KAK
I ISPOLXZOWANIE visit-tags-table.nA^ALXNOE ZNA^ENIE PEREMENNOJ RAWNO nil;\TO ZNA^E-
NIE SOOB]AET WSEM KOMANDAM DLQ RABOTY S TABLICAMI TEGOW,^TO ONI DOLVNY ZAPRA[IWATX,
KAKOE IMQ FAJLA TABLICY TEGOW NADO ISPOLXZOWATX.
iSPOLXZOWANIE visit-tags-table,KOGDA TABLICA TEGOW UVE ZAGRUVENA,DAET WAM WYBOR:
WY MOVETE DOBAWITX NOWU@ TABLICU TEGOW K TEKU]EMU SPISKU TAKIH TABLIC ILI NA^ATX
NOWYJ SPISOK.kOMANDY RABOTY S TEGAMI ISPOLXZU@T WSE TABLICY TEGOW W TEKU]EM SPISKE.
eSLI WY NA^INAETE NOWYJ SPISOK,NOWAQ TABLICA TEGOW ISPOLXZUETSQ WMESTO OSTALXNYH.
eSLI WY DOBAWLQETE NOWU@ TABLICU TEGOW K TEKU]EMU SPISKU,ONA ISPOLXZUETSQ WMESTE
S OSTALXNYMI.kOGDA KOMANDY RABOTY S TEGAMI SKANIRU@T SPISOK TABLIC TEGOW,ONI NE
WSEGDA NA^INA@T S NA^ALA SPISKA;ONI NA^INA@T S PERWOJ TABLICY,KOTORAQ OPISYWAET
TEKU]IJ FAJL (ESLI TAKAQ ESTX),PROHODQT DALEE DO KONCA SPISKA I ZATEM PROSMATRIWA@T
SPISOK S NA^ALA DO TEH POR,POKA W NEM NE BUDUT PROWERENY WSE TABLICY.
wY MOVETE QWNO ZADATX SPISOK TABLIC TEGOW,USTANOWIW PEREMENNU@ tags-table-list W
ZNA^ENIE SPISKA STROK,KAK POKAZANO:
(setq tags-table-list
'("~/emacs""/usr/local/lib/emacs/src"))
|TO ZASTAWLQET KOMANDY,RABOTA@]IE S TEGAMI,PROSMATRIWATX FAJLY`TAGS'W KATALOGAH
`~/emacs'I`/usr/local/lib/emacs/src'.pORQDOK ZAWISIT OT TOGO,W KAKOM FAJLE WY
SEJ^AS NAHODITESX I KAKAQ TABLICA TEGOW UPOMINAET\TOT FAJL,KAK OBQSNENO WY[E.
nE USTANOWLIWAJTE PEREMENNYE tags-file-name I tags-table-list ODNOWREMENNO.
22.13.4 pOISK OPREDELENIQ TEGA
sAMAQ WAVNAQ WE]X,KOTORU@ WAM POZWOLQ@T DELATX TABLICY TEGOW,|\TO POISK OPRE-
DELENIQ KONKRETNOGO TEGA.
M-.TEG h RETi
nAJTI PERWOE OPREDELENIE TEGA (find-tag).
C-u M-.nAJTI SLEDU@]EE PO O^EREDI OPREDELENIE POSLEDNEGO ZADANNOGO TEGA.
C-u - M-.wERNUTXSQ K PREDYDU]EMU NAJDENNOMU TEGU.
C-M-.OBRAZEC hRETi
nAJTI TEG,^XE IMQ SOWPADAET S OBRAZCOM (find-tag-regexp).
C-u C-M-.nAJTE SLEDU@]IJ TEG,^XE IMQ SOWPADAET S POSLEDNIM ISPOLXZOWANNYM OBRAZ-
COM.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 229C-x 4.TEG hRETi
nAJTE PERWOE OPREDELENIE TEGA,NO POKAZATX EGO W DRUGOM OKNE (find-tag-
other-window).
C-x 5.TEG h RETi
nAJTE PERWOE OPREDELENIE TEGA I SOZDATX NOWYJ FREJM DLQ WYBORA BUFERA
(find-tag-other-frame).
M-* wERNUTXSQ K TOMU MESTU,GDE WY RANEE WYZWALI M-.I TOWARI]EJ.
M-.(find-tag) |\TO KOMANDA DLQ POISKA OPREDELENIQ ZADANNOGO TEGA.oNA I]ET EGO PO
TABLICE TEGOW KAK STROKU I ZATEM ISPOLXZUET\TU INFORMACI@ IZ TABLICY TEGOW DLQ TOGO,
^TOBY OPREDELITX FAJL,W KOTOROM NAHODITSQ OPREDELENIE,I PRIBLIZITELXNU@ POLOVE-
NIE OPREDELENIQ W FAJLE.zATEM find-tag OBRA]AETSQ K\TOMU FAJLU,PEREDWIGAET TO^KU
W PRIBLIZITELXNU@ POZICI@ I NA^INAET POISK OPREDELENIQ NA POSTOQNNO WOZRASTA@]EM
RASSTOQNII.
eSLI ZADAETSQ PUSTOJ ARGUMENT (PROSTO
hRETi),TO W KA^ESTWE IMENI TEGA,KOTORYJ NADO
NAJTI,ISPOLXZUETSQ s-WYRAVENIE,NAHODQ]EESQ W BUFERE PERED ILI WOKRUG TO^KI.dLQ
POLU^ENIQ INFORMACII O s-WYRAVENIQH SMOTRITErAZDEL 22.2 [sPISKI],S.206,
aRGUMENT DLQ M-.NE OBQZAN BYTX POLNYM IMENEM TEGA;DOSTATO^NO ^ASTI.|TO WOZMOV-
NO,POTOMU ^TO M-.NAHODIT W TABLICE TEGI,KOTORYE SODERVAT TEG KAK POSTROKU.oDNAKO,
ONA PREDPO^ITAET TO^NOE SOWPADENIE SOWPADENI@ LI[X POSTROKI.~TOBY NAJTI DRUGIE TE-
GI,KOTORYE SOOTWETSTWU@T TOJ VE PODSTROKE,SLEDUET DATX find-tag ^ISLOWOJ ARGUMENT,
KAK W C-u M-.;\TA KOMANDA NE S^ITYWAAET IMQ TEGA,NO PRODOLVAET POISK PO TEKSTU TABLI-
CY TEGOW DRUGOGO TEGA,SODERVA]EGO SAMU@ POSLEDN@@ ISPOLXZOWANNU@ PODSTROKU.eSLI U
WAS ESTX NASTOQ]AQ KLAWI[A h METAi,TO M-0 M-.MOVET SLUVITX BOLEE PROSTOJ ALXTERNA-
TIWOJ C-u M-..
pODOBNO BOLX[INSTWU KOMAND,KOTORYE MOGUT PEREKL@^ATX BUFERY,find-tag IMEET
WARIANT,KOTORYJ POKAZYWAET NOWYJ BUFER W DRUGOM OKNE,I E]E ODIN,KOTORYJ SOZDAET
NOWYJ FREJM.pERWAQ KOMANDA |\TO C-x 4.,KOTORAQ WYZYWAET FUNKCI@ find-tag-other-
window.wTORAQ,C-x 5.,WYZYWAET find-tag-other-frame.
~TOBY WERNUTXSQ K MESTAM,GDE WY NEDAWNO NAHODILI TEGI,ISPOLXZUJTE C-u - M-.;W
BOLEE OB]EM WIDE,M-.S OTRICATELXNYM ^ISLOWYM ARGUMENTOM.|TA KOMANDA MOVET PE-
RENESTI WAS W DRUGOJ BUFER.C-x 4.S OTRICATELXNYM ARGUMENTOM NAHODIT PREDYDU]EE
POLOVENIE TEGA W DRUGOM OKNE.
tAK VE,KAK WY MOVETE WERNUTXSQ K MESTAM,GDE WY NEDAWNO NAHODILI TEGI,WY MOVETE
WERNUTXSQ K MESTAM,OTKUDA WY IH NA[LI.iSPOLXZUJTE DLQ\TOGO M-*,^TO WYZYWAET
KOMANDU pop-tag-mark.tIPI^NOE PRIMENENIE\TIH KOMAND |NAJTI I IZU^ITX OPREDELENIE
^EGO-TO S POMO]X@ M-.I ZATEM WERNUTXSQ K TOMU MESTU,GDE WY BYLI,S POMO]X@ M-*.
i C-u - M-.,I M-* POZWOLQ@T WAM PO[AGOWO PROHODITX NAZAD DO GLUBINY,OPREDELQEMOJ
PEREMENNOJ find-tag-marker-ring-length.
kOMANDA C-M-.(find-tag-regexp) OBRA]AETSQ K TEGAM,SOOTWETSTWU@]IM ZADANNOMU
REGULQRNOMU WYRAVENI@.oNA POHOVA NA M-.,NO PROIZWODIT SOPOSTAWLENIE S REGULQRNYM
WYRAVENIEM,A NE SO STROKOJ.
22.13.5 pOISK I ZAMENA PRI POMO]I TABLIC TEGOW
kOMANDY\TOGO RAZDELA OBRA]A@TSQ I PROSMATRIWA@T WSE FAJLY,PERE^ISLENNYE W
WYBRANNOJ TABLICE TEGOW,ODIN ZA DRUGIM.tABLICA TEGOW SLUVIT DLQ\TIH KOMAND TOLXKO
DLQ TOGO,^TOBY OPREDELITX POSLEDOWATELXNOSTX POISKA W FAJLAH.
M-x tags-search h RETi regexp hRETi
pOISK regexp WO WSEH FAJLAH W WYBRANNOJ TABLICE TEGOW.
230 rUKOWODSTWO PO GNU EmacsM-x tags-query-replace hRETi regexp hRETi ZAMENA hRETi
oSU]ESTWITX query-replace-regexp W KAVDOM FAJLE W WYBRANNOJ TABLICE TE-
GOW.
M-,pEREZAPUSTITX ODNU IZ WY[EUPOMQNUTYH KOMAND IZ TEKU]EGO POLOVENIQ TO^KI
(tags-loop-continue).
M-x tags-search S^ITYWAET REGULQRNOE WYRAVENIE,ISPOLXZUQ MINIBUFER,ZATEM I]ET
\TO REGULQRNOE WYRAVENIE PO O^EREDI W KAVDOM FAJLE IZ WYBRANNOJ TABLICY TEGOW.oNA
POKAZYWAET IMQ FAJLA,KOTORYJ W DANNYJ MOMENT PROSMATRIWAETSQ,TAKIM OBRAZOM,WY
MOVETE SLEDITX ZA HODOM POISKA.kAK TOLXKO OPREDELQETSQ MESTONAHOVDENIE,tags-search
WOZWRA]AETSQ.
nAJDQ ODNO SOOTWETSTWIE,WY,WEROQTNO,ZAHOTITE NAJTI WSE OSTALXNYE.~TOBY NAJTI
E]E ODNO SOOTWETSTWIE,NABERITE M-,(tags-loop-continue),\TO WOZOBNOWIT tags-search.
|TA KOMANDA PROSMATRIWAET OSTATOK TEKU]EGO BUFERA I ZATEM OSTAW[IESQ FAJLY TABLICY
TEGOW.
M-x tags-query-replace OSU]ESTWLQET WO WSEH FAJLAH W TABLICE TEGOW EDINU@ ZA-
MENU REGULQRNOGO WYRAVENIQ S PODTWERVDENIEM.oNA S^ITYWAET REGULQRNOE WYRAVE-
NIE,KOTOROE SLEDUET ISKATX,I STROKU DLQ ZAMENY,TO^NO TAK VE,KAK OBY^NAQ M-x
query-replace-regexp.oNA I]ET O^ENX POHOVE NA M-x tags-search,NO S POWTORAMI,
OBRABATYWAQ SOWPADENIQ SOGLASNO WA[EMU WWODU.sM.rAZDEL 12.7 [zAMENA],S.95,BOLEE
PODROBNU@ INFORMACI@ O ZAMENE S PODTWERVDENIEM.
mOVNO PROJTI PO WSEM FAJLAM W TABLICE TEGOW S POMO]X@ EDISTWENNOGO WYZOWA M-x
tags-query-replace.nO INOGDA BYWAET POLEZNO WREMENNO WYJTI,^TO WY MOVETE SDELATX
S POMO]X@ L@BOGO SOBYTIQ WWODA,NE IME@]EGO OSOBOGO SMYSLA PRI ZAMENE S PODTWERVDE-
NIEM.wY MOVETE WPOSLEDSTWII WOZOBNOWITX ZAMENU S PODTWERVDENIEM,NABRAW M-,;\TA
KOMANDA WOZOBNOWLQET POSLEDN@@ SDELANNU@ WAMI KOMANDU POISKA ILI ZAMENY TEGOW.
kOMANDY\TOGO RAZDELA PRIWODQT K GORAZDO BOLEE [IROKOMU POISKU,^EM SEMEJSTWO
find-tag.kOMANDY find-tag I]UT TOLXKO OPREDELENIQ TEGOW,SOWPADA@]IH S WA[EJ
PODSTROKOJ ILI REGULQRNYM WYRAVENIEM.kOMANDY tags-search I tags-query-replace
NAHODQT KAVDOE WHOVDENIE REGULQRNOGO WYRAVENIQ,KAK DELA@T W TEKU]EM BUFERE OBY^-
NYE KOMANDY POISKA I ZAMENY.
|TI KOMANDY SOZDA@T BUFERY TOLXKO WREMENNO,DLQ FAJLOW,W KOTORYH ONI DOLVNY
DELATX POISK (DLQ TEH,K KOTORYM UVE NE OBRA]AETSQ KAKOJ-NIBUDX BUFER Emacs).bUFERY,
W KOTORYH NET SOWPADENIJ,BYSTRO UNI^TOVA@TSQ;OSTALXNYE PRODOLVA@T SU]ESTWOWATX.
wAS,WOZMOVNO,PORAZILO,^TO tags-search O^ENX POHOVA NA grep.wY MOVETE TAKVE
ZAPUSTITX SAMU grep KAK POD^INENNU@ Emacs,I Emacs POKAVET WAM SOWPADA@]IE STROKI
ODNU ZA DRUGOJ.|TO RABOTAET WO MNOGOM POHOVE NA ZAPUSK KOMPILQCII;OBRA]ENIE K
TEM POZICIQM W ISHODNYH FAJLAH,GDE grep NA[LA SOWPADENIQ,RABOTAET KAK OBRA]ENIE K
O[IBKAM KOMPILQCII.sM.rAZDEL 23.1 [kOMPILQCIQ],S.247.
22.13.6 zAPROSY K TABLICE TEGOW
M-x list-tags
h RETi FAJL hRETi
pOKAZATX SPISOK TEGOW,OPREDELENNYH W ZADANNOM FAJLE S TEKSTOM PROGRAMMY.
M-x tags-apropos h RETi regexp hRETi
pOKAZATX SPISOK WSEH TEGOW,SOOTWETSTWU@]IH REGULQRNOMU WYRAVENI@ regexp.
M-x list-tags S^ITYWAET IMQ ODNOGO IZ FAJLOW,OPISANNYH W WYBRANNOJ TABLICE TE-
GOW,I POKAZYWAET SPISOK WSEH TEGOW,OPREDELENNYH W\TOM FAJLE.aRGUMENT\IMQ FAJLA"
FAKTI^ESKI QWLQETSQ PROSTO STROKOJ DLQ SRAWNENIQ S IMENAMI,ZAPISANNYMI W TABLICE
TEGOW;ON S^ITYWAETSQ KAK STROKA,A NE KAK IMQ FAJLA.pO\TOMU ZAWER[ENIE I ZNA^ENIE PO
UMOL^ANI@ NEWOZMOVNY,I WY DOLVNY WWODITX IMQ FAJLA W TOM VE SAMOM WIDE,W KOTOROM
gLAWA 22:rEDAKTIROWANIE PROGRAMM 231ONO POQWLQETSQ W TABLICE TEGOW.nE WKL@^AJTE KATALOG KAK ^ASTX IMENI FAJLA,ESLI IMQ
FAJLA,ZAPISANNOGO W TABLICE TEGOW,NE WKL@^AET KATALOG.
M-x tags-apropos POHOVA NA apropos DLQ TEGOW (SM.rAZDEL 7.3 [kONTEKSTNAQ SPRAWKA],
S.57 ).oNA S^ITYWAET REGULQRNOE WYRAVENIE,ZATEM NAHODIT WSE TEGI W WYBRANNOJ TA-
BLICE TEGOW,^XI WHOVDENIQ SOOTWETSTWU@T\TOMU REGULQRNOMU WYRAVENI@,I POKAZYWAET
NAJDENNYE IMENA TEGOW.
wY TAKVE MOVETE PROIZWODITX W BUFERE ZAWER[ENIE W PROSTRANSTWE IMEN,SOSTAWLENNOM
IZ IMEN TEGOW TEKU]IH TABLIC.sM.rAZDEL 22.9 [zAWER[ENIE SIMWOLOW],S.222.
22.14 oB_EDINENIE FAJLOW S POMO]X@ Emerge
nEREDKO PROGRAMMISTY PEREBEGA@T DRUG DRUGU DOROGU I IZMENQ@T ODNU I TU VE PRO-
GRAMMU W DWUH RAZNYH NAPRAWLENIQH.~TOBY SPRAWITXSQ S\TOJ PUTANICEJ,WAM NEOBHODIMO
OB_EDINITX DWE\TI WERSII.Emerge UPRO]AET\TO.sMOTRITE TAKVE rAZDEL 14.9 [sRAWNE-
NIE FAJLOW],S.132,O KOMANDAH DLQ SRAWNENIQ FAJLOW BOLEE RU^NYM METODOM,IRAZDEL
\Emerge"W The EdiпЂ‹ Manual.
22.14.1 oBZOR Emerge
~TOBY ZAPUSTITX Emerge,WYPOLNITE ODNU IZ\TIH ^ETYREH KOMAND:
M-x emerge-files
oB_EDINQET DWA ZADANNYH FAJLA.
M-x emerge-files-with-ancestor
oB_EDINQET DWA ZADANNYH FAJLA,SO SSYLKOJ NA OB]EGO PREDKA.
M-x emerge-buffers
oB_EDINQET DWA BUFERA.
M-x emerge-buffers-with-ancestor
oB_EDINQET DWA BUFERA SO SSYLKOJ NA OB]EGO PREDKA W TRETXEM BUFERE.
kOMANDY Emerge SRAWNIWA@T DWA FAJLA ILI BUFERA I OTOBRAVA@T REZULXTAT SRAWNE-
NIQ W TREH BUFERAH:PO ODNOMU NA KAVDYJ WHODNOJ FAJL (BUFER A I BUFER B) I ODIN
(BUFER OB_EDINENIQ),GDE OB_EDINENIE I PROISHODIT.bUFER OB_EDINENIQ POKAZYWAET WESX
OB_EDINQEMYJ TEKST,A NE TOLXKO RAZLI^IQ.wEZDE,GDE BUFERY RAZLI^A@TSQ,WY MOVETE
WYBRATX TOT,IZ KOTOROGO WY HOTITE WNESTI FRAGMENT.
kOMANDY Emerge,KOTORYE PRINIMA@T WWOD IZ SU]ESTWU@]IH BUFEROW,ISPOLXZU@T
TOLXKO IH DOSTUPNYE ^ASTI,ESLI\TI BUFERY SUVENY (SM.rAZDEL 30.8 [sUVENIE],S.335).
eSLI DOSTUPNA OB]AQ NA^ALXNAQ WERSIQ,OT KOTOROJ PROISHODQT OBA SLIWAEMYH TEKSTA,
Emerge MOVET ISPOLXZOWATX EE,^TOBY WYWESTI PREDPOLOVENIE O TOM,KAKAQ IZ ALXTERNA-
TIW PRAWILXNA.kOGDA ODNA IZ TEKU]IH WERSIJ NAHODITSQ W SOGLASII S PREDKOM,Emerge
PREDPOLAGAET,^TO DRUGAQ TEKU]AQ WERSIQ |\TO OBDUMANNOE IZMENENIE,KOTOROE DOLVNO
SOHRANITXSQ W OB_EDINENNOJ WERSII.eSLI WY HOTITE UKAZATX OB]IJ NA^ALXNYJ TEKST,
ISPOLXZUJTE KOMANDY`with-ancestor'.|TI KOMANDY S^ITYWA@T TRI FAJLA ILI IMENI
BUFERA |WARIANT A,WARIANT B I IH OB]EGO PREDKA.
pOSLE TOGO KAK SRAWNENIE ZAWER[ENO,I BUFERY PODGOTOWLENY,NA^INAETSQ INTERAKTIW-
NOE OB_EDINENIE.wY MOVETE UPRAWLQTX IM,NABIRAQ OSOBYE KOMANDY OB_EDINENIQ W BUFERE
OB_EDINENIQ.|TOT BUFER POKAZYWAET WAM POLNYJ OB_EDINENNYJ TEKST,A NE TOLXKO RAZLI-
^IQ.dLQ KAVDOGO PROMEVUTKA RAZLI^IJ MEVDU WHODNYMI TEKSTAMI WY MOVETE SOHRANITX
L@BOJ ILI OTREDAKTIROWATX IH WMESTE.
w BUFERE OB_EDINENIQ ISPOLXZUETSQ OSOBYJ OSNOWNOJ REVIM,REVIM Emerge,S KOMAN-
DAMI DLQ PRINQTIQ TAKIH RE[ENIJ.nO WY TAKVE MOVETE REDAKTIROWATX\TOT BUFER S
POMO]X@ OBY^NYH KOMAND Emacs.
232 rUKOWODSTWO PO GNU Emacsw L@BOJ MOMENT WREMENI WNIMANIE Emerge SOSREDOTO^ENO NA ODNOM KONKRETNOM IZMENE-
NII,NAZYWAEMOM WYDELENNYM.|TO IZMENENIE POME^AETSQ W TREH BUFERAH TAKIM OBRAZOM:
vvvvvvvvvvvvvvvvvvvv
RAZLI^A@]IJSQ TEKST
^^^^^^^^^^^^^^^^^^^^
Emerge POSLEDOWATELXNO NUMERUET WSE RAZLI^IQ,I STROKA REVIMA WSEGDA POKAZYWAET NOMER
WYDELENNOGO RAZLI^IQ.
oBY^NO BUFER OB_EDINENIQ IZNA^ALXNO SODERVIT WERSI@ A TEKSTA.nO KOGDA WERSIQ
A IZMENENIQ SOGLASUETSQ S OB]IM PREDKOM,DLQ\TOGO IZMENENIQ PREDPO^TENIE OTDAETSQ
WERSII B.
kOGDA WY WYHODITE,Emerge OSTAWLQET OB_EDINENNYJ TEKST W BUFERE OB_EDINENIQ.tO-
GDA WY MOVETE SOHRANITX EGO S POMO]X@ C-x C-w.eSLI WY ZADALI emerge-files ILI
emerge-files-with-ancestor ^ISLOWOJ ARGUMENT,\TI KOMANDY S^ITAET IMQ WYHODNOGO
FAJLA W MINIBUFERE.(|TO POSLEDNEE IMQ,KOTOROE ONI S^ITYWA@T.) tOGDA PRI WYHODE
IZ Emerge OB_EDINENNYJ TEKST SOHRANQETSQ W WYHODNOM FAJLE.
oBY^NO KOMANDY Emerge SOHRANQET WYHODNOJ BUFER,KOGDA WY WYHODITE.eSLI WY
PRERWETE Emerge S POMO]X@ C-],KOMANDA Emerge NE SOHRANIT WYHODNOJ BUFER,NO WY
MOVETE ZAPISATX EGO SAMI,ESLI HOTITE.
22.14.2 pODREVIMY Emerge
wY MOVETE WYBIRATX IZ DWUH REVIMOW DLQ OTDANIQ KOMAND OB_EDINENIQ:REVIM Fast
I REVIM Edit.w REVIME Fast OSNOWNYE KOMANDY OB_EDINENIQ |\TO ODINO^NYE ZNAKI,NO
OBY^NYE KOMANDY Emacs WYKL@^ENY.|TO UDOBNO,ESLI WY ISPOLXZUETE TOLXKO KOMANDY
OB_EDINENIQ.w REVIME Edit WSE KOMANDY OB_EDINENIQ NA^INA@TSQ S PREFIKSA C-c C-c,I
DOSTUPNY TAKVE OBY^NYE KOMANDY Emacs.|TO POZWOLQET REDAKTIROWATX BUFER OB_EDINE-
NIQ,NO ZAMEDLQET OPERACII Emerge.
iSPOLXZUJTE e,^TOBY PEREKL@^ITSQ W REVIM Edit,I C-c C-c f,^TOBY PEREKL@^ITSQ W
REVIM Fast.sTROKA REVIMA IZOBRAVAET REVIMY Edit I Fast PRI POMO]I`E'I`F'.
Emerge IMEET DWA DOPOLNITELXNYH PODREVIMA,KOTORYE ZATRAGIWA@T SPOSOB RABOTY
OPREDELENNYH KOMAND OB_EDINENIQ:REVIM Auto Advance I REVIM Skip Prefers.
eSLI DEJSTWUET REVIM Auto Advance,KOMANDY a I b PRODWIGA@T K SLEDU@]EMU RAZ-
LI^I@.|TO POZWOLQET WAM BYSTREE SDELATX OB_EDINENIE,POSKOLXKU WY PROSTO WYBIRAETE
ODNU IZ WHODNYH ALXTERNATIW.sTROKA REVIMA IZOBRAVAET REVIM Auto Advance KAK`A'.
eSLI DEJSTWUET REVIM Skip Prefers,KOMANDY n I p PROPUSKA@T RAZLI^IQ W SOSTOQNIQH
prefer-A I prefer-B (SM.rAZDEL 22.14.3 [sOSTOQNIE RAZLI^IQ],S.232).tAKIM OBRAZOM,WY WI-
DITE TOLXKO TE RAZLI^IQ,DLQ KOTORYH NI ODNA IZ WERSIJ NE PREDPOLAGAETSQ\PRAWILXNOJ".
sTROKA REVIMA IZOBRAVAET REVIM Skip Prefers S POMO]X@`S'.
iSPOLXZUJTE KOMANDU s a (emerge-auto-advance-mode),^TOBY USTANOWITX ILI SBROSITX
REVIM Auto Advance.iSPOLXZUJTE s s (emerge-skip-prefers-mode),^TOBY USTANOWITX
ILI SBROSITX REVIM Skip Prefers.|TI KOMANDY WKL@^A@T REVIM,ESLI IM ZADAN POLO-
VITELXNYJ ARGUMENT,WYKL@^A@T PRI OTRICATELXNOM ARGUMENTE I PEREKL@^A@T REVIM,
ESLI ARGUMENT NE ZADAN.
22.14.3 sOSTOQNIE RAZLI^IQ
rAZLI^IQ W BUFERE OB_EDINENIQ POME^A@TSQ STROKAMI ZNAKOW`v'I`^'.kAVDOE RAZLI^IE
IMEET ODNO IZ SEMI SLEDU@]IH SOSTOQNIJ:
A rAZLI^IE POKAZYWAET WERSI@ A.kOMANDA a WSEGDA PROIZWODIT\TO SOSTOQNIE;
STROKA REVIMA OTOBRAVAET EGO KAK`A'.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 233B rAZLI^IE POKAZYWAET WERSI@ B.kOMANDA b WSEGDA PROIZWODIT\TO SOSTOQNIE;
STROKA REVIMA OTOBRAVAET EGO KAK`B'.
default-A
default-B rAZLI^IE POKAZYWAET WERSI@ A ILI B PO UMOL^ANI@,POTOMU ^TO WY NE SDE-
LALI WYBOR.wSE RAZLI^IQ IZNA^ALXNO IME@T SOSTOQNIE default-A (I TAKIM
OBRAZOM,BUFER OB_EDINENIQ |\TO KOPIQ BUFERA A),KROME TEH,DLQ KOTORYH
\PREDPO^TITELXNA"DRUGAQ ALXTERNATIWA (SMOTRITE NIVE).
kOGDA WY WYBIRAETE RAZLI^IE,EGO SOSTOQNIE ZAMENQETSQ IZ default-A ILI
default-B NA PROSTOE A ILI B.tAKIM OBRAZOM,WYBRANNOE RAZLI^IE NIKOGDA
NE NAHODITSQ W SOSTOQNII default-A ILI default-B,I\TI SOSTOQNIQ NIKOGDA NE
OTOBRAVA@TSQ W STROKE REVIMA.
kOMANDA d a WYBIRAET W KA^ESTWE SOSTOQNIQ PO UMOL^ANI@ default-A,A d b
WYBIRAET default-B.|TO SOSTOQNIE PO UMOL^ANI@ PRIMENQETSQ KO WSEM RAZLI-
^IQM,KOTORYE WY NIKOGDA NE WYBIRALI I DLQ KOTORYH NET PREDPO^TITELXNOJ
ALXTERNATIWY.eSLI WY PRODWIGAETESX POSLEDOWATELXNO,TO RAZLI^IQ,KOTORYE
WY NE WYBIRALI,|\TO TE,^TO NAHODQTSQ POSLE WYBRANNOGO.tAKIM OBRAZOM,
PRODWIGAQSX POSLEDOWATELXNO,WY MOVETE W REZULXTATE SDELATX A WERSIEJ PO
UMOL^ANI@ DLQ NEKOTORYH FRAGMENTOW BUFERA OB_EDINENIQ,A B | WERSIEJ PO
UMOL^ANI@ DLQ OSTALXNYH FRAGMENTOW,ISPOLXZUQ MEVDU RAZLI^IQMI d a I d
b.
prefer-A
prefer-B rAZLI^IE POKAZYWAET SOSTOQNIE A ILI B,POTOMU ^TO ONO PREDPO^TITELXNO.|TO
OZNA^AET,^TO WY NE SDELALI QWNOGO WYBORA,NO POHOVE NA TO,^TO WERNA ODNA
IZ ALXTERNATIW,TAK KAK WTORAQ SOGLASUETSQ S OB]IM PREDKOM.zNA^IT,KOGDA
BUFER A NAHODITSQ W SOGLASII S OB]IM PREDKOM,PREDPO^TITELXNA WERSIQ B,
POTOMU ^TO SKOREE WSEGO\TO I ESTX DEJSTWITELXNOE IZMENENIE.
|TI SOSTOQNIQ POKAZYWA@TSQ W STROKE REVIMA KAK`A*'I`B*'.
combined rAZLI^IE POKAZYWAET KOMBINACI@ SOSTOQNIJ A I B,KAK REZULXTAT KOMAND x c
ILI x C.
kOGDA RAZLI^IE IMEET\TO SOSTOQNIE,KOMANDY a I b NE DELA@T DLQ NEGO NI^EGO,
ESLI TOLXKO WY NE ZADADITE IM ^ISLOWOJ ARGUMENT.
sTROKA REVIMA POKAZYWAET\TO SOSTOQNIE KAK`comb'.
22.14.4 kOMANDY OB_EDINENIQ
|TO KOMANDY OB_EDINENIQ DLQ REVIMA Fast;W REVIME Edit PREDWARQJTE IH NABOROM C-c
C-c:
p wYBIRAET PREDYDU]EE RAZLI^IE.
n wYBIRAET SLEDU@]EE RAZLI^IE.
a wYBIRAET WERSI@ A\TOGO RAZLI^IQ.
b wYBIRAET WERSI@ B\TOGO RAZLI^IQ.
C-u n j wYBIRAET RAZLI^IE NOMER n.
.wYBIRAET RAZLI^IE,SODERVA]EE TO^KU.wY MOVETE ISPOLXZOWATX\TU KOMANDY
W BUFERE OB_EDINENIQ ILI W BUFERAH A I B.
q wYHOD |ZAWER[AET OB_EDINENIE.
C-] pRERYWANIE |WYHODIT I NE SOHRANQET WYWOD.
f pEREHOD W REVIM Fast.(w REVIME Edit\TO NA SAMOM DELE C-c C-c f.)
234 rUKOWODSTWO PO GNU Emacse pEREHOD W REVIM Edit.
l cENTIRIRUET (KAK C-l) WSE TRI OKNA.
- zADAET ^ASTX PREFIKSNOGO ^ISLOWOGO ARGUMENTA.
CIFRA tAKVE ZADAET ^ASTX PREFIKSNOGO ^ISLOWOGO ARGUMENTA.
d a wYBIRAET A KAK WERSI@ PO UMOL^ANI@ DLQ BUFERA OB_EDINENIQ NA^INAQ S\TOGO
MESTA.
d b wYBIRAET B KAK WERSI@ PO UMOL^ANI@ DLQ BUFERA OB_EDINENIQ NA^INAQ S\TOGO
MESTA.
c a kOPIRUET WERSI@ A\TOGO RAZLI^IQ W SPISOK UNI^TOVENIJ.
c b kOPIRUET WERSI@ B\TOGO RAZLI^IQ W SPISOK UNI^TOVENIJ.
i a wSTAWLQET WERSI@ A\TOGO RAZLI^IQ W TO^KE.
i b wSTAWLQET WERSI@ B\TOGO RAZLI^IQ W TO^KE.
m pOME]AET TO^KU I METKU WOKRUG\TOGO RAZLI^IQ.
^ pROKRU^IWAET WSE TRI OKNA WNIZ (KAK M-v).
v pROKRU^IWAET WSE TRI OKNA WWERH (KAK C-v).
< pROKRU^IWAET WSE TRI OKNA WLEWO (KAK C-x <).
> pROKRU^IWAET WSE TRI OKNA WPRAWO (KAK C-x >).
| pEREUSTANAWLIWAET GORIZONTALXNU@ PROKRUTKU WO WSEH TREH OKNAH.
x 1 sUVAET OKNO OB_EDINENIQ DO ODNOJ STROKI.(iSPOLXZUJTE C-u l,^TOBY WOSSTA-
NOWITX EGO POLNYJ RAZMER.)
x c kOMBINIRUET DWE WERSII\TOGO RAZLI^IQ (SM.rAZDEL 22.14.6 [kOMBINIROWANIE
W Emerge],S.235 ).
x f pOKAZYWAET IMENA FAJLOW/BUFEROW,S KOTORYMI RABOTAET Emerge,W OKNE SPRAW-
KI.(iSPOLXZUJTE C-u l,^TOBY WOSSTANOWITX OKNA.)
x j sCEPLQET\TO RAZLI^IE SO SLEDU@]IM.(C-u x j SCEPLQET\TO RAZLI^IE S PRE-
DYDU]IM.)
x s rAZBIWAET\TO RAZLI^IE NA DWA.dO TOGO,KAK PRIMENITX\TU KOMANDU,RASPOLO-
VITE TO^KU W KAVDOM IH BUFEROW W TOM MESTE,GDE WY HOTITE RAZBITX RAZLI^IE.
x t wYBRASYWAET ODINAKOWYE STROKI SWERHU I SNIZU RAZLI^IQ.tAKIE STROKI PO-
QWLQ@TSQ,KOGDA WERSII A I B IDENTI^NY,NO OTLI^A@TSQ OT PERWONA^ALXNOJ
WERSII.
22.14.5 wYHOD IZ Emerge
kOMANDA q (emerge-quit) ZAWER[AET OB_EDINENIE,ZAPISYWAQ REZULXTATY W WYHODNOJ
FAJL,ESLI WY EGO ZADALI.oNA WOSSTANAWLIWAET PRAWILXNOE SODERVIMOE BUFEROW A I
B ILI UNI^TOVAET IH,ESLI ONI BYLI SOZDANY Emerge,I WY NE IZMENQLI IH.oNA TAKVE
WYKL@^AET W BUFERE OB_EDINENIQ KOMANDY Emerge,POSKOLXKU WYPOLNENIE IH TEPERX MOVET
POWREDITX SODERVIMOE RAZLI^NYH BUFEROW.
C-] PRERYWAET OB_EDINENIE.|TO OZNA^AET WYHOD BEZ ZAPISI WYHODNOGO FAJLA.eSLI WY
NE UKAZALI WYHODNOJ FAJL,TO MEVDU PRERYWANIEM I ZAWER[ENIEM OB_EDINENIQ NA SAMOM
DELE NET RAZNICY.
eSLI KOMANDY Emerge BYLI WYZWANY IZ DRUGOJ PROGRAMMY NA lISPE,TO W SLU^AE USPE[-
NOGO ZAWER[ENIQ WOZWRA]AETSQ ZNA^ENIE t,A ESLI WY PRERWALI OB_EDINENIE,WOZWRA]AETSQ
nil.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 23522.14.6 kOMBINIROWANIE DWUH WERSIJ
iNOGDA WY HOTITE SOHRANITX OBA WARIANTA NEKOTOROGO IZMENENIQ.~TOBY SDELATX TAK,
ISPOLXZUJTE x c,KOTORAQ REDAKTIRUET BUFER OB_EDINENIQ SLEDU@]IM OBRAZOM:
#ifdef NEW
WERSIQ IZ BUFERA A
#else/* not NEW */
WERSIQ IZ BUFERA B
#endif/* not NEW */
hOTQ\TOT PRIMER POKAZYWAET USLOWNYE KONSTRUKCII PREPROCESSORA sI,RAZDELQ@]IE DWA
ALXTERNATIWNYE WERSII,WY MOVETE ZADATX ISPOLXZUEMYE STROKI,USTANAWLIWAQ PEREMEN-
NU@ emerge-combine-versions-template PO WA[EMU WYBORU.w\TOJ STROKE`%a'GOWORIT,
GDE NUVNO POME]ATX WERSI@ A,A`%b'GOWORIT,GOWORIT POME]ATX WERSI@ B.uSTANOWKA PO
UMOL^ANI@,KOTORAQ WYDAET REZULXTAT,POKAZANNYJ WY[E,WYGLQDIT SLEDU@]IM TAK:
"#ifdef NEW\n%a#else/* not NEW */\n%b#endif/* not NEW */\n"
22.14.7 tONKIE WOPROSY,SWQZANNYE S Emerge
w PROCESSE OB_EDINENIQ WY NE DOLVNY PYTATXSQ REDAKTIROWATX BUFERY A I B SAMI.
Emerge WREMENNO IZMENQET IH,NO W KONCE WOZWRA]AET W ISHODNOE SOSTOQNIE.
wY MOVETE PROIZWODITX L@BOE ^ISLO OB_EDINENIJ ODNOWREMENNO | TOLXKO NE ISPOLX-
ZUJTE ODIN I TOT VE BUFER W KA^ESTWE WHODNOGO BOLEE ^EM DLQ ODNOGO OB_EDINENIQ,TAK KAK
WREMENNYE IZMENENIQ,SDELANNYE W\TIH BUFERAH,STOLKNULISX BY DRUG S DRUGOM.
zAPUSK Emerge MOVET ZANQTX PRODOLVITELXNOE WREMQ,POSKOLXKU EJ TREBUETSQ POLNO-
STX@ SRAWNITX FAJLY.Emacs NE MOVETE NI^EGO DELATX,POKA diff NE ZAWER[ITSQ.wOZ-
MOVNO,W BUDU]EM KTO-TO IZMENIT Emerge TAK,^TO ONA BUDET DELATX SRAWNENIE W FONOWOM
REVIME,KOGDA WHODNYE FAJLY WELIKI | TOGDA WY MOGLI BY PRODOLVATX W Emacs DRUGIE
DELA,POKA Emerge DEJSTWITELXNO NE BUDET GOTOWA PRINIMATX KOMANDY.
pOSLE PODGOTOWKI OB_EDINENIQ Emerge ZAPUSKAET LOWU[KU emerge-startup-hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).
22.15 rEVIM C I RODSTWENNYE S NIM
|TOT RAZDEL OPISYWAET OSOBYE SREDSTWA,DOSTUPNYE W REVIMAH C,C++,Objective-C,
Java,CORBA IDL I Pike.kOGDA MY GOWORIM\REVIM C I RODSTWENNYE S NIM",MY IMEEM W
WIDU\TI REVIMY.
22.15.1 kOMANDY PEREME]ENIQ W REVIME C
|TOT RAZDEL OPISYWAET KOMANDY DLQ PEREME]ENIQ TO^KI W REVIME C I RODSTWENNYH S
NIM REVIMAH.
C-c C-u pEREME]AET TO^KU NAZAD K SODERVA]EJ EE USLOWNOJ KONSTUKCII PREPROCESSORA,
OSTAWLQQ METKU W TEKU]EJ POZICII.pREFIKSNYJ ARGUMENT RABOTAET W KA^ESTWE
S^ET^IKA POWTOROW.s OTRICATELXNYM ARGUMENTOM,PEREME]AET TO^KU WPERED
K KONCU\TOJ USLOWNOJ KONSTUKCII PREPROCESSORA.pRI PROHODE NAZAD,#elif
RASSMATRIWAETSQ KAK#else,ZA KOTOROJ STOIT#if.pRI PROHODE WPERED#elif
IGNORIRUETSQ.
C-c C-p pEREME]AET TO^KU NAZAD ^EREZ USLOWNU@ KONSTUKCI@ PREPROCESSORA,OSTAWLQQ
METKU W TEKU]EJ POZICII.pREFIKSNYJ ARGUMENT SLUVIT W KA^ESTWE S^ET^IKA
POWTOROW.s OTRICATELXNYM ARGUMENTOM,PEREME]AET WPERED.
236 rUKOWODSTWO PO GNU EmacsC-c C-n pEREME]AET TO^KU WPERED ^EREZ USLOWNU@ KONSTUKCI@ PREPROCESSORA,OSTAWLQQ
METKU W TEKU]EJ POZICII.pREFIKSNYJ ARGUMENT SLUVIT W KA^ESTWE S^ET^IKA
POWTOROW.s OTRICATELXNYM ARGUMENTOM,PEREME]AET NAZAD.
M-a pEREME]AET TO^KU K NA^ALU SAMOGO WNUTRENNEGO OPERETORA sI (c-beginning-
of-statement).eSLI TO^KA UVE NAHODITSQ W NA^ALE OPERATORA,PEREME]AET K
NA^ALU PREDYDU]EGO.s PREFIKSNYM ARGUMENTOM n,PEREME]AET NAZAD NA n пЂЂ
1 OPERATOROW.
eSLI TO^KA NAHODITSQ WNUTRI STROKI ILI KOMMENTARIQ ILI POSLE KOMMENTARIQ
(MEVDU NIMI TOLXKO PROPUSK),\TA KOMANDA PEREME]AET PO PREDLOVENIQM,A NE
PO OPERATORAM.
eSLI\TA FUNKCIQ WYZWANA IZ PROGRAMMY,ONA PRINIMAET TRI NEOBQZATELXNYH
ARGUMENTA:PREFIKSNYJ ^ISLOWOJ ARGUMENT,PREDEL POZICII W BUFERE (NE PE-
REME]ATXSQ NAZAD DALEE\TOJ POZICII) I FLAG,KOTORYJ GOWORIT,NUVNO LI
DWIGATXSQ PO PREDLOVENIQM WNUTRI KOMMENTARIQ.
M-e pEREME]AET TO^KU K KONCU SAMOGO WNUTRENNEGO OPERETORA sI;KAK M-a,NO PERE-
ME]AET W PROTIWOPOLOVNOM NAPRAWLENII (c-end-of-statement).
M-x c-backward-into-nomenclature
pEREME]AET TO^KU NAZAD K NA^ALU SEKCII ILI SLOWA W NOTACII sI++.s PRE-
FIKSNYM ARGUMENTOM n,PEREME]AET n RAZ.eSLI n OTRICATELXNO,PEREME]AET
WPERED.nOTACIQ sI++ OBOZNA^AET ZAPISX IMEN SIMWOLOW W STILE iMENOWANIE-
sIMWOLOWwsME[ANNOMrEGISTREibEZpOD^ERKOW;KAVDAQ ZAGLAWNAQ BUKWA NA^I-
NAET SEKCI@ ILI SLOWO.
w PROEKTE GNU MY REKOMENDUEM ISPOLXZOWATX DLQ RAZDELENIQ SLOW W IDENTI-
FIKATORAH sI ILI sI++ POD^ERKI,A NE IZMENENIE REGISTRA.
M-x c-forward-into-nomenclature
pEREME]AET TO^KU NAZAD K KONCU SEKCII ILI SLOWA W NOTACII sI++.s PREFIKS-
NYM ARGUMENTOM n,PEREME]AET n RAZ.
22.15.2 |LEKTRIK-ZNAKI W sI
w REVIME sI I RODSTWENNYH S NIM NEKOTORYE PE^ATNYE ZNAKI QWLQ@TSQ\\LEKTRI^E-
SKIMI"| POMIMO WSTAWKI SAMIH SEBQ,ONI TAKVE OBNOWLQ@T OTSTUP W TEKU]EJ STROKE I
MOGUT WSTAWLQTX PEREWODY STROK.|TO SREDSTWO UPRAWLQETSQ PEREMENNOJ c-auto-newline.
\|LEKTRIK"-ZNAKI |\TO {,},:,#,;,,,<,>,/,*,( I ).
|LEKTRIK-ZNAKI WSTAWLQ@T PEREWODY STROK,TOLXKO ESLI WKL@^ENO SREDSTWO auto-newline
(\TO OTOBRAVAETSQ W STROKE REVIMA KAK`/a'POSLE IMENI REVIMA).|TO SREDSTWO UPRAWLQ-
ETSQ PEREMENNOJ c-auto-newline.wY MOVETE WKL@^ITX ILI WYKL@^ITX EGO KOMANDOJ C-c
C-a:
C-c C-a pEREK@^AET AWTOMATI^ESKU@ WSTAWKU PEREWODOW STROK (c-toggle-auto-state).
s PREFIKSNYM ARGUMENTOM,\TA KOMANDA WKL@^AET TAKU@ WOZMOVNOSTX,ESLI
ARGUMENT POLOVITELEN,I WYKL@^AET,ESLI ARGUMENT OTRICATELEN.
dWOETO^IE |\TO\LEKTRIK-ZNAK,POSKOLXKU\TO PODHODIT DLQ ODNOGO DWOETO^IQ.nO
\TO NEUDOBNO,KOGDA WY HOTITE WSTAWITX DWOJNOE DWOETO^IE W sI++.wY MOVETE WSTAWITX
DWOJNOE DWOETO^IE W sI++ BEZ WSTAWKI OTSTUPA ILI PEREWODA STROKI,NABIRAQ C-c:.
C-c:wSTAWLQET W TO^KE OPERATOR OBLASTI WIDIMOSTI,DWOJNOE DWOETO^IE,NE IZMENQQ
OTSTUP STROKI I NE DOBAWLQQ NOWYH STROK (c-scope-operator).
|LEKTRIK-KL@^#OBNOWLQET OTSTUP STROKI,ESLI ON OKAZALSQ W NA^ALE DIREKTI-
WY PREPROCESSORA.|TO PROISHODIT,KOGDA ZNA^ENIE c-electric-pound-behavior RAWNO
gLAWA 22:rEDAKTIROWANIE PROGRAMM 237(alignleft).wY MOVETE WYKL@^ITX\TU WOZMOVNOSTX,USTANAWLIWAQ c-electric-pound-
behavior W nil.
pEREMENNAQ c-hanging-braces-alist UPRAWLQET WSTAWKOJ PEREWODOW STROK DO I POSLE
WSTAWLENNYH FIGURNYH SKOBOK.|TO ASSOCIATIWNYJ SPISOK S\LEMENTAMI W TAKOJ FORME:
(SINTAKSI^ESKIJ-SIMWOL.SPISOK-PS).bOLX[INSTWO SINTAKSI^ESKIH SIMWOLOW,PERE^IS-
LENNYH W c-offsets-alist,IME@T SMYSL I ZDESX.
sPISOK SPISOK-PS MOVET SODERVATX ODIN IZ SIMWOLOW before I after,LIBO OBA,ILI\TO
MOVET BYTX nil.kOGDA WSTAWLQETSQ FIGURNAQ SKOBKA,W c-hanging-braces-alist I]ETSQ
OPREDELQEMYJ EJ SINTAKSI^ESKIJ KONTEKST;ESLI ON NAJDEN,ISPOLXZUETSQ SPISOK-PS DLQ
WYQSNENIQ TOGO,GDE NUVNO WSTAWITX PEREWOD STROKI:PERED FIGURNOJ SKOBKOJ,POSLE NEE
ILI I DO,I POSLE.eSLI NI^EGO NE NAJDENO,PO UMOL^ANI@ WSTAWLQET PEREWOD STROKI DO I
POSLE FIGURNYH SKOBOK.
pEREMENNAQ c-hanging-colons-alist UPRAWLQET WSTAWKOJ PEREWODOW STROK DO I PO-
SLE WSTAWLENNYH DWOETO^IJ.|TO ASSOCIATIWNYJ SPISOK,^XI\LEMENTY IME@T FORMU
(SINTAKSI^ESKIJ-SIMWOL.SPISOK-PS).sPISOK SPISOK-PS MOVET SODERVATX L@BYE IZ SIM-
WOLOW before ILI after,LIBO OBA,ILI\TO MOVET BYTX nil.
kOGDA WSTAWLQETSQ DWOETO^IE,W\TOM cPISKE I]ETSQ OPREDELQEMYJ IM SINTAKSI^ESKIJ
SIMWOL,I ESLI ON NAJDEN,ISPOLXZUETSQ SPISOK-PS DLQ WYQSNENIQ TOGO,GDE NUVNO WSTAWITX
PEREWOD STROKI:PERED DWOETO^IQ,POSLE NEGO ILI I TAM,I TAM.eSLI\TOT SIMWOL NE NAJDEN
W SPISKE,PEREWODY STROK NE WSTAWLQETSQ.
|LEKTRIK-ZNAKI MOGUT TAKVE AWTOMATI^ESKI UDALQTX PEREWODY STROK,KOGDA WKL@^ENO
SREDSTWO DLQ IH AWTOMATI^ESKOJ WSTAWKI.|TO DELAET AWTOMATI^ESKU@ WSTAWKU PEREWODOW
STROK BOLEE PRIEMLIMOJ,PUTEM UDALENIQ PEREWODOW STROK W BOLX[INSTWE SLU^AEW,KOGDA
\TO BYLO BY VELATELXNO;USTANAWLIWAQ PEREMENNU@ c-cleanup-list,WY MOVETE UKAZATX
W KAKIH SLU^AQH\TO PROISHODITX.zNA^ENIE\TOJ PEREMENNOJ |\TO SPISOK SIMWOLOW,
KAVDYJ IZ KOTORYH OPISYWAET ODIN SLU^AJ WOZMOVNOGO UDALENIQ PEREWODA STROKI.wOT
PERE^ENX WOSPRINIMAEMYH SIMWOLOW I IH ZNA^ENIJ:
brace-catch-brace
sVIMAET KONSTRUKCI@`} catch (USLOWIE) {',POME]AQQ EE CELIKOM NA ODNU
STROKU.sVATIE PROISHODIT,KOGDA WY NABIRAETE`{',ESLI MEVDU FIGURNYMI
SKOBKAMI NET NI^EGO,KROME catch I USLOWIQ.
brace-else-brace
sVIMAET KONSTRUKCI@`} else {',POME]AQQ EE CELIKOM NA ODNU STROKU.sVA-
TIE PROISHODIT,KOGDA WY NABIRAETE`{'POSLE else,NO TOLXKO ESLI MEVDU FI-
GURNYMI SKOBKAMI I else NET NI^EGO,KROME PROPUSKOW.
brace-elseif-brace
sVIMAET KONSTRUKCI@`} else if (...) {',POME]AQQ EE CELIKOM NA ODNU STRO-
KU.sVATIE PROISHODIT,KOGDA WY NABIRAETE`{',ESLI MEVDU`}'I`{'NET NI^EGO,
KROME PROPUSKOW,NE S^ITAQ\TI KL@^EWYE SLOWA I USLOWIE DLQ if.
empty-defun-braces
sVIMAET FIGURNYE SKOBKI PUSTOGO OPREDELENIQ FUNKCII,POME]AQ IH NA OD-
NU STROKU.sVATIE PROISHODIT,KOGDA WY NABIRAETE ZAKRYWA@]U@ FIGURNU@
SKOBKU.
defun-close-semi
sVIMAET DWOETO^IE I struct ILI PODOBNYJ TIP OB_QWLENIQ,POME]AQ DWOE-
TO^IE NA TU VE STROKU,GDE STOIT ZAKRYWA@]AQ FIGURNAQ SKOBKA.sVATIE
PROISHODIT,KOGDA WY WWODITE DWOETO^IE.
list-close-comma
sVIMAET ZAPQTYE,SLEDU@]IE POSLE FIGURNYH SKOBOK W MASSIWAH I SLOVNYH
INICIALIZACIQH.sVATIE PROISHODIT,KOGDA WY NABIRAETE ZAPQTYE.
238 rUKOWODSTWO PO GNU Emacsscope-operator
sVIMAET DWOJNOE DWOETO^IE,KOTOROE MOVET OBOZNA^ATX OPERATOR OBLASTI WI-
DIMOSTI W sI++,POME]AQ\TI DWOETO^IQ WMESTE.sVATIE PROISHODIT,KOGDA WY
NABIRAETE WTOROE DWOETO^IE,NO TOLXKO ESLI ONI RAZDELENY TOLXKO PROPUSKOM.
22.15.3 sREDSTWO GOLODNOGO UDALENIQ W sI
kOGDA WKL@^ENO SREDSTWO GOLODNOGO UDALENIQ (\TO POKAZYWAETSQ W STROKE REVIMA KAK
`/h'ILI`/ah'POSLE IMENI REVIMA),ODNA KOMANDA
hDELi UDALQET WESX PRED[ESTWU@]IJ
PROPUSK,A NE TOLXKO ODNI PROBEL.~TOBY WKL@^ATX I WYKL@^ATX\TU WOZMOVNOSTX,IS-
POLXZUJTE C-c C-d:
C-c C-d wKL@^AET ILI WYKL@^AET SREDSTWO GOLODNOGO UDALENIQ (c-toggle-hungry-
state).s PREFIKSNYM ARGUMENTOM,\TA KOMANDA WKL@^AET TAKU@ WOZMOVNOSTX,
ESLI ARGUMENT POLOVITELEN,I WYKL@^AET,ESLI ARGUMENT OTRICATELEN.
C-c C-t pEREKL@^AET SREDSTWA AWTOMATI^ESKOJ WSTAWKI PEREWODA STROKI I GOLODNOGO
UDALENIQ ODNOWREMENNO (c-toggle-auto-hungry-state).
pEREMENNAQ c-hungry-delete-key GOWORIT,WKL@^ENO LI SREDSTWO GOLODNOGO UDALENIQ.
22.15.4 dRUGIE KOMANDY REVIMA C
C-M-h pOME]AET METKU W KONCE OPREDELENIQ FUNKCII,A TO^KU W NA^ALE (c-mark-
function).
M-q zAPOLNQET ABZAC,OBRABATYWAQ KOMMENTARII sI I sI++ (c-fill-paragraph).
eSLI KAKAQ-LIBO ^ASTX TEKU]EJ STROKI QWLQETSQ KOMMENTARIEM ILI NAHODITSQ
WNUTRI KOMMENTARIQ,\TA KOMANDA ZAPOLNQET\TOT KOMMENTARIJ ILI EGO ABZAC,
SOHRANQQ OTSTUPY I OGRANI^ITELI KOMMENTARIQ.
C-c C-e zAPUSKAET PREPROCESSOR sI DLQ TEKSTA W OBLASTI I POKAZYWAET REZULXTAT,KO-
TORYJ WKL@^AET RASKRYTIQ WSEH WYZOWOW MAKROSOW (c-macro-expand).tEKST
BUFERA,NAPISANNYJ PERED OBLASTX@,TAKVE PEREDAETSQ PREPROCESSORU,TAK KAK
TAM MOGUT BYTX OPREDELENIQ MAKROSOW,NO WYWOD DLQ\TOJ ^ASTI NE POKAZYWA-
ETSQ.
kOGDA WY OTLAVIWAETE ISPOLXZU@]IJ MAKROSY KOD NA sI,BYWAET TRUDNO TO^-
NO PONQTX,KAK RASKRYWA@TSQ MAKROSY.s\TOJ KOMANDOJ WAM NE NUVNO\TO
PONIMATX,WY MOVETE WIDETX RASKRYTIQ.
C-c C-\wSTAWLQET ILI WYRAWNIWAET ZNAKI`\'W KONCAH STROK OBLASTI (c-backslash-
region).|TO POLEZNO POSLE NAPISANIQ ILI REDAKTIROWANIQ OPREDELENIQ MAKRO-
SA sI.
eSLI STROKA UVE ZAWER[AETSQ ZNAKOM`\',\TA KOMANDA PODSTRAIWAET RAZMER
PROPUSKA PERED NIM.w PROTIWNOM SLU^AE ONA WSTAWLQET NOWYJ`\'.oDNAKO,
POSLEDNQQ STROKA OBLASTI RASSMATRIWAETSQ OSOBO;W NEE NE WSTAWLQETSQ`\',A
ESLI ESLI\TOT ZNAK TAM STOIT,TO ON UDALQETSQ.
M-x cpp-highlight-buffer
pODSWE^IWAET ^ASTI TEKSTA W SOOTWETSTWII S USLOWNYMI KONSTRUKCIQMI PREPRO-
CESSORA.|TA KOMANDA POKAZYWAET E]E ODIN BUFER S IMENEM`*CPP Edit*',KO-
TORYJ SLUVIT W KA^ESTWE GRAFI^ESKOGO MEN@ DLQ WYBORA SPOSOBA OTOBRAVENIQ
KONKRETNYH WIDOW USLOWNYH KONSTRUKCIJ I IH SODERVIMOGO.pOSLE IZMENENIQ
RAZLI^NYH USTANOWOK ]ELKNITE NA`[A]pply these settings'(ILI PEREJDITE W
\TOT BUFER I NAVMITE a),^TOBY SOOTWETSTWENNO OBNOWITX PODWETKU W BUFERE S
REVIMOM C.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 239C-c C-s pOKAZYWAET INFORMACI@ O SINTAKSISE TEKU]EJ ISHODNOJ STROKI (c-show-
syntactic-information).|TO TA INFORMACIQ,KOTORAQ UPRAWLQET OTSTUPOM
STROKI.
22.15.5 kOMMENTARII W REVIMAH C
rEVIM C I RODSTWENNYE REVIMY ISPOLXZU@T NESKOLXKO PEREMENNYH DLQ UPRAWLENIQ
FORMATOM KOMMENTARIEW.
c-comment-only-line-offset
dOPOLNITELXNYJ SDWIG DLQ STROKI,KOTORAQ SODERVIT TOLXKO NA^ALO KOMMEN-
TARIQ.|TO MOVET BYTX LIBO ^ISLO,LIBO PARA W FORME (NE-PRIWQZANNYJ-SDWIG
.PRIWQZANNYJ-SDWIG),GDE NE-PRIWQZANNYJ-SDWIG |\TO RAZMER SDWIGA,PRIDA-
WAEMYJ POLNOSTRO^NYM KOMMENTARIQM,NA^INA@]IMSQ NE W NULEWOM STOLBCE,A
PRIWQZANNYJ-SDWIG |\TO RAZMER SDWIGA,DAWAEMYJ POLNOSTRO^NYM KOMMENTA-
RIQM,NA^INA@]IMSQ W NULEWOM STOLBCE.pROSTOE ^ISLO W KA^ESTWE ZNA^ENIQ
\KWIWALENTNO (ZNA^ENIE.0).
c-comment-start-regexp
|TA LOKALXNAQ DLQ BUFERA PEREMENNAQ UKAZYWAET,KAK RASPOZNAWATX NA^ALO
KOMMENTARIQ.
c-hanging-comment-ender-p
eSLI\TA PEREMENNAQ RAWNA nil,c-fill-paragraph OSTAWLQET ZAWER[A@]U@
STROKU DLQ BLOKA KOMMENTARIQ NA OTDELXNOJ STROKE.zNA^ENIE PO UMOL^ANI@
RAWNO t,^TO POME]AET ZAKRYWA@]IJ OGRANI^ITELX KOMMENTARIQ`*/'W KONCE
POSLEDNEJ STROKI TEKSTA KOMMENTARIQ.
c-hanging-comment-starter-p
eSLI\TA PEREMENNAQ RAWNA nil,c-fill-paragraph OSTAWLQET NA^INA@]IJ
OGRANI^ITELX BLOKA KOMMENTARIQ NA OTDELXNOJ STROKE.zNA^ENIE PO UMOL^A-
NI@ RAWNO t,^TO POME]AET OTKRYWA@]IJ OGRANI^ITELX KOMMENTARIQ`/*'W
NA^ALE PERWOJ STROKI TEKSTA KOMMENTARIQ.
22.16 rEVIM Fortran
rEVIM Fortran PREDOSTAWLQET SPECIALXNYE KOMANDY DWIVENIQ DLQ OPERATOROW I PODPRO-
GRAMM NA fORTRANE I KOMANDY OTSTUPOW,KOTORYE PONIMA@T FORTRANOWSKIE SOGLA[ENIQ O
WLOVENNOSTI,NOMERA STROK I OPERATORY PRODOLVENIQ.rEVIM Fortran IMEET SWOJ SOBSTWEN-
NYJ REVIM Auto Fill,KOTORYJ OBRYWAET DLINNYE STROKI NA PRAWILXNYE S TO^KI ZRENIQ
fORTRANA STROKI PRODOLVENIQ.
pREDUSMATRIWA@TSQ SPECIALXNYE KOMANDY DLQ KOMMENTARIEW,TAK KAK KOMMENTARII W
fORTRANE NE POHOVI NA KOMMENTARII W DRUGIH QZYKAH.wOZMOVNY WSTROENNYE SOKRA]ENIQ,
KOTORYE UBYSTRQ@T NABOR,KOGDA WY WSTAWLQETE KL@^EWYE SLOWA fORTRANA.
iSPOLXZUJTE M-x fortran-mode,^TOBY PEREKL@^ITXSQ W\TOT REVIM.|TA KOMANDA ZA-
PUSKAET LOWU[KU fortran-mode-hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).
22.16.1 kOMANDY DWIVENIQ
rEVIM Fortran OBESPE^IWAET SPECIALXNYE KOMANDY DLQ DWIVENIQ ^EREZ PODPROGRAMMY
(FUNKCII I PROCEDURY) I ^EREZ OPERATORY.eSTX TAKVE KOMANDA DLQ USTANOWKI OBLASTI
WOKRUG PODPROGRAMM,UDOBNAQ DLQ IH UNI^TOVENIQ I PEREME]ENIQ.
C-M-a pEREMESTITX TO^KU NA NA^ALO PODPROGRAMMY (beginning-of-fortran-
subprogram).
240 rUKOWODSTWO PO GNU EmacsC-M-e pEREMESTITX TO^KU NA KONEC PODPROGRAMMY (end-of-fortran-subprogram).
C-M-h pOSTAWITX TO^KU W NA^ALE PODPROGRAMMY,A METKU W EE KONCE (mark-fortran-
subprogram).
C-c C-n pEREJTI NA NA^ALO TEKU]EGO ILI SLEDU@]EGO OPERATORA (fortran-next-
statement).
C-c C-p pEREJTI NA KONEC TEKU]EGO ILI PREDYDU]EGO OPERATORA (fortran-previous-
statement).
22.16.2 oTSTUPY W fORTRANE
dLQ SOZDANIQ OTSTUPOW W PROGRAMMAH NA fORTRANE NEOBHODIMY SPECIALXNYE KOMANDY I
SREDSTWA,^TOBY BYTX UWERENNYM W TOM,^TO RAZLI^NYE SINTAKSI^ESKIE EDINICY (NOMERA
STROK,UKAZATELI KOMMENTARIEW I FLAGI PRODOLVENIQ STROK) POQWLQ@TSQ W TEH STOLBCAH,
KOTORYE TREBUET STANDART fORTRANA.
22.16.2.1 kOMANDY OTSTUPA W fORTRANE
hTABi sDELATX OTSTUP TEKU]EJ STROKI (fortran-indent-line).
C-j sDELATX OTSTUP TEKU]EJ STROKI I NA^ATX NOWU@ STROKU S OTSTUPOM (fortran-
indent-new-line).
C-M-j pRERWATX TEKU]U@ STROKU I PODGOTOWITX STROKU PRODOLVENIQ.
M-^ sOEDINITX\TU STROKU SO SLEDU@]EJ.
C-M-q sDELATX OTSTUP WO WSEH STROKAH PODPROGRAMMY,W KOTOROJ NAHODITSQ TO^KA
(fortran-indent-subprogram).
rEVIM Fortran PEREOPREDELQET hTABi TAK,^TOBY ON DELAL NOWYJ OTSTUP W TEKU]EJ STROKE
DLQ fORTRANA (fortran-indent-line).nOMERA STROK I MARKERY PRODOLVENIQ IME@T OT-
STUP DO TREBUEMYH STOLBCOW,A TELO OPERATORA POLU^AET NEZAWISIMYJ OTSTUP,OSNOWANNYJ
NA EGO WLOVENNOSTI W PROGRAMME.
kL@^ C-j ZAPUSKAET KOMANDU fortran-indent-new-line,KOTORAQ ZANOWO DELAET OTSTUP W
TEKU]EJ STROKE,A ZATEM SOZDAET NOWU@ STROKU I DEALET OTSTUP W NEJ.|TA KOMANDA POLEZNA
DLQ SOZDANIQ NOWOGO OTSTUPA W ZAKRYWA@]EM OPERATORE CIKLOW`do'I DRUGIH BLOKOW PERED
NA^ALOM NOWOJ STROKI.
kL@^ C-M-q ZAPUSKAET fortran-indent-subprogram,KOMANDU DLQ SOZDANIQ OTSTUPA WO
WSEH STROKAH FORTRANOWSKOJ PODPROGRAMMY (FUNKCII I PROCEDURY),cODERVA]EJ TO^KU.
kL@^ C-M-j ZAPUSKAET fortran-split-line,KOTORAQ RAZRYWAET STROKU SOOTWETSTWU@-
]IM fORTRANU SPOSOBOM.w STROKE,KOTORAQ NE QWLQETSQ KOMMENTARIEM,WTORAQ POLOWINA
STANOWITSQ STROKOJ PRODOLVENIQ I IMEET SOOTWETSTWENNYJ OTSTUP.w STROKE KOMMENTARIQ
OBE POLOWINY STANOWQTSQ OTDELXNYMI STROKAMI KOMMENTARIQ.
M-^ ZAPUSKAET KOMANDU fortran-join-line,KOTORAQ BOLEE ILI MENEE QWLQETSQ OBRA]E-
NIEM fortran-split-line.oNA OB_EDINQET TEKU]U@ I PRED[ESTWU@]U@ STROKI PODHODQ-
]IM DLQ fORTRANA SPOSOBOM.
22.16.2.2 sTROKI PRODOLVENIQ
bOLX[ISTWO SOWREMENNYH KOMPILQTOROW fORTRANA RAZRE[A@T DWA SPOSOBA NAPISANIQ
STROK PRODOLVENIQ.eSLI PERWYJ NEPROBELXNYJ ZNAK NA STROKE NAHODITSQ W STOLBCE 5,TO
gLAWA 22:rEDAKTIROWANIE PROGRAMM 241\TA STROKA S^ITAETSQ PRODOLVENIEM PREDYDU]EJ.mY NAZYWAEM\TO FIKSIROWANNYM FOR-
MATOM;(w GNU Emacs MY WSEGDA OST^ITYWAEM STOLBCY OT NULQ.) pEREMENNAQ fortran-
continuation-string UKAZYWAET,KAKOJ ZNAK NADO POME]ATX W STOLBEC 5.sTROKA,NA^I-
NA@]AQSQ SO ZNAKA TABULQCII,ZA KOTORYM STOIT L@BAQ CIFRA,KROME`0',TAKVE QWLQETSQ
STROKOJ PRODOLVENIQ.|TOT STILX PRODOLVENIQ MY NAZYWAEM TABULIROWANNYM FORMATOM.
rEVIM Fortran MOVET DELATX STROKI PRODOLVENIQ W OBOIH STILQH,NO WY DOLVNY UKA-
ZATX,KAKOJ WY PREDPO^ITAETE.|TIM WYBOROM UPRAWLQET ZNA^ENIE PREEMENNOJ indent-
tabs-mode:nil OZNA^AET FIKSIROWANNYJ FORMAT,A OTLI^NOE OT nil | TABULIROWANNYJ.
wY MOVETE SUDITX O DEJSTWU@]IM W DANNYJ MOMENT FORMATE PO NALI^I@ ILI OTSUTSTWI@
W STROKE REVIMA SLOWA`Tab'.
eSLI TEKST NA STROKE NA^INAETSQ S PRINQTOGO W fORTRANE MARKERA PRODOLVENIQ`$'ILI S
NEPROBELXNOGO ZNAKA W STOLBCE 5,REVIM Fortran S^ITAET\TU STROKU STROKOJ PRODOLVENIQ.
kOGDA WY DELAETE W STROKE PRODOLVENIQ OTSTUP S POMO]X@ hTABi,\TA STROKA PRIWODITSQ K
TEKU]EMU STIL@ PRODOLVENIQ.kOGDA WY RAZBIWAETE FORTRANOWSKIJ OPERATOR S POMO]X@
C-M-j,NA NOWOJ STROKE SOZDAETSQ MARKER PRODOLVENIQ W SOOTWESTWII S\TIM STILEM.
uSTANOWKA STILQ PRODOLVENIQ ZATRAGIWAET NEKOTORYE DRUGIE ASPEKTY REDAKTIROWANIQ
W REVIME Fortran.pRI FIKSIROWANNOM FORMATE,MINIMALXNYJ NOMER STOLBACA DLQ TELA
OPERATORA RAWEN [ESTI.sTROKI WNUTRI FORTRANOWSKIH BLOKOW,OTSTUP W KOTORYH BOLX-
[E\TOGO ^ISLA,WSEGDA ISPOLXZU@T DLQ PROPUSKOW TOLXKO PROBELY.pRI TABULIROWANNOM
FORMATE,MINIMALXNYJ NOMER STOLBCA DLQ TELA OPERATORA RAWEN WOSXMI,I PROPUSK PERED
STOLBCOM 8 WSEGDA SOSTOIT IZ ODNOGO ZNAKA TABULQCII.
kOGDA WY WKL@^AETE REVIM Fortran DLQ SU]ESTWU@]EGO FAJLA,ON STARAETSQ WY^ISLITX
PODHODQ]IJ STILX PRODOLVENIQ AWTOMATI^ESKI,ISHODQ IZ SODERVIMOGO\TOGO FAJLA.wY-
BOR OPREDELQET PERWAQ STROKA,KOTORAQ NA^INAETSQ S TABULQCII ILI [ESTI PROBELOW.pERE-
MENNAQ fortran-analyze-depth OPREDELQET,SKOLXKO STROK NUVNO RASSMOTRETX (OT NA^ALA
FAJLA);ESLI NI ODNA IH\TIH STROK NE UKAVET STILX,TO ON OPREDELQETSQ PO PEREMENNOJ
fortran-tab-mode-default.eSLI ONA RAWNA nil,TO ISPOLXZUETSQ FIKSIROWANNYJ FORMAT,
OTLI^NOE OT nil ZNA^ENIE WELIT ISPOLXZOWATX TABULIROWANNYJ FORMAT.
22.16.2.3 nOMERA STROK
eSLI PERWYM NEPROBELXNYM TEKSTOM NA STROKE QWLQETSQ ^ISLO,REVIM Fortran PREDPO-
LAGAET,^TO\TO NOMER STROKI,I PEREME]AET EGO K STOLBCAM OT 0 DO 4.(w GNU Emacs
STOLBCY WSEGDA OTS^ITYWA@TSQ OT NULQ.)
nOMERA STROK IZ ^ETYREH I MENEE CIFR OBY^NO IME@T OTSTUP NA ODIN PROBEL.|TO
UPRAWLQETSQ PEREMENNOJ fortran-line-number-indent,ZNA^ENIE KOTOROJ QWLQETSQ MAKSI-
MALXNYM OTSTUPOM,KOTORYJ MOVET IMETX NOMER STROKI.nOMERA STROK POLU^A@T TAKOJ
OTSTUP,^TOBY ONI KORREKTNO OKAN^IWALISX W ^ETWERTOM STOLBCE,ESLI PRI\TOM NE TREBU-
ETSQ OTSTUP BOLX[E MAKSIMALXNOGO.pO UMOL^ANI@ ZNA^ENIE PEREMENNOJ RAWNO 1.
pROSTAQ WSTAWKA NOMERA STROKI DOSTATO^NA DLQ TOGO,^TOBY OTSTUP U NEGO SOOTWET-
STWOWAL\TIM PRAWILAM.kAK TOLXKO WSTAWLQETSQ KAVDAQ CIFRA,OTSTUP PERES^ITYWAETSQ.
~TOBY WYKL@^ITX\TO SWOJSTWO,USTANOWITE PEREMENNU@ fortran-electric-line-number
W nil.tOGDA WSTAWKA NOMEROW STROK BUDET POHOVA NA WSTAWKU WSEGO OSTALXNOGO.
22.16.2.4 sINTAKSI^ESKIE SOGLA[ENIQ
rEVIM Fortran PREDPOLAGAET,^TO WY SLEDUETE OPREDELENNYM SOGLA[ENIQM,KOTORYE
UPRO]A@T ZADA^U PONIMANIQ PROGRAMM NA fORTRANE W DOSTATO^NOJ STEPENI,^TOBY DELATX
W NIH PRAWILXNYJ OTSTUP:
пЂЏ dWA WLOVENNYH CIKLA`do'NIKOGDA NE IME@T OB]EGO OPERATORA`continue'.
пЂЏ kL@^EWYE SLOWA fORTRANA,TAKIE KAK`if',`else',`then',`do'I DRUGIE,NAPISANY BEZ
WNUTRENNIH PROBELOW I RAZRYWOW STROK.
242 rUKOWODSTWO PO GNU EmacskOMPILQTORY fORTRANA OBY^NO IGNORIRU@T WSE PROBELXNYE ZNAKI WNE STROKOWYH KON-
STANT,NO REVIM Fortran NE RASPOZNAET\TI KL@^EWYE SLOWA,ESLI ONI RAZORWANY.kON-
STRUKCII WRODE`else if'ILI`end do'DOPUSTIMY,NO WTOROE SLOWO DOLVNO BYTX NA TOJ
VE STROKE,^TO I PERWOE,A NE NA STROKE PRODOLVENIQ.
eSLI WY NE SLEDUETE\TIM SOGLA[ENIQM,KOMANDY OTSTUPA MOGUT SDELATX OTSTUP W NEKOTO-
RYH STROKAH NE\STETI^NO.oDNAKO,PRAWILXNAQ PROGRAMMA NA fORTRANE BUDET SOHRANQTX
SWOE ZNA^ENIE PRI NOWYH OTSTUPAH,DAVE ESLI\TI SOGLA[ENIQ NE SOBL@DALISX.
22.16.2.5 pEREMENNYE DLQ UPRAWLENIQ OTSTUPAMI
nESKOLXKO DOPOLNITELXNYH PEREMENNYH UPRAWLQ@T TEM,KAK RABOTAET OTSTUP W fOR-
TRANE:
fortran-do-indent
dOPOLNITELXNYJ OTSTUP W PREDELAH KAVDOGO UROWNQ OPERATORA`do'(PO UMOL^A-
NI@ 3).
fortran-if-indent
dOPOLNITELXNYJ OTSTUP W PREDELAH KAVDOGO UROWNQ OPERATORA`if'(PO UMOL^A-
NI@ 3).|TO VE ZNA^ENIE ISPOLXZUETSQ DLQ DOPOLNITELXNOGO OTSTUPA KAVDOGO
UROWNQ OPERATORA fORTRANA90`where'.
fortran-structure-indent
dOPOLNITELXNYJ OTSTUP W PREDELAH KAVDOGO UROWNQ OPERATOROW`structure',
`union'ILI`map'(PO UMOL^ANI@ 3).
fortran-continuation-indent
dOPOLNITELXNYJ OTSTUP DLQ TEL STROK PRODOLVENIQ (PO UMOL^ANI@ 5).
fortran-check-all-num-for-matching-do
eSLI\TO nil,KOMANDY OTSTUPA S^ITA@T,^TO KAVDYJ OPERATOR`do'KON^AETSQ
NA OPERATORE`continue'.pO\TOMU PRI WY^ISLENII OTSTUPA DLQ OPERATORA,
OTLI^NOGO OT`continue',ONI MOGUT SOKRATITX WREMQ,NE WYPOLNQQ W\TOM MESTE
PROWERKU OKON^ANIQ OPERATORA`do'.eSLI\TO NE nil,TO KOMANDY OTSTUPA DLQ
L@BOGO PRONUMEROWANNOGO OPERATORA DOLVNY PROWERQTX,NE ZAKAN^IWAETSQ LI
TAM`do'.pO UMOL^ANI@ ZNA^ENIE RAWNO`nil'.
fortran-blink-matching-if
eSLI\TO t,SOZDANIE OTSTUPA DLQ OPERATORA`endif'NA MGNOWENIE PEREME]AET
KURSOR K PARNOMU OPERATORU`if',^TOBY WY WIDELI,GDE ON NAHODITSQ.pO
UMOL^ANI@ nil.
fortran-minimum-statement-indent-fixed
mINIMALXNYJ OTSTUP DLQ OPERATOROW fORTRANA PRI ISPOLXZOWANII FIKSIRO-
WANNOGO FORMATA DLQ STROK PRODOLVENIQ.tELA OPERATOROW NIKOGDA NE POLU^A-
@T OTSTUP MENEE\TOGO.pO UMOL^ANI@\TO 6.
fortran-minimum-statement-indent-tab
mINIMALXNYJ OTSTUP DLQ OPERATOROW fORTRANA PRI ISPOLXZOWANII TABULIRO-
WANNOGO FORMATA STROK PRODOLVENIQ.tELA OPERATOROW NIKOGDA NE POLU^A@T
OTSTUP MENEE\TOGO.pO UMOL^ANI@\TO 8.
22.16.3 kOMMENTARII W fORTRANE
oBY^NYE KOMANDY Emacs DLQ KOMMENTARIEW PREDPOLAGA@T,^TO KOMMENTARII MOGUT
SLEDOWATX ZA STROKOJ KODA.w fORTRANE STANDARTNYJ SINTAKSIS KOMMENTARIEW TREBUET
OTWEDENIQ STROKI CELIKOM TOLXKO POD KOMMENTARIJ.pO\TOMU REVIM Fortran ZAMENQET
STANDARTNYE KOMANDY KOMMENTARIEW W Emacs I OPREDELQET NEKOTORYE NOWYE PEREMENNYE.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 243rEVIM Fortran TAKVE MOVET OBRABATYWATX NESTANDARTNYJ SINTAKSIS KOMMENTARIEW,
KOGDA KOMMENTARII NA^INA@TSQ S`!'I MOGUT SLEDOWATX ZA DRUGIM TEKSTOM.tAK KAK TOLXKO
NEKOTORYE KOMPILQTORY fORTRANA PRIZNA@T TAKOJ SINTAKSIS,REVIM Fortran NE WSTAWLQET
TAKIE KOMMENTARII,ESLI WY NE POTREBOWALI\TOGO ZARANEE.~TOBY SDELATX\TO,USTANOWITE
PEREMENNOJ comment-start ZNA^ENIE`"!"'(SM.rAZDEL 31.2 [pEREMENNYE],S.343).
M-;wYROWNQTX KOMMENTARIJ ILI WSTAWITX NOWYJ KOMMENTARIJ (fortran-comment-
indent).
C-x;pRIMENQETSQ TOLXKO K NESTANDARTNYM KOMMENTARIQM`!'.
C-c;pREWRATITX WSE STROKI OBLASTI W KOMMENTARII ILI (S ARGUMENTOM) PREWRATITX
IH OBRATNO W REALXNYJ KOD (fortran-comment-region).
M-;W REVIME Fortran PEREOPREDELQETSQ NA fortran-comment-indent.kAK I OBY^NAQ
KOMANDA M-;,ONA RASPOZNAET L@BOJ WID SU]ESTWU@]IH KOMMENTARIEW I SOOTWETSTWENNO
WYRAWNIWAET EGO TEKST;ESLI SU]ESTWU@]EGO KOMMENTARIQ NET,TO KOMMENTARIJ WSTAWLQET-
SQ I WYRAWNIWAETSQ.nO WSTAWKA I WYRAWNIWANIE KOMMENTARIEW W REVIME Fortran NE TAKIE,
KAK W DRUGIH REVIMAH.
kOGDA DOLVEN BYTX WSTAWLEN NOWYJ KOMMENTARIJ,TO,ESLI TEKU]AQ STROKA PUSTAQ,
WSTAWLQETSQ POLNAQ STROKA KOMMENTARIQ.w NEPUSTOJ STROKE WSTAWLQETSQ NESTANDARTNYJ
KOMMENTARIJ S`!',ESLI WY SKAZALI,^TO HOTITE IH ISPOLXZOWATX.w PROTIWNOM SLU^AE W
NOWU@ STROKU PERED TEKU]EJ WSTAWLQETSQ POLNAQ STROKA KOMMENTARIQ.
nESTANDARTNYE KOMMENTARII S`!'WYRAWNIWA@TSQ,KAK KOMMENTARII W DRUGIH QZYKAH,
NO POLNOSTRO^NYE KOMMENTARII WYRAWNIWA@TSQ INA^E.w STANDARTNOM POLNOSTRO^NOM
KOMMENTARIE SAM OGRANI^ITELX KOMMENTARIQ DOLVEN WSEGDA POQWLQTXSQ W NULEWOM STOLB-
CE.~TO MOVET WYRAWNIWATXSQ,TAK\TO TEKST W PREDELAH KOMMENTARIQ.wY MOVETE
WYBIRATX IZ TREH WOZMOVNYH WIDOW WYRAWNIWANIQ,USTANAWLIWAQ PEREMENNU@ fortran-
comment-indent-style W ODNO IZ\TIH ZNA^ENIJ:
fixed tEKST WYRAWNIWAETSQ PO FIKSIROWANNOMU STOLBCU,KOTORYJ QWLQETSQ SUMMOJ
fortran-commenrt-line-column I MINIMALXNOGO OTSTUPA OPERATORA.|TO ZNA-
^ENIE PRINIMAETSQ PO UMOL^ANI@.
mINIMALXNYJ OTSTUP OPERATOROW |\TO fortran-minimum-statement-indent-
fixed DLQ STILQ PRODOLVENIQ S FIKSIROWANNYM FORMATOM I fortran-minimum-
statement-indent-tab DLQ STILQ S TABULIROWANNYM FORMATOM.
relative tEKST WYRAWNIWAETSQ TAK,KAK ESLI BY ON BYL STROKOJ KODA,NO S DOPOLNITELX-
NYMI fortran-comment-line-column STOLBCAMI OTSTUPA.
nil tEKST W POLNOSTRO^NYH KOMMENTARIQH NE PEREME]AETSQ AWTOMATI^ESKI.
kROME TOGO,WY MOVETE OPREDELITX ZNAK,KOTORYJ ISPOLXZUETSQ DLQ OTSTUPA W PRE-
DELAH POLNOSTRO^NYH KOMMENTARIEW,USTANAWLIWAQ PEREMENNOJ fortran-comment-indent-
char ZNA^ENIE,RAWNOE STROKE IZ ODNOGO ZNAKA,KOTORYJ WY HOTITE ISPOLXZOWATX.
w REVIME Fortran WWODQTSQ DWE PEREMENNYE,comment-line-start I comment-line-
start-skip,KOTORYE IGRA@T DLQ POLNOSTRO^NYH KOMMENTARIEW TU VE ROLX,^TO I comment-
start I comment-start-skip DLQ OBY^NYH,SLEDU@]IH ZA TEKSTOM KOMMENTARIEW.oBY^NO
ONI USTANAWLIWA@TSQ PRAWILXNO REVIMOM Fortran,TAK ^TO IH NE NUVNO MENQTX.
oBY^NAQ KOMANDA Emacs DLQ SOZDANIQ KOMMENTARIQ C-x;PEREOPREDELENA.eSLI WY
ISPOLXZUETE KOMMENTARII S`!',\TA KOMANDA MOVET BYTX ISPOLXZOWANA S NIMI.iNA^E ONA
BESPOLEZNA W REVIME Fortran.
kOMANDA C-c;(fortran-comment-region) PREWRA]AET WSE STROKI OBLASTI W KOMMENTA-
RII,WSTAWLQQ`C$$$'W NA^ALE KAVDOJ IZ STROK.s ^ISLOWYM ARGUMENTOM,ONA PREWRA]AET
OBLASTX OBRATNO W REALXNYJ KOD,UDALQQ`C$$$'IZ NA^ALA KAVDOJ STROKI W\TOJ OBLASTI.
sTROKA,ISPOLXZUEMAQ DLQ\TIH KOMMENTARIEW,MOVET UPRAWLQTXSQ USTANOWKOJ PEREMENNOJ
244 rUKOWODSTWO PO GNU Emacsfortran-comment-region.zAMETIM,^TO ZDESX MY IMEEM PRIMER KOMANDY I PEREMENNOJ S
ODNIM I TEM VE IMENEM.|TI DWA WARIANTA ISPOLXZOWANIQ IMENI NIKOGDA NE KONFLIKTU@T,
TAK KAK W lISPE I W Emacs WSEGDA PONQTNO PO KONTEKSTU,KAKOE IZ NIH IMEETSQ W WIDU.
22.16.4 rEVIM Fortran Auto Fill
rEVIM Fortran Auto Fill |\TO WTOROSTEPENNYJ REVIM,KOTORYJ AWTOMATI^ESKI RAZ-
BIWAET FORTRANOWSKIE OPERATORY,KOGDA ONI STANOWQTSQ SLI[OM [IROKIMI PO MERE TOGO,
KAK WY IH WSTAWLQETE.rAZBIENIE OPERATORA WLE^ET SOZDANIE STROKI PRODOLVENIQ S IS-
POLXZOWANIEM fortran-continuation-string (SM.rAZDEL 22.16.2.2 [sTROKI PRODOLVENIQ
W fORTRANE],S.240 ).rAZBIENIE PROISHODIT,KOGDA WY NABIRAETE hSPCi,hRETi ILI hTABi,A
TAKVE W KOMANDAH DLQ OTSTUPOW W fORTRANE.
M-x fortran-auto-fill-mode WKL@^AET REVIM Fortran Auto Fill,ESLI ON BYL WYKL@^EN,
ILI WYKL@^AET,ESLI ON BYL WKL@^EN.|TA KOMANDA RABOTAET TAK VE,KAK RABOTAET M-x
auto-fill-mode DLQ OBY^NOGO REVIMA Auto Fill (SM.rAZDEL 21.5 [zAPOLNENIE],S.185).
pOLOVITELXNYJ ARGUMENT WKL@^AET REVIM Fortran Auto Fill,A OTRICATELXNYJ WYKL@^AET.
wY MOVETE UZNATX,DEJSTWUET LI REVIM Fortran Auto Fill,PO NALI^I@ SLOWA`Fill'W
STROKE REVIMA W KRUGLYH SKOBKAH.rEVIM Fortran Auto Fill |\TO WTOROSTEPENNYJ REVIM,
WKL@^AEMYJ I WYKL@^AEMYJ W KAVDOM BUFERE OTDELXNO.sM.rAZDEL 31.1 [wTOROSTEPENNYE
REVIMY],S.341.
rEVIM Fortran Auto Fill RAZRYWAET STROKI NA PROBELAH ILI RAZDELITELQH,KOGDA STROKI
STANOWQTSQ DLINNEE VELAEMOJ [IRINY (ZNA^ENIQ fill-column).rAZDELITELQMI,NA KOTO-
RYH REVIM Fortran Auto Fill MOVET RAZORWATX STROKU,QWLQ@TSQ`,',`'',`+',`-',`/',`*',
`='I`)'.rAZRYW PROISHODIT POSLE RAZDELITELQ,ESLI PEREMENNAQ fortran-break-before-
delimiters RAWNA nil.iNA^E (I PO UMOL^ANI@) RAZRYW DELAETSQ PERED RAZDELITELEM.
pO UMOL^ANI@ REVIM Fortran Auto Fill NE ZADEJSTWOWAN.eSLI WY HOTITE,^TOBY\TO
SREDSTWO BYLO WKL@^ENO POSTOQNNO,DOBAWXTE K fortran-mode-hook FUNKCI@-LOWU[KU,KO-
TORAQ WYPOLNIT (fortran-auto-fill-mode 1).sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
22.16.5 pROWERKA STOLBCOW W fORTRANE
C-c C-r kRATKOWREMENNO POKAZATX\LINEJKU STOLBCOW"NAD TEKU]EJ STROKOJ (fortran-
column-ruler).
C-c C-w wREMENNO RAZDELITX TEKU]EE OKNO PO GORIZONTALI TAKIM OBRAZOM,^TOBY ONO
STALO [IRINOJ W 72 STOLBCA.|TO MOVET POMO^X WAM IZBEVATX WYHODA ZA LI-
MIT W 72 STOLBCA,KOTORYJ NAKLADYWA@T NEKOTORYE KOMPILQTORY fORTRANA
(fortran-window-create-momentarily).
kOMANDA C-c C-r (fortran-column-ruler) KRATKOWREMENNO POKAZYWAET NAD TEKU]EJ
STROKOJ LINEJKU STOLBCOW.lINEJKA STOLBCOW |\TO DWE STROKI TEKSTA,KOTORYE POKA-
ZYWA@T WAM POZICII STOLBCOW,IME@]IH SPECIALXNYE ZNA^ENIQ W fORTRAN-PROGRAMMAH.
kWADRATNYE SKOBKI POKAZYWA@T GRANICY STOLBCOW DLQ NOMEROW STROK,A FIGURNYE SKOBKI
POKAZYWA@T GRANICY STOLBCOW DLQ TELA OPERATORA.nAD NIMI POKAZANY NOMERA STOLBCOW.
zAMETXTE,^TO NOMERA STOLBCOW S^ITA@TSQ OT NULQ,KAK WSEGDA W GNU Emacs.w SWQZI S
\TIM NOMERA MOGUT NA EDINICU MENX[E,^EM TE,K KOTORYM WY PRIWYKLI;NO UKAZYWAEMYE
IMI POZICII W STROKE STANDARTNY DLQ fORTRANA.
tEKST,ISPOLXZUEMYJ DLQ POKAZA LINEJKI STOLBCOW,ZAWISIT OT ZNA^ENIQ PEREMENNOJ
indent-tabs-mode.eSLI indent-tabs-mode RAWNA nil,TO W KA^ESTWE LINEJKI STOLBCOW
ISPOLXZUETSQ ZNA^ENIE PEREMENNOJ fortran-column-ruler-fixed.iNA^E POKAZYWAETSQ PE-
REMENNAQ fortran-column-ruler-tab.iZMENQQ\TI PEREMENNYE,WY MOVETE IZMENITX WID
LINEJKI STOLBCOW.
gLAWA 22:rEDAKTIROWANIE PROGRAMM 245dLQ E]E BOLX[EJ POMO]I ISPOLXZUJTE KOMANDU C-c C-w (fortran-window-create),KO-
TORAQ RAZDELQET TEU]EE OKNO PO GORIZONTALI,DELAQ EGO [IRINU RAWNOJ 72 STOLBCAM.pRI
REDAKTIROWANII W\TOM OKNE WY MOVETE NEPOSREDSTWENNO WIDETX,KOGDA WY SDELALI STROKU
SLI[KOM DLINNOJ,^TOBY ONA BYLA PRAWILXNOJ S TO^KI ZRENIQ fORTRANA.
22.16.6 sOKRA]ENIQ KL@^EWYH SLOW fORTRANA
rEVIM Fortran OBESPE^IWAET MNOVESTWO WSTROENNYH SOKRA]ENIJ DLQ ^ASTO WSTRE^A@-
]IHSQ KL@^EWYH SLOW I OB_QWLENIJ.|TO TE VE WIDY SOKRA]ENIJ,KOTORYE WY MOVETE
OPREDELITX SAMI.~TOBY ISPOLXZOWATX IH,WY DOLVNY WKL@^ITX REVIM Abbrev.sM.gLA-
WA 24 [sOKRA]ENIQ],S.257.
wSTROENNYE SOKRA]ENIQ NEOBY^NY W ODNOM:WSE ONI NA^INA@TSQ S TO^KI S ZAPQTOJ.
oBY^NO WY NE MOVETE ISPOLXZOWATX TO^KU S ZAPQTOJ W SOKRA]ENIQH,NO REVIM Fortran
DELAET\TO WOZMOVNYM,IZMENQQ SINTAKSIS TO^KI S ZAPQTOJ NA\SOSTAWNU@ ^ASTX SLOWA".
nAPRIMER,ODNO WSTROENNOE FORTRANOWSKOE SOKRA]ENIE |\TO`;S'DLQ`continue'.eS-
LI WY WSTAWITE`;S'I ZATEM POSTAWITE ZNAKI PUNKTUACII,NAPRIMER PROBEL ILI PEREWOD
STROKI,TO`;S'AWTOMATI^ESKI IZMENITSQ NA`continue',PRI USLOWII,^TO WKL@^EN REVIM
Abbrev.
nABERITE`;?'ILI`;C-h',^TOBY PROSMOTRETX WSE WSTROENNYE SOKRA]ENIQ DLQ fORTRANA
I TO,^EMU ONI SOOTWETSTWU@T.
22.16.7 dRUGIE KOMANDY REVIMA Fortran
C-x n d sUVAET DO TEKU]EJ PODPROGRAMMY fORTRANA.
rEVIM Fortran PEREOPREDELQET KL@^ C-x n d DLQ ZAPUSKA KOMANDY fortran-narrow-to-
subprogram,KOTORAQ SLUVIT FORTRANOWSKIM ANALOGOM OBY^NOGO OPREDELENIQ\TOGO KL@^A.
oNA SUVAET BUFER DO PODPROGRAMMY,SODERVA]EJ TO^KU.
22.17 rEVIM Asm
rEVIM Asm |\TO OSNOWNOJ REVIM DLQ REDAKTIROWANIQ FAJLOW NA ASSEMBLERNOM KODE.
oN OPREDELQET SLEDU@]IE KOMANDY:
h TABi tab-to-tab-stop.
C-j wSTAWLQET PEREWOD STROKI I DELAET OTSTUP,ISPOLXZUQ tab-to-tab-stop.
:wSTAWLQET DWOETO^IE I ZATEM UDALQET OTSTUP PERED METKOJ,PRED[ESTWU@]EJ
DWOETO^I@.zATEM DELAET tab-to-tab-stop.
;wSTAWLQET ILI WYRAWNIWAET KOMMENTARIJ.
pEREMENNAQ asm-comment-char OPREDELQET,KAKOJ ZNAK NA^INAET KOMMENTARIJ W SINTAK-
SISE ASSEMBLERA.
246 rUKOWODSTWO PO GNU Emacs
gLAWA 23:sBORKA I TESTIROWANIE PROGRAMM 24723 sBORKA I TESTIROWANIE PROGRAMM
w PREDYDU]EJ GLAWE OBSUVDALISX KOMANDY Emacs,POLEZNYE DLQ WNESENIQ IZMENENIJ W
PROGRAMMY.|TA GLAWA IMEET DELO S KOMANDAMI,KOTORYE POMOGA@T W OB[IRNOM PROCESSE
RAZRABOTKI I SOPROWOVDENIQ PROGRAMM.
23.1 zAPUSK KOMPILQTOROW W Emacs
Emacs MOVET ZAPUSKATX KOMPILQTORY DLQ NEDIALOGOWYH QZYKOW,TAKIH KAK sI I fOR-
TRAN,KAK POD^INENNYE PROCESSY,PODAWAQ PROTOKOL O[IBOK W BUFER Emacs.oN TAKVE
MOVET PROIZWESTI RAZBOR SOOB]ENIJ OB O[IBKAH I POKAZATX WAM STROKI ISHODNYH TEKSTOW,
GDE PROIZO[LA O[IBKA.
M-x compile
aSINHRONNO ZAPUSKAET KOMPILQTOR POD UPRAWLENIEM Emacs,WYWODQ SOOB]ENIQ
OB O[IBKAH W BUFER`*compilation*'.
M-x grep aSINHRONNO ZAPUSKAET grep POD UPRAWLENIEM Emacs,PERE^ISLQQ SOWPAW[IE
STROKI W BUFERE`*grep*'.
M-x grep-find
zAPUSKAET grep ^EREZ find S PREDOSTAWLENNYMI POLXZOWATELEM ARGUMENTAMI,
NAPRAWLQQ WYWOD W BUFER`*grep*'.
M-x kill-compilation
M-x kill-grep
uNI^TOVAET RABOTA@]IE PODPROCESSY KOMPILQCII ILI grep.
~TOBY ZAPUSTITX make ILI DRUGU@ KOMANDU KOMPILQCII,WYPOLNITE M-x compile.|TA
KOMANDA S^ITYWAET KOMANDNU@ STROKU OBOLO^KI,ISPOLXZUQ MINIBUFER,I ZATEM WYPOL-
NQET\TU KOMANDNU@ STROKU W POD^INENNOJ OBOLO^KE,POME]AQ WYWOD W BUFER S IMENEM
`*compilation*'.w KA^ESTWE RABO^EGO KATALOGA DLQ WYPOLNENIQ\TOJ KOMANDY ISPOLXZU-
ETSQ KATALOG PO UMOL^ANI@ TEKU]EGO BUFERA,SLEDOWATELXNO,KOMPILQCIQ PROIZWODITSQ W
\TOM KATALOGE.
kOGDA S^ITYWAETSQ KOMANDNAQ STROKA OBOLO^KI,POQWLQETSQ MINIBUFER,SODERVA]IJ
KOMANDNU@ STROKU PO UMOL^ANI@;\TO KOMANDA,KOTORU@ WY ISPOLXZOWALI PRI POSLEDNEM
PRIMENENII M-x compile.eSLI WY NABERETE PROSTO
hRETi,TO SNOWA BUDET ISPOLXZOWANA TA
VE SAMAQ KOMANDNAQ STROKA.dLQ PERWOJ M-x compile PO UMOL^ANI@ ISPOLXZUETSQ`make -k'.
zNA^ENIE PO UMOL^ANI@ BERETSQ IZ PEREMENNOJ compile-command;ESLI SOOTWETSTWU@]AQ
KOMANDA KOMPILQCII DLQ FAJLA QWLQETSQ ^EM-TO DRUGIM,NE`make -k',TO MOVET BYTX
POLEZNO IMETX DLQ\TOGO FAJLA LOKALXNOE ZNA^ENIE compile-command (SM.rAZDEL 31.2.5
[pEREMENNYE FAJLA],S.351 ).
zAPUSK KOMPILQCII POKAZYWAET BUFER`*compilation*'W DRUGOM OKNE,NO NE WYBIRAET
EGO.sTROKA REVIMA\TOGO BUFERA SOOB]AET WAM,ZAKON^ILASX LI KOMPILQCIQ,PRI POMO]I
SLOW`run'ILI`exit'W KRUGLYH SKOBKAH.wY NE OBQZANY DERVATX\TOT BUFER WIDIMYM,
KOMPILQCIQ PRODOLVAETSQ W L@BOM SLU^AE.pOKA KOMPILQCIQ PRODOLVAETSQ,W STROKAH
REVIMA WSEH BUFEROW POQWLQETSQ SLOWO`Compiling'.eSLI\TO SLOWO IS^EZAET,KOMPILQCIQ
ZAKON^ENA.
eSLI WY HOTITE WIDETX PROTOKOL KOMPILQCII PO MERE EGO POQWLENIQ,PEREKL@^ITESX
W BUFER`*compilation*'I PEREMESTITE TO^KU W EGO KONEC.kOGDA TO^KA RASPOLOVENA W
KONCE,NOWYJ WYWOD PROCESSA KOMPILQCII WSTAWLQETSQ PERED TO^KOJ,I ONA OSTAETSQ W KONCE.
eSLI TO^KA NE NAHODITSQ W KONCE\TOGO BUFERA,ONA OSTAETSQ NA SWOEM MESTE,TOGDA KAK
DALXNEJ[IJ WYWOD KOMPILQCII DOBAWLQETSQ W KONEC BUFERA.
248 rUKOWODSTWO PO GNU EmacseSLI WY USTANOWITE PEREMENNU@ compilation-scroll-output W ZNA^ENIE,OTLI^NOE OT
nil,TO BUFER KOMPILQCII WSEGDA PROKRU^IWAETSQ,^TOBY POKAZYWATX WYWOD PO MERE EGO
POQWLENIQ.
~TOBY PREKRATITX PROCESS KOMPILQCII,WYPOLNITE KOMANDU M-x kill-compilation.
kOGDA PROCESS KOMPILQCII BUDET PRERWAN,STROKA REVIMA BUFERA`*compilation*'IZME-
NITSQ,I W NEJ BUDET SLOWO`signal'WMESTO`run'.zAPUSK NOWOJ KOMPILQCII TAKVE UNI^TO-
VAET L@BU@ RABOTA@]U@ KOMPILQCI@,TAK KAK W ODNO WREMQ MOVET SU]ESTWOWATX TOLXKO
ODNA.oDNAKO M-x compile TREBUET PODTWERVDENIQ PERED FAKTI^ESKIM UNI^TOVENIEM UVE
ZAPU]ENNOJ KOMPILQCII.
23.2 pOISK S Grep POD Emacs
tO^NO TAK VE,KAK WY ZAPUSKAETE IZ Emacs KOMPILQTOR,I ZATEM OBRA]AETESX K STROKAM,
GDE BYLI O[IBKI KOMPILQCII,WY MOVETE ZAPUSTITX grep I ZATEM OBRATITXSQ K STROKAM,
GDE BYLI NAJDENY SOWPADENIQ.|TO RABOTAET PUTEM INTERPRETACII SOOB]ENIJ O SOWPADE-
NIQH OT grep KAK SOOB]ENIJ OB\O[IBKAH".
~TOBY SDELATX\TO,NABERITE M-x grep I WWEDITE KOMANDNU@ STROKU,UKAZYWA@]U@,
KAK NUVNO ZAPUSKATX grep.iSPOLXZUJTE TE VE ARGUMENTY,KOTORYE WY DALI BY grep PRI
OBY^NOM ZAPUSKE:REGULQRNOE WYRAVENIE W FORMATE grep (OBY^NO W ODINO^NYH KAWY^-
KAH,^TOBY OTMENITX OSOBYJ SMYSL SPECIALXNYH SIMWOLOW OBOLO^KI),ZA KOTORYM SLEDU@T
IMENA FAJLOW,W KOTORYH MOVNO ISPOLXZOWATX [ABLONY.wYWOD IZ grep IDET W BUFER
`*compilation*'.wY MOVETE OBRATITXSQ K SOWPAW[IMSTROKAM PRI POMO]I C-x`I
hRETi,
KAK K O[IBKAM KOMPILQCII.
eSLI WY ZADADITE DLQ M-x grep PREFIKSNYJ ARGUMENT,ONA NAJDET W OKRESTNOSTI TO^KI
TEG (SM.rAZDEL 22.13 [tEGI],S.224) I POMESTIT EGO W KOMANDU grep PO UMOL^ANI@.
kOMANDA M-x grep-find POHOVA NA M-x grep,NO PREDLAGAET DRUGU@ KOMANDNU@ STROKU
PO UMOL^ANI@ | STROKU,KOTORAQ ZAPUSKAET find I grep,TAK ^TO POISK PROIZWODITSQ W
KAVDOM FAJLE DEREWA KATALOGOW.sMOTRITE TAKVE KOMANDU find-grep-dired,rAZDEL 28.15
[pOISK W Dired],S.300.
23.3 rEVIM Compilation
w BUFERE`*compilation*'ISPOLXZUETSQ OSOBYJ OSNOWNOJ REVIM,REVIM Compilation,
OSNOWNAQ CELX KOTOROGO | PREDOSTAWITX UDOBNYJ SPOSOB PROSMOTRETX STROKU ISHODNOGO
TEKSTA,GDE SLU^ILASX O[IBKA.
C-x`oBRATITXSQ K POZICII SLEDU@]EGO SOOB]ENIQ OB O[IBKE KOMPILQCII ILI SOW-
PADENIQ,NAJDENNOGO grep.
h RETi oBRATITXSQ K POZICII SOOB]ENIQ OB O[IBKE,W KOTOROJ NAHODITSQ TO^KA.|TA
KOMANDA PRIMENQETSQ W BUFERE KOMPILQCII.
Mouse-2 oBRATITXSQ K POZICII SOOB]ENIQ OB O[IBKE,NA KOTOROM WY ]ELKNULI.
wY MOVETE OBRATITXSQ K ISHODNOMU TEKSTU DLQ L@BOGO KONKRETNOGO SOOB]ENIQ OB O[IB-
KE,PEREMESTIW TO^KU W BUFERE`*compilation*'K\TOMU SOOB]ENI@ I NAVAW
hRETi (compile-
goto-error).iLI ]ELKNITE NA\TOM SOOB]ENII OB O[IBKE Mouse-2;TOGDA WAM NE OBQZA-
TELXNO SNA^ALA PEREKL@^ATXSQ W BUFER`*compilation*'.
~TOBY POSLEDOWATELXNO SDELATX GRAMMATI^ESKIJ RAZBOR SOOB]ENIJ KOMPILQTORA OB
O[IBKAH,NABIRAJTE C-x`(next-error).zNAK,STOQ]IJ POSLE C-x |\TO OBRATNAQ KA-
WY^KA ILI\AKCENT GRAW",A NE OBY^NAQ ODINO^NAQ KAWY^KA.|TA KOMANDA DOSTUPNA WO WSEH
BUFERAH,A NE TOLXKO W BUFERE`*compilation*';ONA POKAZYWAET SLEDU@]EE SOOB]ENIE OB
O[IBKE WWERHU ODNOGO OKNA I TEKST,W KOTOROM NAHODITSQ\TA O[IBKA,W DRUGOM OKNE.
gLAWA 23:sBORKA I TESTIROWANIE PROGRAMM 249kOGDA C-x`ISPOLXZUETSQ PERWYJ RAZ POSLE NA^ALA KOMPILQCII,ONA PEREDWIGAETSQ K
POLOVENI@ PERWOJ O[IBKI.pOSLEDU@]IE ISPOLXZOWANIQ C-x`PRODWIGA@T WNIZ K SLEDU@-
]IM O[IBKAM.eSLI WY OBRATILISX K FAJLU PO KAKOMU-TO SOOB]ENI@ OB O[IBKE S POMO]X@
h RETi ILI Mouse-2,POSLEDU@]IE KOMANDY C-x`PRODWIGA@TSQ S\TOGO MESTA.kOGDA C-x`
DOHODIT DO KONCA BUFERA I NE MOVET NAJTI BOLX[E SOOB]ENIJ,ONA ZAWER[AETSQ NEUSPEHOM
I Emacs WYDAET O[IBKU.
C-u C-x`NA^INAET PROSMOTR BUFERA`*compilation*'SNA^ALA.|TO ODIN IZ SPOSOBOW
E]E RAZ OBRABOTATX ODIN I TOT VE NABOR O[IBOK.
rEVIM Compilation TAKVE PEREOPREDELQET KL@^I
hSPCi I hDELi DLQ PROKRUTKI PO CELOMU
\KRANU,A M-n I M-p | DLQ PEREME]ENIQ K SLEDU@]EMU ILI PREDYDU]EMU SOOB]ENI@
OB O[IBKE.wY TAKVE MOVETE ISPOLXZOWATX M-{ I M-} DLQ PEREME]ENIQ WWERH I WNIZ K
SOOB]ENI@ OB O[IBKE DLQ DRUGOGO ISHODNOGO FAJLA.
wOZMOVNOSTI REVIMA Compilation TAKVE DOSTUPNY WO WTOROSTEPENNOM REVIME,NAZY-
WAEMOM Compilation Minor.oN POZWOLQET WAM RAZBIRATX SOOB]ENIQ OB O[IBKAH W L@BOM
BUFERE,A NE TOLXKO W OBY^NOM BUFERE DLQ WYWODA PROTOKOLA KOMPILQCII.dLQ WKL@^E-
NIQ\TOGO WTOROSTEPENNOGO REVIMA NABERITE M-x compilation-minor-mode.|TO OPREDELIT
KL@^I h RETi I Mouse-2 KAK W OSNOWNOM REVIME Compilation.
wTOROSTEPENNYJ REVIM Compilation RABOTAET W L@BOM BUFERE,ESLI SODERVIMOE\TOGO
BUFERA IMEET PONQTNYJ EMU FORMAT.w BUFERE Rlogin (SM.rAZDEL 30.2.6 [uDALENNAQ
MA[INA],S.329 ),WTOROSTEPENNYJ REVIM Compilation AWTOMATI^ESKI POLU^AET UDALENNYE
ISHODNYE FAJLY PO FTP (SM.rAZDEL 14.1 [iMENA FAJLOW],S.105).
23.4 pODOBOLO^KI DLQ KOMPILQCII
Emacs ISPOLXZUET DLQ KOMANDY KOMPILQCII OBOLO^KU,NO EJ UKAZYWAETSQ,^TO ONA DOLV-
NA BYTX NEINTERAKTIWNOJ.w ^ASTNOSTI,\TO OZNA^AET,^TO OBOLO^KA NA^INAETSQ BEZ POD-
SKAZKI.eSLI WY OBNARUVITE,^TO BUFER`*compilation*'URODU@T WA[I OBY^NYE PODSKAZKI
OBOLO^KI,TO\TO ZNA^IT,^TO WY SDELALI O[IBKU W WA[EM FAJLE INICIALIZACII OBOLO^KI,
USTANOWIW PODSKAZKU,NE U^ITYWAQ USLOWIJ,KOGDA ONA NE DOLVNA POQWLQTXSQ.(fAJL INICI-
ALIZACII MOVET NAZYWATXSQ`.bashrc',`.profile',`.cshrc',`.shrc'ILI E]E KAK-NIBUDX W
ZAWISIMOSTI OT ISPOLXZUEMOJ WAMI OBOLO^KI.) fAJL INICIALIZACII OBOLO^KI DOLVEN USTA-
NAWLIWATX PODSKAZKU,TOLXKO ESLI PODSKAZKA UVE ESTX.pOKAVEM,KAK\TO NUVNO DELATX W
csh:
if ($?prompt) set prompt =...
a TAK\TO DELAETSQ W bash:
if ["${PS1+set}"= set ]
then PS1=...
fi
mOGUT BYTX I DRUGIE WE]I,KOTORYE WY DOLVNY DELATX TOLXKO W INTERAKTIWNOJ OBO-
LO^KE.dLQ PROWERKI USLOWIQ INTERAKTIWNOGO ZAPUSKA WY MOVETE ISPOLXZOWATX TAKOJ VE
METOD.
\oPERACIONNAQ SISTEMA"MS-DOS NE PODDERVIWAET ASINHRONNYE PODPROCESSY;^TOBY
KAK-TO OBOJTI\TOT NEDOSTATOK,M-x compile W MS-DOS ZAPUSKAET KOMANDU KOMPILQCII
SINHRONNO.kAK SLEDSTWIE,WY DOLVNY DOVDATXSQ ZAWER[ENIQ\TOJ KOMANDY DO TOGO,KAK
SMOVETE SDELATX ^TO-TO W Emacs.sM.pRILOVENIE C [MS-DOS],S.403.
23.5 zAPUSK OTLAD^IKOW W Emacs
bIBLIOTEKA GUD (Grand UniпЂЊed Debugger
1
) PREDOSTAWLQET INTERFEJS K RAZLI^NYM SIM-
WOLXNYM OTLAD^IKAM IZ Emacs.mY REKOMENDUEM OTLAD^IK GDB,KOTORYJ RASPROSTRANQ-1
eDINYJ OTLAD^IK.(pRIM.PEREWOD^IKA)
250 rUKOWODSTWO PO GNU EmacsETSQ SWOBODNO,NO WY TAKVE MOVETE ZAPUSKATX DBX,SDB ILI XDB,ESLI ONI U WAS ESTX.
GUD MOVET TAKVE SLUVITX INTERFEJSOM K OTLADO^NOMU REVIMU Perl,OTLAD^IKU Python
PDB I JDB,OTLAD^IKU Java.
23.5.1 zAPUSK GUD
sU]ESTWUET NESKOLXKO KOMAND DLQ ZAPUSKA OTLAD^IKA,KAVDAQ SOOTWETSTWUET KONKRET-
NOJ PROGRAMME-OTLAD^IKU.
M-x gdb hRETi FAJL hRETi
zAPUSKAET GDB KAK PODPROCESS Emacs.|TA KOMANDA SOZDAET BUFER DLQ WWODA
I WYWODA GDB I PEREKL@^AET W NEGO.eSLI BUFER GDB UVE SU]ESTWUET,ONA
PROSTO PEREKL@^AET W\TOT BUFER.
M-x dbx h RETi FAJL hRETi
aNALOGI^NO,NO ZAPUSKAET DBX WMESTO GDB.
M-x xdb
h RETi FAJL hRETi
aNALOGI^NO,NO ZAPUSKAET XDB,A NE GDB.iSPOLXZUJTE PEREMENNU@ gud-xdb-
directories DLQ ZADANIQ KATALOGOW POISKA ISHODNYH FAJLOW.
M-x sdb
h RETi FAJL hRETi
aNALOGI^NO,NO ZAPUSKAET SDB,A NE GDB.
nEKOTORYE WERSII SDB NE NAZYWA@T W SWOIH SOOB]ENIQH IMENA ISHODNYH FAJ-
LOW.kOGDA WY ISPOLXZUJTE IH,U WAS DOLVNA BYTX SOZDANA PRAWILXNAQ TABLICA
TEGOW (SM.rAZDEL 22.13 [tEGI],S.224),^TOBY GUD MOG NAJTI FUNKCII W IS-
HODNYH FAJLAH.eSLI WY NE OBRA]ALISX K TABLICE TEGOW ILI TABLICA TEGOW
NE SODERVIT ODNU IZ FUNKCIJ,WY POLU^ITE SOOB]ENIE,GOWORQ]EE`The sdb
support requires a valid tags table to work'.
2
eSLI\TO SLU^ILOSX,SOZDAJTE
W RABO^EM KATALOGE PRAWILXNU@ TABLICU TEGOW I POPROBUJTE SNOWA.
M-x perldb h RETi FAJL hRETi
zAPUSKAET INTERPRETATOR Perl W OTLADO^NOM REVIME DLQ OTLADKI FAJLA,PRO-
GRAMMY NA Perl.
M-x jdb
h RETi FAJL hRETi
zAPUSKAET DLQ OTLADKI FAJLA OTLAD^IK Java.
M-x pdb
h RETi FAJL hRETi
zAPUSKAET DLQ OTLADKI FAJLA OTLAD^IK Python.
kAVDAQ IZ\TIH KOMAND PRINIMAET ODIN ARGUMENT:KOMANDNU@ STROKU DLQ WYZOWA OT-
LAD^IKA.w PROSTEJ[EM SLU^AE,ZADAJTE PROSTO IMQ ISPOLNQEMOGO FAJLA,KOTORYJ WY
HOTITE OTLAVIWATX.wY TAKVE MOVETE ISPOLXZOWATX KL@^I,PODDERVIWAEMYE WA[IM OT-
LAD^IKOM.oDNAKO [ABLONY I PEREMENNYE OBOLO^KI NEDOPUSTIMY.GUD PREDPOLAGAET,^TO
PERWYJ ARGUMENT,NE NA^INA@]IJSQ S`-',QWLQETSQ IMENEM ISPOLNQEMOGO FAJLA.
Emacs MOVET ZAPUSTITX TOLXKO ODIN OTLADO^NYJ PROCESS W ODNO WREMQ.
23.5.2 uPRAWLENIE OTLAD^IKOM
kOGDA WY ZAPUSTILI OTLAD^IK S POMO]X@ GUD,ON ISPOLXZUET BUFER Emacs DLQ OBY^-
NOGO WWODA I WYWODA.|TOT BUFER NAZYWAETSQ BUFEROM GUD.oTLAD^IK POKAZYWAET STROKI
ISHODNYH FAJLOW,OBRA]AQSX K NIM W BUFERAH Emacs.sTRELKA (`=>') W ODNOM IZ BUFEROW
UKAZYWAET NA ISPOLNQEMU@ W DANNYJ MOMENT STROKU.pEREME]ENIE TO^KI W BUFERE NE
IZMENQET POLOVENIQ STRELKI.2
dLQ RABOTY PODDERVKI sdb TREBUETSQ PRAWILXNAQ TABLICA TEGOW.(pRIM.PEREWOD^IKA)
gLAWA 23:sBORKA I TESTIROWANIE PROGRAMM 251wY MOVETE W L@BOE WREMQ NA^ATX REDAKTIROWATX ISHODNYE FAJLY W TEH BUFERAH,KO-
TORYE IH POKAZYWA@T.sTRELKA NE QWLQETSQ ^ASTX@ TEKSTA FAJLA;ONA POQWLQETSQ LI[X
NA\KRANE.eSLI WY DEJSTWITELXNO IZMENQETE ISHODNYJ FAJL,POMNITE,^TO UDALENIE ILI
WSTAWKA STROK SOBXET POLOVENIE STRELKI;GUD NE MOVET OPREDELITX,KAKAQ STROKA STROKA
SOOTWETSTWOWALA NOMERU STROKI W SOOB]ENII OTLAD^IKA DO WA[EGO IZMENENIQ.kROME TO-
GO,^TOBY WA[I IZMENENIQ NA[LI OTRAVENIE W TABLICAH OTLAD^IKA,WAM OBY^NO PRIDETSQ
PEREKOMPILIROWATX I PEREZAPUSTITX PROGRAMMU.
eSLI WY ZAHOTITE,WY MOVETE POLNOSTX@ UPRAWLQTX PROCESSOM OTLAD^IKA ^EREZ EGO
BUFER,KOTORYJ ISPOLXZUET WARIANT REVIMA Shell.dOSTUPNY WSE OBY^NYE KOMANDY WA[EGO
OTLAD^IKA,I WY MOVETE ISPOLXZOWATX KOMANDY ISTORII REVIMA Shell DLQ IH POWTORENIQ.
sM.rAZDEL 30.2.3 [rEVIM Shell],S.325.
23.5.3 kOMANDY GUD
bUFER DIALOGA S GUD ISPOLXZUET WARIANT REVIMA Shell,TAK ^TO WAM DOSTUPNY KOMANDY
\TOGO REVIMA (SM.rAZDEL 30.2.3 [rEVIM Shell],S.325).rEVIM GUD TAKVE PREDOSTAWLQET
KOMANDY DLQ USTANOWKI I SBROSA KONTROLXNYH TO^EK,DLQ WYBORA FREJMOW STEKA I DLQ
PO[AGOWOGO PROHODA PO PROGRAMME.|TI KOMANDY DOSTUPNY KAK W BUFERE GUD,TAK I
GLOBALXNO,NO S RAZNYMI PRIWQZKAMI.
kOMANDY UPRAWLENIQ KONTROLXNYMI TO^KAMI OBY^NO ISPOLXZU@TSQ W BUFERAH,OBRA-
]A@]IHSQ K FAJLAM,POTOMU ^TO ONI DA@T SPOSOB UKAZATX GDE POSTAWITX ILI UBRATX
KONTROLXNU@ TO^KU.wOT GLOBALXNYE PRIWQZKI DLQ USTANOWKI KONTROLXNYH TO^EK:
C-x
h SPCi uSTANAWLIWAET KONTROLXNU@ TO^KU W ISHODNOJ STROKE,GDE NAHODITSQ TO^KA.
|TO DRUGAQ SPECIALXNAQ KOMANDA,PREDOSTAWLQEMAQ GUD.kL@^I,NA^INA@]IESQ S C-c,
DOSTUPNY TOLXKO W BUFERE DIALOGA S GUD.pRIWQZKI KL@^EJ,NA^INA@]IESQ S C-x C-a,
DOSTUPNY I W BUFERE DIALOGA S GUD,I W ISHODNYH FAJLAH.
C-c C-l
C-x C-a C-l
oTOBRAVAET W DRUGOM OKNE POSLEDN@@ STROKU,NA KOTORU@ POQWILASX SSYLKA W
BUFERE GUD (TO ESTX STROKU,UKAZANNU@ W POSLEDNEM SOOB]ENII O POZICII W
PROGRAMME).|TO ZAPUSKAET KOMANDU gud-refresh.
C-c C-s
C-x C-a C-s
iSPOLNQET ODNU STROKU KODA (gud-step).eSLI STROKA SODERVIT WYZOW FUNKCII,
WYPOLNENIE OSTANAWLIWAETSQ POSLE WHODA W NEE.
C-c C-n
C-x C-a C-n
iSPOLNQET ODNU STROKU KODA,PROHODQ ^EREZ WYZOWY FUNKCIJ BEZ OSTANOWKI
(gud-next).
C-c C-i
C-x C-a C-i
iSPOLNQET ODNU MA[INNU@ INSTRUKCI@ (gud-stepi).
C-c C-r
C-x C-a C-r
pRODOLVAET ISPOLNENIE S NEOPREDELENNOJ TO^KOJ OSTANOWA.pROGRAMMA PRO-
DOLVIT RABOTU DO TEH POR,POKA NE POPADET NA KONTROLXNU@ TO^KU,ZAWER[ITSQ
ILI POLU^IT SIGNAL,PROWERQEMYJ OTLAD^IKOM (gud-cont).
C-c C-d
C-x C-a C-d
uDALQET KONTROLXNU@ TO^KU (ODNU ILI NESKOLXKO) W TEKU]EJ STROKE ISHODNOGO
TEKSTA,ESLI ONI POSTAWLENY (gud-remove).eSLI WY WYZOWITE\TU KOMANDU W
252 rUKOWODSTWO PO GNU EmacsBUFERE DIALOGA S GUD,ONA PRIMENQETSQ K STROKE,NA KOTORYJ W POSLEDNIJ RAZ
OSTANOWILASX PROGRAMMA.
C-c C-t
C-x C-a C-t
uSTANAWLIWAET WREMENNU@ KONTROLXNU@ TO^KU NA TEKU]EJ ISHODNOJ STROKE,
ESLI TAKAQ ESTX W DANNYJ MOMENT.eSLI WY WYZOWITE\TU KOMANDU W BUFERE
DIALOGA S GUD,ONA PRIMENQETSQ K STROKE,NA KOTOROJ PROGRAMMA OSTANOWILASX
W POSLEDNIJ RAZ.
pERE^ISLENNYE WY[E KOMANDY OTNOSQTSQ KO WSEM PODDERVIWAEMYM OTLAD^IKAM.eSLI
WY POLXZUETESX GDB ILI DBX (NEKOTORYMI WERSIQMI),DOSTUPNY TAKIE DOPOLNITELXNYE
KOMANDY:
C-c <
C-x C-a < wYBIRAET SLEDU@]IJ WNE[NIJ FREJM STEKA (gud-up).|TO\KWIWALENTNO KO-
MANDE`up'.
C-c >
C-x C-a > wYBIRAET SLEDU@]IJ WNUTRENNIJ FREJM STEKA (gud-down).|TO\KWIWALENTNO
KOMANDE`down'.
eSLI WY POLXZUETESX GDB,DOSTUPNY SLEDU@]IE PRIWQZKI:
h TABi zAWER[AET IMQ SIMWOLA (gud-gdb-complete-command).|TOT KL@^ DOSTUPEN
TOLXKO W BUFERE DIALOGA S GUD I TREBUET GDB WERSII 4.13 ILI BOLEE POZDNEJ.
C-c C-f
C-x C-a C-f
iSPOLNQET PROGRAMMU DO TEH POR,POKA NE PROIZOJDET WOZWRAT IZ WYBRANNOGO
FREJMA STEKA (ILI POKA PROGRAMMA NE OSTANOWITSQ PO DRUGOJ PRI^INE).
|TI KOMANDY INTERPRETIRU@T ^ISLOWOJ ARGUMENT KAK S^ET^IK POWTORENIJ,ESLI\TO
IMEET SMYSL.
tAK KAK hTABi SLUVIT KOMANDOJ ZAWER[ENIQ,WY NE MOVETE ISPOLXZOWATX EE DLQ NABO-
RA ZNAKA TABULQCII W KA^ESTWE WWODA DLQ PROGRAMMY,KOTORU@ WY OTLAVIWAETE W GDB.
wMESTO\TOGO,^TOBY WWESTI ZNAK TABULQCII,NABIRAJTE C-q hTABi.
23.5.4 nASTROJKA GUD
wO WREMQ ZAPUSKA GUD WYPOLNQET ODNU IZ SLEDU@]IH LOWU[EK:gdb-mode-hook,ES-
LI WY POLXZUETESX GDB;dbx-mode-hook,ESLI WY POLXZUETESX DBX;sdb-mode-hook,ESLI
WY POLXZUETESX SDB;xdb-mode-hook,ESLI WY POLXZUETESX XDB;perldb-mode-hook DLQ
OTLADO^NOGO REVIMA Perl;jdb-mode-hook DLQ PDB;jdb-mode-hook DLQ JDB.wY MOVE-
TE ISPOLXZOWATX\TI LOWU[KI DLQ OPREDELENIQ WA[IH SOBSTWENNYH PRIWQZOK KL@^EJ DLQ
BUFERA DIALOGA S OTLAD^IKOM.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
wOT UDOBNYJ SPOSOB OPREDELITX KOMANDU,KOTORAQ POSYLAET OTLAD^IKU NEKOTORU@ KO-
MANDNU@ STROKU I USTANAWLIWAET DLQ NEE PRIWQZKU W BUFERE DIALOGA S OTLAD^IKOM:
(gud-def FUNKCIQ KOMANDNAQ-STROKA PRIWQZKA DOK-STROKA)
|TO OPREDELIT KOMANDU S IMENEM FUNKCIQ,KOTORAQ POSYLAET PROCESSU OTLAD^IKA
KOMANDNU@-STROKU,I DAST EJ STROKU OPISANIQ DOK-STROKA.wY MOVETE ISPOLXZOWATX OPRE-
DELENNU@ TAKIM OBRAZOM KOMANDU W L@BOM BUFERE.eSLI PRIWQZKA NE RAWNA nil,gud-def
TAKVE PRIWQZYWAET\TU KOMANDU K C-c PRIWQZKA W REVIME BUFERA GUD I K C-x C-a PRI-
WQZKA GLOBALXNO.
kOMANDNAQ STROKA MOVET SODERVATX OPREDELENNYE`%'-POSLEDOWATELXNOSTI,KOTORYE OBO-
ZNA^A@T DANNYE,PODSTAWLQEMYE WO WREMQ WYZOWA FUNKCII:
gLAWA 23:sBORKA I TESTIROWANIE PROGRAMM 253`%f'iMQ TEKU]EGO ISHODNOGO FAJLA.eSLI TEKU]IM QWLQETSQ BUFER GUD,TO\TEKU-
]IJ ISHODNYJ FAJL"|\TO FAJL,W KOTOROM PROGRAMMA OSTANOWILASX.
`%l'nOMER TEKU]EJ ISHODNOJ STROKI.eSLI TEKU]IM QWLQETSQ BUFER GUD,TO\TE-
KU]AQ ISHODNAQ STROKA"|\TO STROKA,NA KOTOROJ OSTANOWILASX PROGRAMMA.
`%e'tEKST lvalue QZYKA sI ILI WYRAVENIQ WYZOWA FUNKCII,W KOTOROM ILI RQDOM S
KOTORYM NAHODITSQ TO^KA.
`%a'tEKST [ESTNADCATIRI^NOGO ADRESA,W KOTOROM ILI RQDOM S KOTORYM NAHODITSQ
TO^KA.
`%p'~ISLOWOJ ARGUMENT WYZWANNOJ FUNKCII W WIDE DESQTI^NOGO ^ISLA.eSLI\TA
KOMANDA ISPOLXZUETSQ BEZ ^ISLOWOGO ARGUMENTA,`%p'BUDET PUSTOJ STROKOJ.
eSLI WY NE ISPOLXZOWALI`%p'W KOMANDNOJ STROKE,OPREDELQEMAQ WAMI KOMANDA
BUDET IGNORIROWATX L@BOJ ^ISLOWOJ ARGUMENT.
23.6 iSPOLNENIE LISPOWSKIH WYRAVENIJ
w Emacs ESTX NESKOLXKO OSNOWNYH REVIMOW DLQ QZYKOW lISP I Scheme.w NIH IS-
POLXZU@TSQ ODNI I TE VE KOMANDY REDAKTIROWANIQ,NO RAZNYE KOMANDY DLQ ISPOLNENIQ
WYRAVENIJ lISPA.u KAVDOGO REVIMA SWOE PREDNAZNA^ENIE.
rEVIM Emacs-Lisp
rEVIM DLQ REDAKTIROWANIQ ISHODNYH FAJLOW PROGRAMM,ZAPUSKAEMYH W Emacs
Lisp.|TOT REVIM OPREDELQET C-M-x DLQ WY^ISLENIQ TEKU]EGO OPREDELENIQ
FUNKCII.sM.rAZDEL 23.7 [bIBLIOTEKI lISPA],S.253.
rEVIM Lisp Interaction
rEVIM DLQ DIALOGOWOGO SEANSA S Emacs Lisp.oN OPREDELQET C-j DLQ WY^ISLENIQ
s-WYRAVENIQ PERED TO^KOJ I WSTAWKI EGO ZNA^ENIQ W BUFER.sM.rAZDEL 23.9
[dIALOG S lISPOM],S.255.
rEVIM Lisp
rEVIM DLQ REDAKTIROWANIQ ISHODNYH FAJLOW PROGRAMM,KOTORYE ZAPUSKA@T W
lISPAH,OTLI^NYH OT Emacs Lisp.|TOT REVIM OPREDELQET C-M-x TAK,^TOBY
ON POSYLAL TEKU]EE OPREDELENIE FUNKCII POD^INENNOMU lISP-PROCESSU.sM.rAZDEL 23.10 [wNE[NIJ lISP],S.256.
rEVIM Inferior Lisp
rEVIM DLQ DIALOGOWOGO SEANSA S POD^INENNYM PROCESSOM lISPA.|TOT RE-
VIM OB_EDINQET SPECIALXNYE SREDSTWA REVIMA Lisp I REVIMA Shell (SM.rAZ-
DEL 30.2.3 [rEVIM Shell],S.325 ).
rEVIM Scheme
pODOBEN REVIMU Lisp,NO DLQ PROGRAMM NA Scheme.
rEVIM Inferior Scheme
rEVIM DLQ DIALOGOWOGO SEANSA S POD^INENNYM PROCESSOM Scheme.
bOLX[INSTWO KOMAND REDAKTIROWANIQ DLQ RABOTY S PROGRAMMAMI NA lISPE NA SAMOM
DELE DOSTUPNY GLOBALXNO.sM.gLAWA 22 [pROGRAMMY],S.205.
23.7 bIBLIOTEKI lISP-PROGRAMM DLQ Emacs
lISP-PROGRAMMY DLQ KOMAND REDAKTIROWANIQ HRANQTSQ W FAJLAH,^XI IMENA TRADICION-
NO OKAN^IWA@TSQ NA`.el'.|TO OKON^ANIE SOOB]AET Emacs,^TO REDAKTIROWATX IH SLEDUET
W REVIME Emacs-Lisp (SM.rAZDEL 23.6 [iSPOLNENIE lISPA],S.253).
254 rUKOWODSTWO PO GNU Emacs~TOBY WYPOLNITX FAJL S KODOM NA Emacs Lisp,ISPOLXZUJTE M-x load-file.|TA KO-
MANDA S^ITYWAET IMQ FAJLA,ISPOLXZUQ MINIBUFER,I ZATEM WYPOLNQET SODERVIMOE\TOGO
FAJLA KAK lISP-PROGRAMMU.dLQ\TOGO NET NEOBHODIMOSTI SNA^ALA OBRA]ATXSQ K FAJLU,W
L@BOM SLU^AE\TA KOMANDA S^ITYWAET FAJL TAKIM,KAKIM ON NAHODITSQ NA DISKE,A NE KAK
TEKST W BUFERE Emacs.
eSLI FAJL lISP-PROGRAMMY USTANOWLEN W KATALOGAH S BIBLIOTEKAMI Emacs Lisp,POLX-
ZOWATELI MOGUT ZAGRUZITX EGO,ISPOLXZUQ M-x load-library.pROGRAMMY MOGUT ZAGRUZITX
EGO,WYZYWAQ load-library,ILI S POMO]X@ load,BOLEE NIZKOUROWNEWOJ FUNKCII,KOTORAQ
POHOVA NA\TU,NO DOPUSKAET NEKOTORYE DOPOLNITELXNYE ARGUMENTY.
M-x load-library OTLI^AETSQ OT M-x load-file TEM,^TO ONA PROSMATRIWAET POSLEDOWA-
TELXNOSTX KATALOGOW I PROBUET TRI IMENI W KAVDOM IZ NIH.pREDPOLOVIM,WA[ ARGUMENT
|\TO lib;TRI\TIH IMENI |\TO`lib.elc',`lib.el'I NAKONEC PROSTO`lib'.eSLI SU]ESTWUET
FAJL`lib.elc',PO SOGLA[ENI@\TO FAJL,POLU^AEMYJ W REZULXTATE KOMPILQCII;LU^[E
ZAGRUZITX SKOMPILIROWANNYJ FAJL,TAK KAK ON ZAGRUVAETSQ I RABOTAET BYSTREE.
eSLI load-library OBNARUVIT,^TO`lib.el'NOWEE,^EM`lib.elc',ONA NAPE^ATAET SOOB-
]ENIE,POTOMU ^TO\TO POHOVE NA TO,^TO KTO-TO WNES IZMENENIQ W`.el'-FAJL I ZABYL EGO
PEREKOMPILIROWATX.
tAK KAK ARGUMENT DLQ load-library OBY^NO NE QWLQETSQ SAM PO SEBE DEJSTWITELXNYM
IMENEM FAJLA,TO ZAWER[ENIE IMENI FAJLA NEDOSTUPNO.dEJSTWITELXNO,ISPOLXZUQ\TU
KOMANDU,WY NE ZNAETE TO^NO,KAKOE IMQ FAJLA BUDET ISPOLXZOWANO.
pOSLEDOWATELXNOSTX KATALOGOW,PROSMATRIWAEMYH M-x load-library,OPREDELQETSQ PE-
REMENNOJ load-path,SPISKOM STROK,QWLQ@]IHSQ IMENAMI KATALOGOW.pO UMOL^ANI@ ZNA-
^ENIE\TOGO SPISKA SODERVIT KATALOG,GDE HRANITSQ lISP-KOD SAMOGO Emacs.eSLI U WAS
ESTX SWOI SOBSTWENNYE BIBLIOTEKI,POMESTITE IH W ODIN KATALOG I DOBAWXTE\TOT KATALOG
K load-path.nil W\TOM SPISKE OZNA^AET TEKU]IJ KATALOG PO UMOL^ANI@,NO SKOREE WSEGO,
STAWITX W SPISOK nil | NE SAMAQ LU^[AQ IDEQ.eSLI WY SAMI RE[ILI,^TO HOTITE IMETX
nil W\TOM SPISKE,TO NAIBOLEE WEROQTNO,^TO W DEJSTWITELXNOSTI WY HOTITE W\TOT RAZ
ISPOLXZOWATX M-x load-file.
~ASTO WY NE DOLVNY DAWATX NIKAKOJ KOMANDY,^TOBY ZAGRUZITX KAKU@-NIBUDX BIBLIO-
TEKU,TAK KAK OPREDELENNYE W NEJ KOMANDY NASTROENY TAKIM OBRAZOM,^TO WYPOLNQ@T
AWTOZAGRUZKU\TOJ BIBLIOTEKI.pOPYTKA ZAPUSKA L@BOJ IZ\TIH KOMAND PRIWODIT K WYZOWU
load DLQ ZAGRUZKI NUVNOJ BIBLIOTEKI.|TO MENQET OPREDELENIQ AWTOZAGRUZKI NA DEJSTWI-
TELXNYE OPREDELENIQ IZ BIBLIOTEKI.
kOD NA Emacs Lisp MOVET BYTX OTKOMPILIROWAN W BAJT-KOD,KOTORYJ ZAGRUVAETSQ BY-
STREE,ZANIMAET POSLE ZAGRUZKI MENX[E PAMQTI I BYSTREE WYPOLNQETSQ.sM.RAZDEL\Byte
Compilation"W the Emacs Lisp Reference Manual.pO SOGLA[ENI@,SKOMPILIROWANNYJ KOD
BIBLIOTEKI POME]AETSQ W OTDELXNYJ FAJL,^XE IMQ SOSTOIT IZ IMENI ISHODNOGO FAJLA BIB-
LIOTEKI S DOBAWLENNYM`c'.tAKIM OBRAZOM,SKOMPILIROWANNYJ KOD DLQ`foo.el'POPADAET
W`foo.elc'.pO\TOMU load-library SNA^ALA I]ET`.elc'-FAJLY.
23.8 wY^ISLENIE WYRAVENIJ Emacs-Lisp
pROGRAMMY NA lISPE,PREDNAZNA^ENNYE DLQ ZAPUSKA W Emacs,NUVNO REDAKTIROWATX W
REVIME Emacs-Lisp.|TO PROISHODIT AWTOMATI^ESKI DLQ FAJLOW,^XI IMENA KON^A@TSQ
NA`.el'.w PROTIWOPOLOVNOSTX\TOMU,SAM REVIM Lisp ISPOLXZUETSQ DLQ REDAKTIROWA-
NIQ lISP-PROGRAMM,PREDNAZNA^ENNYH DLQ DRUGIH lISP-SISTEM.~TOBY PEREJTI W REVIM
Emacs-Lisp,ISPOLXZUETE KOMANDU M-x emacs-lisp-mode.
dLQ PROWERKI PROGRAMM NA lISPE,PREDNAZNA^ENNYH DLQ ZAPUSKA W Emacs,^ASTO POLEZNO
WY^ISLQTX KAKU@-NIBUDX ^ASTX PROGRAMMY W TOM WIDE,KAK ONA NAHODITSQ W BUFERE Emacs.
nAPRIMER,POSLE IZMENENIQ TEKSTA OPREDELENIQ LISPOWSKOJ FUNKCII,WY^ISLENIE OPREDELE-
NIQ USTANAWLIWAET\TO IZMENENIE DLQ BUDU]IH WYZOWOW FUNKCII.wY^ISLENIE LISPOWSKIH
gLAWA 23:sBORKA I TESTIROWANIE PROGRAMM 255WYRAVENIJ TAKVE UDOBNO PRI L@BOM REDAKTIROWANII DLQ ZAPUSKA NEINTERAKTIWNYH FUNK-
CIJ (FUNKCIJ,KOTORYE NE QWLQ@TSQ KOMANDAMI).
M-:s^ITYWAET ODNO LISPOWSKOE WYRAVENIE W MINIBUFERE,WY^ISLQET EGO I PE^ATA-
ET EGO ZNA^ENIE W\HO-OBLASTI (eval-expression).
C-x C-e wY^ISLQET LISPOWSKOE WYRAVENIE,NAHODQ]EESQ PERED TO^KOJ,I PE^ATAET EGO
ZNA^ENIE W\HO-OBLASTI (eval-last-sexp).
C-M-x wY^ISLQET OPREDELENIE FUNKCII,SODERVA]EE TO^KU ILI NAHODQ]EESQ POSLE
NEE,I PE^ATAET EGO ZNA^ENIE W\HO-OBLASTI (eval-defun).
M-x eval-region
wY^ISLQET WSE LISPOWSKIE WYRAVENIQ W OBLASTI.
M-x eval-current-buffer
wY^ISLQET WSE LISPOWSKIE WYRAVENIQ W\TOM BUFERE.
M-:(eval-expression) |\TO SAMAQ OSNOWNAQ KOMANDA DLQ INTERAKTIWNOGO WY^ISLENIQ
LISPOWSKIH WYRAVENIJ.oNA S^ITYWAET WYRAVENIE,ISPOLXZUQ MINIBUFER,TAK ^TO WY
MOVETE WYPOLNITX L@BOE WYRAVENIE W L@BOM BUFERE,NEZAWISIMO OT TOGO,^TO\TOT BUFER
SODERVIT.kOGDA WYRAVENIE WY^ISLENO,TO TEKU]IM BUFEROM OPQTX QWLQETSQ TOT,KOTORYJ
BYL TEKU]IM,KOGDA WY NABIRALI M-:.
w REVIME Emacs-Lisp KL@^ C-M-x PRIWQZAN K KOMANDE eval-defun,KOTORAQ ANALIZIRUET
OPREDELENIE FUNKCII,SLEDU@]EE ZA TO^KOJ ILI SODERVA]EE EE,KAK WYRAVENIE lISPA I
WY^ISLQET EGO.zNA^ENIE PE^ATAETSQ W\HO-OBLASTI.|TA KOMANDA UDOBNA DLQ USTANOWKI W
SREDE lISPA IZMENENIJ,KOTORYE WY TOLXKO ^TO SDELALI W TEKSTE OPREDELENIQ FUNKCII.
C-M-x OBRABATYWAET WYRAVENIQ defvar OSOBO.oBY^NO WY^ISLENIE WYRAVENIQ defvar
NE DELAET NI^EGO,ESLI OPREDELQEMAQ IM PEREMENNAQ UVE IMEET ZNA^ENIE.nO C-M-x WSEGDA
PEREUSTANAWLIWAET\TU PEREMENNU@ W NA^ALXNOE ZNA^ENIE,ZADANNOE WYRAVENIEM defvar.
|TA OSOBENNOSTX UDOBNA DLQ OTLADKI PROGRAMM NA lISPE.
kOMANDA C-x C-e (eval-last-sexp) WY^ISLQET LISPOWSKOE WYRAVENIEM,NAHODQ]EESQ W
\TOM BUFERE PERED TO^KOJ,I POKAZYWAET EGO ZNA^ENIE W\HO-OBLASTI.oNA DOSTUPNA WO WSEH
OSNOWNYH REVIMAH,A NE TOLXKO W REVIME Emacs-Lisp.oNA NE OBRABATYWAET defvar OSOBO.
eSLI KOMANDAM C-M-x,C-x C-e ILI M-:ZADAN ^ISLOWOJ ARGUMENT,TO ONI WSTAWLQ@T ZNA-
^ENIE W TEKU]IJ BUFER W POZICII TO^KI,A NE W PE^ATA@T\HO-OBLASTI.zNA^ENIE ARGUMENTA
NE IGRAET ROLI.
sAMOJ OB]EJ KOMANDOJ DLQ WY^ISLENIQ lISP-WYRAVENIJ IZ BUFERA QWLQETSQ eval-
region.M-x eval-region ANALIZIRUET TEKST IZ OBLASTI KAK ODNO ILI NESKOLXKO LISPOWSKIH
WYRAVENIJ,WY^ISLQQ IH ODNO ZA DRUGIM.M-x eval-current-buffer POHOVA NA PREDYDU-
]U@,NO WY^ISLQET WESX BUFER.|TO OPRAWDANNYJ SPOSOB USTANOWKI lISP-KODA IZ FAJLA,
KOTORYJ WY KAK RAZ GOTOWY PROWERITX.pOSLE NAHOVDENIQ I ISPRAWLENIQ O[IBKI ISPOLX-
ZUJTE C-M-x W KAVDOJ FUNKCII,KOTORU@ WY IZMENQETE.|TO SOHRANIT SOOTWETSTWIE MEVDU
MIROM lISPA I ISHODNYM FAJLOM.
23.9 bUFERY DIALOGA S lISPOM
bUFER`*scratch*',WYBIRAEMYJ W MOMENT ZAPUSKA Emacs,PREDNAZNA^EN DLQ INTERAK-
TIWNOGO WY^ISLENIQ lISP-WYRAVENIJ WNUTRI Emacs.
pROSTEJ[IJ SPOSOB ISPOLXZOWANIQ BUFERA`*scratch*'|WSTAWLQTX LISPOWSKIE WYRAVE-
NIQ,OKAN^IWAQ KAVDOE IZ NIH WWODOM C-j.|TA KOMANDA S^ITYWAET lISP-WYRAVENIE PERED
TO^KOJ,WY^ISLQET EGO I WSTAWLQET EGO ZNA^ENIE W PE^ATNOM PREDSTAWLENII PERED TO^KOJ.
rEZULXTATOM BUDET POLNYJ PROTOKOL WY^ISLENNYH WAMI WYRAVENIJ I IH ZNA^ENIJ.
oSNOWNOJ REVIM BUFERA`*scratch*'NAZYWAETSQ Lisp Interaction;ON WO WSEM\KWIWALEN-
TEN REVIMU Emacs-Lisp,ZA ISKL@^ENIEM PRIWQZKI DLQ C-j.
256 rUKOWODSTWO PO GNU EmacscELESOOBRAZNOSTX\TOGO SWOJSTWA SOSTOIT W TOM,^TO U Emacs DOLVEN BYTX BUFER W
MOMENT ZAPUSKA,NO\TOT BUFER NEUDOBEN DLQ REDAKTIROWANIQ FAJLOW,TAK KAK NOWYJ BUFER
SOZDAETSQ DLQ KAVDOGO FAJLA,K KOTOROMU WY OBRA]AETESX.q DUMA@,^TO SAMOE POLEZNOE,
^TO MOVET DELATX NA^ALXNYJ BUFER,|\TO WESTI PROTOKOL INTERPRETATORA lISPA.M-x
lisp-interaction-mode PEREWEDET L@BOJ BUFER W REVIM Lisp Interaction.
aLXTERNATIWNYJ SPOSOB INTERAKTIWNOGO WY^ISLENIQ WYRAVENIJ Emacs Lisp PREDOSTAW-
LQET REVIM Inferior Emacs-Lisp,KOTORYJ IMEET INTERFEJS,POHOVIJ SKOREE NA INTERFEJS
REVIMA Shell (SM.rAZDEL 30.2.3 [rEVIM Shell],S.325).nABERITE M-x ielm,^TOBY SOZDATX
BUFER`*ielm*',ISPOLXZU@]IJ\TOT REVIM.
23.10 zAPUSK WNE[NEGO lISPA
Emacs IMEET SREDSTWA DLQ ZAPUSKA PROGRAMM W DRUGIH lISP-SISTEMAH.wY MOVETE ZAPU-
STITX lISP-PROCESS KAK POD^INENNYJ PROCESS Emacs I PEREDAWATX EMU WYRAVENIQ,KOTORYE
NUVNO WY^ISLITX.wY TAKVE MOVETE PEREDATX POD^INENNOMU lISP-PROCESSU IZMENENNYE
OPREDELENIQ FUNKCIJ NEPOSREDSTWENNO IZ BUFEROW Emacs,W KOTORYH WY REDAKTIRUETE PRO-
GRAMMY NA lISPE.
~TOBY ZAPUSTITX POD^INENNYJ lISP-PROCESS,NABERITE M-x run-lisp.|TO ZAPUSKAET
PROGRAMMU S IMENEM lisp,TU VE PROGRAMMU,KOTORU@ BY WY ZAPUSTILI,NABRAW lisp KAK
KOMANDU OBOLO^KI,S WYWODOM I WWODOM,IDU]IMI ^EREZ BUFER Emacs S IMENEM`*lisp*'.
sLEDUET SKAZATX,^TO L@BOJ\TERMINALXNYJ WYWOD"OT lISPA POJDET W\TOT BUFER,PE-
REDWIGAQ WPERED TO^KU,I L@BOJ\TERMINALXNYJ WWOD"DLQ lISPA PRIHODIT IZ TEKSTA W
BUFERE.(wY MOVETE IZMENITX IMQ ISPOLNQEMOGO FAJLA lISPA,USTANOWIW PEREMENNU@
inferior-lisp-program.)
~TOBY DATX WWOD W lISP,OTPRAWXTE SX W KONEC BUFERA I NABERITE NUVNYJ TEKST,ZAWER-
[IW EGO WWODOM h RETi.bUFER`*lisp*'NAHODITSQ W REVIME Inferior Lisp,REVIME,KOTORYJ
OB_EDINQET SPECIALXNYE HARAKTERISTIKI REVIMA Lisp I BOLX[U@ ^ASTX SWOJSTW REVIMA
Shell (SM.rAZDEL 30.2.3 [rEVIM Shell],S.325).oPREDELENIE hRETi KAK KOMANDY,POSYLA@]EJ
STROKU PODPROCESSU,|\TO ODNA IZ OSOBENNOSTEJ REVIMA Shell.
dLQ ZAPUSKA ISHODNYH FAJLOW PROGRAMM WO WNE[NIH lISPAH ISPOLXZUJTE REVIM Lisp.
|TOT REVIM MOVNO WYBIRATX PRI POMO]I M-x lisp-mode;ON ISPOLXZUETSQ AWTOMATI^ESKI
DLQ FAJLOW,IMENA KOTORYH OKAN^IWA@TSQ NA`.l',`.lsp'ILI`.lisp',KAKIE I PRIMENQ@TSQ
W BOLX[INSTWE lISP-SISTEM.
kOGDA WY REDAKTIRUETE FUNKCI@ W PROGRAMME NA lISPE,KOTORAQ RABOTAET W DANNYJ
MOMENT,PROSTEJ[IM SPOSOBOM PERESYLKI IZMENENNOGO OPREDELENIQ W POD^INENNYJ lISP-
PROCESS QWLQETSQ KL@^ C-M-x.w REVIME Lisp PRI\TOM ZAPUSKAETSQ FUNKCIQ lisp-send-
defun,KOTORAQ NAHODIT OPREDELENIE FUNKCII RQDOM ILI SLEDOM ZA TO^KOJ I POSYLAET
EGO KAK WWOD W lISP-PROCESS.(Emacs MOVET POSLATX WWOD W L@BOJ POD^INENNYJ PROCESS
NEZAWISIMO OT TOGO,KAKOJ BUFER QWLQETSQ TEKU]IM.)
sRAWNIM ZNA^ENIQ C-M-x W REVIME Lisp (DLQ REDAKTIROWANIQ PROGRAMM,ZAPUSKAEMYH
W DRUGOJ lISP-SISTEME) I REVIME Emacs-Lisp (DLQ REDAKTIROWANIQ PROGRAMM NA lISPE,
PREDNAZNA^ENNYH DLQ RABOTY W Emacs):W OBOIH REVIMAH ONA IMEET DEJSTWIE USTANOWKI
OPREDELENIQ,W KOTOROM NAHODITSQ TO^KA,NO SPOSOB WYPOLNENIQ\TOGO RAZLI^AETSQ,SO-
GLASNO TOMU,GDE NAHODITSQ SOOTWETSTWU@]AQ SREDA lISPA.sM.rAZDEL 23.6 [iSPOLNENIE
lISPA],S.253.
gLAWA 24:sOKRA]ENIQ 25724 sOKRA]ENIQ
sOKRA]ENIE |\TO SLOWO,KOTOROE PRI WSTAWKE RAS[IFROWYWAETSQ W KAKOJ-NIBUDX DRU-
GOJ TEKST.rAS[IFROWKI SOKRA]ENIJ OPREDELQ@TSQ POLXZOWATELEM.nAPRIMER,WY MOVETE
OPREDELITX`foo'KAK SOKRA]ENIE,RAS[IFROWYWA@]EESQ W`find outer otter'.oPREDELIW
TAKOE SOKRA]ENIE,WY POLU^ITE WOZMOVNOSTX WSTAWLQTX W BUFER`find outer otter',NABI-
RAQ f o o
hSPCi.
wTOROJ WID RABOTY S SOKRA]ENIQMI NAZYWAETSQ DINAMI^ESKOJ RAS[IFROWKOJ SOKRA]E-
NIJ.wY ISPOLXZUETE DINAMI^ESKU@ RAS[IFROWKU SOKRA]ENIJ S POMO]X@ QWNOJ KOMANDY,
RASKRYWA@]EJ BUKWY PERED TO^KOJ PUTEM POISKA W\TOM BUFERE DRUGIH SLOW,KOTORYE
NA^INA@TSQ S TAKIH VE BUKW.sM.rAZDEL 24.6 [dINAMI^ESKIE SOKRA]ENIQ],S.260.
24.1 pONQTIQ O SOKRA]ENIQH
sOKRA]ENIE |\TO SLOWO,KOTOROE BYLO OPREDELENO KAK RAS[IFROWYWA@]EESQ W ZADAN-
NU@ RAS[IFROWKU.kOGDA WY WSTAWLQETE POSLE SOKRA]ENIQ ZNAK,RAZDELQ@]IJ SLOWA,SO-
KRA]ENIE RASKRYWAETSQ,ZAMENQQSX NA RAS[IFROWKU.nAPRIMER,ESLI`foo'OPREDELENO KAK
SOKRA]ENIE,RAS[IFROWYWA@]EESQ W`find outer otter',TO WY MOVETE WSTAWITX W BUFER
`find outer otter.',NAPE^ATAW f o o..
sOKRA]ENIQ RAS[IFROWYWA@TSQ,TOLXKO KOGDA WKL@^EN REVIM Abbrev (WTOROSTEPEN-
NYJ REVIM).wYKL@^ENIE REVIMA Abbrev NE WYZYWAET ZABWENIQ OPREDELENIJ SOKRA]ENIJ,
NO ONI NE RAS[IFROWYWA@TSQ,POKA REVIM Abbrev NE BUDET SNOWA WKL@^EN.kOMANDA M-x
abbrev-mode PEREKL@^AET REVIM Abbrev.s ^ISLOWYM ARGUMENTOM ONA WKL@^AET\TOT
REVIM,ESLI ARGUMENT POLOVITELXNYJ,W PROTIWNOM SLU^AE | WYKL@^AET EGO.sM.rAZ-
DEL 31.1 [wTOROSTEPENNYE REVIMY],S.341.sIMWOL abbrev-mode TAKVE QWLQETSQ PERE-
MENNOJ;REVIM Abbrev WKL@^AETSQ,KOGDA\TO PEREMENNAQ OTLI^NA OT nil.pEREMENNAQ
abbrev-mode AWTOMATI^ESKI STANOWITSQ LOKALXNOJ DLQ TEKU]EGO BUFERA,KAK TOLXKO WY EE
USTANAWLIWAETE.
oPREDELENIQ SOKRA]ENIJ MOGUT BYTX ZAWISQ]IMI OT REVIMA,TO ESTX DEJSTWOWATX TOLX-
KO W ODNOM OSNOWNOM REVIME.sOKRA]ENIQ MOGUT TAKVE IMETX GLOBALXNYE OPREDELENIQ,
KOTORYE QWLQ@TSQ AKTIWNYMI WO WSEH OSNOWNYH REVIMAH.oDNI I TE VE SOKRA]ENIQ MOGUT
IMETX GLOBALXNOE OPREDELENIE I RAZLI^NYE ZAWISQ]IE OT REVIMA OPREDELENIQ DLQ RAZNYH
OSNOWNYH REVIMOW.zAWISQ]EE OT REVIMA OPREDELENIE DLQ TEKU]EGO OSNOWNOGO REVIMA
PEREKRYWAET GLOBALXNOE OPREDELENIE.
sOKRA]ENIQ MOVNO OPREDELQTX INTERAKTIWNO WO WREMQ SEANSA REDAKTIROWANIQ.sPISKI
OPREDELENIJ SOKRA]ENIJ MOGUT TAKVE HRANITXSQ W FAJLAH I PEREZAGRUVATXSQ W POSLEDU@-
]IH SEANSAH.nEKOTORYE POLXZOWATELI DERVAT OB[IRNYE SPISKI SOKRA]ENIJ I ZAGRUVA@T
IH W KAVDOM SEANSE.
24.2 oPREDELENIE SOKRA]ENIJ
C-x a g oPREDELITX SOKRA]ENIE,ISPOLXZUQ ODNO ILI NESKOLXKO SLOW PERED TO^KOJ W
KA^ESTWE EGO RAS[IFROWKI (add-global-abbrev).
C-x a l aNALOGI^NO,NO OPREDELITX SOKRA]ENIE,DOSTUPNOE TOLXKO W TEKU]EM OSNOWNOM
REVIME (add-mode-abbrev).
C-x a i g oPREDELITX SLOWO W BUFERE KAK SOKRA]ENIE (inverse-add-global-abbrev).
C-x a i l oPREDELITX SLOWO W BUFERE KAK SWOJSTWENNOE DLQ REVIMA SOKRA]ENIE (inverse-
add-mode-abbrev).
M-x kill-all-abbrevs
|TA KOMANDA SBRASYWAET WSE DEJSTWU@]IE W DANNYJ MOMENT OPREDELENIQ SO-
KRA]ENIJ,NA^INAQ WS< SNA^ALA.
258 rUKOWODSTWO PO GNU EmacsoBY^NYJ SPOSOB OPREDELITX SOKRA]ENIE | WOJTI W TEKST,KOTORYJ WY HOTITE ZA[IF-
ROWYWATX,USTANOWITX POSLE NEGO TO^KU I NABRATX C-x a g (add-global-abbrev).pRI\TOM
SAMO SOKRA]ENIE S^ITYWAETSQ W MINIBUFERE,I ZATEM ONO OPREDELQETSQ KAK SOKRA]ENIE DLQ
ODNOGO ILI BOLEE SLOW PERED TO^KOJ.iSPOLXZUJTE ^ISLOWOJ ARGUMENT DLQ UKAZANIQ ^ISLA
SLOW PERED TO^KOJ,KOTORYE DOLVNY BRATXSQ W KA^ESTWE RAS[IFROWKI.nAPRIMER,^TOBY
OPREDELITX SOKRA]ENIE`foo'KAK OPISANO WY[E,WSTAWXTE TEKST`find outer otter'I ZATEM
NABERITE C-u 3 C-x a g f o o
hRETi.
nULEWOJ ARGUMENT DLQ C-x a g OZNA^AET,^TO W KA^ESTWE RAS[IFROWKI OPREDELQEMOGO
SOKRA]ENIQ SLEDUET ISPOLXZOWATX SODERVIMOE OBLASTI.
kOMANDA C-x a l (add-mode-abbrev) POHOVA,NO OPREDELQET SOKRA]ENIE,SWOJSTWENNOE
DLQ REVIMA.sWOJSTWENNYE DLQ REVIMA SOKRA]ENIQ AKTIWNY TOLXKO W OTDELXNOM OSNOWNOM
REVIME.C-x a l OPREDELQET SOKRA]ENIE DLQ OSNOWNOGO REVIMA,DEJSTWU@]EGO W MOMENT
NABORA\TOJ KOMANDY.aRGUMENTY RABOTA@T TAK VE,KAK I DLQ C-x a g.
eSLI NAHODQ]IJSQ W BUFERE TEKST QWLQETSQ SOKRA]ENIEM,A NE EGO RAS[IFROWKOJ,IS-
POLXZUJTE KOMANDU C-x a i g (inverse-add-global-abbrev) WMESTO C-x a g ILI C-x a i l
(inverse-add-mode-abbrev) WMESTO C-x a l.|TI KOMANDY NAZYWA@TSQ\INWERSNYMI",TAK
KAK ONI OBRA]A@T SMYSL DWUH ISPOLXZUEMYH TEKSTOWYH STROK (ODNOJ IZ BUFERA I WTOROJ,
S^ITYWAEMOJ W MINIBUFERE).
~TOBY IZMENITX OPREDELENIE SOKRA]ENIQ,PROSTO DOBAWXTE NOWOE OPREDELENIE.wAS SPRO-
SQT O PODTWERVDENII,ESLI TAKOE SOKRA]ENIE UVE OPREDELENO.
~TOBY UNI^TOVITX OPREDELENIE SOKRA]ENIQ,DAJTE KOMANDE OPREDELENIQ SOKRA]ENIJ
OTRICATELXNYJ ARGUMENT:C-u - C-x a g ILI C-u - C-x a l.pERWAQ UDALQET GLOBALXNOE
OPREDELENIE,A WTORAQ |SWOJSTWENNOE DLQ REVIMA.
M-x kill-all-abbrevs UNI^TOVAET WSE IME@]IESQ OPREDELENIQ SOKRA]ENIJ,KAK GLO-
BALXNYE,TAK I LOKALXNYE.
24.3 uPRAWLENIE RAS[IFROWKOJ SOKRA]ENIQ
sOKRA]ENIE RAS[IFROWYWAETSQ WSQKIJ RAZ,KOGDA ONO PRISUTSTWUET W BUFERE NEPOSRED-
STWENNO PERED TO^KOJ,I WY NABIRAETE SAMOWSTAWLQ@]IJSQ PROBELXNYJ ZNAK ILI ZNAK PUNK-
TUACII (h SPCi,ZAPQTU@ I TOMU PODOBNOE).bOLEE TO^NO,L@BOJ ZNAK,NE QWLQ@]IJSQ ^ASTX@
SLOWA,RASKRYWAET SOKRA]ENIE,A L@BOJ ZNAK,KOTORYJ MOVET BYTX ^ASTX@ SLOWA,MOVET
BYTX ^ASTX@ SOKRA]ENIQ.nAIBOLEE OB]IJ SPOSOB ISPOLXZOWANIQ SOKRA]ENIQ | WSTAWITX
EGO I WWESTI ZATEM ZNAK PREPINANIQ.
rAS[IFROWKA SOKRA]ENIQ SOHRANQET REGISTR BUKW;TAKIM OBRAZOM,`foo'RAS[IFROWY-
WAETSQ W`find outer otter';`Foo'W`Find outer otter',A`FOO'W`FIND OUTER OTTER'ILI W
`Find Outer Otter'W ZAWISIMOSTI OT ZNA^ENIQ PEREMENNOJ abbrev-all-caps (ZNA^ENIE,NE
RAWNOE nil,WYBIRAET PERWU@ IZ DWUH RAS[IFROWOK).
dLQ UPRAWLENIQ RAS[IFROWKOJ SOKRA]ENIJ ISPOLXZU@TSQ SLEDU@]IE KOMANDY:
M-'oTDELITX PRISTAWKU OT POSLEDU@]EGO SOKRA]ENIQ,KOTOROE BUDET RAS[IFRO-
WYWATXSQ POZDNEE (abbrev-prefix-mark).
C-x a e rAS[IFROWATX SOKRA]ENIE PERED TO^KOJ (expand-abbrev).|TO DEJSTWUET,DAVE
KOGDA OTKL@^EN REVIM Abbrev.
M-x expand-region-abbrevs
rAS[IFROWATX NEKOTORYE ILI WSE SOKRA]ENIQ W OBLASTI.
wY MOVETE ZAHOTETX RAS[IFROWATX SOKRA]ENIE S PRISOEDINENNOJ PRISTAWKOJ;NAPRI-
MER,ESLI`cnst'RASKRYWAETSQ W`construction',WY MOGLI BY ZAHOTETX ISPOLXZOWATX EGO
DLQ WWODA`reconstruction'.nABOR`recnst'NE RABOTAET,TAK KAK\TO NE OBQZATELXNO
OPREDELENNOE SOKRA]ENIE.w\TOM SLU^AE SRABOTAET PRIMENENIE KOMANDY M-'(abbrev-
prefix-mark) MEVDU PRISTAWKOJ`re'I SOKRA]ENIEM`cnst'.pERWYM WSTAWXTE`re'.zATEM
gLAWA 24:sOKRA]ENIQ 259NABERITE M-';\TA KOMANDA WSTAWIT W BUFER DEFIS,^TOBY POKAZATX,^TO ONA WYPOLNILA
SWO@ RABOTU.zATEM WSTAWXTE SOKRA]ENIE`cnst'.tEPERX BUFER SODERVIT`re-cnst'.tE-
PERX WSTAWXTE ZNAK,NE QWLQ@]IJSQ ^ASTX@ SLOWA,^TOBY RAS[IFROWATX SOKRA]ENIE`cnst'
W`construction'.nA\TOM [AGE RASKRYTIQ DEFIS,OSTAW[IJSQ POSLE ISPOLXZOWANIQ M-',
UDALQETSQ.rEZULXTIRU@]IM TEKSTOM BUDET VELAEMOE SLOWO`reconstruction'.
eSLI WY NA SAMOM DELE HOTITE POLU^ITX W BUFERE TEKST SOKRA]ENIQ,A NE EGO RAS[IF-
ROWKU,WY MOVETE DOSTI^X VELAEMOGO,WSTAWIW POSLEDU@]U@ PUNKTUACI@ S POMO]X@ C-q.
tAKIM OBRAZOM,foo C-q,OSTAWLQET W BUFERE`foo,'.
eSLI WY RAS[IFROWALI SOKRA]ENIE PO O[IBKE,TO WY MOVETE OTMENITX RAS[IFROWKU I
WERNUTX SAMO SOKRA]ENIE,NAPE^ATAW DLQ OTMENY C-_ (SM.rAZDEL 4.4 [oTMENA],S.37).|TO
TAKVE OTMENQET WSTAWKU ZNAKA,NE QWLQ@]EGOSQ ^ASTX@ SLOWA,KOTORYJ RAZWERNUL SOKRA]E-
NIE.eSLI WY HOTITE POLU^ITX ZAWER[A@]IJ ZNAK,NE WHODQ]IJ W SLOWO,PL@S NERASKRYTOE
SOKRA]ENIE,TO WY DOLVNY ZANOWO WSTAWITX ZAWER[A@]IJ ZNAK,\KRANIROWAW EGO KOMANDOJ
C-q.wY TAKVE MOVETE ISPOLXZOWATX KOMANDU M-x unexpand-abbrev DLQ OTMENY POSLEDNEGO
RASKRYTIQ BEZ UDALENIQ ZAWER[A@]EGO ZNAKA.
M-x expand-region-abbrevs I]ET W OBLASTI OPREDELENNYE SOKRA]ENIQ I PREDLAGAET
ZAMENITX KAVDOE NAJDENNOE SOKRA]ENIE NA EGO RAS[IFROWKU.|TO KOMANDA UDOBNA,ESLI
WY NABRALI TEKST,ISPOLXZUQ SOKRA]ENIQ,NO ZABYLI PERED\TIM WKL@^ITX REVIM Abbrev.
oNA TAKVE MOVET BYTX POLEZNOJ WMESTE SO SPECIALXNYM NABOROM OPREDELENIJ SOKRA]ENIJ
DLQ WYPOLNENIQ NESKOLXKIH GLOBALXNYH ZAMEN ZA ODIN RAZ.|TA KOMANDA DEJSTWUET,DAVE
ESLI WYKL@^EN REVIM Abbrev.
rAS[IFROWKA SOKRA]ENIQ ZAPUSKAET LOWU[KU pre-abbrev-expand-hook (SM.rAZ-
DEL 31.2.3 [lOWU[KI],S.349 ).
24.4 pROWERKA I REDAKTIROWANIE SOKRA]ENIJ
M-x list-abbrevs
pOKAZATX PERE^ENX WSEH OPREDELENIJ SOKRA]ENIJ.
M-x edit-abbrevs
rEDAKTIROWATX PERE^ENX SOKRA]ENIJ;WY MOVETE DOBAWITX,IZMENITX ILI UDA-
LITX OPREDELENIQ.
wYWOD M-x list-abbrevs WYGLQDIT TAK:
(lisp-mode-abbrev-table)
"dk"0"define-key"
(global-abbrev-table)
"dfn"0"definition"
(nEKOTORYE PUSTYE STROKI,NE IME@]IE SMYSLOWOJ ZNA^IMOSTI,I NEKOTORYE DRUGIE TA-
BLICY SOKRA]ENIJ BYLI OPU]ENY.)
sTROKA,SODERVA]AQ IMQ W KRUGLYH SKOBKAH,|\TO ZAGOLOWOK DLQ SOKRA]ENIJ IZ KON-
KRETNOJ TABLICY;global-abbrev-table SODERVIT WSE GLOBALXNYE SOKRA]ENIQ,A DRUGIE
TABLICY SOKRA]ENIJ,KOTORYE IMENU@TSQ W SOOTWETSTWII S OSNOWNYMI REVIMAMI,SODER-
VAT SOKRA]ENIQ,SPECIFI^NYE DLQ REVIMA.
kAVDAQ NEPUSTAQ STROKA W TABLICE OPREDELQET ODNO SOKRA]ENIE.sLOWO W NA^ALE STROKI
|\TO SAMO SOKRA]ENIE.~ISLO,STOQ]EE DALEE,GOWORIT,SKOLXKO RAZ SOKRA]ENIE BYLO
RAS[IFROWANO.Emacs OTSLEVIWAET\TO,^TOBY POMO^X WAM UWIDETX,KAKIE SOKRA]ENIQ WY
DEJSTWITELXNO ISPOLXZUETE,NA SLU^AJ,ESLI WY RE[ITE UNI^TOVITX TE,^TO NE ISPOLXZU-
@TSQ DOSTATO^NO ^ASTO.cEPO^KA ZNAKOW W KONCE STROKI |\TO I ESTX RAS[IFROWKA.
M-x edit-abbrevs POZWOLQET WAM DOBAWITX,IZMENITX ILI UNI^TOVITX OPREDELENIQ SO-
KRA]ENIJ PRI POMO]I REDAKTIROWANIQ IH SPISKA W BUFERE Emacs.|TOT SPISOK IMEET TOT
VE SAMYJ FORMAT,^TO I OPISANNYJ WY[E.bUFER SOKRA]ENIJ NAZYWAETSQ`*Abbrevs*'
260 rUKOWODSTWO PO GNU EmacsI NAHODITSQ W REVIME Edit-Abbrevs.nAPE^ATAJTE W\TOM BUFERE C-c C-c,^TOBY USTANO-
WITX,KAK UKAZANO W NEM,OPREDELENIQ SOKRA]ENIJ I UDALITX WSE NE PERE^ISLENNYE W NEM
OPREDELENIQ.
kOMANDA edit-abbrevs |\TO FAKTI^ESKI TO VE SAMOE,^TO I list-abbrevs,ZA IS-
KL@^ENIEM TOGO,^TO ONA WYBIRAET BUFER`*Abbrevs*',TOGDA KAK list-abbrevs PROSTO
POKAZYWAET EGO W DRUGOM OKNE.
24.5 sOHRANENIE SOKRA]ENIJ
|TI KOMANDY POZWOLQ@T WAM SOHRANQTX OPREDELENIQ SOKRA]ENIJ MEVDU SEANSAMI RE-
DAKTIROWANIQ.
M-x write-abbrev-file hRETi FAJL hRETi
zAPISATX FAJL FAJL,OPISYWA@]IJ WSE OPREDELENNYE SOKRA]ENIQ.
M-x read-abbrev-file
h RETi FAJL hRETi
s^ITATX FAJL FAJL I OPREDELITX SOKRA]ENIQ TAK,KAK TAM OPISANO.
M-x quietly-read-abbrev-file
h RETi FAJL hRETi
tO VE SAMOE,NO NE POKAZYWATX SOOB]ENIQ O PROISHODQ]EM.
M-x define-abbrevs
oPREDELITX SOKRA]ENIQ IZ OPREDELENIJ W TEKU]EM BUFERE.
M-x insert-abbrevs
wSTAWITX WSE SOKRA]ENIQ I IH RAS[IFROWKI W TEKU]IJ BUFER.
M-x write-abbrev-file S^ITYWAET IMQ FAJLA,ISPOLXZUQ MINIBUFER,I ZAPISYWAET W
\TOT FAJL OPISANIE WSEH TEKU]IH OPREDELENIJ SOKRA]ENIJ.|TO ISPOLXZUETSQ DLQ TO-
GO,^TOBY SOHRANITX OPREDELENIQ DLQ ISPOLXZOWANIQ W DALXNEJ[IH SEANSAH.hRANIMYJ W
TAKOM FAJLE TEKST |\TO POSLEDOWATELXNOSTX LISPOWSKIH WYRAVENIJ,KOTORYE PRI WYPOL-
NENII OPREDELQ@T TAKIE VE SOKRA]ENIQ,KAKIE U WAS ESTX W DANNYJ MOMENT.
M-x read-abbrev-file ZAPRA[IWAET IMQ FAJLA,ISPOLXZUQ MINIBUFER,I ZATEM
S^ITYWAET\TOT FAJL,OPREDELQQ SOKRA]ENIQ SOGLASNO EGO SODERVIMOMU.M-x
quietly-read-abbrev-file | TAKAQ VE KOMANDA,ZA ISKL@^ENIEM TOGO,^TO ONA NE POKA-
ZYWAET W\HO-OBLASTI SOOB]ENIE O SWOEJ RABOTE;W DEJSTWITELXNOSTI\TO UDOBNO GLAWNYM
OBRAZOM W FAJLE`.emacs'.eSLI L@BOJ IZ\TIH FUNKCIJ PEREDAETSQ PUSTOJ ARGUMENT,TO W
KA^ESTWE IMENI FAJLA ISPOLXZUETSQ ZNA^ENIE PEREMENNOJ abbrev-file-name,KOTORAQ PO
UMOL^ANI@ RAWNA"~/.abbrev_defs".
Emacs AWTOMATI^ESKI PREDLOVIT ZAPISATX SOKRA]ENIQ,ESLI WY IZMENILI KAKOE-LIBO IZ
NIH,WSQKIJ RAZ,KOGDA ON PREDLAGAET SOHRANITX WSE FAJLY (DLQ C-x s ILI C-x C-c).|TO
SWOJSTWO MOVET BYTX OTKL@^ENO USTANOWKOJ PEREMENNOJ save-abbevs W ZNA^ENIE nil.
kOMANDY M-x insert-abbrevs I M-x define-abbrevs POHOVI NA PREDYDU]IE KOMANDY,
NO RABOTA@T NAD TEKSTOM W BUFERE Emacs.M-x insert-abbrevs WSTAWLQET TEKST W TEKU]IJ
BUFER PERED TO^KOJ,OPISYWAQ WSE TEKU]IE OPREDELENIQ SOKRA]ENIJ;M-x define-abbrevs
POLNOSTX@ ANALIZIRUET TEKU]IJ BUFER I SOOTWETSTWENNO OPREDELQET SOKRA]ENIQ.
24.6 dINAMI^ESKAQ RAS[IFROWKA SOKRA]ENIJ
oPISANNYE WY[E SREDSTWA DLQ RABOTY S SOKRA]ENIQMI DEJSTWUET AWTOMATI^ESKI PO
MERE WSTAWKI TEKSTA,NO WSE SOKRA]ENIQ DOLVNY BYTX OPREDELENY QWNO.w PROTIWOPO-
LOVNOSTX\TOMU,DINAMI^ESKIE SOKRA]ENIQ POZWOLQ@T OPREDELQTX ZNA^ENIQ SOKRA]ENIJ
AWTOMATI^ESKI IZ SODERVIMOGO BUFERA,NO DINAMI^ESKAQ RAS[IFROWKA PROISHODIT,TOLXKO
ESLI WY ZAPROSITE EE QWNO.
gLAWA 24:sOKRA]ENIQ 261M-/rAS[IFROWATX SLOWO W BUFERE PERED TO^KOJ KAK DINAMI^ESKOE SOKRA]ENIE PRI
POMO]I POISKA W BUFERE SLOW,NA^INA@]IHSQ S\TOGO SOKRA]ENIQ (dabbrev-
expand).
C-M-/zAWER[ITX SLOWO PERED TO^KOJ KAK DINAMI^ESKOE SOKRA]ENIE (dabbrev-
completion).
nAPRIMER,ESLI BUFER SODERVIT`does this follow'I WY NABERETE f o M-/,TO REZULXTA-
TOM BUDET WSTAWKA`follow',POTOMU ^TO\TO POSLEDNEE SLOWO W BUFERE,KOTOROE NA^INAETSQ
S`fo'.~ISLOWOJ ARGUMENT DLQ M-/GOWORIT,^TO SLEDUET BRATX WTORU@,TRETX@ I TAK DALEE
OTLI^A@]U@SQ RAS[IFROWKU,NAJDENNU@ PRI PROSMOTRE W OBRATNOM NAPRAWLENII OT TO^-
KI.pOWTOR M-/I]ET ALXTERNATIWNU@ RAS[IFROWKU PUTEM DALXNEJ[EGO PROSMOTRA NAZAD.
pOSLE TOGO,KAK BUDET PROSMOTREN WESX TEKST PERED TO^KOJ,PROSMATRIWAETSQ TEKST POSLE
TO^KI.pEREMENNAQ dabbrev-limit,ESLI NE RAWNA nil,UKAZYWAET,KAK DALEKO PO BUFERU
NUVNO ISKATX RAS[IFROWKU.
pOSLE PROSMOTRA TEKU]EGO BUFERA M-/OBY^NO PROSMATRIWAET DRUGIE BUFERY,ESLI WY
NE USTANOWILI dabbrev-check-all-buffers W ZNA^ENIE nil.
oTRICATELXNYJ ARGUMENT DLQ M-/,KAK C-u - M-/,GOWORIT,^TO NUVNO ISKATX RAS[IF-
ROWKI SNA^ALA POSLE TO^KI,A POTOM PERED NEJ.eSLI WY POWTORQETE M-/DLQ POISKA DRUGOGO
RASKRYTIQ,NE ZADAWAJTE ARGUMENT.pRI\TOM SNA^ALA BUDUT POPROBOWANY WSE RAS[IFROWKI
POSLE TO^KI,A ZATEM WSE RAS[IFROWKI PERED TO^KOJ.
pOSLE TOGO,KAK WY RAS[IFROWALI DINAMI^ESKOE SOKRA]ENIE,WY MOVETE SKOPIROWATX
DOPOLNITELXNYE SLOWA,KOTORYE IDUT POSLE RAS[IFROWKI W ORIGINALXNOM KONTEKSTE.pRO-
STO PE^ATAJTE
hSPCi M-/DLQ KAVDOGO SLOWA,KOTOROE WY HOTITE SKOPIROWATX.pROMEVUTKI
I PUNKTUACIQ MEVDU SLOWAMI KOPIRUETSQ WMESTE S NIMI.
kOMANDA C-M-/(dabbrev-completion) PROIZWODIT ZAWER[ENIE DINAMI^ESKOGO SOKRA]E-
NIQ.wMESTO TOGO,^TOBY PROBOWATX WOZMOVNYE RAS[IFROWKI ODNU ZA DRUGOJ,ONA NAHODIT
IH WSE,A POTOM WSTAWLQET TEKST,KOTORYJ QWLQETSQ W NIH OB]IM.eSLI W NIH NET NI^EGO
OB]EGO,C-M-/POKAZYWAET PERE^ENX ZAWER[ENIJ,IZ KOTOROGO WY MOVETE WYBRATX NUVNOE
OBY^NYM SPOSOBOM.sM.rAZDEL 5.3 [zAWER[ENIE],S.47.
dINAMI^ESKAQ RAS[IFROWKA SOKRA]ENIJ SOWER[ENNO NE ZAWISIT OT REVIMA Abbrev;RAS-
[IFROWKA SLOWA S POMO]X@ M-/POLNOSTX@ NEZAWISIMA OT TOGO,IMEET LI ONO OPREDELENIE
KAK OBYKNOWENNOE SOKRA]ENIE.
24.7 nASTROJKI DLQ DINAMI^ESKIH SOKRA]ENIJ
oBY^NO DINAMI^ESKAQ RAS[IFROWKA SOKRA]ENIJ IGNORIRUET REGISTR PRI POISKE RAS-
KRYTIJ.|TO ZNA^IT,^TO RAS[IFROWKA NE OBQZANA SOWPADATX PO REGISTRU S RASKRYWAEMYM
SLOWOM.
|TO SREDSTWO UPRAWLQETSQ PEREMENNOJ dabbrev-case-fold-search.eSLI ONA RAWNA t,
REGISTR PRI POISKE IGNORIRUETSQ;ESLI ONA RAWNA nil,TO SLOWO I RAS[IFROWKA DOLVNY
IMETX ODIN REGISTR.eSLI ZNA^ENIE dabbrev-case-fold-search RAWNO case-fold-search,
^TO WERNO PO UMOL^ANI@,TO IGNORIROWANIE REGISTRA WO WREMQ POISKA RAS[IFROWOK OPRE-
DELQETSQ PEREMENNOJ case-fold-search.
oBY^NO DINAMI^ESKAQ RAS[IFROWKA SOKRA]ENIJ SOHRANQET OBRAZEC REGISTRA SOKRA]E-
NIQ,KOTOROE WY NAPE^ATALI,PREOBRAZUQ RAS[IFROWKU K REGISTRU\TOGO OBRAZCA.
pEREMENNAQ dabbrev-case-replace UKAZYWAET,NUVNO LI SOHRANQTX OBRAZEC REGISTRA
SOKRA]ENIQ.eSLI ONA RAWNA t,OBRAZEC REGISTRA SOKRA]ENIQ SOHRANQETSQ W BOLX[INSTWE
SLU^AEW;ESLI ONA nil,TO RAS[IFROWKA KOPIRUETSQ BUKWALXNO.eSLI ZNA^ENIE dabbrev-
case-replace RAWNO case-replace,^TO ISTINNO PO UMOL^ANI@,TO PEREMENNAQ case-
replace UKAZYWAET,NUVNO LI KOPIROWATX RAS[IFROWKU BUKWALXNO.
262 rUKOWODSTWO PO GNU EmacsoDNAKO,ESLI RAS[IFROWKA SODERVIT SLOVNYJ NABOR BUKW RAZNYH REGISTROW,I SOKRA-
]ENIE SOWPADAET S\TIM OBRAZCOM,KOGDA DOHODIT DO NEGO,TO RAS[IFROWKA KOPIRUETSQ
BUKWALXNO,NESMOTRQ NA ZNA^ENIQ\TIH PEREMENNYH.tAKIM OBRAZOM,ESLI BUFER SODERVIT
PEREMENNU@sgLUPYMoBRAZCOMrEGISTROW,I WY NAPE^ATAETE P E M-/,ONA SKOPIRUET RAS[IF-
ROWKU BUKWALXNO,WKL@^AQ EE OBRAZEC REGISTROW.
pEREMENNAQ dabbrev-abbrev-char-regexp,ESLI NE RAWNA nil,UKAZYWAET,KAKIE ZNAKI
S^ITA@TSQ ^ASTX@ SLOWA DLQ CELEJ DINAMI^ESKOJ RAS[IFROWKI.|TO REGULQRNOE WYRAVE-
NIE DOLVNO SOWPADATX TOLXKO S ODNIM ZNAKOM,NO NIKOGDA NE S DWUMQ ILI BOLX[IM ^ISLOM.
|TO VE REGULQRNOE WYRAVENIE OPREDELQET TAKVE,KAKIE ZNAKI QWLQ@TSQ ^ASTX@ RAS[IF-
ROWKI.zNA^ENIE nil IMEET OSOBYJ SMYSL:SOKRA]ENIQ SOSTOQT IZ ZNAKOW,QWLQ@]IHSQ
^ASTX@ SLOW,NO RAS[IFROWKI SOSTOQT IZ ZNAKOW,QWLQ@]IHSQ ^ASTX@ SLOW I SIMWOLOW.
w SCENARIQH KOMANDNOGO INTERPRETATORA I Make-FAJLAH K IMENAM PEREMENNYH INOGDA
PRISTAWLQETSQ`$',A INOGDA NET.oSNOWNYE REVIMY DLQ TAKOGO RODA TEKSTA MOGUT NA-
STROITX DINAMI^ESKU@ RAS[IFROWKU,^TOBY ONA OBRABATYWALA NEOBQZATELXNYJ PREFIKS,
USTANOWIW PEREMENNU@ dabbrev-abbrev-skip-leading-regexp.eE ZNA^ENIE DOLVNO BYTX
REGULQRNYM WYRAVENIEM,SOWPADA@]IM S NEOBQZATELXNYM PREFIKSOM,KOTORYJ DOLVEN
IGNORIROWATXSQ DINAMI^ESKIMI SOKRA]ENIQMI.
gLAWA 25:rEDAKTIROWANIE RISUNKOW 26325 rEDAKTIROWANIE RISUNKOW
~TOBY SOZDATX RISUNOK,SOSTAWLENNYJ IZ TEKSTOWYH ZNAKOW (NAPRIMER IZOBRAVENIE DE-
LENIQ REGISTRA NA POLQ W KA^ESTWE KOMMENTARIQ W PROGRAMME),ISPOLXZUJTE KOMANDU M-x
edit-picture DLQ WHODA W REVIM Picture.
w REVIME Picture REDAKTIROWANIE OSNOWYWAETSQ NA KWADRANTNOJ MODELI TEKSTA,SOGLASNO
KOTOROJ TEKSTOWYE ZNAKI RASSYPANY W OBLASTI,PROSTIRA@]EJSQ NEOGRANI^ENO WPRAWO I
WNIZ.pONQTIE KONCA STROKI NE SU]ESTWUET W\TOJ MODELI;SAMOE BOLX[OE,^TO WY MOVETE
SKAZATX,|\TO GDE NAHODITSQ POSLEDNIJ NEPUSTOJ ZNAK NA STROKE.
kONE^NO,W DEJSTWITELXNOSTI Emacs WSEGDA RASSMATRIWAET TEKST KAK POSLEDOWATELX-
NOSTX ZNAKOW,I STROKI NA SAMOM DELE IME@T KONCY.nO W REVIME Picture NAIBOLEE ^ASTO
ISPOLXZUEMYE KOMANDY ZAMENQ@TSQ WARIANTAMI,KOTORYE WOSPROIZWODQT KWADRANTNU@ MO-
DELX TEKSTA.oNI DELA@T\TO,WSTAWLQQ PROBELY ILI PREWRA]AQ W PROBELY ZNAKI TABULQ-
CII.
bOLX[INSTWO BAZOWYH KOMAND REDAKTIROWANIQ Emacs PEREOPREDELQ@TSQ REVIMOM Pic-
ture TAKIM OBRAZOM,^TOBY DELATX W OSNOWNOM TE VE SAMYE WE]I,NO KWADRANTNYM SPOSOBOM.
kROME TOGO,REVIM Picture OPREDELQET RAZNYE KL@^I,NA^INA@]IESQ S PREFIKSA C-c,DLQ
ZAPUSKA SPECIALXNYH KOMAND REDAKTIROWANIQ IZOBRAVENIQ.
oDIN IZ\TIH KL@^EJ,C-c C-c,DOSTATO^NO WAVEN.~ASTO RISUNOK |\TO ^ASTX BOLX[EGO
FAJLA,KOTORYJ OBY^NO REDAKTIRUETSQ W KAKOM-NIBUDX DRUGOM OSNOWNOM REVIME.kOMANDA
M-x edit-picture ZAPISYWAET IMQ PREDYDU]EGO OSNOWNOGO REVIMA,I ZATEM WY MOVETE
ISPOLXZOWATX KOMANDU C-c C-c (picture-mode-exit),^TOBY WERNUTXSQ W\TOT REVIM.eSLI
C-c C-c NE IMEET ^ISLOWOGO ARGUMENTA,ONA TAKVE UNI^TOVAET PROBELY W KONCAH STROK.
wSE KOMANDY,ISPOLXZUEMYE W REVIME Picture,RABOTA@T I W DRUGIH REVIMAH (ESLI
TOLXKO ZAGRUVENA BIBLIOTEKA`picture'),NO PRIWQZANY K KL@^AM TOLXKO W REVIME Pic-
ture.dALXNEJ[IE OPISANIQ GOWORQT O DWIVENII\NA ODIN STOLBEC"I TAK DALEE,NO WSE
KOMANDY REVIMA Picture OBRA]A@TSQ S ^ISLOWYMI ARGUMENTAMI TAK VE,KAK I IH OBY^NYE
\KWIWALENTY.
wKL@^ENIE REVIMA Picture WYZYWAET LOWU[KU picture-mode-hook (SM.rAZDEL 31.2.3
[lOWU[KI],S.349 ).
25.1 oSNOWY REDAKTIROWANIQ W REVIME Picture
bOLX[INSTWO KL@^EJ DELA@T W REVIME Picture TO VE SAMOE,^TO ONI DELA@T OBY^NO,
NO W KWADRANTNOM STILE.nAPRIMER,C-f PEREPRIWQZYWAETSQ NA ZAPUSK KOMANDY picture-
forward-column,KOTORAQ PEREDWIGAET TO^KU NA ODIN STOLBEC WPRAWO,WSTAWLQQ,ESLI\TO
NEOBHODIMO,PROBEL,TAK ^TO DEJSTWITELXNYJ KONEC STROKI NE IGRAET ROLI.C-b PEREPRI-
WQZYWAETSQ DLQ ZAPUSKA picture-backward-column,KOTORAQ WSEGDA DWIGAET TO^KU WLEWO NA
ODIN STOLBEC,PREWRA]AQ ZNAK TABULQCII W NESKOLXKO PROBELOW,ESLI\TO NEOBHODIMO.C-n I
C-p PEREPRIWQZYWA@TSQ DLQ ZAPUSKA picture-move-down I picture-move-up,KOTORYE MO-
GUT LIBO WSTAWITX PROBELY,LIBO PREWRATITX ZNAKI TABULQCII W PROBELY,KAK NEOBHODIMO,
^TOBY GARANTIROWATX,^TO TO^KA OSTAETSQ W TOM VE SAMOM STOLBCE.C-e ZAPUSKAET picture-
end-of-line,KOTORAQ PEREDWIGAETSQ ZA POSLEDNIJ NEPUSTOJ ZNAK NA STROKE.zDESX NE NADO
MENQTX C-a,TAK KAK WYBOR MODELI\KRANA NE WLIQET NA NA^ALA STROK.
wSTAWKA TEKSTA PRISPOSABLIWAETSQ K KWADRANTNOJ MODELI\KRANA POSREDSTWOM ISPOLXZO-
WANIQ REVIMA Overwrite (SM.rAZDEL 31.1 [wTOROSTEPENNYE REVIMY],S.341).sAMOWSTAWLQ-
@]IESQ ZNAKI ZAMENQ@T SU]ESTWU@]IJ TEKST,STOLBEC ZA STOLBCOM,A NE WYTALKIWA@T EGO
WPRAWO.h RETi ZAPUSKAET picture-newline,KOTORAQ PROSTO SDWIGAET NA NA^ALO SLEDU@]EJ
STROKI,TAK ^TO NOWYJ TEKST ZAMENIT\TU STROKU.
rEVIM Picture PREDOSTAWLQET STIRANIE TEKSTA WMESTO UDALENIQ I UNI^TOVENIQ.
hDELi
(picture-backward-clear-column) ZAMENQET PREDYDU]IJ ZNAK PROBELOM,A NE UDALQET EGO;
264 rUKOWODSTWO PO GNU Emacs\TO SME]AET TO^KU NAZAD.C-d (picture-clear-column) ZAMENQET SLEDU@]IJ ZNAK ILI
ZNAKI PROBELAMI,NO NE SDWIGAET TO^KU.(eSLI WY HOTITE PREWRATITX ZNAKI W PROBELY
I PRODWINUTXSQ ^EREZ NIH,ISPOLXZUJTE hSPCi.) C-k (picture-clear-line) DEJSTWITELXNO
UNI^TOVAET SODERVIMOE STROKI,NO NIKOGDA NE UDALQET IZ BUFERA ZNAKI PEREWODA STROKI.
~TOBY SDELATX DEJSTWITELXNU@ WSTAWKU,WY DOLVNY ISPOLXZOWATX SPECIALXNYE KOMAN-
DY.C-o (picture-open-line) SOZDAET PUSTU@ STROKU POSLE TEKU]EJ;ONA NIKOGDA NE RAZBI-
WAET STROKU.C-M-o (split-line) IMEET SMYSL W REVIME Picture,PO\TOMU ONA NE IZMENQETSQ.
C-j (picture-duplicate-line) WSTAWLQET NIVE TEKU]EJ STROKI DRUGU@ STROKU S TEM VE
SAMYM SODERVIMYM.
~TOBY SDELATX W REVIME Picture DEJSTWITELXNOE UDALENIE,ISPOLXZUJTE C-w ILI C-c
C-d (KOTORAQ OPREDELQETSQ DLQ ZAPUSKA delete-char,KAK C-d W DRUGIH REVIMAH),ILI S
POMO]X@ ODNOJ IZ KOMAND PRQMOUGOLXNIKA DLQ RISUNKOW (SM.rAZDEL 25.4 [pRQMOUGOLXNIKI
W RISUNKE],S.265 ).
25.2 uPRAWLENIE DWIVENIEM POSLE WSTAWKI
tAK KAK\SAMOWSTAWLQ@]IESQ"ZNAKI W REVIME Picture PEREZAPISYWA@T I PEREDWIGA@T
TO^KU,TO NET SU]ESTWENNOGO OGRANI^ENIQ NA TO,KAK TO^KA BUDET PEREDWIGATXSQ.oBY^NO
TO^KA PEREME]AETSQ WPRAWO,NO WY MOVETE OPREDELITX L@BOE IZ WOSXMI ORTOGONALXNYH ILI
DIAGONALXNYH NAPRAWLENIJ DLQ DWIVENIQ POSLE\SAMOWSTAWLQ@]EGOSQ"ZNAKA.|TO UDOBNO
DLQ RISOWANIQ LINIJ W BUFERE.
C-c < sDWINUTXSQ POSLE WSTAWKI WLEWO (picture-movement-left).
C-c > sDWINUTXSQ POSLE WSTAWKI WPRAWO (picture-movement-right).
C-c ^ sDWINUTXSQ POSLE WSTAWKI WWERH (picture-movement-up).
C-c.CDWINUTXSQ POSLE WSTAWKI WNIZ (picture-movement-down).
C-c`sDWINUTXSQ POSLE WSTAWKI WWERH I WLEWO (NA\SEWERO-ZAPAD") (picture-
movement-nw).
C-c'sDWINUTXSQ POSLE WSTAWKI WWERH I WPRAWO (NA\SEWERO-WOSTOK") (picture-
movement-ne).
C-c/sDWINUTXSQ POSLE WSTAWKI WNIZ I WLEWO (NA\@GO-ZAPAD")
(picture-movement-sw).
C-c\sDWINUTXSQ POSLE WSTAWKI WNIZ I WPRAWO (NA\@GO-WOSTOK")
(picture-movement-se).
dWE KOMANDY DWIVENIQ PEREDWIGA@T,OSNOWYWAQSX NA TEKU]EM NAPRAWLENII WSTAWKI.
kOMANDA C-c C-f (picture-motion) PEREDWIGAET W TOM VE SAMOM NAPRAWLENII,W KAKOM
WYPOLNQETSQ DWIVENIE POSLE TEKU]EJ\WSTAWKI",TOGDA KAK C-c C-b (picture-motion-
reverse) DWIGAET W PROTIWOPOLOVNOM NAPRAWLENII.
25.3 zNAKI TABULQCII W REVIME Picture
w REVIME Picture PREDUSMOTRENY DWA WIDA DEJSTWIJ,PODOBNYH TABULQCII.dLQ TABULQ-
CII,OSNOWANNOJ NA KONTEKSTE,ISPOLXZUJTE M-
hTABi (picture-tab-search).bEZ ARGUMENTA
ONA PEREDWIGAET W TO^KU POD SLEDU@]IJ\INTERESNYJ"ZNAK,KOTORYJ SLEDUET ZA NEZNA^A-
]IM ZNAKOM W PREDYDU]EJ NEPUSTOJ STROKE.\sLEDU@]IJ"OZNA^AET ZDESX\POQWLQ@]IJSQ
W BOLEE DALXNEJ GORIZONTALXNOJ POZICII,^EM TA,S KOTOROJ TO^KA OTPRAWLQLASX".s AR-
GUMENTOM,KAK W C-u M-h TABi,\TA KOMANDA PEREHODIT K SLEDU@]EMU TAKOMU INTERESNOMU
ZNAKU W TEKU]EJ STROKE.M-hTABi NE IZMENQET TEKST,ONA TOLXKO DWIGAET TO^KU.\iNTERES-
NYE"ZNAKI OPREDELQ@TSQ PEREMENNOJ picture-tab-chars,KOTORAQ DOLVNA ZADAWATX NABOR
gLAWA 25:rEDAKTIROWANIE RISUNKOW 265ZNAKOW.sINTAKSIS\TOJ PEREMENNOJ POHOV NA SINTAKSIS,ISPOLXZUEMYJ WNUTRI`[...]'W
REGULQRNOM WYRAVENII,NO BEZ`['I`]'.eE ZNA^ENIE PO UMOL^ANI@ RAWNO"!-~".
sAMA hTABi ZAPUSKAET picture-tab,KOTORAQ DEJSTWUET,OSNOWYWAQSX NA USTANOWLENNYH
TEKU]IH POZICIQH TABULQCII;\TO\KWIWALENT tab-to-tab-stop W REVIME Picture.oBY^NO
ONA PROSTO DWIGAET TO^KU,NO S ^ISLOWYM ARGUMENTOM ONA STIRAET TEKST,^EREZ KOTORYJ
PEREDWINULASX.
fORMY TABULQCII,OSNOWANNYE NA KONTEKSTE I NA POZICIQH TABULQCII,OB_EDINQ@TSQ
WMESTE KOMANDOJ C-c hTABi,picture-set-tab-stops.|TA KOMANDA USTANAWLIWAET POZICII
TABULQCII,KOTORYE M-h TABi S^ITALA BY ZNA^IMYMI W TEKU]EJ STROKE.iSPOLXZOWANIE\TOJ
KOMANDY WMESTE S h TABi MOVET DATX\FFEKT TABULQCII,OSNOWANNOJ NA KONTEKSTE.nO M-hTABi
BOLEE UDOBNA W TEH SLU^AQH,KOGDA EE DOSTATO^NO.
mOVET OKAZATXSQ UDOBNYM ZAPRETITX ISPOLXZOWANIE NASTOQ]IH ZNAKOW TABULQCII W RI-
SUNKAH.nAPRIMER,\TO POME[AET C-x h TABi ISPORTITX RISUNOK.wY MOVETE SDELATX TAK,
USTANOWIW PEREMENNU@ indent-tabs-mode W ZNA^ENIE nil.sM.rAZDEL 20.3 [tOLXKO PROBE-
LY],S.179.
25.4 kOMANDY PRQMOUGOLXNIKA W REVIME Picture
rEVIM Picture OPREDELQET KOMANDY DLQ RABOTY S PRQMOUGOLXNYMI KUSKAMI TEKSTA TA-
KIM SPOSOBOM,KOTORYJ PODHODIT DLQ KWADRANTNOJ MODELI.sTANDARTNYE KOMANDY DLQ
PRQMOUGOLXNIKOW TAKVE MOGUT BYTX POLEZNY (SM.rAZDEL 9.4 [pRQMOUGOLXNIKI],S.74).
C-c C-k o^ISTITX TEKU]U@ OBLASTX-PRQMOUGOLXNIK (picture-clear-rectangle).s AR-
GUMENTOM |UDALITX EE.
C-c C-w r tO VE SAMOE,NO SNA^ALA SOHRANITX SODERVIMOE PRQMOUGOLXNIKA W REGISTRE r
(picture-clear-rectangle-to-register).
C-c C-y sKOPIROWATX POSLEDNIJ UNI^TOVENNYJ PRQMOUGOLXNIK W BUFER PUTEM PEREZAPI-
SI,PRI\TOM LEWYJ WERHNIJ UGOL NAHODITSQ W TO^KE (picture-yank-rectangle).
s ARGUMENTOM |WSTAWKA WMESTO PEREZAPISI.
C-c C-x r tO VE SAMOE,NO ISPOLXZOWATX PRQMOUGOLXNIK IZ REGISTRA r (picture-yank-
rectangle-from-register).
kOMANDY RABOTY S PRQMOUGOLXNIKAMI DLQ RISUNKOW,\TO C-c C-k (picture-clear-
rectangle) I C-c C-w (picture-clear-rectangle-to-register),OTLI^A@TSQ OT STANDART-
NYH KOMAND PRQMOUGOLXNIKA TEM,^TO ONI OBY^NO O^I]A@T PRQMOUGOLXNIK WMESTO EGO
UDALENIQ;\TO ANALOGI^NO TOMU,KAK W REVIME Picture IZMENQETSQ C-d.
oDNAKO,UDALENIE PRQMOUGOLXNIKOW MOVET BYTX UDOBNYM I W REVIME Picture,PO\TOMU
\TI KOMANDY UDALQ@T PRQMOUGOLXNIK,ESLI IM PEREDAN ^ISLOWOJ ARGUMENT.C-c C-k S
^ISLOWYM ARGUMENTOM ILI BEZ NEGO SOHRANQET PRQMOUGOLXNIK DLQ C-c C-y.
kOMANDY REVIMA Picture DLQ WOSSTANOWLENIQ PRQMOUGOLXNIKOW OTLI^A@TSQ OT STAN-
DARTNYH TEM,^TO ONI PEREZAPISYWA@T,A NE WSTAWLQ@T.tO^NO TAK VE WSTAWKA DRUGOGO
TEKSTA W REVIME Picture OTLI^AETSQ OT WSTAWKI W DRUGIH REVIMAH.C-c C-y (picture-yank-
rectangle) WSTAWLQET (PRI POMO]I PEREZAPISI) PRQMOUGOLXNIK,KOTORYJ BYL UNI^TOVEN
SAMYM POSLEDNIM,W TO WREMQ KAK C-c C-x (picture-yank-rectangle-from-register) DE-
LAET TO VE SAMOE DLQ PRQMOUGOLXNIKA,NAHODQ]EGOSQ W UKAZANNOM REGISTRE.
266 rUKOWODSTWO PO GNU Emacs
gLAWA 26:pOSYLKA PO^TY 26726 pOSYLKA PO^TY
C-x m nA^ATX SOSTAWLENIE SOOB]ENIQ DLQ PERESYLKI (compose-mail).
C-x 4 m aNALOGI^NO,NO POKAZATX SOOB]ENIE W DRUGOM OKNE (compose-mail-other-
window).
C-x 5 m aNALOGI^NO,NO SOZDATX NOWYJ FREJM (compose-mail-other-frame).
C-c C-s w REVIME Mail,POSYLAET SOOB]ENIE (mail-send).
C-c C-c pOSYLAET SOOB]ENIE I PRQ^ET EGO BUFER (mail-send-and-exit).
kOMANDA C-x m (compose-mail) WYBIRAET BUFER S IMENEM`*mail*'I INICIALIZIRUET EGO
NABROSKOM ISHODQ]EGO SOOB]ENIQ.C-x 4 m (compose-mail-other-window) WYBIRAET BUFER
`*mail*'W DRUGOM OKNE,OSTAWLQQ PREDYDU]IJ TEKU]IJ BUFER WIDIMYM.C-x 5 m (compose-
mail-other-frame) SOZDAET DLQ BUFERA`*mail*'NOWYJ FREJM.
pOSKOLXKU BUFER SOOB]ENIQ |\TO OBY^NYJ BUFER Emacs,WO WREMQ SOSTAWLENIQ PISXMA
WY MOVETE PEREKL@^ATXSQ W DRUGIE BUFERY I WERNUTXSQ OBRATNO POZDNEE (ILI WOOB]E NE
WOZWRA]ATXSQ).eSLI WY ISPOLXZUETE KOMANDU C-x m SNOWA,KOGDA WY SOSTAWLQLI DRUGOE
SOOB]ENIE,NO E]E NE POSLALI EGO,OT WAS POTREBU@T PODTWERVDENIE,PERED TEM KAK UDALITX
STAROE SOOB]ENIE.eSLI WY OTWETITE n,BUFER`*mail*'OSTANETSQ WYBRANNYM SO SWOIM
STARYM SODERVIMYM,TAK ^TO WY SMOVETE ZAKON^ITX PREVNEE SOOB]ENIE I POSLATX EGO.
C-u C-x m |\TO DRUGOJ SPOSOB SDELATX TO VE SAMOE.pERESYLKA SOOB]ENIQ POME^AET
BUFER`*mail*'KAK\NEMODIFICIROWANNYJ",^TO USTRANQET NEOBHODIMOSTX PODTWERVDENIQ
PRI SLEDU@]EM ISPOLXZOWANII C-x m.
eSLI WY SOSTAWLQETE SOOB]ENIE W BUFERE`*mail*'I HOTITE POSLATX E]E ODNO SOOB]E-
NIE DO ZAWER[ENIQ PERWOGO,PEREIMENUJTE BUFER`*mail*'S POMO]X@ M-x rename-uniquely
(SM.rAZDEL 15.3 [bUFERY rAZNOE],S.136).zATEM WY MOVETE ISPOLXZOWATX C-x m ILI EE
WARIANTY,OPISANNYE WY[E,^TOBY SOZDATX NOWYJ BUFER`*mail*'.eSLI WY SDELAETE TAK,
TO SMOVETE RABOTATX S KAVDYM BUFEROM S SOOB]ENIEM NEZAWISIMO.
26.1 fORMAT BUFERA S PO^TOWYM SOOB]ENIEM
kROME TEKSTA,ILI TELA,SOOB]ENIE IMEET POLQ ZAGOLOWKA,KOTORYE GOWORQT,KTO POSLAL
EGO,KOGDA,KOMU,ZA^EM I TAK DALEE.nEKOTORYE POLQ ZAGOLOWKA,TAKIE KAK`Date'(DATA)
I`Sender'(OTPRAWITELX),SOZDA@TSQ AWTOMATI^ESKI,KOGDA WY POSYLAETE SOOB]ENIE.dRU-
GIE VE,NAPRIMER IMENA POLU^ATELEJ,DOLVNY BYTX ZADANY WAMI,^TOBY SOOB]ENIE BYLO
OTOSLANO PRAWILXNO.
rEVIM Mail PREDUSMATRIWAET NESKOLXKO KOMAND,POMOGA@]IH WAM OTREDAKTIROWATX
NEKOTORYE POLQ ZAGOLOWKA,I NEKOTORYE POLQ W\TOM BUFERE INOGDA INICIALIZIRU@TSQ AW-
TOMATI^ESKI.wY MOVETE WSTAWITX ILI OTREDAKTIROWATX L@BYE POLQ ZAGOLOWKA,ISPOLXZUQ
OBY^NYE KOMANDY REDAKTIROWANIQ.
sTROKA W BUFERE,KOTORAQ GLASIT
-text follows this line-
|\TO SPECIALXNYJ OGRANI^ITELX,OTDELQ@]IJ ZADANNYE WAMI ZAGOLOWKI OT SAMOGO TEK-
STA.wSE,^TO SLEDUET ZA\TOJ STROKOJ,|\TO TEKST SOOB]ENIQ,A ZAGOLOWKI PRED[ESTWU@T
EJ.sAMA RAZDELQ@]AQ STROKA NE POQWLQETSQ W REALXNOM POSYLAEMOM SOOB]ENII.iSPOLX-
ZUEMYJ DLQ STROKI-OGRANI^ITELQ TEKST ZADAETSQ PEREMENNOJ mail-header-separator.
zDESX PREDSTAWLEN PRIMER TOGO,KAK MOGUT WYGLQDETX ZAGOLOWKI I TEKST W BUFERE SOOB-
]ENIQ.
268 rUKOWODSTWO PO GNU EmacsTo:gnu@gnu.org
CC:lungfish@spam.org,byob@spam.org
Subject:The Emacs Manual
-Text follows this line-
Please ignore this message.
26.2 pOLQ ZAGOLOWKA SOOB]ENIQ
kAVDOE POLE ZAGOLOWKA W BUFERE SOOB]ENIQ NA^INAETSQ S IMENI\TO POLQ,ONO PI[ETSQ
W NA^ALE STROKI I OTDELQETSQ DWOETO^IEM.pROPISNYE I STRO^NYE BUKWY W IMENAH POLEJ NE
RAZLI^A@TSQ (I W PO^TOWYH ADRESAH TOVE).pOSLE DWOETO^IQ I NEOBQZATELXNOGO PROPUSKA
PI[ETSQ SODERVIMOE\TOGO POLQ.
wY MOVETE ISPOLXZOWATX DLQ POLEJ ZAGOLOWKA L@BYE IMENA,KAKIE WAM NRAWQTSQ,NO
OBY^NO L@DI ISPOLXZU@T TOLXKO STANDARTNYE IMENA S PRINQTYMI ZNA^ENIQMI.nIVE
PRIWEDENA TABLICA ^ASTO ISPOLXZUEMYH W POSYLAEMYH SOOB]ENIQH POLEJ.
`To'|TO POLE SODERVIT PO^TOWYE ADRESA,NA KOTORYE POSYLAETSQ SOOB]ENIE.eSLI
WY PERE^ISLQETE BOLEE ODNOGO ADRESA,ISPOLXZUJTE DLQ IH RAZDELENIQ ZAPQTYE,
A NE PROBELY.
`Subject'sODERVANIEM POLQ`Subject'DOLVEN BYTX FRAGMENT TEKSTA,KOTORYJ UKAZYWA-
ET,O ^EM BUDET SOOB]ENIE.sMYSL POLEJ`Subject'W TOM,^TO BOLX[INSTWO
PROGRAMM ^TENIQ PO^TY MOGUT PREDOSTAWLQTX OBZORNYJ PERE^ENX SOOB]ENIJ,
PE^ATAQ TOLXKO TEMU KAVDOGO SOOB]ENIQ,A NE WESX TEKST.
`CC'|TO POLE,KAK I POLE`To',SODERVIT DOPOLNITELXNYE PO^TOWYE ADRESA,PO KOTO-
RYM NUVNO OTPRAWITX SOOB]ENIE,NO\TI ^ITATELI NE DOLVNY RASSMATRIWATX
\TO SOOB]ENIE KAK ADRESOWANNOE IM.
`BCC'|TO POLE SODERVIT DOPOLNITELXNYE PO^TOWYE ADRESA,PO KOTORYM OTPRAWLQETSQ
SOOB]ENIE,NO ONI NE DOLVNY POQWLQTXSQ W ZAGOLOWKE FAKTI^ESKI POSLANNOGO
SOOB]ENIQ.pOSLANNYE TAKIM OBRAZOM KOPII NAZYWA@TSQ SLEPYMI KOPIQMI.
~TOBY WAM POSYLALASX SLEPAQ KOPIQ KAVDOGO ISHODQ]EGO SOOB]ENIQ,USTANOWI-
TE PEREMENNU@ mail-self-blind RAWNOJ t.
`FCC'|TO POLE SODERVIT IMQ FAJLA,ONO WELIT Emacs DOBAWITX POSLE OTPRAWKI KOPI@
\TOGO SOOB]ENIQ W ZADANNYJ FAJL.eSLI\TO FAJL W FORMATE Rmail,Emacs
ZAPISYWAET SOOB]ENIE W FORMATE Rmail;W PROTIWNOM SLU^AE | W SISTEMNOM
FORMATE PO^TOWYH FAJLOW.
~TOBY KAVDYJ RAZ,KOGDA WY NA^INAETE REDAKTIROWANIE ISHODQ]EGO SOOB]E-
NIQ,W POLE`FCC'POME]ALOSX FIKSIROWANNOE IMQ FAJLA,USTANOWITE PEREMEN-
NU@ mail-archive-file-name RAWNOJ IMENI\TOGO FAJLA.eSLI WY NE UDALITE
POLE`FCC'PERED POSYLKOJ,SOOB]ENIE BUDET ZAPISANO W\TOT FAJL.
`From'iSPOLXZUJTE POLE`From',^TOBY NAZWATX SEBQ,KOGDA WY OTPRAWLQETE PO^TU,
WOJDQ W SISTEMU POD ^UVIM IMENEM.sODERVIMOE POLQ`From'DOLVNO BYTX
PRAWILXNYM PO^TOWYM ADRESOM,POSKOLXKU OBY^NO OTWETY NAPRAWLQ@TSQ PO
\TOMU ADRESU.eSLI WY NE ZADALI POLE`From'SAMI,Emacs ISPOLXZUET ZNA^ENIE
user-mail-address W KA^ESTWE ZNA^ENIQ PO UMOL^ANI@.
`Reply-to'
iSPOLXZUJTE\TO POLE,^TOBY NAPRAWLQTX OTWETY PO ADRESAM,OTLI^NYM OT WA-
[EGO SOBSTWENNOGO.bOLX[INSTWO PROGRAMM ^TENIQ PO^TY (WKL@^AQ Rmail) AW-
TOMATI^ESKI POSYLA@T OTWETY PO ADRESU`Reply-to';ON IMEET PRIORITET PERED
ADRESOM`From'.dOBAWLQQ W ZAGOLOWOK POLE`Reply-to',WY MOVETE IZBAWITXSQ
OT L@BYH PROBLEM,KOTORYE MOVET WYZYWATX PRI OTWETE WA[ ADRES`From'.
gLAWA 26:pOSYLKA PO^TY 269~TOBY KAKOJ-TO ADRES DLQ`Reply-to'POME]ALSQ W KAVDOE ISHODQ]EE SOOB]E-
NIE,USTANOWITE PEREMENNU@ mail-default-reply-to RAWNOJ\TOM ADRESU (W
WIDE STROKI).tOGDA mail INICIALIZIRUET SOOB]ENIQ S ZADANNYM ADRESOM
`Reply-to'.wY MOVETE UDALITX ILI IZMENITX\TO POLE ZAGOLOWKA PERED OTPRAW-
KOJ SOOB]ENIQ,ESLI HOTITE.kOGDA Emacs NA^INAET RABOTU,mail-default-
reply-to INICIALIZIRUETSQ PO PEREMENNOJ SREDY REPLYTO,ESLI ONA USTANOWLE-
NA.
`In-reply-to'
|TO POLE SODERVIT FRAGMENT TEKSTA,OPISYWA@]IJ SOOB]ENIE,NA KOTOROE WY
OTWE^AETE.nEKOTORYE PO^TOWYE SISTEMY MOGUT ISPOLXZOWATX\TU INFORMACI@
DLQ SOOTNO[ENIQ SWQZANNYH MEVDU SOBOJ FRAGMENTOW PO^TY.oBY^NO\TO POLE
ZAPOLNQETSQ SAMIM Rmail,KOGDA WY OTWE^AETE NA SOOB]ENIE IZ NEGO,I WAM
NIKOGDA NE PRIDETSQ DUMATX OB\TOM (SM.gLAWA 27 [Rmail],S.275).
`References'
w\TOM POLE PERE^ISLQ@TSQ ID PREDYDU]IH SOOB]ENIJ,SWQZANNYH S\TIM.
Rmail USTANAWLIWAET\TO POLE AWTOMATI^ESKI,KOGDA WY OTWE^AETE NA KAKOE-
TO SOOB]ENIE.
pOLQ ZAGOLOWKA`To',`CC',`BCC'I`FCC'MOGUT ISPOLXZOWATXSQ L@BOE ^ISLO RAZ,I KAV-
DOE IZ\TIH POLEJ MOVET SODERVATX NESKOLXKO ADRESOW,RAZDELENNYH ZAPQTYMI.pOLQ`To',
`CC'ILI`BCC'MOGUT TAKVE IMETX STROKI PRODOLVENIQ:ODNA ILI NESKOLXKO STROK,NA-
^INA@]IESQ S PROBELXNYH ZNAKOW I SLEDU@]IE ZA STROKOJ,NA KOTOROJ NA^INAETSQ POLE,
RASSMATRIWA@TSQ KAK ^ASTX\TOGO POLQ.wOT PRIMER POLQ`To'SO STROKOJ PRODOLVENIQ:
To:foo@here.net,this@there.net,
me@gnu.cambridge.mass.usa.earth.spiral3281
pRI POSYLKE SOOB]ENIQ,ESLI WY NE NAPISALI POLE`From'SAMI,Emacs SDELAET\TO ZA
WAS.fORMAT\TOGO POLQ UPRAWLQETSQ PEREMENNOJ mail-from-style:
nil tOLXKO PO^TOWYJ ADRES,KAK`king@grassland.com'.
parens i PO^TOWYJ ADRES,I POLNOE IMQ,KAK`king@grassland.com (Elvis Parsley)'.
angles tO VE,NO KAK`Elvis Parsley <king@grassland.com>'.
system-default
pOZWOLITX SISTEME SAMOJ WSTAWITX POLE`From'.
26.3 pO^TOWYE PSEWDONIMY
wY MOVETE OPREDELITX PO^TOWYE PSEWDONIMY W FAJLE S IMENEM`~/.mailrc'.|TO KOROT-
KIE MNEMONI^ESKIE IMENA,OBOZNA^A@]IE PO^TOWYE ADRESA ILI GRUPPY ADRESOW.pODOBNO
MNOGIM DRUGIM PO^TOWYM PROGRAMMAM,Emacs RASKRYWAET PSEWDONIMY,KOGDA ONI POQWLQ-
@TSQ W POLQH`To',`From',`CC',`BCC'I`Reply-to'I W IH WARIANTAH S`Resent-'.
~TOBY OPREDELITX PSEWDONIM W`~/.mailrc',NAPI[ITE ODNU STROKU W TAKOM FORMATE:
alias KOROTKIJ-ADRES POLNYE-ADRESA
zDESX POLNYE-ADRESA OZNA^AET ODIN ILI BOLEE PO^TOWYH ADRESOW,W KOTORYE RASKRYWAETSQ
KOROTKIJ-ADRES.rAZDELQJTE ADRESA PROBELAMI;ESLI ADRES SODERVIT PROBEL,ZAKL@^AJTE
WESX ADRES W DWOJNYE KAWY^KI.
nAPRIMER,^TOBY SDELATX TAK,^TOBY maingnu OBOZNA^ALO WA[ SOBSTWENNYJ MESTNYJ
ADRES I gnu@gnu.org,POMESTITE TAKU@ STROKU:
alias maingnu gnu@gnu.org local-gnu
Emacs TAKVE RASPOZNAET W FAJLAH`.mailrc'KOMANDY WKL@^ENIQ.oNI WYGLQDQT TAK:
270 rUKOWODSTWO PO GNU Emacssource IMQ-FAJLA
fAJL`~/.mailrc'W OSNOWNOM ISPOLXZUETSQ DRUGIMI PROGRAMMAMI DLQ ^TENIQ PO^TY;ON
MOVET SODERVATX RAZLI^NYE DRUGIE KOMANDY.Emacs IGNORIRUET WSE,KROME OPREDELENIJ
PSEWDONIMOW I KOMAND WKL@^ENIQ.
eSTX DRUGOJ SPOSOB OPREDELITX PO^TOWYJ PSEWDONIM,NO TOLXKO WNUTRI Emacs |S POMO-
]X@ KOMANDY define-mail-alias.oNA ZAPRA[IWAET PSEWDONIM I ZATEM POLNYJ ADRES.wY
MOVETE ISPOLXZOWATX EE DLQ OPREDELENIQ PSEWDONIMOW W WA[EM FAJLE`.emacs',SLEDU@]IM
OBRAZOM:
(define-mail-alias"maingnu""gnu@gnu.org")
define-mail-alias ZAPISYWAET PSEWDONIMY,DOBAWLQQ IH K PEREMENNOJ,NAZYWAEMOJ
mail-aliases.eSLI WY UMEETE OBRA]ATXSQ SO SPISKAMI W lISPE,WY MOVETE USTANOWITX
mail-aliases NAPRQMU@.pERWONA^ALXNOE ZNA^ENIE PEREMENNOJ mail-aliases RAWNO t,^TO
OZNA^AET,^TO DLQ POLU^ENIQ PRAWILXNOGO ZNA^ENIQ Emacs DOLVEN S^ITATX`.mailrc'.
wY MOVETE ZADATX WMESTO`~/.mailrc'FAJL S DRUGIM IMENEM,USTANOWIW PEREMENNU@
mail-personal-alias-file.
oBY^NO Emacs RASKRYWAET PSEWDONIMY,KOGDA WY OTSYLAETE SOOB]ENIE.wAM NE OBQZA-
TELXNO RASKRYWATX PSEWDONIMY DO OTSYLKI SOOB]ENIQ,NO WY MOVETE RASKRYTX IH,ESLI
HOTITE UWIDETX,KUDA POJDET\TO PISXMO.~TOBY SDELATX\TO,ISPOLXZUJTE KOMANDU M-x
expand-mail-aliases;ONA RASKRYWAET WSE PO^TOWYE PSEWDONIMY,PRISUTSTWU@]IE W DAN-
NYJ MOMENT W POLQH ZAGOLOWKA S ADRESAMI.
eSLI HOTITE,WY MOVETE SDELATX TAK,^TOBY PO^TOWYE PSEWDONIMY RASKRYWALISX KAK
SOKRA]ENIQ,PO MERE TOGO KAK WY IH NABIRAETE (SM.gLAWA 24 [sOKRA]ENIQ],S.257).~TOBY
WKL@^ITX\TU WOZMOVNOSTX,WYPOLNITE SLEDU@]EE:
(add-hook'mail-setup-hook'mail-abbrevs-setup)
|TO MOVNO NAPISATX W FAJLE`.emacs'.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.eSLI WY POLX-
ZUETESX\TIM METODOM,WY DOLVNY ISPOLXZOWATX define-mail-abbrev,A NE define-mail-
alias;POSLEDNQQ KOMANDA NE RABOTAET S\TIM PAKETOM.oBRATITE WNIMANIE,PAKET DLQ SO-
KRA]ENIJ PO^TOWYH ADRESOW ISPOLXZUET PEREMENNU@ mail-abbrevs WMESTO mail-aliases,
I WSE PSEWDONIMY PREOBRAZU@TSQ K NIVNEMU REGISTRU.
pAKET DLQ SOKRA]ENIJ PO^TOWYH ADRESOW TAKVE PREDOSTAWLQET KOMANDU C-c C-a (mail-
interactive-insert-alias),KOTORAQ S^ITYWAET PSEWDONIM (S ZAWER[ENIEM) I WSTAWLQET
EGO OPREDELENIE W TO^KE.|TO POLEZNO PRI REDAKTIROWANII SAMOGO TEKSTA SOOB]ENIQ ILI
POLQ WRODE`Subject',GDE Emacs OBY^NO NE RASKRYWAET PSEWDONIMY.
zAMETXTE,^TO SOKRA]ENIQ RASKRYWA@TSQ,TOLXKO ESLI WY POSLE WSTAWILI RAZDELITELX
SLOW.oDNAKO,WY MOVETE PEREPRIWQZATX C-n I M-> TAK,^TOBY ONI E]E I PROIZWODILI
RASKRYTIE.|TO MOVNO SDELATX SLEDU@]IM OBRAZOM:
(add-hook'mail-setup-hook
'(lambda ()
(substitute-key-definition
'next-line'mail-abbrev-next-line
mail-mode-map global-map)
(substitute-key-definition
'end-of-buffer'mail-abbrev-end-of-buffer
mail-mode-map global-map)))
26.4 rEVIM Mail
oSNOWNOJ REVIM,ISPOLXZUEMYJ W BUFERE SOOB]ENIQ |\TO REVIM Mail,KOTORYJ O^ENX
POHOV NA REVIM Text ZA ISKL@^ENIEM TOGO,^TO W NEM PREDOSTAWLQ@TSQ RAZLI^NYE SPE-
CIALXNYE KOMANDY NA PREFIKSE C-c.wSE\TI KOMANDY DOLVNY PROIZWODITX RAZLI^NYE
gLAWA 26:pOSYLKA PO^TY 271OPERACII S REDAKTIRUEMYM ILI POSYLAEMYM SOOB]ENIEM.kROME TOGO,REVIM Mail OPRE-
DELQET ZNAK`%'KAK RAZDELITELX SLOW;\TO POLEZNO PRI ISPOLXZOWANII KOMAND,RABOTA@]IH
SO SLOWAMI,DLQ REDAKTIROWANIQ PO^TOWYH ADRESOW.
rEVIM Mail OBY^NO ISPOLXZUETSQ W BUFERAH,AWTOMATI^ESKI PODGOTOWLENNYH KOMANDOJ
mail ILI RODSTWENNYMI KOMANDAMI.oDNAKO,WY MOVETE TAKVE PEREKL@^ITXSQ W REVIM
Mail W BUFERE,OBRA]A@]EMSQ K FAJLU.|TO POLEZNO DELATX,ESLI WY SOHRANILI W FAJLE
^ERNOWIK SOOB]ENIQ.
26.4.1 oTPRAWKA PO^TY
w REVIME Mail ESTX DWE KOMANDY DLQ OTPRAWKI SOOB]ENIQ,KOTOROE WY REDAKTIROWALI:
C-c C-s pOSLATX\TO SOOB]ENIE I OSTAWITX BUFER S NIM WYBRANNYM (mail-send).
C-c C-c pOSLATX\TO SOOB]ENIE I WYBRATX KAKOJ-TO DRUGOJ BUFER (mail-send-and-
exit).
C-c C-s (mail-send) OTSYLAET SOOB]ENIE I POME^AET BUFER S\TIM SOOB]ENIEM KAK
NEMODIFICIROWANNYJ,NO PRI\TOM OSTAWLQET\TOT BUFER WYBRANNYM,TAK ^TO WY MOVETE
IZMENITX\TO SOOB]ENIE (WOZMOVNO S NOWYMI POLU^ATELQMI) I POSLATX EGO SNOWA.
C-c C-c (mail-send-and-exit) OTSYLAET SOOB]ENIE,A ZATEM UDALQET OKNO ILI PEREKL@-
^AET W DRUGOJ BUFER.|TA KOMANDA USTANAWLIWAET DLQ BUFERA S SOOB]ENIEM SAMYJ NIZKIJ
PRIORITET DLQ POWTORNOGO WYBORA,TAK KAK WY PERESTALI EGO ISPOLXZOWATX.|TO OBY^NYJ
SPOSOB OTPRAWKI SOOB]ENIQ.
w BUFERE,KOTORYJ OBRA]AETSQ K FAJLU,OTPRAWKA SOOB]ENIQ NE SBRASYWAET FLAG IZ-
MENENNOSTI,TAK KAK\TO DOLVNO DELATX TOLXKO SOHRANENIE FAJLA.w REZULXTATE WY NE
POLU^AETE PREDUPREVDENIQ,ESLI PYTAETESX OTPRAWITX ODNO SOOB]ENIE DWA RAZA.
kOGDA WY OTPRAWLQETE SOOB]ENIE,KOTOROE SODERVIT ZNAKI,NE WHODQ]IE W ASCII,\TI
ZNAKI NEOBHODIMO PEREWESTI W KAKU@-TO SISTEMU KODIROWANIQ (SM.rAZDEL 18.7 [sISTEMY
KODIROWANIQ],S.165 ).oBY^NO ONA USTANAWLIWAETSQ WA[EJ QZYKOWOJ SREDOJ (SM.rAZDEL 18.3
[qZYKOWYE SREDY],S.162 ).wY MOVETE QWNO UKAZATX SISTEMU KODIROWANIQ DLQ ISHODQ]EJ
PO^TY,USTANAWLIWAQ PEREMENNU@ sendmail-coding-system.
eSLI OPREDELQEMAQ TAKIM OBRAZOM SISTEMA KODIROWANIQ NE MOVET OBRABOTATX ZNAKI W
KAKOM-TO SOOB]ENII,Emacs PROSIT WAS WYBRATX SISTEMU KODIROWANIQ SAMIM,POKAZYWAQ
SPISOK WOZMOVNYH WARIANTOW.
26.4.2 rEDAKTIROWANIE ZAGOLOWKA SOOB]ENIQ
rEVIM Mail PREDOSTAWLQET SPECIALXNYE KOMANDY DLQ PEREDWIVENIQ K OPREDELENNYM
POLQM ZAGOLOWKA I DLQ ZAWER[ENIQ ADRESOW.
C-c C-f C-t
pEREJTI K POL@ ZAGOLOWKA`To',SOZDAWAQ EGO,ESLI EGO E]E NET (mail-to).
C-c C-f C-s
pEREJTI K POL@ ZAGOLOWKA`Subject',SOZDAWAQ EGO,ESLI EGO E]E NET (mail-
subject).
C-c C-f C-c
pEREJTI K POL@ ZAGOLOWKA`CC',SOZDAWAQ EGO,ESLI EGO E]E NET (mail-cc).
C-c C-f C-b
pEREJTI K POL@ ZAGOLOWKA`BCC',SOZDAWAQ EGO,ESLI EGO E]E NET (mail-bcc).
C-c C-f C-f
pEREJTI K POL@ ZAGOLOWKA`FCC',SOZDAWAQ EGO,ESLI EGO E]E NET (mail-fcc).
272 rUKOWODSTWO PO GNU EmacsM-hTABi zAWER[ITX PO^TOWYJ ADRES (mail-complete).
eSTX PQTX KOMAND DLQ PEREME]ENIQ TO^KI K OTDELXNYM POLQM ZAGOLOWKA,I WSE ONI
BAZIRU@TSQ NA PREFIKSE C-c C-f (`C-f'OZNA^AET\пЂЊeld".
1
oNI PERE^ISLENY W TABLICE WY-
[E.eSLI TREBUEMOE POLE NE SU]ESTWUET,\TI KOMANDY SOZDA@T EGO.mY PREDOSTAWLQEM
SPECIALXNYE KOMANDY DLQ PEREME]ENIQ IMENNO K TAKIM POLQM,POTOMU ^TO ^A]E WSEGO
POLXZOWATELI HOTQT REDAKTIROWATX IMENNO IH.
pRI REDAKTIROWANII POLEJ ZAGOLOWKA,KOTORYE SODERVAT PO^TOWYE ADRESA,TAKIH KAK
`To:',`CC:'I`BCC:',WY MOVETE ZAWER[ITX ADRES,WWEDQ M-hTABi (mail-complete).|TA
KOMANDA WSTAWLQET POLNOE IMQ,SOOTWETSTWU@]EE\TOMU ADRESU,ESLI ONA MOVET EGO OPRE-
DELITX.pEREMENNAQ mail-complete-style GOWORIT,NUVNO LI WSTAWLQTX POLNOE IMQ I
KAKOJ STILX SLEDUET ISPOLXZOWATX;STILX ZADAETSQ KAK W mail-from-style (SM.rAZDEL 26.2
[zAGOLOWKI SOOB]ENIJ],S.268 ).
pRI ZAWER[ENII PRAWILXNYMI PO^TOWYMI ADRESAMI S^ITA@TSQ IMENA LOKALXNYH POLX-
ZOWATELEJ I OPREDELENNYE WAMI PO^TOWYE PSEWDONIMY.wY MOVETE ZADATX DOPOLNITELXNYE
ISTO^NIKI PRAWILXNYH ADRESOW;ISPOLXZUJTE BUFER NASTROJKI,^TOBY PROSMOTRETX WOZ-
MOVNYE WARIANTY.
eSLI WY NAPE^ATAETE M-h TABi W TELE SOOB]ENIQ,ONA WYZOWET ispell-complete-word,KAK
W REVIME Text.
26.4.3 cITIROWANIE PO^TY
w REVIME Mail TAKVE ESTX KOMANDY DLQ WOSSTANOWLENIQ ILI CITIROWANIQ WSEGO ILI
^ASTI SOOB]ENIQ,NA KOTOROE WY OTWE^AETE.|TI KOMANDY AKTIWNY,TOLXKO KOGDA WY NA^ALI
OTPRAWKU SOOB]ENIQ S ISPOLXZOWANIEM KOMANDY Rmail.
C-c C-y wOSSTANOWITX WYBRANNOE SOOB]ENIE IZ Rmail (mail-yank-original).
C-c C-r wOSSTANOWITX OBLASTX IZ BUFERA Rmail (mail-yank-region).
C-c C-q zAPOLNITX WSE ABZACY,PROCITIROWANNYE IZ DRUGOGO SOOB]ENIQ (mail-fill-
yanked-message).
eSLI OTPRAWKA PO^TY ZAPUSKAETSQ IZ PROGRAMMY ^TENIQ PO^TY Rmail S ISPOLXZOWANIEM
KOMANDY Rmail,TO WNUTRI BUFERA SOOB]ENIQ MOVET ISPOLXZOWATXSQ KOMANDA C-c C-y DLQ
WSTAWKI TEKSTA SOOB]ENIQ,NA KOTOROE WY OTWE^AETE.oBY^NO ONA SDWIGAET KAVDU@ STRO-
KU\TOGO SOOB]ENIQ NA TRI PROBELA I UDALQET BOLX[INSTWO POLEJ ZAGOLOWKA.~ISLOWOJ
ARGUMENT UKAZYWAET KOLI^ESTWO PROBELOW DLQ OTSTUPA.pROSTO C-u GOWORIT O TOM,^TO
DELATX OTSTUP I UDALQTX ^TO-LIBO NE NADO.C-c C-y WSEGDA ISPOLXZUET TEKU]EE SOOB]ENIE
IZ BUFERA Rmail,TAK ^TO MOVNO WSTAWITX NESKOLXKO STARYH SOOB]ENIJ,WYBIRAQ NUVNOE W
Rmail,PEREKL@^AQSX W`*mail*'I WOSSTANAWLIWAQ EGO,A ZATEM SNOWA PEREKL@^AQSX W Rmail,
^TOBY WYBRATX E]E ODNO.
wY MOVETE ZADATX TEKST,KOTORYJ KOMANDA C-c C-y BUDET WSTAWLQTX W NA^ALE KAVDOJ
STROKI:USTANOWITE mail-yank-prefix RAWNOJ VELAEMOJ STROKE.(zNA^ENIE nil OZNA^AET,
^TO SLEDUET DELATX OTSTUP;\TO ISPOLXZUETSQ PO UMOL^ANI@.) oDNAKO,C-u C-c C-y NIKOGDA
NE DOBAWLQET NI^EGO W NA^ALO WSTAWLQEMYH STROK,NESMOTRQ NA ZNA^ENIE mail-yank-prefix.
~TOBY WSTAWITX TOLXKO ^ASTX PRI[ED[EGO SOOB]ENIQ,USTANOWITE W Rmail OBLASTX WO-
KRUG NUVNOGO FRAGMENTA;ZATEM PEREJDITE W BUFER`*mail*'I NAPE^ATAJTE C-c C-r (mail-
yank-region).w KAVDOJ KOPIRUEMOJ STROKE DELAETSQ OTSTUP ILI DOBAWLQETSQ PREFIKS W
SOOTWETSTWII S mail-yank-prefix.
pOSLE ISPOLXZOWANIQ C-c C-y ILI C-c C-r WY MOVETE NABRATX C-c C-q,^TOBY ZAPOLNITX
ABZACY WOSSTANOWLENNOGO STAROGO SOOB]ENIQ ILI SOOB]ENIJ.oDNOKRATNYM ISPOLXZOWANI-
EM C-c C-q ZAPOLNQ@TSQ WSE TAKIE ABZACY,PRI^EM KAVDYJ OTDELXNO.~TOBY ZAPOLNITX1
oT ANGL.\POLE".(pRIM.PEREWOD^IKA)
gLAWA 26:pOSYLKA PO^TY 273ODIN ABZAC PROCITIROWANNOGO SOOB]ENIQ,ISPOLXZUJTE M-q.eSLI ZAPOLNENIE NE OBRABATY-
WAET ISPOLXZUEMYJ WAMI STILX PREFIKSA DLQ CITAT AWTOMATI^ESKI,POPROBUJTE USTANOWITX
PREFIKS ZAPOLNENIQ QWNO.sM.rAZDEL 21.5 [zAPOLNENIE],S.185.
26.4.4 dRUGIE WOZMOVNOSTI REVIMA Mail
C-c C-t pEREME]AET K NA^ALU TEKSTA TELA SOOB]ENIQ (mail-text).
C-c C-w wSTAWLQET FAJL`~/.signature'W KONEC TEKSTA SOOB]ENIQ (mail-signature).
C-c C-i FAJL
h RETi
wSTAWLQET SODERVIMOE FAJLA W KONEC ISHODQ]EGO SOOB]ENIQ (mail-attach-
file).
M-x ispell-message
pROIZWODIT PROWERKU PRAWOPISANIQ W TEKSTE SOOB]ENIQ,NO NE W CITATAH IZ
DRUGIH SOOB]ENIJ.
C-c C-t (mail-text) PEREME]AET TO^KU K POZICII SRAZU POSLE STROKI-RAZDELITELQ ZAGO-
LOWKA,TO ESTX K NA^ALU TEKSTA TELA SOOB]ENIQ.
C-c C-w (mail-signature) DOBAWLQET W KONEC SOOB]ENIQ STANDARTNYJ KUSOK TEKSTA,GDE
WY MOVETE PODROBNEE RASSKAZATX S SEBE.|TOT TEKST BERETSQ IZ FAJLA`~/.signature'W
WA[EM NA^ALXNOM KATALOGE.~TOBY PODPISX WSTAWLQLASX AWTOMATI^ESKI,USTANOWITE PERE-
MENNU@ mail-signature W ZNA^ENIE t;TOGDA PRI SOZDANII PO^TOWOGO SOOB]ENIQ SODERVI-
MOE WA[EGO FAJLA`~/.signature'BUDET WSTAWLQTXSQ AWTOMATI^ESKI.eSLI WY NE HOTITE
STAWITX PODPISX W KONKRETNOM SOOB]ENII,UDALITE EE IZ BUFERA PERED OTSYLKOJ.
wY TAKVE MOVETE USTANOWITX mail-signature RAWNOJ STROKE;TOGDA\TA STROKA AW-
TOMATI^ESKI WSTAWLQETSQ W KA^ESTWE WA[EJ PODPISI,KOGDA WY NA^INAETE REDAKTIROWATX
SOOB]ENIE.eSLI WY USTANOWITE EE RAWNOJ KAKOMU-TO DRUGOMU LISPOWSKOMU WYRAVENI@,
\TO WYRAVENIE WSQKIJ RAZ WY^ISLQETSQ,A EGO ZNA^ENIE (KOTOROE DOLVNO BYTX STROKOJ)
OPREDELQET PODPISX.
wY MOVETE PROWERITX ORFOGRAFI@ W TEKSTE NAPISANNOGO SOOB]ENIQ S POMO]X@ KO-
MANDY M-x ispell-message.eSLI WY WOSSTANAWLIWALI PRI[ED[IE SOOB]ENIQ W NABROSOK
OTPRAWLQEMOGO,\TA KOMANDA PROPUSKAET WOSSTANOWLENNYE MESTA,NO PROWERQET TEKST,KOTO-
RYJ WSTAWILI WY SAMI.(oNA PROSMATRIWAET WELI^INU OTSTUPA ILI ZNA^ENIE PEREMENNOJ
mail-yank-prefix,^TOBY OTLI^ITX PROCITIROWANNYE STROKI OT WWEDENNYH WAMI.) sM.rAZDEL 13.4 [pRAWOPISANIE],S.102.
~TOBY WKL@^ITX W OTPRAWLQEMOE SOOB]ENIE FAJL,WY MOVETE ISPOLXZOWATX C-x i,OBY^-
NU@ KOMANDU DLQ WSTAWKI FAJLA W TEKU]IJ BUFER.nO ^A]E UDOBNEE ISPOLXZOWATX OSOBU@
KOMANDU,C-c C-i (mail-attach-file).|TA KOMANDA WSTAWLQET SODERVIMOE ZADANNOGO FAJ-
LA W KONEC BUFERA POSLE PODPISI,ESLI ONA ESTX,S RAZDELQ@]EJ STROKOJ,WKL@^A@]EJ IMQ
\TOGO FAJLA.
wKL@^ENIE REVIMA Mail (^TO C-x m DELAET AWTOMATI^ESKI) ZAPUSKAET OBY^NYE LOWU[KI
text-mode-hook I mail-mode-hook.iNICIALIZACIQ NOWOGO ISHODQ]EGO SOOB]ENIQ ZAPUSKA-
ET OBY^NU@ LOWU[KU mail-setup-hook;ISPOLXZUJTE\TU LOWU[KU,ESLI WY HOTITE DOBAWITX
K WA[EMU PO^TOWOMU ZAGOLOWKU OSOBYE POLQ ILI SDELATX DRUGIE IZMENENIQ W PREDSTAWLENII
BUFERA SOOB]ENIQ.sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
oSNOWNOE RAZLI^IE MEVDU\TIMI LOWU[KAMI SOSTOIT TOLXKO W TOM,W KAKOE WREMQ ONI
WYZYWA@TSQ.kOGDA WY NABIRAETE M-x mail,ZAPUSKAETSQ mail-mode-hook,KAK TOLXKO BUDET
SOZDAN BUFER`*mail*'.zATEM FUNKCIQ mail-setup POME]AET W\TOT BUFER EGO NA^ALXNOE
SODERVIMOE PO UMOL^ANI@.pOSLE\TOGO ZAPUSKAETSQ mail-setup-hook.
274 rUKOWODSTWO PO GNU Emacs26.5 kAK SBITX S TOLKU NSA
M-x spook DOBAWLQET W OTPRAWLQEMOE SOOB]ENIE STROKU SLU^AJNO WYBRANNYH KL@^EWYH
SLOW.|TI KL@^EWYE SLOWA WYBIRA@TSQ IZ SPISKA SLOW,KOTORYE PREDPOLAGA@T,^TO WY
OBSUVDAETE ^TO-TO.
zA\TOJ WOZMOVNOSTX@ STOIT IDEQ,^TO NSA
2
PROSMATRIWAET\LEKTRONNU@ PO^TU,SO-
DERVA]U@ KL@^EWYE SLOWA,KOTORYE ONI MOGUT NAJTI INTERESNYMI.(NSA GOWORIT,^TO
ONI\TOGO NE DELA@T,NO ONI DOLVNY TAK GOWORITX.) iDEQ SOSTOIT W TOM,^TO ESLI MNOGIE
L@DI DOBAWLQ@T K SWOIM SOOB]ENIQM PODOZRITELXNYE SLOWA,NSA BUDET NASTOLXKO ZANQTO
PODDELKAMI,^TO WYNUVDENO BUDET SOWSEM PREKRATITX PROSMOTR.
wOT KAK AWTOMATI^ESKI WSTAWLQTX ZLOWE]IE KL@^EWYE SLOWA,KOGDA WY NA^INAETE NABI-
RATX SOOB]ENIE:
(add-hook'mail-setup-hook'spook)
sMU]AET\TO NSA ILI NET,PO KRAJNEJ MERE\TO RAZWLEKAET L@DEJ.
26.6 sPOSOBY SOSTAWLENIQ SOOB]ENIJ
|TA GLAWA OPISYWAET OBY^NYJ REVIM Emacs DLQ REDAKTIROWANIQ I OTPRAWKI PO^TY |
REVIM Mail.w Emacs ESTX INYE SPOSOBY DLQ\TOGO,WKL@^AQ REVIMY MH-E I Message,NE
OPISANNYE W\TOM RUKOWODSTWE.wY MOVETE WYBRATX L@BOJ IZ NIH W KA^ESTWE SWOEGO PRED-
PO^TITELXNOGO SPOSOBA.kOMANDY C-x m,C-x 4 m I C-x 5 m ISPOLXZU@T TOT AGENT,KOTORYJ
WY ZADALI.tAK VE DELA@T I DRUGIE KOMANDY I PROGRAMMY Emacs,POSYLA@]IE PO^TU.
~TOBY UKAZATX WA[ SPOSOB SOSTAWLENIQ SOOB]ENIJ,USTANOWITE PEREMENNU@ mail-user-
agent.nA DANNYJ MOMENT DOPUSTIMYE ZNA^ENIQ WKL@^A@T sendmail-user-agent,mh-e-
user-agent I message-user-agent.
eSLI WY WYBRALI DRUGOJ SPOSOB SOSTAWLENIQ SOOB]ENIJ,INFORMACIQ O BUFERE`*mail*'
I REVIME Mail IZ\TOJ GLAWY NE OTNOSITSQ K WA[EMU SLU^A@;DRUGIE METODY MOGUT ISPOLX-
ZOWATX SOWER[ENNO INYE KOMANDY S INYM FORMATOM W INA^E NAZYWAEMOM BUFERE.2
National Security Agency,AMERIKANSKIJ ANALOG fsb S EE sorm2.(pRIM.PEREWOD^IKA)
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 27527 ~TENIE PO^TY S POMO]X@ Rmail
Rmail |\TO PODSISTEMA Emacs DLQ ^TENIQ I RAZME]ENIQ POLU^AEMOJ WAMI PO^TY.
Rmail HRANIT PO^TOWYE SOOB]ENIQ W FAJLAH,NAZYWAEMYH Rmail-FAJLAMI.~TENIE SOOB]E-
NIJ W Rmail-FAJLE OSU]ESTWLQETSQ W SPECIALXNOM OSNOWNOM REVIME,REVIME Rmail,KOTO-
RYJ PEREOPREDELQET BOLX[INSTWO BUKW DLQ ZAPUSKA KOMAND UPRAWLENIQ PO^TOJ.kOMANDA
rmail-mode ISPOLXZUETSQ DLQ WHODA W REVIM Rmail,ONA ZAPUSKAET LOWU[KU rmail-mode-
hook,KAK OBY^NO;NO NE WYPOLNQJTE\TU KOMANDU WRU^NU@,ONA NE MOVET DELATX NI^EGO
SU]ESTWENNOGO,ESLI\TOT BUFER NE OBRA]AETSQ K PRAWILXNOMU Rmail-FAJLU.
27.1 oSNOWNYE PONQTIQ Rmail
pRI PROSTEJ[EM ISPOLXZOWANII Rmail,U WAS ESTX ODIN Rmail-FAJL`~/RMAIL',W KOTOROM
SOHRANQETSQ WSQ WA[A PO^TA.|TOT FAJL NAZYWAETSQ PERWI^NYM Rmail-FAJLOM.kOMANDA
M-x rmail S^ITYWAET WA[ PERWI^NYJ Rmail-FAJL,WSTAWLQET W NEGO NOWU@ PO^TU IZ WA[IH
WHODNYH FAJLOW,OTOBRAVAET PERWOE NEPRO^ITANNOE SOOB]ENIE I POZWOLQET WAM NA^ATX
^TENIE.pEREMENNAQ rmail-file-name ZADAET IMQ PERWI^NOGO Rmail-FAJLA.
Rmail ISPOLXZUET SUVENIE,^TOBY SKRYTX IZ Rmail-FAJLA WSE SOOB]ENIQ,KROME ODNOGO.
pOKAZANNOE SOOB]ENIE NAZYWAETSQ TEKU]IM.sPECIALXNYE KOMANDY REVIMA Rmail MOGUT
OSU]ESTWLQTX TAKIE WE]I,KAK UDALENIE TEKU]EGO SOOB]ENIQ,KOPIROWANIE EGO W DRUGOJ
FAJL,POSYLKA OTWETA ILI PEREME]ENIE K DRUGOMU SOOB]ENI@.wY TAKVE MOVETE SOZDATX
NESKOLXKO Rmail-FAJLOW I ISPOLXZOWATX Rmail DLQ OBMENA SOOB]ENIQMI MEVDU NIMI.
w PREDELAH Rmail-FAJLA SOOB]ENIQ RASPOLOVENY POSLEDOWATELXNO W PORQDKE POSTUPLE-
NIQ;WY MOVETE ISPOLXZOWATX DRUGIE SPOSOBY SORTIROWKI.sOOB]ENIQM PRISWAIWA@TSQ
POSLEDOWATELXNYE CELYE ^ISLA W KA^ESTWE IH NOMEROW SOOB]ENIJ.nOMER TEKU]EGO SOOB-
]ENIQ POKAZYWAETSQ W STROKE REVIMA Rmail,ZA NIM IDET OB]EE ^ISLO SOOB]ENIJ W FAJLE.
wY MOVETE PEREJTI NA SOOB]ENIE,ZADAWAQ EGO NOMER S POMO]X@ KL@^A j (SM.rAZDEL 27.3
[pEREME]ENIE W Rmail],S.276 ).
sLEDUQ OBY^NYM PRAWILAM Emacs,IZMENENIQ W Rmail-FAJLE STANOWQTSQ POSTOQNNYMI
TOLXKO POSLE SOHRANENIQ\TOGO FAJLA.wY MOVETE OSU]ESTWITX\TO S POMO]X@ KOMANDY
s (rmail-save),KOTORAQ TAKVE SPERWA WY^ERKIWAET UDALQEMYE SOOB]ENIQ IZ FAJLA (SM.rAZDEL 27.4 [uDALENIE SOOB]ENIJ],S.277).dLQ ZAPISI FAJLA BEZ WY^ERKIWANIQ SLEDUET
ISPOLXZOWATX C-x C-s.Rmail TAKVE SOHRANQET Rmail-FAJL PRI POSTUPLENII NOWOJ PO^TY
IZ WHODNOGO PO^TOWOGO FAJLA (SM.rAZDEL 27.5 [wHODNOJ PO^TOWYJ FAJL],S.278).
wYJTI IZ Rmail MOVNO S POMO]X@ q (rmail-quit),PRI\TOM Rmail-FAJL O^I]AETSQ I
SOHRANQETSQ,I PROISHODIT PEREHOD W DRUGOJ BUFER.nO FORMALXNO NET NEOBHODIMOSTI`WY-
HODITX'.eSLI WY PEREKL@^ILISX IZ Rmail K REDAKTIROWANI@ W DRUGIH BUFERAH I BOLX[E
NE WOZWRA]ALISX OBRATNO,NA SAMOM DELE WY WY[LI.(kOMANDA Rmail b DELAET\TO DLQ
WAS.) dOSTATO^NO PROSTO UBEDITXSQ,^TO WY SOHRANILI Rmail-FAJL (KAK I L@BOJ DRUGOJ
IZMENENNYJ WAMI FAJL).dOSTATO^NO UDOBNYJ SPOSOB SDELATX\TO PREDOSTAWLQET KOMANDA
C-x s (SM.rAZDEL 14.3 [sOHRANENIE],S.108).
27.2 pROKRUTKA W SOOB]ENII
kOGDA Rmail POKAZYWAET SOOB]ENIE,NE POME]A@]EESQ NA\KRANE,WAM PRIDETSQ PROKRU-
^IWATX\TO SOOB]ENIE,^TOBY PRO^ITATX OSTAW[U@SQ ^ASTX.wY MOGLI BY SDELATX\TO S
POMO]X@ C-v,M-v I M-<,NO W Rmail PROKRUTKOJ PRIHODITSQ POLXZOWATXSQ NASTOLXKO ^ASTO,
^TO EE KOMANDY ZASLUVIWA@T BOLEE PROSTOGO NABORA.
h SPCi pROKRU^IWAET WPERED (scroll-up).
h DELi pROKRU^IWAET NAZAD (scroll-down).
.pROKRU^IWAET K NA^ALU SOOB]ENIQ (rmail-beginning-of-message).
276 rUKOWODSTWO PO GNU EmacstAK KAK WO WREMQ ^TENIQ SOOB]ENIQ NAIBOLEE ^ASTOJ PROCEDUROJ QWLQETSQ PROKRUTKA
PO CELOMU\KRANU,Rmail DELAET hSPCi I hDELi SINONIMAMI C-v (scroll-up) I M-v (scroll-
down).
kOMANDA.(rmail-begining-of-message) PROKRU^IWAET K NA^ALU WYBRANNOGO SOOB]E-
NIQ.|TO NE SOWSEM TO VE,^TO I M-<:WO-PERWYH,ONA NE OSTAWLQET METKU,A WO-WTORYH,ONA
PEREUSTANAWLIWAET GRANICY BUFERA DO PREDELOW TEKU]EGO SOOB]ENIQ,ESLI WY IH IZMENILI.
27.3 pEREME]ENIE PO SOOB]ENIQM
sAMOE OSNOWNOE,^TO WY MOVETE SDELATX S SOOB]ENIEM | PRO^ITATX EGO.w Rmail WY
MOVETE PRO^ITATX SOOB]ENIE,SDELAW EGO TEKU]IM.oBY^NO PRI\TOM POSLEDOWATELXNO PE-
REME]A@TSQ PO FAJLU,TAK KAK SOOB]ENIQ W NEM RASPOLOVENY W PORQDKE POLU^ENIQ.pRI
WHODE W Rmail WY POPADAETE NA PERWOE SOOB]ENIE,KOTOROE NIKOGDA E]E NE BYLO TEKU]IM
(\TO PERWOE SOOB]ENIQ,IME@]EE ATRIBUT`unseen';SM.rAZDEL 27.9 [aTRIBUTY SOOB]E-
NIJ],S.281 ).~TOBY UWIDETX DRUGIE NOWYE SOOB]ENIQ,DWIGAJTESX WPERED,DLQ POWTORNOGO
PROSMOTRA STARYH DWIGAJTESX NAZAD.
n pEREJTI K SLEDU@]EMU NEUDALENNOMU SOOB]ENI@,PROPUSKAQ WSE PROMEVUTO^-
NYE UDALENNYE SOOB]ENIQ (rmail-next-undeleted-message).
p pEREJTI K PREDYDU]EMU NEUDALENNOMU SOOB]ENI@ (rmail-previous-
undeleted-message).
M-n pEREJTI K SLEDU@]EMU SOOB]ENI@,WKL@^AQ UDALENNYE (rmail-next-message).
M-p pEREJTI K PREDYDU]EMU SOOB]ENI@,WKL@^AQ UDALENNYE (rmail-previous-
message).
j pEREJTI K PERWOMU SOOB]ENI@.s ARGUMENTOM n | PEREJTI K SOOB]ENI@ S
NOMEROM n (rmail-show-message).
> pEREJTI K POSLEDNEMU SOOB]ENI@ (rmail-last-message).
< pEREJTI K PERWOMU SOOB]ENI@ (rmail-first-message).
M-s regexp hRETi
pEREJTI K SLEDU@]EMU SOOB]ENI@,SODERVA]EMU SOWPADENIE S REGULQRNYM WY-
RAVENIEM regexp (rmail-search).
- M-s regexp
h RETi
pEREJTI K PREDYDU]EMU SOOB]ENI@,SODERVA]EMU SOWPADENIE S regexp.
n and p |\TO OBY^NYJ SPOSOB PEREME]ENIQ PO SOOB]ENIQM W Rmail.oNI PEREME-
]A@T PO SOOB]ENIQM POSLEDOWATELXNO,NO PROPUSKA@T UDALENNYE SOOB]ENIQ,^TO OBY^-
NO WY I HOTELI BY DELATX.|TI KOMANDY NAZYWA@TSQ rmail-next-undeleted-message I
rmail-previous-undeleted-message.eSLI WY NE HOTITE PROPUSKATX UDALENNYE SOOB]E-
NIQ,NAPRIMER,ESLI WY HOTITE PEREMESTITXSQ K SOOB]ENI@,^TOBY OTMENITX EGO UDALENIE,
ISPOLXZUJTE WARIANTY M-n I M-p (rmail-next-message I rmail-previous-message).~I-
SLOWOJ ARGUMENT W L@BOJ IZ\TIH KOMAND ISPOLXZUETSQ KAK S^ET^IK POWTOROW.
w Rmail WY MOVETE ZADATX ^ISLOWOJ ARGUMENT,NABRAW TOLXKO CIFRU.pRI\TOM NE
TREBUETSQ SNA^ALA NABIRATX C-u.
kOMANDA M-s (rmail-search) |\TO WERSIQ POISKA DLQ Rmail.oBY^NAQ KOMANDA NA-
RA]IWAEMOGO POISKA C-s RABOTAET W Rmail,NO ONA OSU]ESTWLQET POISK TOLXKO W PREDELAH
TEKU]EGO SOOB]ENIQ.cELX KOMANDY M-s | POISK DRUGOGO SOOB]ENIQ.oNA S^ITYWAET RE-
GULQRNOE WYRAVENIE (SM.rAZDEL 12.5 [rEGULQRNYE WYRAVENIQ],S.91) BEZ NARA]IWANIQ
I ZATEM OSU]ESTWLQET POISK SOWPADENIQ,NA^INAQ S NA^ALA SLEDU@]EGO SOOB]ENIQ.pO-
TOM ONA WYBIRAET SOOB]ENIE,SODERVA]EE SOWPADENIE.eSLI regexp PUSTO,M-s ISPOLXZUET
REGULQRNOE WYRAVENIE,ZADANNOE PRI PREDYDU]EM POISKE.
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 277~TOBY NAJTI W FAJLE DRUGOE SOOB]ENIQ W OBRATNOM NAPRAWLENII,ZADAJTE KOMANDE M-s
OTRICATELXNYJ ARGUMENT.w Rmail\TO MOVNO SDELATX KAK - M-s.
tAKVE WOZMOVEN POISK SOOB]ENIQ PO METKE.sM.rAZDEL 27.8 [mETKI SOOB]ENIJ],S.281.
dLQ PEREDWIVENIQ K SOOB]ENI@,ZADAWAEMOMU ABSOL@TNYM NOMEROM,ISPOLXZUJTE KO-
MANDU j (rmail-show-message) S NOMEROM SOOB]ENIQ W KA^ESTWE ARGUMENTA.bEZ ARGUMENTA,
KOMANDA j WYBIRAET PERWOE SOOB]ENIE.< (rmail-first-message) TAKVE WYBIRAET PERWOE
SOOB]ENIE.kOMANDA > (rmail-last-message) WYBIRAET POSLEDNEE.
27.4 uDALENIE SOOB]ENIJ
kOGDA WAM BOLX[E NE NUVNO HRANITX KAKOE-TO SOOB]ENIE,EGO MOVNO UDALITX.pRI\TOM
UDALQEMOE SOOB]ENIE METITSQ KAK WOZMOVNO IGNORIRUEMOE I NEKOTORYE KOMANDY Rmail NE
BUDUT ZAME^ATX EGO PRISUTSTWIQ,NO TEM NE MENEE ONO PRODOLVAET SU]ESTWOWATX W Rmail-
FAJLE I SOHRANQET SWOJ NOMER.
wY^ERKIWANIE W Rmail-FAJLE (ILI EGO O^ISTKA) DEJSTWITELXNO UNI^TOVAET UDALENNYE
SOOB]ENIQ.oSTALXNYE SOOB]ENIQ POSLEDOWATELXNO PERENUMEROWYWA@TSQ.wY^ERKIWANIE
|\TO EDINSTWENNOE DEJSTWIE,KROME RAZBORA DAJDVESTA (SM.rAZDEL 27.15 [dAJDVEST
SOOB]ENIJ],S.287 ),KOTOROE IZMENQET NOMERA SOOB]ENIJ.
d uDALITX TEKU]EE SOOB]ENIE I PEREJTI K SLEDU@]EMU NEUDALENNOMU (rmail-
delete-forward).
C-d uDALITX TEKU]EE SOOB]ENIE I PEREJTI K PREDYDU]EMU NEUDALENNOMU (rmail-
delete-backward).
u oTMENITX UDALENIE TEKU]EGO SOOB]ENIQ ILI PEREJTI NAZAD K UDALENNOMU SO-
OB]ENI@ I OTMENITX EGO UDALENIE (rmail-undelete-previous-message).
x o^ISTITX Rmail-FAJL (rmail-expunge).
sU]ESTWU@T DWE KOMANDY Rmail DLQ UDALENIQ SOOB]ENIJ.oBE ONI UDALQ@T TEKU]EE
SOOB]ENIE I WYBIRA@T DRUGOE.kOMANDA d (rmail-delete-forward) PEREHODIT K SLEDU@-
]EMU SOOB]ENI@,PROPUSKAQ UVE UDALENNYE,W TO WREMQ KAK C-d (rmail-delete-backward)
PEREDWIGAET K PREDYDU]EMU NEUDALENNOMU SOOB]ENI@.eSLI VE NET NEUDALENNOGO SOOB]E-
NIQ,K KOTOROMU MOVNO PEREJTI W UKAZANNOM NAPRAWLENII,TO TEKU]IM OSTAETSQ SOOB]ENIE,
KOTOROE BYLO TOLXKO ^TO UDALENO.~ISLOWOJ ARGUMENT MENQET NAPRAWLENIE DWIVENIQ POSLE
UDALENIQ.
wSQKIJ RAZ,KOGDA Rmail UDALQET SOOB]ENIE,ON WYZYWAET FUNKCII,PERE^ISLENNYE W
rmail-delete-message-hook.kOGDA WYZYWA@TSQ FUNKCII\TOJ LOWU[KI,SOOB]ENIE UVE
POME^ENO KAK UDALENNOE,NO WSE E]E QWLQETSQ TEKU]IM W\TOM BUFERE Rmail.
dLQ TOGO ^TOBY WSE UDALENNYE SOOB]ENIQ OKON^ATELXNO IS^EZLI IZ Rmail-FAJLA,NADO
NABRATX x (rmail-expunge).pOKA\TO NE SDELANO,ESTX WOZMOVNOSTX OTMENY UDALENIQ SOOB-
]ENIJ.kOMANDA OTMENY UDALENIQ,u (rmail-undelete-previous-message),PREDNAZNA^ENA
DLQ OTMENY DEJSTWIQ KOMANDY d W BOLX[INSTWE SLU^AEW.oNA OTMENQET UDALENIE TEKU]EGO
SOOB]ENIQ,ESLI ONO BYLO UDALENO.w PROTIWNOM SLU^AE ONA DWIGAETSQ K PREDYDU]EMU
SOOB]ENI@ DO TEH POR,POKA NE BUDET NAJDENO UDALENNOE SOOB]ENIE,I PROIZWODIT OTMENU
UDALENIQ\TOGO SOOB]ENIQ.
oBY^NO WY MOVETE OTMENITX DEJSTWIE d S POMO]X@ KOMANDY u,TAK KAK u PEREDWIGAET
NAZAD I OTMENQET UDALENIE SOOB]ENIQ,PROIZWEDENNOE KOMANDOJ d.nO\TO NE RABOTAET,
KOGDA d PROPUSKAET NESKOLXKO UVE UDALENNYH SOOB]ENIJ,KOTORYE SLEDU@T ZA UDALQEMYM
SOOB]ENIEM;W\TOM SLU^AE KOMANDA u BUDET OTMENQTX UDALENIE POSLEDNEGO SOOB]ENIQ IZ
TEH,^TO BYLI PROPU]ENY.nE SU]ESTWUET SOWER[ENNOGO SPOSOBA OBOJTI\TU PROBLEMU.
oDNAKO,POWTORQQ KOMANDU u,MOVNO W KONCE KONCOW WERNUTXSQ K SOOB]ENI@,DLQ KOTOROGO
WY SOBIRALISX OTMENITX UDALENIE.mOVNO TAKVE DOBRATXSQ DO\TOGO SOOB]ENIQ S POMO]X@
KOMANDY M-p I ZATEM NABRATX u.
278 rUKOWODSTWO PO GNU EmacsuDALENNOE SOOB]ENIE IMEET ATRIBUT`deleted',I KAK REZULXTAT PRI UDALENII TEKU]EGO
SOOB]ENIQ W STROKE REVIMA POQWLQETSQ SLOWO`deleted'.nA SAMOM DELE,UDALENIE ILI OT-
MENA UDALENIQ SOOB]ENIQ |\TO NE BOLEE ^EM DOBAWLENIE ILI UNI^TOVENIE\TOGO ATRIBUTA.
sM.rAZDEL 27.9 [aTRIBUTY SOOB]ENIJ],S.281.
27.5 Rmail-FAJLY I WHODNYE PO^TOWYE Q]IKI
oPERACIONNAQ SISTEMA POME]AET PRIHODQ]U@ WAM PO^TU W FAJL,KOTORYJ MY NAZYWAEM
WA[IM WHODNYM PO^TOWYM Q]IKOM.kOGDA WY ZAPUSKAETE Rmail,ON WYPOLNQET NAPISANNU@
NA sI PROGRAMMU movemail,^TOBY SKOPIROWATX NOWYE SOOB]ENIQ IZ WHODNOGO PO^TOWOGO
Q]IKA W PERWI^NYJ Rmail-FAJL,KOTORYJ TAKVE SODERVIT DRUGIE SOOB]ENIQ,SOHRANIW[I-
ESQ OT PREDYDU]IH SEANSOW Rmail.iMENNO W\TOM FAJLE NAHODITSQ TA KORRESPONDENCIQ,
KOTORU@ WY ^ITAETE S POMO]X@ Rmail.|TA PROCEDURA NAZYWAETSQ POLU^ENIEM NOWOJ PO-
^TY.w L@BOJ MOMENT ONA MOVET BYTX POWTORENA W Rmail S POMO]X@ KOMANDY g.
pEREMENNAQ rmail-primary-inbox-list SODERVIT SPISOK IMEN FAJLOW,QWLQ@]IHSQ
WHODNYMI PO^TOWYMI Q]IKAMI WA[EGO PERWI^NOGO Rmail-FAJLA.eSLI WY NE USTANOWI-
LI\TU PEREMENNU@ QWNO,ONA INICIALIZIRUETSQ ZNA^ENIEM PEREMENNOJ SREDY MAIL,ILI,
W KRAJNEM SLU^AE,USTANAWLIWAETSQ W ZNA^ENIE nil,^TO OZNA^AET ISPOLXZOWANIE WHODNO-
GO PO^TOWOGO Q]IKA PO UMOL^ANI@;\TO MOGUT BYTX FAJLY`/var/mail/IMQ-POLXZOWATELQ',
`/usr/mail/IMQ-POLXZOWATELQ'ILI`/usr/spool/mail/IMQ-POLXZOWATELQ'W ZAWISIMOSTI OT
WA[EJ OPERACIONNOJ SISTEMY.
~TOBY UZNATX ZNA^ENIE PO UMOL^ANI@ DLQ WA[EJ SISTEMY,ISPOLXZUJTE C-h v
rmail-primary-inbox h RETi.wY MOVETE UKAZATX WHODNOJ FAJL (ILI FAJLY) DLQ
L@BOGO Rmail-FAJLA S POMO]X@ KOMANDY set-rmail-inbox-list;SMOTRITErAZDEL 27.6
[Rmail-FAJLY],S.278.
eSTX DWE PRI^INY DLQ RAZDELENIQ Rmail-FAJLOW I WHODNYH PO^TOWYH Q]IKOW.
1.fORMAT WHODNYH PO^TOWYH FAJLOW IZMENQETSQ OT ODNOJ OPERACIONNOJ SISTEMY K DRU-
GOJ I ZAWISIT OT DRUGIH PO^TOWYH PROGRAMM.tOLXKO ODNA ^ASTX Rmail DOLVNA ZNATX
OB\TIH ALXTERNATIWAH I DOLVNA LI[X PONIMATX,KAK PREOBRAZOWYWATX IH WSE K SOB-
STWENNOMU FORMATU Rmail.
2.oBESPE^ENIE DOSTUPA W FAJL WHODNOGO PO^TOWOGO Q]IKA BEZ WOZNIKNOWENIQ OPASNOSTI
POTERI PO^TY | O^ENX GROMOZDKAQ WE]X,POSKOLXKU TREBUET WZAIMNYH BLOKIROWOK S
DOSTAWKOJ PO^TY.kROME TOGO,RAZLI^NYE OPERACIONNYE SISTEMY ISPOLXZU@T RAZNU@
TEHNIKU BLOKIROWOK.sTRATEGIQ PEREME]ENIQ PO^TY IZ WHODNOGO PO^TOWOGO Q]IKA
RAZ I NAWSEGDA W OTDELXNYJ Rmail-FAJL USTRANQET NEOBHODIMOSTX BLOKIROWKI WSEGO
OSTALXNOGO W Rmail,TAK KAK TOLXKO Rmail RABOTAET S Rmail-FAJLOM.
Rmail BYL NAPISAN S ISPOLXZOWANIEM Babyl W KA^ESTWE WNUTRENNEGO FORMATA.s TEH
POR MY PONQLI,^TO OBY^NYJ DLQ SISTEM Unix I GNU FORMAT WHODNYH PO^TOWYH Q]IKOW
PODHODIT DLQ\TOJ CELI,I MY PLANIRUEM IZMENITX Rmail,^TOBY ON ISPOLXZOWAL\TOT
FORMAT.oDNAKO,Rmail-FAJL WSE TAK VE BUDET OTDELXNYM OT WHODNOGO FAJLA,DAVE NA
SISTEMAH,GDE IH FORMATY ODINAKOWY.
27.6 mNOVESTWO PO^TOWYH FAJLOW
pO UMOL^ANI@ Rmail DEJSTWUET W WA[EM PERWI^NOM Rmail-FAJLE,NAZYWAEMOM`~/RMAIL',
I POLU^AET WA[U PRIHODQ]U@ PO^TU IZ SISTEMNOGO WHODNOGO PO^TOWOGO FAJLA.nO WY
MOVETE TAKVE IMETX DRUGIE Rmail-FAJLY I REDAKTIROWATX IH S POMO]X@ Rmail.|TI
FAJLY MOGUT POLU^ATX PO^TU ^EREZ IH SOBSTWENNYE FAJLY WHODNYH PO^TOWYH Q]IKOW,ILI
WY MOVETE PEREME]ATX W NIH SOOB]ENIQ S POMO]X@ QWNYH KOMAND Rmail (SM.rAZDEL 27.7
[wYWOD IZ Rmail],S.279 ).
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 279i FAJL hRETi
s^ITATX FAJL W Emacs I ZAPUSTITX W NEM Rmail (rmail-input).
M-x set-rmail-inbox-list hRETi FAJLY hRETi
zADATX IMENA WHODNYH PO^TOWYH FAJLOW,OTKUDA BUDET POLU^ATX PO^TU TEKU-
]IJ Rmail-FAJL.
g pOLU^ITX NOWU@ PO^TU IZ WHODNYH PO^TOWYH Q]IKOW TEKU]EGO Rmail-FAJLA
(rmail-get-new-mail).
C-u g FAJL h RETi
pOLU^ITX NOWU@ PO^TU IZ WHODNOGO PO^TOWOGO Q]IKA FAJL.
~TOBY ZAPUSTITX Rmail DLQ FAJLA,OTLI^NOGO OT WA[EGO PERWI^NOGO PO^TOWOGO FAJLA,
MOVNO ISPOLXZOWATX W Rmail KOMANDU i (rmail-input).oNA OBRA]AETSQ K\TOMU FAJLU W
REVIME Rmail.wY TAKVE MOVETE ISPOLXZOWATX KOMANDU M-x rmail-input,DAVE NE NAHODQSX
W Rmail.
fAJL,S^ITYWAEMYJ S POMO]X@ KOMANDY i,KAK PRAWILO,DOLVEN BYTX PRAWILXNYM
Rmail-FAJLOM.eSLI\TO NE TAK,Rmail PYTAETSQ PREOBRAZOWATX EGO W POTOK SOOB]ENIJ
W NESKOLXKIH IZWESTNYH FORMATAH.eSLI\TO UDAETSQ,ON PREOBRAZUET WESX\TOT FAJL W
Rmail-FAJL.eSLI WY ZADALI IMQ NESU]ESTWU@]EGO FAJLA,i INICIALIZIRUET NOWYJ BUFER
DLQ SOZDANIQ NOWOGO Rmail-FAJLA.
wY TAKVE MOVETE WYBRATX Rmail-FAJL IZ MEN@.sNA^ALA WYBERITE PUNKT MEN@ Clas-
sify,IZ MEN@ Classify WYBERITE PUNKT Input Rmail File;ZATEM WYBERITE NUVNYJ WAM FAJL.
pEREMENNYE rmail-secondary-file-directory I rmail-secondary-file-regexp UKAZYWA-
@T,KAKIE FAJLY PREDLAGAET\TO MEN@:PERWAQ PEREMENNAQ GOWORIT,W KAKOM KATALOGE IH
ISKATX;WTORAQ GOWORIT,KAKIE FAJLY W\TOM KATALOGE PREDLAGATX (WSE,^XI IMENA SOOTWET-
STWU@T REGULQRNOMU WYRAVENI@).|TI PEREMENNYE TAKVE OTNOSQTSQ K WYBORU FAJLA DLQ
WYWODA (SM.rAZDEL 27.7 [wYWOD IZ Rmail],S.279).
kAVDYJ Rmail-FAJL MOVET SODERVATX SPISOK IMEN FAJLOW WHODNYH PO^TOWYH Q]IKOW;
WY MOVETE ZADATX\TOT SPISOK S POMO]X@ M-x set-rmail-inbox-list
hRETi files hRETi.
aRGUMENT MOVET SODERVATX L@BOE ^ISLO IMEN FAJLOW,RAZDELENNYH ZAPQTYMI.oN MOVET
BYTX TAKVE PUSTYM,I\TO OZNA^AET,^TO\TOT FAJL NE DOLVEN IMETX WHODNYH PO^TOWYH
Q]IKOW.kAK TOLXKO UKAZAN SPISOK WHODNYH PO^TOWYH Q]IKOW,Rmail-FAJL ZAPOMINAET EGO
I SOHRANQET DO TEH POR,POKA ON QWNO NE BUDET IZMENEN.
kAK OSOBOE ISKL@^ENIE,ESLI WA[ PERWI^NYJ Rmail-FAJL NE UKAZYWAET WHODNYH PO^TO-
WYH FAJLOW,ON ISPOLXZUET STANDARTNYJ SISTEMNYJ.
kOMANDA g (rmail-get-new-mail) WNOSIT PO^TU W TEKU]IJ Rmail-FAJL IZ EGO WHODNYH
FAJLOW.eSLI U\TOGO Rmail-FAJLA NET WHODNYH FAJLOW,g NI^EGO NE DELAET.kOMANDA M-x
rmail TAKVE WNOSIT NOWU@ PO^TU W WA[ PERWI^NYJ Rmail-FAJL.
~TOBY PERENESTI PO^TU IZ FAJLA,NE QWLQ@]EGOSQ OBY^NYM WHODNYM PO^TOWYM Q]IKOM,
ZADAJTE KL@^U g ^ISLOWOJ ARGUMENT,KAK W C-u g.tOGDA ON S^ITAET IMQ FAJLA I PERENESET
PO^TU IZ NEGO.kOGDA g ISPOLXZUETSQ S ARGUMENTOM,FAJL WHODNOGO PO^TOWOGO Q]IKA NI W
KOEM SLU^AE NE UDALQETSQ I NE IZMENQETSQ.pO\TOMU\TO OSNOWNOJ SPOSOB PERENOSA ODNOGO
FAJLA SOOB]ENIJ W DRUGOJ.
27.7 kOPIROWANIE SOOB]ENIJ W FAJLY
|TI KOMANDY KOPIRU@T SOOB]ENIQ IZ Rmail-FAJLA W DRUGOJ FAJL.
o FAJL h RETi
dOBAWITX KOPI@ TEKU]EGO SOOB]ENIQ W KONEC FAJLA,PO UMOL^ANI@ W FORMATE
Rmail-FAJLOW (rmail-output-to-rmail-file).
280 rUKOWODSTWO PO GNU EmacsC-o FAJL hRETi
dOBAWITX KOPI@ TEKU]EGO SOOB]ENIQ W KONEC FAJLA,PO UMOL^ANI@ W FORMATE
SISTEMNYH PO^TOWYH Q]IKOW (rmail-output).
w FAJL h RETi
wYWESTI TOLXKO TELO SOOB]ENIQ W FAJL,PO UMOL^ANI@ IMQ FAJLA BERETSQ IZ
POLQ`Subject'.
kOMANDY o I C-o KOPIRU@T TEKU]EE SOOB]ENIE W UKAZANNYJ FAJL.|TO MOVET BYTX
Rmail-FAJL ILI FAJL W FORMATE SISTEMNYH PO^TOWYH Q]IKOW;KOMANDY WYWODA WYQSNQ@T
FORMAT\TOGO FAJLA I ZAPISYWA@T KOPIRUEMOE SOOB]ENIE W\TOM FORMATE.
pRI KOPIROWANII SOOB]ENIQ W FAJL W FORMATE Unix,\TI KOMANDY WKL@^A@T WSE POLQ
ZAGOLOWKOW,KOTORYE WIDIMY W DANNYJ MOMENT.eSLI HOTITE,ISPOLXZUJTE SNA^ALA KOMANDU
t,^TOBY UKAZATX,KAKIE ZAGOLOWKI POKAZYWATX (I KOPIROWATX).
kOMANDY o I C-o RAZLI^A@TSQ S DWUH STORON:KAVDAQ PREDLAGAET SWOE IMQ FAJLA PO
UMOL^ANI@ I KAVDAQ ZADAET SWOJ WYBOR FORMATA,KOGDA FAJL E]E NE SU]ESTWUET.kO-
MANDA o ISPOLXZUET PRI SOZDANII NOWOGO FAJLA FORMAT Rmail,TOGDA KAK C-o ISPOLXZUET
DLQ NOWOGO FAJLA SISTEMNYJ FORMAT.pO UMOL^ANI@ o ISPOLXZUET IMQ FAJLA,ZADANNOE
POSLEDNEJ o,A C-o |POSLEDNEJ C-o.
eSLI K WYHODNOMU Rmail-FAJLU W DANNYJ MOMENT OBRA]AETSQ KAKOJ-NIBUDX BUFER,KO-
MANDY WYWODA KOPIRU@T SOOB]ENIE W\TOT BUFER.nUVNO LI DEJSTWITELXNO SOHRANQTX
BUFER W EGO FAJL RE[AETE WY.
iNOGDA WY MOVETE POLU^ITX SOOB]ENIE,^XE TELO NESET SODERVIMOE FAJLA.wY MO-
VETE SOHRANITX EGO TELO W FAJL (ISKL@^AQ ZAGOLOWKI SOOB]ENIQ) S POMO]X@ KOMANDY w
(rmail-output-body-to-file).~ASTO\TI SOOB]ENIQ SODERVAT IMQ CELEWOGO FAJLA W POLE
`Subject',PO\TOMU KOMANDA w ISPOLXZUET\TO POLE KAK IMQ WYHODNOGO FAJLA PO UMOL^ANI@.
oDNAKO,IMQ FAJLA S^ITYWAETSQ IZ MINIBUFERA,PO\TOMU PRI VELANII WY MOVETE UKAZATX
DRUGOE IMQ.
wY TAKVE MOVETE WYWESTI SOOB]ENIE W Rmail-FAJL,WYBRANNYJ IZ MEN@.sNA^ALA
WYBERITE PUNKT MEN@ Classify,IZ MEN@ Classify WYBERITE PUNKT Output Rmail File;ZATEM
WYBERITE NUVNYJ WAM PUNKT MEN@.|TO WYWEDET TEKU]EE SOOB]ENIE W UKAZANNYJ FAJL,
KAK KOMANDA o.pEREMENNYE rmail-secondary-file-directory I rmail-secondary-file-
regexp UKAZYWA@T,KAKIE FAJLY PREDLAGAET\TO MEN@:PERWAQ PEREMENNAQ GOWORIT W KAKOM
KATALOGE IH ISKATX;WTORAQ GOWORIT,KAKIE FAJLY W\TOM KATALOGE PREDLAGATX (WSE,^XI
IMENA SOOTWETSTWU@T REGULQRNOMU WYRAVENI@).
kOPIROWANIE SOOB]ENIQ PRIDAET EGO ISHODNOJ KOPII ATRIBUT`filed',TAK ^TO KOGDA
TAKOE SOOB]ENIE STANOWITSQ TEKU]IM,W STROKE REVIMA POQWLQETSQ SLOWO`filed'.eSLI WY
HOTITE HRANITX TOLXKO ODNU KOPI@ KAVDOGO PO^TOWOGO SOOB]ENIQ,USTANOWITE PEREMENNU@
rmail-delete-after-output RAWNOJ t;TOGDA KOMANDY o I C-o POSLE KOPIROWANIQ UDALQ@T
ORIGINAL.(wPOSLEDSTWII WY MOVETE OTMENITX UDALENIE ORIGINALXNOGO SOOB]ENIQ,ESLI
ZAHOTITE.)
pRI KOPIROWANII W FAJLY W SISTEMNOM FORMATE PO^TOWYH Q]IKOW ISPOLXZU@TSQ POLQ
ZAGOLOWKA,KOTORYE POKAZANY W\TO WREMQ W Rmail.tAKIM OBRAZOM,ESLI WY ISPOLXZUETE
KOMANDU t DLQ PROSMOTRA WSEGO ZAGOLOWKA I ZATEM SKOPIRUETE SOOB]ENIE,SKOPIRUETSQ WESX
ZAGOLOWOK.sM.rAZDEL 27.13 [oTOBRAVENIE SOOB]ENIJ],S.286.
pEREMENNAQ rmail-output-file-alist POZWOLQET WAM UKAZATX INTELLEKTUALXNYE ZNA^E-
NIQ PO UMOL^ANI@ DLQ WYHODNOGO FAJLA,OSNOWANNYE NA SODERVIMOM TEKU]EGO SOOB]ENIQ.
eE ZNA^ENIEM DOLVEN BYTX SPISOK,^XI\LEMENTY IME@T TAKU@ FORMU:
(regexp.IMQ)
eSLI W TEKU]EM SOOB]ENII ESTX SOWPADENIE S regexp,TO PO UMOL^ANI@ IMENEM WYHODNOGO
FAJLA BUDET IMQ.eSLI SOWPADENIQ NAJDENY DLQ NESKOLXKIH\LEMENTOW,TO IMQ FAJLA PO
UMOL^ANI@ OPREDELQETSQ PERWYM SOWPAW[IM\LEMENTOM.pODWYRAVENIE IMQ MOVET BYTX
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 281KONSTANTNOJ STROKOJ,DA@]EJ IMQ FAJLA,ILI,W BOLEE OB]EM SLU^AE,L@BYM LISPOWSKIM
WYRAVENIEM,WOZWRA]A@]IM IMQ FAJLA W WIDE STROKI.rmail-output-file-alist OTNO-
SITSQ KAK K o,TAK I K C-o.
27.8 mETKI
u KAVDOGO SOOB]ENIQ MOGUT BYTX RAZLI^NYE METKI,PRIPISYWAEMYE EMU W KA^ESTWE
SREDSTWA KLASSIFIKACII.mETKA IMEET IMQ;RAZNYE IMENA OZNA^A@T RAZNYE METKI.l@BAQ
DANNAQ METKA LIBO PRISUTSTWUET,LIBO OTSUTSTWUET W KONKRETNOM SOOB]ENII.rQD IMEN
METOK IME@T STANDARTNYE ZNA^ENIQ I PRISWAIWA@TSQ SOOB]ENIQM W Rmail AWTOMATI^ESKI
W NUVNYJ MOMENT;TAKIE SPECIALXNYE METKI NAZYWA@TSQ ATRIBUTAMI.
wSE DRUGIE METKI PRIPISYWA@TSQ POLXZOWATELEM.
a METKA
hRETi
pRIPISATX METKU TEKU]EMU SOOB]ENI@ (rmail-add-label).
k METKA
h RETi
uDALITX METKU IZ TEKU]EGO SOOB]ENIQ (rmail-kill-label).
C-M-n METKI
hRETi
pEREDWINUTXSQ NA SLEDU@]EE SOOB]ENIE,KOTOROE IMEET ODNU IZ METOK (rmail-
next-labeled-message).
C-M-p METKI
h RETi
pEREDWINUTXSQ NA PREDYDU]EE SOOB]ENIE,KOTOROE IMEET ODNU IZ METOK (rmail-
previous-labeled-message).
C-M-l METKI
h RETi
CDELATX REZ@ME WSEH SOOB]ENIJ,SODERVA]IH KAKU@-LIBO IZ METOK (rmail-
summary-by-labels).
kOMANDY a (rmail-add-label) I k (rmail-kill-label) POZWOLQ@T WAM PRIPISYWATX ILI
UDALQTX L@BU@ METKU IZ TEKU]EGO SOOB]ENIQ.eSLI ARGUMENT METKA PUSTOJ,TO\TO OZNA-
^AET PRIPISYWANIE ILI UDALENIE TOJ SAMOJ METKI,KOTORAQ BYLA PRIPISANA ILI UDALENA
SAMOJ POSLEDNEJ.
kAK TOLXKO WY PRISWOILI SOOB]ENIQM METKI,^TOBY KLASSIFICIROWATX IH TAK,KAK WAM
HO^ETSQ,POQWLQ@TSQ DWA SPOSOBA ISPOLXZOWANIQ\TIH METOK:W PEREME]ENII I W REZ@ME.
kOMANDA C-M-n METKI
hRETi (rmail-next-labeled-message) PEREDWIGAET K SLEDU@]EMU
SOOB]ENI@,KOTOROE IMEET ODNU IZ METOK.aRGUMENT METKI |\TO ODNO ILI NESKOLXKO IMEN
METOK,RAZDELENNYH ZAPQTYMI.C-M-p (rmail-previous-labeled-message) | ANALOGI^NAQ
KOMANDA,NO PEREDWIGAET NAZAD K PREDYDU]IM SOOB]ENIQM.~ISLOWOJ ARGUMENT W\TIH
KOMANDAH RABOTAET KAK S^ET^IK POWTOROW.
kOMANDA C-M-l METKI
h RETi (rmail-summary-by-labels) POKAZYWAET REZ@ME,SODERVA-
]EE TOLXKO SOOB]ENIQ,IME@]IE PO KRAJNEJ MERE ODNU IZ OPISANNOGO NABORA METOK.aRGU-
MENT METKI |\TO ODNO ILI BOLEE IMEN METOK,RAZDELENNYH ZAPQTYMI.sM.rAZDEL 27.11
[rEZ@ME SOOB]ENIJ],S.284,DLQ POLU^ENIQ INFORMACII O REZ@ME.
eSLI ARGUMENT METKI DLQ C-M-n,C-M-p ILI C-M-l PUSTOJ,TO\TO PREDPOLAGAET ISPOLX-
ZOWANIE POSLEDNEGO NABORA METOK,UKAZANNOGO DLQ KAKOJ-LIBO IZ\TIH KOMAND.
27.9 aTRIBUTY W Rmail
nEKOTORYE METKI,TAKIE,KAK`deleted'I`filed',IME@T WSTROENNYE ZNA^ENIQ I PRI-
PISYWA@TSQ SOOB]ENIQM ILI UDALQ@TSQ IZ NIH AWTOMATI^ESKI W SOOTWETSTWU@]EE WREMQ;
\TI METKI NAZYWA@TSQ ATRIBUTAMI.nIVE PRIWODITSQ SPISOK ATRIBUTOW Rmail.
282 rUKOWODSTWO PO GNU Emacs`unseen'oZNA^AET,^TO SOOB]ENIE NIKOGDA NE BYLO TEKU]IM.pRIPISYWAETSQ SOOB]E-
NIQM,KOGDA ONI POSTUPA@T IZ FAJLA WHODNOGO PO^TOWOGO Q]IKA,I UDALQETSQ,
KOGDA SOOB]ENIE STANOWITSQ TEKU]IM.kOGDA WY ZAPUSKAETE Rmail,ON IZNA-
^ALXNO POKAZYWAET PERWOE SOOB]ENIE S\TIM ATRIBUTOM.
`deleted'oZNA^AET,^TO SOOB]ENIE UDALQETSQ.pRIPISYWAETSQ KOMANDAMI UDALENIQ I
UNI^TOVAETSQ KOMANDAMI OTMENY UDALENIQ (SM.rAZDEL 27.4 [uDALENIE SOOB]E-
NIJ],S.277 ).
`filed'oZNA^AET,^TO SOOB]ENIE BYLO SKOPIROWANO W KAKOJ-NIBUDX DRUGOJ FAJL.pRI-
PISYWAETSQ KOMANDAMI WYWODA FAJLA (SM.rAZDEL 27.6 [Rmail-FAJLY],S.278).
`answered'
oZNA^AET,^TO WY POSLALI OTWET NA\TO SOOB]ENIE.pRIPISYWAETSQ KOMANDOJ r
(rmail-reply).sM.rAZDEL 27.10 [pOSYLKA OTWETOW],S.282.
`forwarded'
oZNA^AET,^TO WY PERENAPRAWLQLI SOOB]ENIE DRUGIM.pRIPISYWAETSQ KOMANDOJ
f (rmail-forward).sM.rAZDEL 27.10 [pOSYLKA OTWETOW],S.282.
`edited'oZNA^AET,^TO WY REDAKTIROWALI TEKST SOOB]ENIQ WNUTRI Rmail.sM.rAZ-
DEL 27.14 [rEDAKTIROWANIE SOOB]ENIJ],S.287.
`resent'oZNA^AET,^TO WY PERESYLALI\TO SOOB]ENIE.pRIPISYWAETSQ KOMANDOJ M-x
rmail-resend.sM.rAZDEL 27.10 [pOSYLKA OTWETOW],S.282.
wSE DRUGIE METKI PRIPISYWA@TSQ ILI UDALQ@TSQ TOLXKO POLXZOWATELEM I NE IME@T
STANDARTNOGO SMYSLA.
27.10 pOSYLKA OTWETOW
Rmail IMEET RQD KOMAND,KOTORYE ISPOLXZU@T REVIM Mail DLQ POSYLKI ISHODQ]EJ KOR-
RESPONDENCII.sM.gLAWA 26 [pOSYLKA PO^TY],S.267,DLQ SPRAWOK PO ISPOLXZOWANI@
REVIMA Mail,WKL@^AQ NEKOTORYE SREDSTWA,PREDNAZNA^ENNYE DLQ RABOTY S Rmail.a W
\TOM RAZDELE OPISYWA@TSQ SPECIALXNYE KOMANDY Rmail DLQ WHODA W REVIM Mail.sLEDU-
ET OTMETITX,^TO OBY^NYE KOMANDY DLQ POSYLKI PO^TY,C-x m I C-x 4 m,PRIMENIMY W
REVIME Rmail I RABOTA@T TO^NO TAK VE,KAK OBY^NO.
m pOSLATX SOOB]ENIE (rmail-mail).
c pRODOLVITX REDAKTIROWANIE UVE NA^ATOGO WYHODNOGO SOOB]ENIQ
(rmail-continue).
r pOSLATX OTWET NA TEKU]EE SOOB]ENIE Rmail (rmail-reply).
f pERENAPRAWITX TEKU]EE SOOB]ENIE DRUGIM POLXZOWATELQM (rmail-forward).
C-u f pERESLATX SOOB]ENIE DRUGIM POLXZOWATELQM (rmail-resend).
M-m pOPROBOWATX POSLATX OTSKO^IW[EE PISXMO E]E RAZ (rmail-retry-failure).
sAMAQ RASPROSTRANENNAQ PRI^INA POSYLKI SOOB]ENIQ WO WREMQ PREBYWANIQ W Rmail |
\TO NEOBHODIMOSTX OTWETA NA SOOB]ENIE,KOTOROE WY ^ITAETE.~TOBY SDELATX\TO,NABERITE
r (rmail-reply).|TO WYZOWET POQWLENIE BUFERA`*mail*'W DRUGOM OKNE,^TO O^ENX POHOVE
NA C-x 4 m,NO PRI\TOM ZARANEE INICIALIZIRU@TSQ POLQ ZAGOLOWKA`Subject',`To',`CC'
I`In-reply-To',OSNOWYWAQSX NA SOOB]ENII,NA KOTOROE FORMIRUETSQ OTWET.pOL@`To'
PRISWAIWAETSQ IMQ OTPRAWITELQ\TOGO SOOB]ENIQ,A W POLE`CC'POME]A@TSQ IMENA WSEH
OSTALXNYH EGO POLU^ATELEJ.
wY MOVETE PREDOTWRATITX POQWLENIE NEKOTORYH ADRESOW W POLE`CC',ISPOLXZUQ PERE-
MENNU@ rmail-dont-reply-to-names.eE ZNA^ENIEM DOLVNO BYTX REGULQRNOE WYRAVENIE
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 283(W WIDE STROKI):WSE POLU^ATELI,^XI ADRESA SOWPADA@T S\TIM REGULQRNYM WYRAVENIEM,
BUDUT ISKL@^ENY IZ POLQ`CC'.pO UMOL^ANI@ ONA SOOTWETSTWUET WA[EMU SOBSTWENNOMU
IMENI I L@BOMU IMENI,NA^INA@]EMUSQ S`info-'.(|TI IMENA ISKL@^A@TSQ,POTOMU ^TO
ESTX SOGLA[ENIE OB ISPOLXZOWANII IH DLQ BOLX[IH SPISKOW RASSYLKI DLQ [IROKOJ PUBLI-
KACII ANONSOW.)
~TOBY POLNOSTX@ OPUSTITX POLE`CC'W KAKOM-TO OTWETE,WWEDITE KOMANDU OTWETA S ^I-
SLOWYM ARGUMENTOM:C-u r ILI 1 r.
pOSLE TOGO,KAK BUFER`*mail*'PROINICIALIZIROWAN,REDAKTIROWANIE I OTPRAWKA PO^TY
IDET KAK OBY^NO (SM.gLAWA 26 [pOSYLKA PO^TY],S.267).eSLI S WA[EJ TO^KI ZRENIQ
RANEE PODGOTOWLENNYE POLQ ZAGOLOWKA NEPRAWILXNY,TO IH MOVNO OTREDAKTIROWATX.wY
TAKVE MOVETE ISPOLXZOWATX KOMANDY REVIMA Mail (SM.rAZDEL 26.4 [rEVIM Mail],S.270),
WKL@^AQ C-c C-y,KOTORAQ WSTAWLQET SOOB]ENIE,NA KOTOROE WY OTWE^AETE.wY MOVETE
WERNUTXSQ W BUFER Rmail,WYBRATX TAM DRUGOE SOOB]ENIE,PEREKL@^ITXSQ NAZAD I WSTAWITX
NOWOE TEKU]EE SOOB]ENIE.
iNOGDA SOOB]ENIQ NE DOHODQT PO NAZNA^ENI@.pO^TOWYE PROGRAMMY OBY^NO WOZWRA-
]A@T WAM\TO PISXMO,ZAKL@^IW EGO W SOOB]ENIE OB OTKAZE.kOMANDA Rmail M-m (rmail-
retry-failure) PODGOTAWLIWAET\TOGO VE SOOB]ENIE K POWTORNOJ POSYLKE:ONA SOZDAET
BUFER`*mail*'S TEM VE TELOM I POLQMI ZAGOLOWKA,KAKIE BYLI RANX[E.eSLI WY SRAZU
NAVMETE C-c C-c,WY PO[LETE SOOB]ENIE TO^NO TAKIM VE,KAKIM ONO BYLO W PERWYJ RAZ.
iNA^E,WY MOVETE OTREDAKTIROWATX EGO TEKST ILI ZAGOLOWKI I ZATEM OTPRAWITX.pEREMEN-
NAQ rmail-retry-ignored-headers,W TOM VE FORMATE,^TO I rmail-ignored-headers (SM.rAZDEL 27.13 [oTOBRAVENIE SOOB]ENIJ],S.286),KONTROLIRUET,KAKIE ZAGOLOWKI BUDUT UDA-
LENY IZ SOOB]ENIQ OB OTKAZE PRI POPYTKE POWTORNOJ OTPRAWKI;PO UMOL^ANI@ ONA RAWNA
nil.
e]E ODNA DOSTATO^NO ^ASTAQ PRI^INA OTPRAWKI PO^TY W Rmail ZAKL@^AETSQ W NEOBHO-
DIMOSTI PERENAPRAWITX TEKU]EE SOOB]ENIE DRUGIM POLXZOWATELQM.kOMANDA f (rmail-
forward) OBLEG^AET\TO,ZARANEE INICIALIZIRUQ BUFER`*mail*'TEKSTOM TEKU]EGO SOOB]E-
NIQ I UKAZYWAQ W POLE`Subject',^TO\TO PERENAPRAWLENNOE PISXMO.oT WAS TREBUETSQ
TOLXKO ZAPISATX POLU^ATELEJ I OTPRAWITX.kOGDA WY PERENAPRAWLQETE SOOB]ENIE,ADRESA-
TY POLU^A@T EGO\OT WAS",A EGO SODERVIMYM QWLQETSQ ORIGINALXNOE SOOB]ENIE.
pERENAPRAWLENNOE SOOB]ENIE ZAKL@^AETSQ MEVDU DWUMQ RAZDELITELXNYMI STROKAMI.
kROME\TOGO,WSE STROKI W NEM,NA^INA@]IESQ S DEFISOW,IZMENQ@TSQ DOBAWLENIEM`-'W
NA^ALO.kOGDA WY POLU^AETE PERENAPRAWLENNOE SOOB]ENIE,ESLI ONO SODERVIT ^TO-TO KRO-
ME OBY^NOGO TEKSTA | ISHODNYJ KOD PROGRAMMY,NAPRIMER | WY MOVETE S^ESTX UDOBNYM
PRODELATX OBRATNOE PREOBRAZOWANIE.wY MOVETE SDELATX\TO,WYBRAW PERENAPRAWLENNOE SO-
OB]ENIE I NAPE^ATAW M-x unforward-rmail-message.|TA KOMANDA IZWLEKAET ORIGINALXNOE
SOOB]ENIE,UDALQQ WSTAWLENNYE STROKI`-',I WSTAWLQET EGO W Rmail-FAJL KAK OTDELXNOE
SOOB]ENIE SRAZU POSLE TEKU]EGO.
pERESYLKA |\TO WARIANT,POHOVIJ NA PERENAPRAWLENIE;RAZNICA W TOM,^TO PRI PERE-
SYLKE PISXMO OTPRAWLQETSQ\OT NA^ALXNOGO POSYLATELQ",TAKIM VE,KAKIM ONO PRI[LO K
WAM,NO S DOBAWLENIEM POLEJ ZAGOLOWKA`Resent-from'I`Resent-to',^TOBY OBOZNA^ITX,^TO
ONO ISHODIT OT WAS.~TOBY PERESLATX SOOB]ENIE W Rmail,ISPOLXZUJTE C-u f.(f ZAPUSKAET
rmail-forward,KOTORAQ ZAPROGRAMMIROWANA TAK,^TOBY WYZYWATX rmail-resend,ESLI WY
ZADALI ^ISLOWOJ ARGUMENT.)
kOMANDA m (rmail-mail) ISPOLXZUETSQ DLQ NA^ALA REDAKTIROWANIQ ISHODQ]EGO SOOB]E-
NIQ,KOTOROE NE QWLQETSQ OTWETOM.oNA OSTAWLQET POLQ ZAGOLOWKA PUSTYMI.eDINSTWENNOE
OTLI^IE EE OT C-x 4 m SOSTOIT W TOM,^TO ONA OBESPE^IWAET DOSTUPNOSTX BUFERA Rmail DLQ
C-c C-y,TAK VE,KAK\TO DELAET r.tAKIM OBRAZOM,m MOVET BYTX ISPOLXZOWANA DLQ OT-
PRAWKI OTWETA NA SOOB]ENIE ILI DLQ PERENAPRAWLENIQ;ONA MOVET DELATX WSE,^TO DELA@T
KOMANDY r I f.
284 rUKOWODSTWO PO GNU EmacskOMANDA c (rmail-continue) WOZOBNOWLQET REDAKTIROWANIE BUFERA`*mail*',^TOBY WY
MOGLI ZAWER[ITX SOOB]ENIE,KOTOROE UVE SOSTAWLQLI,A TAKVE DLQ IZMENENIQ SOOB]ENIQ,
KOTOROE WY OTPRAWILI.
eSLI WY USTANOWITE PEREMENNU@ rmail-mail-new-frame W ZNA^ENIE,NE RAWNOE nil,TO
WSE KOMANDY Rmail DLQ NA^ALA OTPRAWKI SOOB]ENIQ BUDUT SOZDAWATX DLQ EGO REDAKTIROWA-
NIQ NOWYJ FREJM.|TOT FREJM UDALQETSQ,KOGDA WY OTSYLAETE SOOB]ENIE,ILI KOGDA WY
ISPOLXZUETE PUNKT`Don't Send'W MEN@`Mail'.
wSE KOMANDY Rmail DLQ OTPRAWKI SOOB]ENIQ ISPOLXZU@T TOT METOD SOSTAWLENIQ,KOTO-
RYJ WY WYBRALI (SM.rAZDEL 26.6 [pO^TOWYE METODY],S.274).
27.11 rEZ@ME
rEZ@ME |\TO BUFER,KOTORYJ SODERVIT PO ODNOJ STROKE NA SOOB]ENIE I DAET WAM WOZ-
MOVNOSTX OBZORA PO^TY W Rmail-FAJLE.w KAVDOJ TAKOJ STROKE POKAZAN NOMER SOOB]ENIQ,
EGO OTPRAWITELX,METKI I TEMA.pO^TI WSE KOMANDY Rmail MOVNO ISPOLXZOWATX TAKVE I W
BUFERE REZ@ME;ONI OTNOSQTSQ K SOOB]ENI@,OPISANNOMU NA TEKU]EJ STROKE.pEREME]ENIE
TO^KI W BUFERE REZ@ME WYBIRAET DRUGIE SOOB]ENIQ,KOGDA WY PEREHODITE K IH STROKAM.
kAVDYJ BUFER REZ@ME OTNOSITSQ TOLXKO K ODNOMU Rmail-FAJLU;ESLI REDAKTIRUETSQ
MNOVESTWO Rmail-FAJLOW,TO ONI IME@T OTDELXNYE BUFERY REZ@ME.iMQ BUFERA REZ@ME
SOZDAETSQ DOBAWLENIEM`-summary'W KONEC IMENI BUFERA Rmail.kAK PRAWILO,W ODIN I TOT
VE MOMENT POKAZYWAETSQ TOLXKO ODIN BUFER REZ@ME.
27.11.1 sOZDANIE REZ@ME
nIVE PRIWODQTSQ KOMANDY DLQ SOZDANIQ REZ@ME DLQ TEKU]EGO Rmail-FAJLA.eSLI
Rmail-FAJL IMEET BUFER REZ@ME,IZMENENIQ W\TOM FAJLE (TAKIE KAK UDALENIE ILI WY-
^ERKIWANIE SOOB]ENIJ I POLU^ENIE NOWOJ PO^TY) AWTOMATI^ESKI OBNOWLQ@T REZ@ME.
h
C-M-h sOZDAET REZ@ME WSEH SOOB]ENIJ (rmail-summary).
l METKI h RETi
C-M-l METKI hRETi
sOZDAET REZ@ME SOOB]ENIJ,KOTORYE IME@T ODNU ILI NESKOLXKO UKAZANNYH ME-
TOK (rmail-summary-by-labels).
C-M-r POLU^ATELI
hRETi
sOZDAET REZ@ME SOOB]ENIJ,OTPRAWLENNYH ODNOMU ILI NESKOLXKIM IZ UKAZAN-
NYH POLU^ATELEJ (rmail-summary-by-recipients).
C-M-t TEMA
h RETi
sOZDAET REZ@ME SOOB]ENIJ,KOTORYE IME@T SOWPADENIE S REGULQRNYM WYRAVE-
NIEM TEMA W POLQH ZAGOLOWKA`Subject'(rmail-summary-by-topic).
kOMANDA h ILI C-M-h (rmail-summary) ZAPOLNQET BUFER REZ@ME DLQ TEKU]EGO Rmail-
FAJLA PERE^NEM WSEH SOOB]ENIJ IZ\TOGO FAJLA.pOTOM ONA POKAZYWAET I WYBIRAET\TOT
BUFER REZ@ME W DRUGOM OKNE.
C-M-l METKI
hRETi (rmail-summary-by-labels) DELAET ^ASTI^NOE REZ@ME,UPOMINA@]EE
TOLXKO SOOB]ENIQ,KOTORYE IME@T ODNU ILI NESKOLXKO METOK.mETKI DOLVNY SODERVATX
IMENA METOK,RAZDELENNYE ZAPQTYMI.
C-M-r POLU^ATELI
hRETi (rmail-summary-by-recipients) DELAET ^ASTI^NOE REZ@ME,UPO-
MINA@]EE TOLXKO SOOB]ENIQ,KOTORYE IME@T ODNOGO ILI NESKOLXKIH POLU^ATELEJ.aRGU-
MENT POLU^ATELI DOLVEN SODERVATX PO^TOWYE ADRESA,RAZDELENNYE ZAPQTYMI.
C-M-t TEMA
h RETi (rmail-summary-by-topic) SOZDAET ^ASTI^NOE REZ@ME,UPOMINA@]EE
TOLXKO SOOB]ENIQ,^XI POLQ`Subject'IME@T SOWPADENIQ S REGULQRNYM WYRAVENIEM TEMA.
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 285sLEDUET OTMETITX,^TO DLQ L@BOGO Rmail-FAJLA SU]ESTWUET TOLXKO ODIN BUFER REZ@ME;
SOZDANIE REZ@ME ODNOGO WIDA OTMENQET L@BOE RANEE SDELANNOE REZ@ME.
pEREMENNAQ rmail-summary-window-size GOWORIT,SKOLXKO STROK DOLVNO ISPOLXZOWATX
OKNO REZ@ME.pEREMENNAQ rmail-summary-line-count-flag UKAZYWAET,DOLVNY LI STROKI
REZ@ME SODERVATX ^ISLO,POKAZYWA@]EE KOLI^ESTWO STROK W SOOB]ENII.
27.11.2 rEDAKTIROWANIE REZ@ME
wY MOVETE DELATX W BUFERE REZ@ME Rmail PRAKTI^ESKI WSE,^TO WY MOVETE DELATX W
SAMOM BUFERE Rmail.nA SAMOM DELE,ESLI U WAS ESTX BUFER REZ@ME,NET NEOBHODIMOSTI
PEREKL@^ATXSQ NAZAD W BUFER Rmail.
wY MOVETE WYBIRATX I PROSMATRIWATX RAZLI^NYE SOOB]ENIQ W BUFERE Rmail IZ BUFERA
REZ@ME PROSTO PEREME]AQ W NEM TO^KU K RAZNYM STROKAM.nE IGRAET ROLI,KAKU@ IMENNO
KOMANDU Emacs WY ISPOLXZUETE DLQ PEREME]ENIQ TO^KI;NA KAKOJ STROKE OKAVETSQ TO^KA
POSLE KOMANDY,TO SOOB]ENIE I BUDET WYBRANO W BUFERE Rmail.
pO^TI WSE KOMANDY Rmail RABOTA@T I W BUFERE REZ@ME,TAKVE KAK I W BUFERE Rmail.a
IMENNO,d W BUFERE REZ@ME UDALQET TEKU]EE SOOB]ENIE,u OTMENQET UDALENIE,A x WY^ERKI-
WAET.o I C-o WYWODQT TEKU]EE SOOB]ENIE W FAJL;r POZWOLQET NAPISATX OTWET.wY MOVETE
PROKRU^IWATX TEKU]EE SOOB]ENIE,OSTAWAQSX W BUFERE REZ@ME,S POMO]X@ hSPCi I hDELi.
kOMANDY Rmail DLQ PEREDWIVENIQ PO SOOB]ENIQM RABOTA@T TAKVE I W BUFERE REZ@ME,
NO S OSOBENNOSTX@:ONI PEREME]A@T PO TEM SOOB]ENIQM,KOTORYE PERE^ISLENY W REZ@ME.
oNI TAKVE UBEVDA@TSQ,^TO BUFER Rmail POQWLQETSQ NA\KRANE (W OTLI^IE OT KOMAND
DWIVENIQ KURSORA,KOTORYE OBNOWLQ@T SODERVIMOE BUFERA Rmail,NO NE POKAZYWA@T EGO W
OKNE,ESLI ON UVE NE WIDEN).wOT PERE^ENX\TIH KOMAND:
n pEREJTI K SLEDU@]EJ STROKE,PROPUSKAQ UDALENNYE,I WYBRATX EE SOOB]ENIE.
p pEREJTI K PREDYDU]EJ STROKE,PROPUSKAQ UDALENNYE,I WYBRATX EE SOOB]ENIE.
M-n pEREJTI K SLEDU@]EJ STROKE I WYBRATX EE SOOB]ENIE.
M-p pEREJTI K PREDYDU]EJ STROKE I WYBRATX EE SOOB]ENIE.
> pEREJTI K POSLEDNEJ STROKE I WYBRATX EE SOOB]ENIE.
< pEREJTI K PERWOJ STROKE I WYBRATX EE SOOB]ENIE.
M-s OBRAZEC
h RETi
pROIZWODIT POISK OBRAZCA W SOOB]ENIQH NA^INAQ S TEKU]EGO;WYBIRAET NAJDEN-
NOE SOOB]ENIE I PEREME]AET TO^KU W BUFERE REZ@ME K EGO STROKE.
uDALENIE,OTMENA UDALENIQ,POLU^ENIE NOWOJ PO^TY I DAVE WYBOR DRUGOGO SOOB]ENIQ
| WSE OBNOWLQ@T BUFER REZ@ME,KOGDA WY DELAETE\TI OPERACII W BUFERE Rmail.eSLI PE-
REMENNAQ rmail-redisplay-summary NE RAWNA nil,\TI DEJSTWIQ TAKVE WOZWRA]A@T BUFER
REZ@ME NA\KRAN.
kOGDA WY ZAWER[ILI ISPOLXZOWANIE REZ@ME,NABERITE Q (rmail-summary-wipe),^TOBY
UDALITX OKNO BUFERA REZ@ME.wY TAKVE MOVETE WYJTI IZ Rmail,NAHODQSX W BUFERE REZ@ME:
q (rmail-summary-quit) UDALQET OKNO REZ@ME,A ZATEM WYHODIT IZ Rmail,ZAPISYWAQ Rmail-
FAJL I PEREKL@^AQ W DRUGOJ BUFER.
27.12 sORTIROWKA Rmail-FAJLA
M-x rmail-sort-by-date
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO DATE.
M-x rmail-sort-by-subject
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO TEME.
286 rUKOWODSTWO PO GNU EmacsM-x rmail-sort-by-author
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO IMENI AWTORA.
M-x rmail-sort-by-recipient
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO IMENAM POLU^ATELEJ.
M-x rmail-sort-by-correspondent
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO IMENI DRUGOGO KORRESPONDENTA.
M-x rmail-sort-by-lines
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO RAZMERU (^ISLU STROK).
M-x rmail-sort-by-keywords hRETi METKI hRETi
sORTIRUET SOOB]ENIQ TEKU]EGO Rmail-FAJLA PO METKAM.aRGUMENT METKI DOL-
VEN BYTX SPISKOM METOK,RAZDELENNYH ZAPQTYMI.pORQDOK\TIH METOK OPREDE-
LQET PORQDOK SOOB]ENIJ;SOOB]ENIQ S PERWOJ METKOJ IDUT PERWYMI,SOOB]ENIQ
SO WTOROJ METKOJ IDUT WTORYMI,I TAK DALEE.sOOB]ENIQ,NE IME@]IE NI ODNU
IZ\TIH METOK,IDUT POSLEDNIMI.
kOMANDY Rmail DLQ SORTIROWKI PROIZWODQT USTOJ^IWU@ SORTIROWKU:ESLI NET PRI^INY
PREDPO^ITATX ODNO IZ DWUH SOOB]ENIJ,IH PORQDOK NE IZMENQETSQ.wY MOVETE ISPOLXZOWATX
\TO DLQ SORTIROWKI PO NESKOLXKIM KRITERIQM.nAPRIMER,ESLI WY PRIMENILI rmail-sort-
by-date I ZATEM rmail-sort-by-author,SOOB]ENIQ OT ODNOGO AWTORA POQWQTSQ W PORQDKE
WOZRASTANIQ DATY.
s ^ISLOWYM ARGUMENTOM,WSE\TI KOMANDY IZMENQ@T PORQDOK SRAWNENIQ NA PROTIWOPO-
LOVNYJ.|TO OZNA^AET,^TO ONI SORTIRU@T SOOB]ENIQ OT NOWYH K STARYM,OT BOLX[IH W
MENX[IM ILI W OBRATNOM ALFAWITNOM PORQDKE.
27.13 oTOBRAVENIE SOOB]ENIJ
Rmail PEREFORMATIRUET ZAGOLOWOK KAVDOGO SOOB]ENIQ PERED EGO POKAZOM.pRI\TOM UDA-
LQ@TSQ NEINTERESNYE POLQ ZAGOLOWKOW,^TOBY UMENX[ITX BESPORQDOK.~TOBY POSMOTRETX
ZAGOLOWOK CELIKOM ILI POWTORITX OPERACI@ PEREFORMATIROWANIQ,WY MOVETE ISPOLXZOWATX
KOMANDU t (rmail-toggle-headers).
t wKL@^AET ILI WYKL@^AET POKAZ POLNOGO ZAGOLOWKA (rmail-toggle-header).
pRI PEREFORMATIROWANII UDALQ@TSQ BOLX[INSTWO POLEJ ZAGOLOWKA,POSKOLXKU ONI NE
PREDSTAWLQ@T INTERESA.pEREMENNAQ rmail-ignored-headers SODERVIT REGULQRNOE WYRA-
VENIE,UKAZYWA@]EE KAKIE POLQ NADO SKRYWATX TAKIM SPOSOBOM |ESLI ONO SOOTWETSTWUET
NA^ALU POLQ,TO\TO POLE SKRYWAETSQ.
Rmail SOHRANQET POLNYE ISHODNYE ZAGOLOWKI PERED PEREFORMATIROWANIEM;^TOBY PO-
SMOTRETX IH,ISPOLXZUJTE KOMANDU t (rmail-toggle-headers).oNA SBRASYWAET PEREFOR-
MATIROWANNYE ZAGOLOWKI TEKU]EGO SOOB]ENIQ I POKAZYWAET EGO S ISHODNYMI ZAGOLOWKAMI.
pOWTOR KOMANDY t SNOWA PEREFORMATIRUET SOOB]ENIE.pOWTORNYJ WYBOR SOOB]ENIQ TOVE
PRIWODIT K PEREFORMATIROWANI@.
oDNO IZ POSLEDSTWIJ\TOGO SOSTOIT W TOM,^TO ESLI WY REDAKTIROWALI PEREFORMATIRO-
WANNYJ ZAGOLOWOK (S POMO]X@ e;SM.rAZDEL 27.14 [rEDAKTIROWANIE SOOB]ENIJ],S.287),
POSLEDU@]EE ISPOLXZOWANIE t SBROSIT WA[I IZMENENIQ.s DRUGOJ STORONY,ESLI WY IS-
POLXZOWALI e POSLE t,^TOBY REDAKTIROWATX PERWONA^ALXNYJ (NE PEREFORMATIROWANNYJ)
ZAGOLOWOK,\TI IZMENENIQ OSTANUTSQ.
kOGDA KOMANDE t DAN PREFIKSNYJ ARGUMENT,POLOVITELXNYJ ARGUMENT OBOZNA^AET POKAZ
PEREFORMATIROWANNOGO ZAGOLOWKA,A NULEWOJ ILI OTRICATELXNYJ |POLNOGO.
pRI ISPOLXZOWANII W OKONNOJ SISTEME,KOTORAQ PODDERVIWAET NESKOLXKO [RIFTOW,Rmail
PODSWE^IWAET NEKOTORYE POLQ ZAGOLOWKA,KOTORYE OSOBENNO INTERESNY |PO UMOL^ANI@\TO
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 287POLQ`From'I`Subject'.pEREMENNAQ rmail-highlighted-headers HRANIT REGULQRNOE WY-
RAVENIE,ZADA@]EE POLQ ZAGOLOWKA,KOTORYE NUVNO PODSWE^IWATX;ESLI ONO SOOTWETSTWUET
NA^ALU POLQ,WSE\TO POLE PODSWE^IWAETSQ.
eSLI WY ZADADITE NEOBY^NYE CWETA DLQ TEKSTA I FONA,TO CWETA,ISPOLXZUEMYE DLQ
PODSWETKI,MOGUT S NIMI PLOHO SMOTRETXSQ.w TAKOM SLU^AE ZADAJTE DRUGIE CWETA DLQ
NA^ERTANIQ highlight.|TO STOIT SDELATX,POTOMU ^TO NA^ERTANIE highlight ISPOLXZUETSQ
I DRUGIH WIDAH WYDELENIQ.sM.rAZDEL 17.13 [nA^ERTANIQ],S.155,^TOBY UZNATX,KAK\TO
SDELATX.
~TOBY POLNOSTX@ WYKL@^ITX PODSWETKU W Rmail,USTANOWITE rmail-highlighted-
headers RAWNOJ nil.
27.14 rEDAKTIROWANIE WNUTRI SOOB]ENIQ
bOLX[INSTWO OBY^NYH KOMAND Emacs DOSTUPNY W REVIME Rmail,HOTQ NEKOTORYE,TAKIE
KAK C-M-n I C-M-h,PEREOPREDELQ@TSQ W Rmail DLQ DRUGIH CELEJ.oDNAKO OBY^NO BUFER
Rmail PREDNAZNA^EN TOLXKO DLQ ^TENIQ,I BOLX[INSTWO BUKW PEREOPREDELENY KAK KOMAN-
DY Rmail.eSLI WY HOTITE OTREDAKTIROWATX TEKST SOOB]ENIQ,WY DOLVNY ISPOLXZOWATX
KOMANDU Rmail e.
e rEDAKTIROWATX TEKU]EE SOOB]ENIE KAK OBY^NYJ TEKST.
kOMANDA e (rmail-edit-current-message) PEREKL@^AET IZ REVIMA Rmail W REVIM
Rmail Edit,DRUGOJ OSNOWNOJ REVIM,PRAKTI^ESKI\KWIWALENTNYJ REVIMU Text.|TO IZ-
MENENIE OTOBRAVAETSQ W STROKE REVIMA.
w REVIME Rmail Edit BUKWY WSTAWLQ@T SEBQ KAK OBY^NO,A KOMANDY Rmail NEDOSTUPNY.
kOGDA WY ZAKON^ITE REDAKTIROWANIE SOOB]ENIQ I BUDETE GOTOWY WERNUTXSQ W Rmail,NABE-
RITE KOMANDU C-c C-c,KOTORAQ PEREKL@^IT WAS NAZAD W REVIM Rmail.s DRUGOJ STORONY,
MOVNO WERNUTXSQ W REVIM Rmail,NO OTMENITX WSE SDELANNYE IZMENENIQ,NABRAW C-c C-].
wHOD W REVIM Rmail Edit WYZYWAET LOWU[KU text-mode-hook,A ZATEM LOWU[KU rmail-
edit-mode-hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).pRI\TOM W SOOB]ENI@ PRISWAIWA-
ETSQ ATRIBUT`edited'.oNA TAKVE POKAZYWAET POLNYJ ZAGOLOWOK SOOB]ENIQ,TAK ^TO WY
MOVETE REDAKTIROWATX KAK TELO,TAK I ZAGOLOWKI SOOB]ENIQ,I WA[I IZMENENIQ W ZAGOLOW-
KAH OSTANUTSQ NAWSEGDA.
27.15 sOOB]ENIQ-DAJDVESTY
sOOB]ENIE-DAJDVEST |\TO SOOB]ENIE,KOTOROE SOZDANO DLQ PEREDA^I NESKOLXKIH DRU-
GIH SOOB]ENIJ.dAJDVESTY ISPOLXZU@TSQ W NEKOTORYH SPISKAH RASSYLKI S WEDU]IM;WSE
SOOB]ENIQ,KOTORYE PRI[LI DLQ RASSYLKI W TE^ENIE KAKOGO-TO PERIODA WREMENI,NAPRI-
MER ODNOGO DNQ,POME]A@TSQ W EDINYJ DAJDVEST,KOTORYJ ZATEM RASSYLAETSQ PODPIS^IKAM.
pERESYLKA ODNOGO TAKOGO DAJDVESTA ZANIMAET GORAZDO MENX[E MA[INNOGO WREMENI,^EM PE-
RESYLKA OTDELXNYH SOOB]ENIJ,HOTX I PRI ODINAKOWOM OB]EM OB_EME,POSKOLXKU ZATRATY
RESURSOW NA ODNO SOOB]ENIE PRI PEREDA^E PO^TY PO SETI DOWOLXNO ZNA^ITELXNY.
pRI POLU^ENII SOOB]ENIQ-DAJDVESTA NAIBOLEE UDOBNYM SPOSOBOM DLQ EGO PRO^TENIQ
QWLQETSQ RAZBRO[@ROWKA:OBRATNOE RAZDELENIE EGO NA NESKOLXKO OTDELXNYH SOOB]ENIJ.
pOSLE\TOGO MOVNO ^ITATX I UDALQTX OTDELXNYE SOOB]ENIQ KAK WAM UGODNO.
~TOBY SDELATX\TO,NEOBHODIMO WYBRATX SOOB]ENIE-DAJDVEST I ZATEM NABRATX KOMANDU
M-x undigestify-rmail-message.oNA IZWLEKAET KAVDOE PODSOOB]ENIE KAK OTDELXNOE SOOB-
]ENIE Rmail I WSTAWLQET IH WSLED ZA DAJDVESTOM.sAMO SOOB]ENIE-DAJDVEST POME^AETSQ
KAK UDALENNOE.
288 rUKOWODSTWO PO GNU Emacs27.16 pREOBRAZOWANIE Rmail-FAJLA W SISTEMNYJ FORMAT
kOMANDA M-x unrmail PREOBRAZUET FAJL W FORMATE Rmail W FORMAT WHODNYH PO^TOWYH
Q]IKOW (TAKVE IZWESTNYJ KAK SISTEMNYJ PO^TOWYJ FORMAT),^TOBY WY MOGLI ISPOLXZO-
WATX EGO S DRUGIMI PROGRAMMAMI DLQ REDAKTIROWANIQ PO^TY.wY DOLVNY UKAZATX DWA
ARGUMENTA,IMQ Rmail-FAJLA I IMQ DLQ PREOBRAZOWANNOGO FAJLA.M-x unrmail NE IZMENQET
SAM Rmail-FAJL.
27.17 ~TENIE SOOB]ENIJ W Rot13
sOOB]ENIQ IZ SPISKOW RASSYLKI,KOTORYE MOGUT OSKORBITX NEKOTORYH ^ITATELEJ,INO-
GDA KODIRU@TSQ PROSTYM METODOM,NAZYWAEMYM rot13 | POTOMU ^TO ON SDWIGAET ALFAWIT
NA 13 BUKW.|TOT KOD SLUVIT NE DLQ SEKRETNOSTI,ON NE PREDOSTAWLQET EE;SKOREE,ON POZ-
WOLQET TEM,KTO MOVET BYTX OSKORBLEN,IZBEVATX WOZMOVNOSTI DAVE UWIDETX NASTOQ]IJ
TEKST SOOB]ENIQ.
~TOBY PROSMOTRETX BUFER,ISPOLXZU@]IJ KOD rot13,ZAPUSTITE KOMANDU M-x
rot13-other-window.oNA POKAZYWAET TEKU]IJ BUFER W DRUGOM OKNE,PRIMENQQ KOD PRI
OTOBRAVENII TEKSTA.
27.18 movemail I POP
pRI POLU^ENII NOWOJ PO^TY Rmail SNA^ALA KOPIRUET EE IZ WHODNOGO FAJLA W Rmail-
FAJL;ZATEM ON ZAPISYWAET Rmail-FAJL;ZATEM USEKAET WHODNOJ FAJL.tAKIM OBRAZOM,
SBOJ W SISTEME MOVET WYZWATX DUBLIROWANIE PO^TY WO WHODNOM FAJLE I W Rmail-FAJLE,
NO NE MOVET WYZWATX POTERI.eSLI rmail-preserve-inbox NE RAWNA nil,TO Rmail BUDET
KOPIROWATX NOWU@ PO^TU IZ WHODNOGO FAJLA W Rmail-FAJL,NE USEKAQ WHODNOJ FAJL.wY
MOVETE SDELATX TAKU@ USTANOWKU,NAPRIMER,NA PORTATIWNOM KOMPX@TERE,KOTORYJ WY
ISPOLXZUETE DLQ PROWERKI PO^TY ^EREZ POP WO WREMQ PUTE[ESTWIJ,^TOBY WA[A PO^TA
OSTAWALASX NA SERWERE,I WY MOGLI SOHRANITX EE POZDNEE NA SWOEJ RABO^EJ STANCII.
w NEKOTORYH SLU^AQH Rmail KOPIRUET NOWU@ PO^TU IZ WHODNOGO FAJLA NE PRQMYM PUTEM.
sNA^ALA ON ZAPUSKAET PROGRAMMU movemail,^TOBY PEREMESTITX PO^TU IZ WHODNOGO FAJLA W
PROMEVUTO^NYJ FAJL,NAZYWAEMYJ`~/.newmail-WHODNOJ-FAJL'.zATEM Rmail WNOSIT NOWU@
PO^TU IZ\TOGO FAJLA,SOHRANQET Rmail-FAJL I TOLXKO ZATEM UDALQET PROMEVUTO^NYJ FAJL.
eSLI W NEPODHODQ]IJ MOMENT SLU^ITSQ FATALXNYJ SBOJ,\TOT FAJL OSTANETSQ NA MESTE,
I Rmail BUDET ISPOLXZOWATX EGO W SLEDU@]IJ RAZ PRI POLU^ENII NOWOJ PO^TY IZ\TOGO
WHODNOGO FAJLA.
eSLI Rmail PO KAKOJ-TO PRI^INE NE MOVET PREOBRAZOWATX DANNYE IZ FAJLA
`~/.newmail-WHODNOJ-FAJL'W FORMAT Babyl,ON PEREIMENOWYWAET EGO W`~/RMAILOSE.n'
(n |\TO CELOE ^ISLO,WYBRANNOE TAK,^TOBY ONO BYLO UNIKALXNYM),TAK ^TO Rmail NE
BUDET IMETX PROBLEM S\TIMI DANNYMI SNOWA.wAM STOIT PROSMOTRETX\TOT FAJL,NAJTI
SOOB]ENIE,KOTOROE SBIWAET S TOLKU Rmail (WEROQTNO,ONO SODERVIT ZNAK control-POD^ERK,
WOSXMERI^NYJ KOD 037),I UDALITX EGO.tOGDA WY MOVETE ISPOLXZOWATX 1 g,^TOBY
POLU^ITX PO^TU IZ ISPRAWLENNOGO FAJLA.
nEKOTORYE SISTEMY ISPOLXZU@T DLQ DOSTUPA K DANNYM PO^TOWYH Q]IKOW POLXZOWATELEJ
METOD,NAZYWAEMYJ POP,WMESTO ZAPISI\TIH DANNYH W PO^TOWYE FAJLY.movemail MO-
VET RABOTATX S POP,ESLI WY SKOMPILIROWALI EE S OPREDELENNYM MAKROSOM MAIL_USE_POP.
(wY MOVETE POLU^ITX\TO,ZADAW KL@^`-with-pop',KOGDA ZAPUSKAETE configure WO WREMQ
USTANOWKI Emacs.) movemail RABOTAET TOLXKO S POP3,NO NE S BOLEE RANNIMI WERSIQMI
POP.
w PREDPOLOVENII,^TO WY PRAWILXNO SKOMPILIROWALI I USTANOWILI movemail,WY
MOVETE UKAZATX WHODNOJ PO^TOWYJ Q]IK POP,NAPISAW\IMQ FAJLA"W FORME`po:IMQ-
POLXZOWATELQ'W SPISKE WHODNYH PO^TOWYH Q]IKOW Rmail-FAJLA.movemail OBRABATYWAET
gLAWA 27:~TENIE PO^TY S POMO]X@ Rmail 289TAKIE IMENA PUTEM USTANOWKI SOEDINENIQ S POP-SERWEROM.pEREMENNAQ SREDY MAILHOST
ZADAET MA[INU,NA KOTOROJ BUDET PROIZWODITXSQ POISK SERWERA.
dLQ DOSTUPA K PO^TE ^EREZ POP MOVET POTREBOWATXSQ PAROLX.eSLI PEREMENNAQ rmail-
pop-password OTLI^NA OT nil,TO ONA ZADAET PAROLX DLQ ISPOLXZOWANIQ S POP.iNA^E,ESLI
rmail-pop-password-required NE RAWNA nil,TO Rmail SPRA[IWAET PAROLX U WAS.
eSLI WAM NUVNO PEREDATX movemail DOPOLNITELXNYE FLAGI KOMANDNOJ STROKI,USTANO-
WITE PEREMENNU@ rmail-movemail-flags RAWNOJ SPISKU VELAEMYH FLAGOW.nE ISPOLXZUJTE
\TU PEREMENNU@ DLQ PEREDA^I FLAGA`-p',KOTORYJ PREDOTWRA]AET ZATIRANIE SODERVIMOGO
WHODNOGO FAJLA;POLXZUJTESX WMESTO\TOGO PEREMENNOJ rmail-preserve-inbox.
uSTANOWLENNAQ W WA[EJ SISTEME PROGRAMMA movemail MOVET PODDERVIWATX AUTENFI-
KACI@ Kerberos.eSLI ONA PODDERVIWAETSQ,TO\TO BUDET ISPOLXZOWATXSQ PO UMOL^ANI@
WSEGDA,KOGDA WY BUDETE PYTATXSQ POLU^ITX PO^TU ^EREZ POP PRI NEUSTANOWLENNYH rmail-
pop-password I rmail-pop-password-required.
nEKOTORYE POP-SERWERY HRANQT SOOB]ENIQ W OBRATNOM PORQDKE.eSLI WA[ SERWER DELA-
ET TAK,A WAM HOTELOSX BY ^ITATX PO^TU W TOM PORQDKE,W KAKOM ONA POSTUPALA,WY MOVE-
TE WELETX movemail PEREWERNUTX O^EREDNOSTX ZAGRUVAEMYH SOOB]ENIJ,DOBAWIW K rmail-
movemail-flags FLAG`-r'.
290 rUKOWODSTWO PO GNU Emacs
gLAWA 28:Dired,REDAKTOR KATALOGOW 29128 Dired,REDAKTOR KATALOGOW
Dired SOZDAET BUFER Emacs,SODERVA]IJ RASPE^ATKU KATALOGA I,WOZMOVNO,NEKOTORYH
EGO PODKATALOGOW.wY MOVETE ISPOLXZOWATX OBY^NYE KOMANDY Emacs,^TOBY PEREDWIGATXSQ
PO\TOMU BUFERU,I SPECIALXNYE KOMANDY Dired,^TOBY PROIZWODITX RAZLI^NYE DEJSTWIQ
NAD FAJLAMI.
28.1 wHOD W Dired
~TOBY ZAPUSTITX Dired,WYPOLNITE C-x d ILI M-x dired.|TA KOMANDA S^ITYWAET IMQ
KATALOGA ILI [ABLON IMENI FAJLA KAK ARGUMENT MINIBUFERA,^TOBY OPREDELITX,KAKIE
FAJLY NUVNO PERE^ISLITX.kOMANDA dired OTLI^AETSQ OT list-directory TEM,^TO ONA
PEREWODIT BUFER W REVIM Dired,TAK ^TO W NEM STANOWQTSQ DOSTUPNYMI SPECIALXNYE KO-
MANDY Dired.
pEREMENNAQ dired-listing-switches ZADAET KL@^I DLQ PEREDA^I ls PRI SOZDANII RAS-
PE^ATKI KATALOGA;\TA STROKA DOLVNA SODERVATX`-l'.eSLI WY ISPOLXZUETE S KOMANDOJ
dired ^ISLOWOJ ARGUMENT,WY MOVETE UKAZATX W MINIBUFERE KL@^I DLQ ls DO TOGO,KAK
WWEDETE IMQ KATALOGA.
~TOBY POKAZATX BUFER Dired W DRUGOM OKNE,A NE W WYBRANNOM,WMESTO C-x d ISPOLXZUETSQ
C-x 4 d (dired-other-window).C-x 5 d (dired-other-frame) ISPOLXZUET DLQ POKAZA BUFERA
Dired OTDELXNYJ FREJM.
28.2 kOMANDY,DEJSTWU@]IE W BUFERE Dired
bUFER Dired POME^EN KAK\PREDNAZNA^ENNYJ TOLXKO DLQ ^TENIQ",I WSTAWLQTX W NEGO
TEKST BESPOLEZNO,TAK ^TO OBY^NYE PE^ATNYE ZNAKI,TAKIE KAK d I x,ISPOLXZU@TSQ DLQ
KOMAND Dired.oDNI KOMANDY Dired USTANAWLIWA@T FLAG NA TEKU]EM FAJLE (\TO FAJL NA
TEKU]EJ STROKE) ILI POME^A@T EGO;DRUGIE KOMANDY WYPOLNQ@T DEJSTWIQ NAD POME^ENNY-
MI FAJLAMI ILI FAJLAMI S USTANOWLENNYM FLAGOM.
wSE OBY^NYE KOMANDY DWIVENIQ KURSORA W Emacs DOSTUPNY I W BUFERAH Dired.tAKVE
PREDUSMOTRENY NEKOTORYE SPECIALXNYE KOMANDY.kL@^I C-n I s-p PEREOPREDELENY TAK,
^TO ONI USTANAWLIWA@T KURSOR W NA^ALO IMENI FAJLA NA STROKE,A NE W NA^ALO SAMOJ
STROKI.
dLQ BOLX[EGO UDOBSTWA,
hSPCi I n W Dired\KWIWALENTNY C-n.p\KWIWALENTEN C-p.(dWI-
VENIE PO STROKAM DELAETSQ W Dired NASTOLXKO ^ASTO,^TO ONO ZASLUVIWAET TOGO,^TOBY
NABOR EGO BYL OBLEG^EN.) h DELi (PEREDWINUTXSQ WWERH I UBRATX FLAG) ^ASTO BYWAET POLEZ-
NYM PROSTO DLQ DWIVENIQ WWERH.
28.3 uDALENIE FAJLOW S POMO]X@ Dired
pREVDE WSEGO Dired ISPOLXZUETSQ,^TOBY USTANOWITX FLAG DLQ UDALENIQ NA NEKOTORYH
FAJLAH,A POTOM UDALITX FAJLY,RANEE POME^ENNYE FLAGOM.
d uSTANOWITX FLAG UDALENIQ DLQ\TOGO FAJLA.
u uBRATX FLAG UDALENIQ NA\TOJ STROKE.
h DELi pEREDWINUTX TO^KU NA STROKU WY[E I UBRATX NA\TOJ STROKE FLAG UDALENIQ.
x uDALITX FAJLY,POME^ENNYE FLAGOM UDALENIQ.
wY MOVETE USTANOWITX NA FAJLE FLAG,PEREMESTIW[ISX NA STROKU,OPISYWA@]U@ FAJL,
I NABRAW NA NEJ d (dired-flag-file-deletion).fLAG UDALENIQ WYGLQDIT KAK`D'W NA^ALE
STROKI.|TA KOMANDA PEREDWIGAET TO^KU W NA^ALO SLEDU@]EJ STROKI,TAKIM OBRAZOM,
292 rUKOWODSTWO PO GNU EmacsPOWTORENIE KOMANDY d POME^AET DLQ UDALENIQ POSLEDU@]IE FAJLY.~ISLOWOJ ARGUMENT
SLUVIT W KA^ESTWE S^ET^IKA POWTOROW.
fAJLY POME^A@TSQ DLQ UDALENIQ,A NE UDALQ@TSQ NEMEDLENNO,^TOBY UMENX[ITX OPAS-
NOSTX SLU^AJNOGO UDALENIQ FAJLA.dO TEH POR,POKA WY PRQMO NE UKAVETE Dired UDALITX
POME^ENNYJ FAJL,WY MOVETE UBRATX FLAGI,ISPOLXZUQ KOMANDY u ILI hDELi.u (dired-
unmark RABOTAET TO^NO TAK VE,KAK d,NO UDALQET FLAGI,A NE SOZDAET IH.hDELi (dired-
unmark-backward) DWIGAETSQ WWERH,UBIRAQ FLAGI;\TO PODOBNO u S ARGUMENTOM пЂЂ1.
~TOBY UDALITX FAJLY S USTANOWLENNYM FLAGOM,NABERITE x (dired-expunge).|TA
KOMANDA POKAVET SNA^ALA SPISOK WSEH IMEN FAJLOW,POME^ENNYH DLQ UDALENIQ,I POTREBUET
PODTWERVDENIQ WWODOM yes.eSLI WY PODTWERVDAETE,TO WSE POME^ENNYE FLAGOM FAJLY
UNI^TOVA@TSQ I IH STROKI UDALQ@TSQ IZ TEKSTA BUFERA Dired.sOKRA]ENNYJ BUFER Dired
OSTAETSQ WYBRANNYM.
eSLI PRI ZAPROSE PODTWERVDENIQ WY OTWETITE no ILI WYJDITE S POMO]X@ C-g,WY
NEMEDLENNO WERNETESX W Dired;WSE FLAGI UDALENIQ OSTANUTSQ W BUFERE,I FAJLY NE BUDUT
UDALENY.
28.4 uSTANOWKA FLAGA NA NESKOLXKO FAJLOW ODNOWREMENNO
#pOME^AET FLAGOM UDALENIQ WSE FAJLY,KOTORYE POQWILISX PRI SAMOSOHRANENII
(FAJLY,^XI IMENA NA^INA@TSQ I KON^A@TSQ NA`#') (SM.rAZDEL 14.5 [sAMOSO-
HRANENIE],S.114 ).
~ pOME^AET FLAGOM UDALENIQ WSE REZERWNYE FAJLY (FAJLY,^XI IMENA KON^A@TSQ
NA`~') (SM.rAZDEL 14.3.1 [rEZERWNYE FAJLY],S.110).
& pOME^AET FLAGOM UDALENIQ WSE FAJLY S OPREDELENNYMI TIPAMI IMEN,PREDPO-
LAGA@]IMI,^TO WY LEGKO SMOVETE IH SNOWA SOZDATX.
.(tO^KA) pOME^AET FLAGOM UDALENIQ IZLI[NIE REZERWNYE FAJLY.sOHRANQ@TSQ TOLX-
KO NESKOLXKO SAMYH STARYH I SAMYH NOWYH REZERWNYH KOPIJ;PROMEVUTO^NYE
POME^A@TSQ FLAGOM.
% d REGULQRNOE-WYRAVENIE h RETi
pOME^AET FLAGOM UDALENIQ WSE FAJLY,^XI IMENA SOOTWETSTWU@T ZADANNOMU
REGULQRNOMU-WYRAVENI@.
kOMANDY#,~,& I.USTANAWLIWA@T FLAG DLQ NESKOLXKIH FAJLOW,OSNOWYWAQSX NA IH
IMENAH.|TI KOMANDY POLEZNY IMENNO POTOMU,^TO SAMI PO SEBE ONI NE UDALQ@T FAJLY;
WY MOVETE UBRATX FLAGI UDALENIQ S L@BYH POME^ENNYH FAJLOW,KOTORYE WY W DEJSTWI-
TELXNOSTI HOTITE SOHRANITX.
& (dired-flag-garbage-files) USTANAWLIWAET FLAG UDALENIQ DLQ FAJLOW,^XI IMENA
SOOTWETSTWU@T REGULQRNOMU WYRAVENI@,ZADANNOMU PEREMENNOJ dired-garbage-files-
regexp.pO UMOL^ANI@ EJ SOOTWETSTWU@T OPREDELENNYE FAJLY,PROIZWODIMYE T
E
X,I
FAJLY`.orig'I`.rej',PROIZWODIMYE PROGRAMMOJ patch.
#(dired-flag-auto-save-files) USTANAWLIWAET FLAG UDALENIQ DLQ WSEH FAJLOW,^XI
IMENA WYGLQDQT KAK IMENA SAMOSOHRANENNYH FAJLOW (SM.rAZDEL 14.5 [sAMOSOHRANENIE],
S.114 ) |\TO FAJLY S IMENAMI,NA^INA@]IMISQ I ZAKAN^IWA@]IMISQ NA`#'.~ (dired-
flag-backup-files) USTANAWLIWAET FLAG UDALENIQ DLQ WSEH FAJLOW,^XI IMENA GOWORQT,
^TO\TO REZERWNYE KOPII (SM.rAZDEL 14.3.1 [rEZERWNYE FAJLY],S.110) |\TO FAJLY S
IMENAMI,ZAKAN^IWA@]IMISQ NA`~'.
.(TO^KA,dired-clean-directory) USTANAWLIWAET FLAG UDALENIQ LI[X DLQ NEKOTORYH
REZERWNYH KOPIJ:DLQ WSEH,KROME SAMYH STARYH I SAMYH NOWYH REZERWNYH KOPIJ ODNOGO
FAJLA.oBY^NO dired-kept-versions (NE kept-new-versions;\TA PEREMENNAQ PRIMENQETSQ
PRI SOHRANENII) ZADAET ^ISLO SAMYH NOWYH SOHRANQEMYH WERSIJ KAVDOGO FAJLA,A kept-
old-versions ZADAET ^ISLO SAMYH STARYH SOHRANQEMYH WERSIJ.
gLAWA 28:Dired,REDAKTOR KATALOGOW 293tO^KA S POLOVITELXNYM ^ISLOWYM ARGUMENTOM,KAK W C-u 3.,UKAZYWAET ^ISLO OSTAWLQ-
EMYH NOWYH WERSIJ,PEREKRYWAQ ZNA^ENIE dired-kept-versions.oTRICATELXNYJ ^ISLOWOJ
ARGUMENT PEREKRYWAET kept-old-versions,ISPOLXZUQ ^ISLO,PROTIWOPOLOVNOE ZADANNOMU,
DLQ UKAZANIQ ^ISLA OSTAWLQEMYH STARYH WERSIJ KAVDOGO FAJLA.
kOMANDA % d USTANAWLIWAET FLAG UDALENIQ DLQ WSEH FAJLOW,^XI IMENA SOOTWETSTWU@T
ZADANNOMU REGULQRNOMU WYRAVENI@ (dired-flag-files-regexp).pRI POISKE ISPOLXZUETSQ
IMQ FAJLA S ISKL@^ENNOJ ^ASTX@,OPREDELQ@]EJ KATALOG.dLQ PRIWQZKI REGULQRNOGO
WYRAVENIQ K NA^ALU ILI KONCU IMENI WY MOVETE ISPOLXZOWATX`^'I`$'.pODKATALOGI WY
MOVETE ISKL@^ITX,SKRYW IH (SM.rAZDEL 28.13 [sKRYWANIE PODKATALOGOW],S.299).
28.5 oBRA]ENIE K FAJLAM W Dired
eSTX NESKOLXKO KOMAND Dired DLQ OBRA]ENIQ K FAJLAM,PERE^ISLENNYM W BUFERE Dired,
ILI PROSMOTRA IH SODERVIMOGO.wSE ONI PRIMENQ@TSQ K FAJLU NA TEKU]EJ STROKE;ESLI
\TOT FAJL NA SAMOM DELE QWLQETSQ KATALOGOM,\TI KOMANDY WYZYWA@T W NEM Dired (SOZDAWAQ
OTDELXNYJ BUFER Dired).
f oBRA]AETSQ K FAJLU,OPISANNOMU NA TEKU]EJ STROKE;PODOBNA WWODU C-x C-f I
ZADANI@ IMENI\TOGO FAJLA (dired-find-file).sM.rAZDEL 14.2 [oBRA]ENIE],
S.106.
h RETi |KWIWALENT f.
o kAK f,NO ISPOLXZUET DLQ OTOBRAVENIQ BUFERA\TOGO FAJLA OTDELXNOE OKNO
(dired-find-file-other-window).bUFER Dired OSTAETSQ WIDIMYM W PERWOM
OKNE.|TO PODOBNO ISPOLXZOWANI@ C-x 4 C-f DLQ OBRA]ENIQ K\TOMU FAJLU.
sM.gLAWA 16 [oKNA],S.141.
C-o oBRA]AETSQ K FAJLU,OPISANNOMU NA TEKU]EJ STROKE,I OTOBRAVAET EGO BUFER
W OTDELXNOM OKNE,NO NE WYBIRAET\TO OKNO (dired-display-file).
Mouse-2 oBRA]AETSQ K FAJLU W STROKE,NA KOTOROJ WY ]ELKNULI (dired-mouse-find-
file-other-window).|TA KOMANDA ISPOLXZUET DLQ POKAZA FAJLA DRUGOE OKNO,
KAK KOMANDA o.
v oBRA]AETSQ K FAJLU,OPISANNOMU NA TEKU]EJ STROKE,W REVIME PROSMOTRA,KAK
M-x view-file (dired-view-file).
pROSMOTR FAJLA POHOV NA OBRA]ENIE K NEMU,NO\TOT REVIM DELAET AKCENT NA
PREDOSTAWLENIE BOLX[EGO UDOBSTWA DLQ PEREME]ENIQ PO FAJLU I NE POZWOLQET
IZMENQTX EGO.sM.rAZDEL 14.10 [pROSMOTR FAJLA],S.132.
28.6 pOMETKI Dired vs.FLAGI
wMESTO USTANOWKI DLQ FAJLA FLAGA S POMO]X@`D'WY MOVETE USTANOWITX NA\TOM FAJLE
METKU S POMO]X@ KAKOGO-LIBO DRUGOGO ZNAKA (OBY^NO`*').bOLX[INSTWO KOMAND Dired DLQ
RABOTY S FAJLAMI,KROME\WY^ERKIWANIQ"(x),DEJSTWU@T NA FAJLY,POME^ENNYE ZWEZDO^KOJ
`*'.
wOT NEKOTORYE KOMANDY DLQ POMETKI S POMO]X@`*',DLQ SNQTIQ METKI ILI DLQ PROIZ-
WEDENIQ KAKIH-LIBO DEJSTWIJ NAD METKAMI.(sM.rAZDEL 28.3 [uDALENIE W Dired],S.291,
DLQ POLU^ENIQ INFORMACII O KOMANDAH DLQ USTANOWKI I SNQTIQ FLAGOW NA FAJLAH.)
m
* m pOME^AET TEKU]IJ FAJL ZWEZDO^KOJ`*'(dired-mark).s ^ISLOWYM ARGUMENTOM
n,POME^AET SLEDU@]IE n FAJLOW NA^INAQ OT TEKU]EGO.(eSLI n OTRICATELEN,
POME^AET пЂЂn PREDYDU]IH FAJLOW.)
294 rUKOWODSTWO PO GNU Emacs* * pOME^AET WSE ISPOLNQEMYE FAJLY ZWEZDO^KOJ`*'(dired-mark-executables).s
^ISLOWYM ARGUMENTOM,UBIRAET METKI SO WSEH TAKIH FAJLOW.
* @ pOME^AET WSE SIMWOLXNYE SSYLKI ZWEZDO^KOJ (dired-mark-symlinks).s ^ISLO-
WYM ARGUMENTOM,UBIRAET METKI SO WSEH TAKIH FAJLOW.
*/pOME^AET ZWEZDO^KOJ WSE FAJLY,KOTORYE QWLQ@TSQ W DEJSTWITELXNOSTI KATALO-
GAMI,ISKL@^AQ`.'I`..'(dired-mark-directories).s ^ISLOWYM ARGUMENTOM,
UBIRAET METKI SO WSEH\TIH FAJLOW.
* s pOME^AET WSE FAJLY W TEKU]EM PODKATALOGE,KROME`.'I`..'(dired-mark-
subdir-files).
u
* u uBIRAET L@BU@ METKU NA\TOJ STROKE (dired-unmark).
hDELi
* h DELi pEREME]AET TO^KU NA PREDYDU]U@ STROKU I UBIRAET L@BU@ METKU NA\TOJ
STROKE (dired-unmark-backward).
*!uBIRAET WSE METKI SO WSEH FAJLOW W\TOM BUFERE Dired (dired-unmark-all-
files-no-query).
*?ZNAK-METKI
uBIRAET WSE METKI,ISPOLXZU@]IE ZNAK ZNAK-METKI (dired-unmark-all-files).
aRGUMENTOM DOLVEN BYTX ODIN ZNAK | NE ISPOLXZUETE DLQ EGO ZAWER[ENIQ
hRETi.
s ^ISLOWYM ARGUMENTOM,\TA KOMANDA ZAPRA[IWAET PODTWERVDENIE NA SNQTIE
METKI DLQ KAVDOGO POME^ENNOGO FAJLA.wY MOVETE OTWETITX y DLQ PODTWER-
VDENIQ,n DLQ OTKAZA ILI!DLQ SNQTIQ METOK SO WSEH OSTALXNYH FAJLOW BEZ
ZAPROSA O NIH.
* C-n pEREME]AET WNIZ K SLEDU@]EMU POME^ENNOMU FAJLU (dired-next-marked-
file).fAJL S^ITAETSQ\POME^ENNYM",ESLI NA NEM ESTX METKI L@BOGO WIDA.
* C-p pEREME]AET WWERH K PREDYDU]EMU POME^ENNOMU FAJLU (dired-prev-marked-
file)
* t pEREKL@^AET WSE METKI (dired-do-toggle):FAJLY,POME^ENNYE`*'STANOWQTSQ
NEPOME^ENNYMI,A NEPOME^ENNYE FAJLY METQTSQ ZNAKOM`*'.fAJLY,POME^EN-
NYE DRUGIM SPOSOBOM,NE ZATRAGIWA@TSQ.
* c STARYJ NOWYJ
zAMENQET WSE METKI,ISPOLXZU@]IE ZNAK STARYJ NA METKI SO ZNAKOM NOWYJ
(dired-change-marks).|TA KOMANDA DAET OSNOWNOJ METOD SOZDANIQ ILI ISPOLX-
ZOWANIQ METOK,OTLI^NYH OT`*'ILI`D'.aRGUMENTAMI DOLVNY BYTX ODINO^NYE
ZNAKI |NE ISPOLXZUJTE hRETi DLQ IH ZAWER[ENIQ.
s POMO]X@\TOJ KOMANDY WY MOVETE ISPOLXZOWATX PO^TI L@BOJ ZNAK W KA^ESTWE
ZNAKA METKI DLQ RAZDELENIQ RAZLI^NYH KLASSOW FAJLOW.eSLI STARYJ ZNAK
|\TO PROBEL (`'),TO\TA KOMANDA DEJSTWUET NA WSE NEPOME^ENNYE FAJLY;
ESLI NOWYJ ZNAK QWLQETSQ PROBELOM,\TA KOMANDA UBIRAET METKU S FAJLOW,NA
KOTORYE ONA DEJSTWUET.
~TOBY PRODEMONSTRIROWATX MO]X\TOJ KOMANDY,MY POKAVEM SPOSOB USTANO-
WITX METKU`D'NA WSE FAJLY,KOTORYE NE BYLI POME^ENY,W TO VE WREMQ SNIMAQ
METKU SO WSEH FAJLOW,IMEW[IH METKU`D':
* c D t * c SPC D * c t SPC
zDESX PREDPOLAGAETSQ,^TO NI ODIN IZ FAJLOW NE POME^EN FLAGOM`t'.
gLAWA 28:Dired,REDAKTOR KATALOGOW 295% m regexp hRETi
* % regexp h RETi
pOME^AET (ZNAKOM`*') WSE FAJLY,^XI IMENA SOOTWETSTWU@T REGULQRNOMU WYRA-
VENI@ regexp (dired-mark-files-regexp).|TA KOMANDA POHOVA NA % d,NO ONA
POME^AET FAJLY ZWEZDO^KOJ`*',A NE USTANAWLIWAET FLAG`D'.sM.rAZDEL 28.4
[uSTANOWKA FLAGA NA NESKOLXKO FAJLOW],S.292.
dLQ POISKA SOWPADENIJ ISPOLXZUETSQ TOLXKO TA ^ASTX IMENI FAJLA,KOTORAQ
NE ZADAET KATALOG.dLQ PRIWQZKI REGULQRNOGO WYRAVENIQ K NA^ALU ILI KONCU
IMENI WY MOVETE ISPOLXZOWATX`^'I`$'.pODKATALOGI WY MOVETE ISKL@^ITX,
SKRYW IH (SM.rAZDEL 28.13 [sKRYWANIE PODKATALOGOW],S.299).
% g regexp
h RETi
pOME^AET (ZNAKOM`*') WSE FAJLY,^XE SODERVIMOE WKL@^AET SOWPADENIQ S RE-
GULQRNYM WYRAVENIEM regexp (dired-mark-files-containing-regexp).|TA
KOMANDA POHOVA NA % m,NO ONA PROSMATRIWAET SODERVIMOE FAJLOW,A NE IH
IMENA.
C-_ oTMENQET IZMENENIQ W BUFERE Dired,TAKIE KAK DOBAWLENIE ILI SNQTIE METOK
(dired-undo).
28.7 dEJSTWIQ NAD FAJLAMI
|TOT RAZDEL OPISYWAET OSNOWNYE KOMANDY Dired DLQ PROIZWEDENIQ RAZLI^NYH DEJSTWIJ
NAD NESKOLXKIMI FAJLAMI.wSE\TI KOMANDY QWLQ@TSQ ZAGLAWNYMI BUKWAMI;WSE ONI IS-
POLXZU@T MINIBUFER,LIBO DLQ S^ITYWANIQ ARGUMENTOW,LIBO DLQ ZAPRA[IWANIQ PODTWER-
VDENIQ PERED SOWER[ENIEM DEJSTWIJ.wSE ONI DA@T WAM NEKOTORYE SPOSOBY UKAZANIQ,
KAKIE FAJLY DOLVNY BYTX OBRABOTANY:
пЂЏ eSLI WY DAETE KOMANDE ^ISLOWOJ ARGUMENT n,ONA DEJSTWUET NA n SLEDU@]IH FAJLOW,
NA^INAQ S TEKU]EGO.(eSLI n OTRICATELXNO,TO\TA KOMANDA DEJSTWUET NA пЂЂn FAJLOW,
PRED[ESTWU@]IH TEKU]EJ STROKE.)
пЂЏ iNA^E,ESLI KAKIE-TO FAJLY POME^ENY S POMO]X@`*',KOMANDA DEJSTWUET NA WSE\TI
FAJLY.
пЂЏ iNA^E\TA KOMANDA DEJSTWUET TOLXKO NA TEKU]IJ FAJL.
wOT KOMANDY DLQ MANIPULQCIJ NAD FAJLAMI,DEJSTWU@]IE TAKIM SPOSOBOM.(nEKOTO-
RYE DRUGIE KOMANDY Dired,TAKIE KAK!I`%',TAKVE PRIDERVIWA@TSQ\TIH SOGLA[ENIJ DLQ
PRINQTIQ RE[ENIQ O WYBORE FAJLOW DLQ RABOTY.)
C NOWYJ
h RETi
kOPIRUET UKAZANNYE FAJLY (dired-do-copy).aRGUMENT NOWYJ |\TO KATA-
LOG,W KOTORYJ NUVNO KOPIROWATX,ILI (PRI KOPIROWANII EDINSTWENNOGO FAJLA)
NOWOE IMQ.
eSLI dired-copy-preserve-time NE RAWNA nil,TO PRI KOPIROWANII S POMO]X@
\TOJ KOMANDY WREMQ IZMENENIQ NOWOGO FAJLA USTANAWLIWAETSQ TAKIM VE,KAK U
STAROGO FAJLA.
D uDALQET UKAZANNYE FAJLY (dired-do-delete).pODOBNO OSTALXNYM KOMANDAM W
\TOM RAZDELE,\TA KOMANDA DEJSTWUET NA POME^ENNYE FAJLY ILI NA n SLEDU@]IH
FAJLOW.nAPROTIW,x (dired-expunge) UDALQET WSE FAJLY S USTANOWLENNYM
FLAGOM.
R NOWYJ h RETi
pEREIMENOWYWAET UKAZANNYE FAJLY (dired-do-rename).aRGUMENT NOWYJ |
\TO KATALOG,W KOTORYJ NUVNO PEREIMENOWYWATX,ILI (PRI PEREIMENOWANII
EDINSTWENNOGO FAJLA) NOWOE IMQ.
296 rUKOWODSTWO PO GNU EmacsDired AWTOMATI^ESKI IZMENQET IMENA FAJLOW,K KOTORYM WY OBRA]AETESX,DLQ
SWQZANNYH S\TIMI PEREIMENOWANNYM FAJLAMI BUFEROW TAK,^TOBY ONI OTRA-
VALI NOWYE IMENA.
H NOWYJ
h RETi
sOZDAET VESTKIE SSYLKI NA UKAZANNYE FAJLY (dired-do-hardlink).aRGUMENT
NOWYJ |\TO KATALOG,W KOTOROM NUVNO SOZDAWATX SSYLKI,ILI (PRI SOZDANII
SSYLKI NA EDINSTWENNYJ FAJL) IMQ\TOJ SSYLKI.
S NOWYJ h RETi
sOZDAET SIMWOLXNYE SSYLKI NA UKAZANNYE FAJLY (dired-do-symlink).aR-
GUMENT NOWYJ |\TO KATALOG,W KOTOROM NUVNO SOZDAWATX SSYLKI,ILI (PRI
SOZDANII SSYLKI NA EDINSTWENNYJ FAJL) IMQ\TOJ SSYLKI.
M REVIM h RETi
iZMENQET REVIM (TAKVE NAZYWAEMYJ\BITAMI PRAW DOSTUPA") UKAZANNYH FAJLOW
(dired-do-chmod).|TA KOMANDA ISPOLXZUET PROGRAMMU chmod,POTOMU REVIM
MOVET BYTX L@BYM ARGUMENTOM,KOTORYJ chmod SPOSOBEN OBRABOTATX.
G NOWAQ-GRUPPA hRETi
zAMENQET GRUPPU WLADELXCEW UKAZANNYH FAJLOW NA NOWU@-GRUPPU (dired-do-
chgrp).
O NOWYJ-WLADELEC h RETi
zAMENQET WLADELXCA UKAZANNYH FAJLOW NA NOWOGO-WLADELXCA (dired-do-chown).
(nA BOLX[INSTWE SISTEM\TO MOVET DELATX TOLXKO PRIWILEGIROWANNYJ POLXZO-
WATELX.)
pEREMENNAQ dired-chown-program ZADAET IMQ PROGRAMMY,ISPOLXZUEMOJ DLQ
\TIH ZADA^ (RAZLI^NYE SISTEMY POME]A@T chown W RAZNYE MESTA).
P KOMANDA h RETi
pE^ATAET UKAZANNYE FAJLY (dired-do-print).wY DOLVNY UKAZATX KOMANDU
PE^ATI,NO W MINIBUFERE SRAZU POQWLQETSQ PODHODQ]AQ PREDPOLAGAEMAQ STRO-
KA,POLU^ENNAQ S POMO]X@ PEREMENNYH lpr-command I lpr-switches (\TI VE
PEREMENNYE ISPOLXZUET lpr-buffer;SM.rAZDEL 30.4 [rASPE^ATKA],S.331).
Z sVIMAET UKAZANNYE FAJLY (dired-do-compress).eSLI OKAZYWAETSQ,^TO
KAKOJ-TO FAJL UVE SVAT,\TA KOMANDA NAOBOROT RASKRYWAET EGO.
L zAGRUVAET UKAZANNYE FAJLY Emacs Lisp (dired-do-load).sM.rAZDEL 23.7
[bIBLIOTEKI lISPA],S.253.
B bAJT-KOMPILIRUET UKAZANNYE FAJLY NA Emacs Lisp (dired-do-byte-compile).
sM.RAZDEL\Byte Compilation"W The Emacs Lisp Reference Manual.
A regexp
h RETi
pROIZWODIT POISK REGULQRNOGO WYRAVENIQ regexp WO WSEH UKAZANNYH FAJLAH
(dired-do-search).
|TA KOMANDA | WARIANT KOMANDY tags-search.pOISK OSTANAWLIWAETSQ PRI
PERWOM NAJDENNOM SOWPADENII;^TOBY PRODOLVITX POISK I NAJTI SLEDU@]EE
SOWPADENIE,NAVMITE M-,.sM.rAZDEL 22.13.5 [pOISK S POMO]X@ TEGOW],S.229.
Q STAROE
h RETi NOWOE hRETi
pROIZWODIT query-replace-regexp W KAVDOM IZ UKAZANNYH FAJLOW,ZAMENQQ
SOWPADENIQ STAROGO (REGULQRNOGO WYRAVENIQ) NA STROKU NOWOE (dired-do-
query-replace).
|TA KOMANDA |WARIANT tags-query-replace.eSLI WY WYJDITE IZ CIKLA ZAME-
NY S PODTWERVDENIEM,WY MOVETE ISPOLXZOWATX M-,DLQ PRODOLVENIQ POISKA I
ZAMENY DALXNEJ[IH SOWPADENIJ.sM.rAZDEL 22.13.5 [pOISK S POMO]X@ TEGOW],
S.229.
gLAWA 28:Dired,REDAKTOR KATALOGOW 297oDNA OSOBAQ KOMANDA DLQ RABOTY S FAJLAMI |\TO + (dired-create-directory).oNA
S^ITYWAET IMQ KATALOGA I SOZDAET EGO,ESLI KATALOG S TAKIM IMENEM E]E NE SU]ESTWUET.
28.8 kOMANDY OBOLO^KI W Dired
kOMANDA Dired!(dired-do-shell-command) S^ITYWAET W MINIBUFERE KOMANDNU@ STRO-
KU OBOLO^KI I ZAPUSKAET\TU KOMANDU OBOLO^KI DLQ WSEH UKAZANNYH FAJLOW.wY MOVETE
ZADATX OBRABATYWAEMYE FAJLY OBY^NYMI METODAMI,KAK DLQ KOMAND Dired (SM.rAZDEL 28.7
[dEJSTWIQ NAD FAJLAMI],S.295 ).eSTX DWA SPOSOBA PRIMENITX KOMANDU OBOLO^KI K NESKOLX-
KIM FAJLAM:
пЂЏ eSLI WY ISPOLXZUETE W KOMANDE OBOLO^KI`*',TO\TA KOMANDA ZAPUSKAETSQ ODIN RAZ,A
`*'ZAMENQETSQ SPISKOM IMEN FAJLOW.iMENA FAJLOW PEREDA@TSQ W TOM VE PORQDKE,W
KAKOM ONI POQWLQ@TSQ W BUFERE Dired.
tAKIM OBRAZOM,!tar cf foo.tar * hRETi ZAPUSKAET tar DLQ WSEGO SPISKA IMEN FAJLOW,
POME]AQ IH WSE W ODIN tar-FAJL`foo.tar'.
пЂЏ eSLI KOMANDNAQ STROKA NE SODERVIT`*',ONA ZAPUSKAETSQ ODIN RAZ DLQ KAVDOGO FAJLA
S DOBAWLENNYM W KONCE IMENEM\TOGO FAJLA.
nAPRIMER,!uudecode
h RETi ZAPUSKAET DLQ KAVDOGO FAJLA KOMANDU uudecode.
~TO ESLI WY HOTITE WYPOLNITX KOMANDU OBOLO^KI ODIN RAZ DLQ KAVDOGO FAJLA,NO S
IMENEM FAJLA,WSTAWLENNYM W SEREDINE?iLI ESLI WY HOTITE ISPOLXZOWATX IMENA FAJLOW
BOLEE SLOVNYM OBRAZOM?iSPOLXZUJTE CIKLY OBOLO^KI.nAPRIMER,TAKAQ KOMANDA OBOLO^KI
ZAPUSTILA BY uuencode DLQ KAVDOGO ZADANNOGO FAJLA,ZAPISYWAQ WYWOD W SOOTWETSTWU@]IJ
`.uu'-FAJL:
for file in *;do uuencode $file $file >$file.uu;done
rABO^IM KATALOGOM KOMANDY OBOLO^KI SLUVIT KATALOG WERHNEGO UROWNQ BUFERA Dired.
kOMANDA!NE PYTAETSQ OBNOWITX BUFER Dired,^TOBY POKAZATX NOWYE ILI IZMENENNYE
FAJLY,POTOMU ^TO NA SAMOM DELE ONA NE PONIMAET KOMAND OBOLO^KI I NE ZNAET,KAKIE
IMENA IZMENILISX.dLQ OBNOWLENIQ BUFERA Dired ISPOLXZUJTE KOMANDU g (SM.rAZDEL 28.14
[oBNOWLENIE W Dired],S.300 ).
28.9 pREOBRAZOWANIE IMEN FAJLOW W Dired
wOT KOMANDY,KOTORYE IZMENQ@T IMENA FAJLOW SISTEMATI^ESKIM OBRAZOM:
% u iZMENQET IMQ KAVDOGO IZ WYBRANNYH FAJLOW NA IMQ,NAPISANNOE ZAGLAWNYMI
BUKWAMI (dired-upcase).eSLI STARYMI IMENAMI FAJLOW BYLI`Foo'I`bar',TO
NOWYMI BUDUT`FOO'I`BAR'.
% l iZMENQET IMQ KAVDOGO IZ WYBRANNYH FAJLOW NA IMQ,NAPISANNOE STRO^NYMI
BUKWAMI (dired-downcase).eSLI STARYMI IMENAMI FAJLOW BYLI`Foo'I`bar',
TO NOWYMI BUDUT`foo'I`bar'.
% R STAROE h RETi NOWOE hRETi
% C STAROE h RETi NOWOE hRETi
% H STAROE h RETi NOWOE hRETi
% S STAROE h RETi NOWOE hRETi
|TI ^ETYRE KOMANDY PEREIMENOWYWA@T,KOPIRU@T,SOZDA@T VESTKIE I SIM-
WOLXNYE SSYLKI,WY^ISLQQ W KAVDOM SLU^AE NOWOE IMQ PUTEM PODSTANOWKI W
REGULQRNOM WYRAVENII,ZADA@]EM IMQ STAROGO FAJLA.
|TI ^ETYRE KOMANDY PODSTANOWKI W REGULQRNOM WYRAVENII W DEJSTWITELXNOSTI PROIZ-
WODQT POISK I ZAMENU W IMENAH WYBRANNYH FAJLOW W BUFERE Dired.oNI PRINIMA@T DWA
ARGUMENTA:REGULQRNOE WYRAVENIE STAROE I OBRAZEC PODSTANOWKI NOWOE.
298 rUKOWODSTWO PO GNU Emacs|TI KOMANDY SRAWNIWA@T KAVDOE\STAROE"IMQ FAJLA S REGULQRNYM WYRAVENIEM STA-
ROE I ZATEM ZAMENQ@T SOWPAW[U@ ^ASTX NA NOWOE.wY MOVETE ISPOLXZOWATX W STROKE NOWOE
OBOZNA^ENIQ`\&'I`\CIFRA',^TOBY SOSLATXSQ NA WESX ILI NA ^ASTX SOWPAW[EGO OBRAZCA
W STAROM IMENI FAJLA,KAK W replace-regexp (SM.rAZDEL 12.7.2 [zAMENA REGULQRNOGO
WYRAVENIQ],S.96 ).eSLI W IMENI FAJLA ESTX BOLEE ODNOGO SOWPADENIQ S REGULQRNYM WYRA-
VENIEM,ZAMENQETSQ TOLXKO PERWOE.
nAPRIMER,% R ^.*$
hRETi x-\& hRETi PEREIMENOWYWAET KAVDYJ WYBRANNYJ FAJL,DOBAW-
LQQ`x-'W NA^ALO IMENI.oBRATNAQ PROCEDURA,UDALENIE`x-'IZ NA^ALA KAVDOGO IMENI
FAJLA,TAKVE WOZMOVNA:ODIN SPOSOB | NABRATX % R ^x-\(.*\)$ hRETi\1 hRETi;DRUGOJ |
\TO % R ^x- h RETi hRETi.(iSPOLXZUJTE`^'I`$'DLQ PRIWQZKI REGULQRNYH WYRAVENIJ K NA-
^ALU ILI KONCU IMENI.)
oBY^NO PRI ZAMENE NE ZATRAGIWA@TSQ IMENA KATALOGOW,KOTORYM PRINADLEVAT FAJLY;
OBRABATYWA@TSQ TOLXKO FAJLY W\TOM KATALOGE.eSLI WY ZADADITE ^ISLOWOJ ARGUMENT,
RAWNYJ NUL@,PRI ZAMENE BUDUT OBRABATYWATXSQ POLNYE ABSOL@TNYE IMENA FAJLOW,WKL@-
^AQ IMENA KATALOGOW.
~ASTO WY MOVETE ZAHOTETX WYBRATX NABOR OBRABATYWAEMYH FAJLOW S POMO]X@ TOGO
VE REGULQRNOGO WYRAVENIQ regexp,^TO BUDET ISPOLXZOWATXSQ DLQ IH OBRABOTKI.~TOBY
SDELATX TAK,POMETXTE\TI FAJLY KOMANDOJ % m regexp hRETi,A ZATEM PRIMENITE\TO VE
REGULQRNOE WYRAVENIE W KOMANDE OBRABOTKI.dLQ OBLEG^ENIQ\TOGO,KOMANDY OBRABOTKI
FAJLOW,NA^INA@]IESQ NA %,ISPOLXZU@T PO UMOL^ANI@ POSLEDNEE REGULQRNOE WYRAVENIE,
ZADANNOE L@BOJ KOMANDE %.
28.10 sRAWNENIE FAJLOW W Dired
w Dired ESTX DWE KOMANDY,KOTORYE SRAWNIWA@T ZADANNYE FAJLY S POMO]X@ PROGRAMMY
diff.
= sRAWNIWAET TEKU]IJ FAJL (FAJL W POZICII TO^KI) S DRUGIM FAJLOM (FAJLOM
W POZICII METKI),ISPOLXZUQ PROGRAMMU diff (dired-diff).fAJL W POZICII
METKI |\TO PERWYJ ARGUMENT diff,A FAJL W POZICII TO^KI |WTOROJ.
M-= sRAWNIWAET TEKU]IJ FAJL S EGO POSLEDNEJ REZERWNOJ KOPIEJ (dired-backup-
diff).eSLI TEKU]IJ FAJL SAM QWLQETSQ REZERWNOJ KOPIEJ,SRAWNIWAET EGO S
ORIGINALOM;TAKIM OBRAZOM WY MOVETE SRAWNITX FAJL S L@BOJ EGO REZERWNOJ
WERSIEJ PO WA[EMU WYBORU.
pERWYM ARGUMENTOM diff PEREDAETSQ REZERWNAQ KOPIQ.
28.11 pODKATALOGI W Dired
w OBY^NOM SLU^AE BUFER Dired POKAZYWAET TOLXKO ODIN KATALOG;NO WY TAKVE MOVETE
WKL@^ITX W SPISOK I EGO PODKATALOGI.
pROSTEJ[IJ SPOSOB WKL@^ITX NESKOLXKO PODKATALOGOW W ODIN BUFER Dired | ZADATX
DLQ ZAPUSKA ls KL@^I`-lR'.(eSLI PRI WYZOWE Dired WY ZADADITE ^ISLOWOJ ARGUMENT,
WY SMOVETE NAPISATX\TI KL@^I W MINIBUFERE.) |TO PROIZWEDET REKURSIWNYJ SPISOK
KATALOGA,POKAZYWA@]IJ WSE PODKATALOGI WSEH UROWNEJ.
nO OBY^NO WSEH PODKATALOGOW BYWAET SLI[KOM MNOGO;^A]E WY PREDPO^LI BY WKL@^ITX
TOLXKO KONKRETNYE PODKATALOGI.wY MOVETE SDELATX\TO S POMO]X@ KOMANDY i:
i wSTAWLQET SODERVIMOE PODKATALOGA NIVE W\TOM BUFERE.
pRIMENQJTE KOMANDU i (dired-maybe-insert-subdir) NA STROKE,OPISYWA@]EJ FAJL,
KOTORYJ QWLQETSQ KATALOGOM.oNA WSTAWLQET SODERVIMOE\TOGO KATALOGA W\TOT VE BUFER
gLAWA 28:Dired,REDAKTOR KATALOGOW 299Dired I PEREME]AET K NEMU.wSTAWLENNOE SODERVIMOE PODKATALOGA SLEDUET POSLE KATALOGA
WERHNEGO UROWNQ DANNOGO BUFERA Dired,KAK W WYWODE`ls -lR'.
eSLI SODERVIMOE PODKATALOGA UVE NAHODITSQ W\TOM BUFERE,KOMANDA i PROSTO PEREME-
]AET K NEMU.
w OBOIH SLU^AQH i DO PEREME]ENIQ USTANAWLIWAET METKU Emacs,TAK ^TO C-u C-hSPCi
WOZWRA]AET WAS K PREDYDU]EJ POZICII W BUFERE (K STROKE,OPISYWA@]EJ PODKATALOG).
iSPOLXZUJTE KOMANDU l (dired-do-redisplay) DLQ OBNOWLENIQ SODERVIMOGO PODKATA-
LOGA.dLQ UDALENIQ PODKATALOGA WY MOVETE PRIMENITX KOMANDU k.sM.rAZDEL 28.14
[oBNOWLENIE W Dired],S.300.
28.12 pEREME]ENIE PO PODKATALOGAM
kOGDA BUFER Dired PERE^ISLQET PODKATALOGI,WY MOVETE ISPOLXZOWATX KOMANDY PEREME-
]ENIQ PO STRANICAM C-x [ I C-x ] DLQ PEREHODA ^EREZ CELYE KATALOGI.
sLEDU@]IE KOMANDY PEREDWIGA@T W PREDELAH ODNOGO UROWNQ,WWERH ILI WNIZ PO DEREWU
KATALOGOW W ODNOM BUFERE Dired.oNI PEREME]A@T K STROKAM ZAGOLOWKOW KATALOGOW;\TO
STROKI,SOOB]A@]IE IMQ KATALOGA,ONI WYWODQTSQ PERED EGO SODERVIMYM.
C-M-n pEREHODIT K STROKE ZAGOLOWKA SLEDU@]EGO PODKATALOGA,NEZAWISIMO OT EGO UROW-
NQ (dired-next-subdir).
C-M-p pEREHODIT K STROKE ZAGOLOWKA PREDYDU]EGO PODKATALOGA,NEZAWISIMO OT EGO
UROWNQ (dired-prev-subdir).
C-M-u pEREHODIT K STROKE ZAGOLOWKA RODITELXSKOGO PODKATALOGA (dired-tree-up).
C-M-d pEREHODIT WNIZ PO DEREWU KATALOGOW,K STROKE ZAGOLOWKA PERWOGO PODKATALOGA
(dired-tree-down).
< pEREME]AET WWERH K PREDYDU]EJ STROKE FAJLA-KATALOGA (dired-prev-
dirline).|TO STROKI,OPISYWA@]IE KATALOG KAK FAJL W EGO RODITELXSKOM
KATALOGE.
> pEREME]AET K SLEDU@]EJ STROKE FAJLA-KATALOGA (dired-prev-dirline).
28.13 sKRYWANIE PODKATALOGOW
sKRYTX PODKATALOG | ZNA^IT SDELATX NEWIDIMYM EGO SODERVIMOE,ZA ISKL@^ENIEM
STROKI ZAGOLOWKA,SREDSTWAMI WYBORO^NOGO POKAZA (SM.rAZDEL 11.4 [wYBORO^NYJ POKAZ],
S.83 ).
$ sKRYWAET ILI OTKRYWAET PODKATALOG,NA KOTOROM NAHODITSQ TO^KA,I PEREME]A-
ET TO^KU K SLEDU@]EMU PODKATALOGU (dired-hide-subdir).~ISLOWOJ ARGUMENT
SLUVIT W KA^ESTWE S^ET^IKA POWTOROW.
M-$ sKRYWAET WSE PODKATALOGI W\TOM BUFERE Dired,OSTAWLQQ TOLXKO IH STROKI
ZAGOLOWKOW (dired-hide-all).iLI,ESLI KAKOJ-NIBUDX PODKATALOG UVE SKRYT,
DELAET WSE PODKATALOGI SNOWA WIDIMYMI.wY MOVETE ISPOLXZOWATX\TU KOMAN-
DU,^TOBY POLU^ITX OBZOR O^ENX GLUBOKIH DEREWXEW KATALOGOW ILI ^TOBY BYSTRO
PEREMESTITXSQ K DALEKIM PODKATALOGAM.
oBY^NYE KOMANDY Dired NIKOGDA NE ZATRAGIWA@T FAJLY W SKRYTYH PODKATALOGAH.nA-
PRIMER,KOMANDY,RABOTA@]IE S POME^ENNYMI FAJLAMI,IGNORIRU@T FAJLY W SKRYTYH
KATALOGAH,DAVE ESLI ONI POME^ENY.sLEDOWATELXNO,WY MOVETE ISPOLXZOWATX SKRYWANIE,
^TOBY WREMENNO ISKL@^ITX PODKATALOGI IZ OBLASTI DEJSTWIQ RAZLI^NYH OPERACIJ,NE UBI-
RAQ PRI\TOM METKI.
kOMANDY SKRYWANIQ PODKATALOGOW PEREKL@^A@T;\TO ZNA^IT,^TO ONI SKRYWA@T TO,^TO
BYLO WIDIMO,I POKAZYWA@T TO,^TO BYLO SKRYTO.
300 rUKOWODSTWO PO GNU Emacs28.14 oBNOWLENIE BUFERA Dired
|TOT RAZDEL OPISYWAET KOMANDY DLQ OBNOWLENIQ BUFERA Dired,^TOBY ON OTRAVAL WNE[-
NIE (SDELANNYE NE W Dired) IZMENENIQ W BUFERAH I FAJLAH,I DLQ UDALENIQ ^ASTI BUFERA
Dired.
g oBNOWLQET WSE SODERVIMOE BUFERA Dired (revert-buffer).
l oBNOWLQET UKAZANNYE FAJLY (dired-do-redisplay).
k uDALQET ZADANNYE STROKI FAJLOW |NE SAMI FAJLY,A TOLXKO STROKI W BUFERE
(dired-do-kill-lines).
s pEREKL@^AET MEVDU SORTIROWKOJ W ALFAWITNOM PORQDKE I PO DATE/WREMENI
(dired-sort-toggle-or-edit).
C-u s PEREKL@^ATELI
hRETi
oBNOWLQET BUFER Dired,ISPOLXZUQ PEREKL@^ATELI W KA^ESTWE dired-listing-
switches.
nABERITE g (revert-buffer),^TOBY SODERVIMOE BUFERA Dired OBNOWILOSX,OSNOWYWAQSX
NA SDELANNYH W PERE^ISLENNYH FAJLAH I KATALOGAH IZMENENIQH.|TA KOMANDA SOHRANQET WSE
METKI,KROME METOK,STOQW[IH NA UDALENNYH FAJLAH.sKRYTYE PODKATALOGI OBNOWLQ@TSQ,
NO OSTA@TSQ SKRYTYMI.
~TOBY OBNOWITX TOLXKO NEKOTORYE FAJLY,NABERITE l (dired-do-redisplay).|TA KO-
MANDA PRIMENQETSQ K SLEDU@]IM n FAJLAM,ILI K POME^ENNYM FAJLAM,ESLI TAKIE ESTX,
ILI K TEKU]EMU FAJLU.oBNOWLENIE IH OZNA^AET S^ITYWANIE NOWOGO STATUSA IZ FAJLOWOJ
SISTEMY I OBNOWLENIE BUFERA DLQ PRAWILXNOGO OTOBRAVENIQ SOSTOQNIQ\TIH FAJLOW.
eSLI WY PRIMENITE l NA STROKE ZAGOLOWKA PODKATALOGA,ONA OBNOWIT SODERVIMOE\TOGO
PODKATALOGA.
~TOBY UDALITX ZADANNYE STROKI FAJLOW | NE SAMI FAJLY,TOLXKO IH STROKI | NA-
PE^ATAJTE k (dired-do-kill-lines).zAPU]ENNAQ S ^ISLOWYM ARGUMENTOM n,\TA KOMANDA
PRIMENQETSQ K SLEDU@]IM n FAJLAM;INA^E ONA PRIMENQETSQ K POME^ENNYM FAJLAM.
eSLI WY UNI^TOVITE STROKU DLQ FAJLA,QWLQ@]EGOSQ KATALOGOM,SODERVIMOE\TOGO
KATALOGA TAKVE BUDET UDALENO IZ BUFERA.dRUGOJ SPOSOB UDALITX PODKATALOG IZ BUFERA
Dired |NABRATX C-u k NA STROKE ZAGOLOWKA\TOGO PODKATALOGA.
kOMANDA g WOZWRA]AET WSE STROKI,UNI^TOVENNYE TAKIM METODOM,NO NE WOZWRA]AET
PODKATALOGI |WY DOLVNY ISPOLXZOWATX i,^TOBY SNOWA WSTAWITX KAVDYJ PODKATALOG.
fAJLY W BUFERAH Dired OBY^NO PERE^ISLQ@TSQ W ALFAWITNOM PORQDKE PO IMENAM.iLI
Dired MOVET OTSORTIROWATX IH PO DATE I WREMENI.kOMANDA Dired s (dired-sort-toggle-
or-edit) PEREKL@^AET MEVDU\TIMI DWUMQ REVIMAMI SORTIROWKI.sTROKA REVIMA W BU-
FERE Dired POKAZYWAET,PO KAKOMU PRIZNAKU W DANNYJ MOMENT OTSORTIROWANY FAJLY:PO
IMENI ILI PO DATE.
C-u s PEREKL@^ATELI
h RETi POZWOLQET WAM ZADATX NOWOE ZNA^ENIE DLQ dired-listing-
switches.
28.15 Dired I find
wY MOVETE ZADATX NABOR FAJLOW DLQ POKAZA W BUFERE Dired BOLEE GIBKIM SPOSOBOM,
ISPOLXZUQ DLQ WYBORA FAJLOW UTILITU find.
~TOBY NAJTI WSE FAJLY,^XI IMENA SOOTWETSTWU@T ZADANNOMU [ABLONU,ZAPUSTITE M-x
find-name-dired.|TA KOMANDA S^ITYWAET ARGUMENTY KATALOG I OBRAZEC I WYBIRAET WSE
FAJLY W KATALOGE ILI EGO PODKATALOGAH,^XI IMENA SOOTWETSTWU@T OBRAZCU.
wYBRANNYE TAKIM SPOSOBOM FAJLY OTOBRAVA@TSQ W BUFERE Dired,W KOTOROM DOSTUPNY
OBY^NYE KOMANDY Dired.
gLAWA 28:Dired,REDAKTOR KATALOGOW 301eSLI WY HOTITE PROWERQTX SODERVIMOE FAJLOW,A NE IH IMENA,ISPOLXZUJTE M-x
find-grep-dired.|TA KOMANDA S^ITYWAET W MINIBUFERE DWA ARGUMENTA,KATALOG I reg-
exp;ONA WYBIRAET WSE FAJLY W KATALOGE ILI EGO PODKATALOGAH,KOTORYE SODERVAT SOWPADE-
NIQ S REGULQRNYM WYRAVENIEM regexp.dLQ\TOGO ONA ZAPUSKAET PROGRAMMY find I grep.
sMOTRITE TAKVE M-x grep-find,RAZDELrAZDEL 23.1 [kOMPILQCIQ],S.247.pOMNITE,^TO
REGULQRNOE WYRAVENIE ZADAETSQ DLQ grep,A NE DLQ Emacs.
nAIBOLEE OB]AQ KOMANDA W\TOJ SERII | KOMANDA M-x find-dired,KOTORAQ POZWOLQET
WAM UKAZATX L@BOE USLOWIE,KOTOROE MOVET PROWERITX find.|TA KOMANDA PRINIMAET DWA
ARGUMENTA MINIBUFERA,KATALOG I ARGUMENTY-пЂЊnd;ONA ZAPUSKAET find W KATALOGE,PERE-
DAWAQ ARGUMENTY-пЂЊnd,^TOBY SOOB]ITX,KAKIE USLOWIQ DOLVNA PROWERITX find.~TOBY
ISPOLXZOWATX\TU KOMANDU,WY DOLVNY UMETX POLXZOWATXSQ PROGRAMMOJ find.
fORMAT RASPE^ATKI,PROIZWODIMOJ\TIMI KOMANDAMI,UPRAWLQETSQ PEREMENNOJ find-
ls-option;EE ZNA^ENIE PO UMOL^ANI@ WELIT ISPOLXZOWATX DLQ ls KL@^I`-ld'.eSLI WA[I
RASPE^ATKI POWREVDENY,WAM MOVET PONADOBITXSQ IZMENITX ZNA^ENIE\TOJ PEREMENNOJ.
302 rUKOWODSTWO PO GNU Emacs
gLAWA 29:kALENDARX I DNEWNIK 30329 kALENDARX I DNEWNIK
Emacs MOVET RABOTATX KAK NASTOLXNYJ KALENDARX S EVEDNEWNIKOM DLQ PLANIRUEMYH I
PRO[ED[IH SOBYTIJ.~TOBY WOJTI W KALENDARX,NABERITE M-x calendar;\TO POKAVET KA-
LENDARX NA TRI MESQCA,OTCENTRIROWANNYJ NA TEKU]EM MESQCE,A TO^KA BUDET NAHODITXSQ
NA TEKU]EJ DATE.s ^ISLOWYM ARGUMENTOM,KAK W C-u M-x calendar,\TA KOMANDA ZAPRA-
[IWAET U WAS MESQC I GOD,KOTORYE DOLVNY OKAZATXSQ W CENTRE TREHMESQ^NOGO KALENDARQ.
kALENDARX ISPOLXZUET SWOJ SOBSTWENNYJ BUFER c OSNOWNYM REVIMOM Calendar.
Mouse-2 W KALENDARE WYWODIT MEN@ OPERACIJ DLQ DATY;C-Mouse-3 WYWODIT MEN@ ^ASTO
ISPOLXZUEMYH SREDSTW KALENDARQ,KOTORYE NE ZAWISQT OT KONKRETNOJ DATY.~TOBY WYJTI
IZ KALENDARQ,WWEDITE q.sM.RAZDEL\Calendar"W The Emacs Lisp Reference Manual,DLQ
POLU^ENIQ INFORMACII O NASTROJKE KALENDARQ I DNEWNIKA.
29.1 pEREME]ENIE PO KALENDAR@
rEVIM Calendar POZWOLQET WAM PEREME]ATXSQ PO KALENDAR@ ^EREZ LOGI^ESKIE PROME-
VUTKI WREMENI,TAKIE KAK DNI,NEDELI,MESQCY I GODY.eSLI WY PEREMESTITESX ZA TE
TRI MESQCA,KOTORYE POKAZYWA@TSQ IZNA^ALXNO,KALENDARX AWTOMATI^ESKI\PROKRU^IWAET-
SQ"NA STOLXKO,SKOLXKO NUVNO,^TOBY WYBRANNAQ DATA STALA WIDIMOJ.pEREME]ENIE K
DATE POZWOLQET WAM PROSMOTRETX PRIHODQ]IESQ NA NEE PRAZDNIKI ILI ZAPISI W DNEWNIKE
ILI PREOBRAZOWATX EE W DRUGIE KALENDARNYE SISTEMY;PEREME]ENIE NA BOLX[IE INTERWALY
WREMENI TAKVE POLEZNO PROSTO DLQ PROKRUTKI KALENDARQ.
29.1.1 pEREME]ENIE PO OBY^NYM KALENDARNYM EDINICAM
kOMANDY DLQ PEREME]ENIQ W BUFERE KALENDARQ ANALOGI^NY KOMANDAM DLQ PEREME]ENIQ
W TEKSTE.wY MOVETE PEREHODITX WPERED I NAZAD PO DNQM,NEDELQM,MESQCAM I GODAM.
C-f pEREME]AET NA DENX WPERED (calendar-forward-day).
C-b pEREME]AET NA DENX NAZAD (calendar-backward-day).
C-n pEREME]AET NA NEDEL@ WPERED (calendar-forward-week).
C-p pEREME]AET NA NEDEL@ NAZAD (calendar-backward-week).
M-} pEREME]AET NA MESQC WPERED (calendar-forward-month).
M-{ pEREME]AET NA MESQC NAZAD (calendar-backward-month).
C-x ] pEREME]AET NA GOD WPERED (calendar-forward-year).
C-x [ pEREME]AET NA GOD NAZAD (calendar-backward-year).
kOMANDY DLQ PEREME]ENIQ PO DNQM I NEDELQM |\TO ESTESTWENNYE ANALOGI OBY^NYH
KOMAND Emacs DLQ PEREME]ENIQ PO ZNAKAM ILI STROKAM.tAK VE,KAK C-n OBY^NO PEREME-
]AET K TOMU VE STOLBCU W SLEDU@]EJ STROKE,W REVIME Calendar ONA PEREME]AET K TOMU
VE DN@ SLEDU@]EJ NEDELI.a C-p PEREME]AET K TOMU VE DN@ PREDYDU]EJ NEDELI.
kURcORNYE STRELKI\KWIWALENTNY C-f,C-b,C-n I C-p,KAK I W DRUGIH REVIMAH.
kOMANDY DLQ PEREME]ENIQ PO MESQCAM I GODAM RABOTA@T TAK VE,KAK KOMANDY DLQ
NEDELX,NO PERENOSQT NA BOLX[IE RASSTOQNIQ.kOMANDY DLQ MESQCEW M-} I M-{ PEREME]A@T
WPERED ILI NAZAD NA CELYJ MESQC.kOMANDY DLQ LET C-x ] I C-x [ PEREME]A@T WPERED ILI
NAZAD NA CELYJ GOD.
pROSTEJ[IJ SPOSOB ZAPOMNITX\TI KOMANDY |RASSMATRIWATX MESQCY I GODY KAK ANALO-
GI ABZACEW I STRANIC,SOOTWETSTWENNO.nO SAMI KOMANDY NE WPOLNE ANALOGI^NY.oBY^NYE
304 rUKOWODSTWO PO GNU EmacsKOMANDY Emacs DLQ ABZACEW PEREDWIGA@T K NA^ALU ILI KONCU ABZACA,TOGDA KAK\TI KOMAN-
DY DLQ MESQCEW I LET PEREME]A@T PO CELOMU MESQCU ILI GODU,^TO OBY^NO PODRAZUMEWAET
PEREHOD ZA KONEC MESQCA ILI GODA.
wSE\TI KOMANDY PRINIMA@T ^ISLOWOJ ARGUMENT W KA^ESTWE S^ET^IKA POWTOROW.dLQ
UDOBSTWA,W REVIME Calendar CIFRY I ZNAK MINUS ZADA@T ^ISLOWOJ ARGUMENT DAVE BEZ MO-
DIFIKATORA Meta.nAPRIMER,100 C-f PEREME]AET TO^KU NA 100 DNEJ WPERED OT EE TEKU]EJ
POZICII.
29.1.2 nA^ALO ILI KONEC NEDELI,MESQCA ILI GODA
nEDELQ (ILI MESQC,ILI GOD) |\TO NE PROSTO NEKOTOROE KOLI^ESTWO DNEJ;MY POLAGAEM,
^TO NEDELI (MESQCY,GODA) NA^INA@TSQ S OPREDELENNYH DAT.pO\TOMU REVIM Calendar
PREDOSTAWLQET KOMANDY DLQ PEREHODA K NA^ALU ILI KONCU NEDELI,MESQCA ILI GODA:
C-a pEREHOD K NA^ALU NEDELI (calendar-beginning-of-week).
C-e pEREHOD K KONCU NEDELI (calendar-end-of-week).
M-a pEREHOD K NA^ALU MESQCA (calendar-beginning-of-month).
M-e pEREHOD K KONCU MESQCA (calendar-end-of-month).
M-< pEREHOD K NA^ALU GODA (calendar-beginning-of-year).
M-> pEREHOD K KONCU GODA (calendar-end-of-year).
|TI KOMANDY TAKVE PRINIMA@T ^ISLOWYE ARGUMENTY W KA^ESTWE S^ET^IKOW POWTORENIJ,
KOTORYJ UKAZYWAET,NA SKOLXKO NEDELX,MESQCEW ILI LET NUVNO PEREMESTITXSQ WPERED ILI
NAZAD.
pO UMOL^ANI@ NEDELI NA^INA@TSQ S WOSKRESENXQ.~TOBY SDELATX TAK,^TOBY ONI NA-
^INALISX S PONEDELXNIKA,USTANOWITE PEREMENNU@ calendar-week-start-day W ZNA^ENIE
1.
29.1.3 uKAZANNYE DATY
rEVIM Calendar PREDOSTAWLQET KOMANDY DLQ PEREHODA K KONKRETNOJ DATE,KOTORU@ MOV-
NO ZADATX MNOGIMI SPOSOBAMI.
g d pEREME]AET TO^KU K UKAZANNOJ DATE (calendar-goto-date).
o cENTRIRUET KALENDARX WOKRUG UKAZANNOGO MESQCA (calendar-other-month).
.pEREME]AET K SEGODNQ[NEJ DATE (calendar-goto-today).
g d (calendar-goto-date) ZAPRA[IWAET GOD,MESQC I DENX MESQCA,A ZATEM PEREME]AET
K\TOJ DATE.pOSKOLXKU KALENDARX WKL@^AET WSE DATY OT NA^ALA NA[EJ\RY,WY DOLVNY
WWODITX GOD POLNOSTX@;TO ESTX PI[ITE`1990',A NE`90'.
o (calendar-other-month) ZAPRA[IWAET MESQC I GOD,A ZATEM CENTRIRUET TREHMESQ^NYJ
KALENDARX WOKRUG\TOGO MESQCA.
wY MOVETE WERNUTXSQ K SEGODNQ[NEJ DATE S POMO]X@ KOMANDY.(calendar-goto-
today).
gLAWA 29:kALENDARX I DNEWNIK 30529.2 pROKRUTKA KALENDARQ
iZOBRAVENIE KALENDARQ AWTOMATI^ESKI PROKRU^IWAETSQ,KOGDA WY SDWIGAETESX ZA PREDE-
LY WIDIMOJ ^ASTI.wY TAKVE MOVETE PROKRU^IWATX EGO WRU^NU@.pREDSTAWXTE,^TO OKNO
KALENDARQ SODERVIT DLINNU@ LENTU BUMAGI S MESQCAMI.pROKRUTKA EE OZNA^AET,^TO W
\TOM OKNE STANUT WIDIMYMI NOWYE MESQCY.
C-x < pROKRU^IWAET KALENDARX NA ODIN MESQC WPERED (scroll-calendar-left).
C-x > pROKRU^IWAET KALENDARX NA ODIN MESQC NAZAD (scroll-calendar-right).
C-v
hNEXTi pROKRU^IWAET KALENDARX NA TRI MESQCA WPERED (scroll-calendar-left-three-
months).
M-v
h PRIORi pROKRU^IWAET KALENDARX NA TRI MESQCA NAZAD (scroll-calendar-right-three-
months).
sAMYE OSNOWNYE KOMANDY PROKRUTKI KALENDARQ PROKRU^IWA@T PO ODNOMU MESQCU ZA RAZ.
|TO OZNA^AET,^TO MEVDU OTOBRAVENIEM DO KOMANDY I OTOBRAVENIEM POSLE DELAETSQ DWA
MESQCA PEREKRYTIQ.C-x < PROKRU^IWAET SODERVIMOE KALENDARQ NA MESQC WLEWO;TO ESTX ONA
PEREME]AET WID WPERED PO WREMENI.C-x > PROKRU^IWAET SODERVIMOE KALENDARQ WPRAWO,^TO
PEREME]AET NAZAD WO WREMENI.
kOMANDY C-v I M-v PROKRU^IWA@T KALENDARX PO CELYM\KRANAM |PO TRI MESQCA |PO
ANALOGII S OBY^NYM ZNA^ENIEM\TIH KOMAND.C-v DELAET WIDIMYMI BOLEE POZDNIE DATY,
A M-v | BOLEE RANNIE.|TI KOMANDY PRINIMA@T ^ISLOWOJ ARGUMENT W KA^ESTWE S^ET^IKA
POWTOROW;W ^ASTNOSTI,TAK KAK C-u UMNOVAET SLEDU@]U@ KOMANDU NA ^ETYRE,NABOR C-u
C-v PROKRU^IWAET KALENDARX NA GOD WPERED,A C-u M-v PROKRU^IWAET NA GOD NAZAD.
fUNKCIONALXNYE KLAWI[I
hNEXTi I hPRIORi\KWIWALENTNY C-v I M-v,KAK I W DRUGIH
REVIMAH.
29.3 pOS^ET DNEJ
M-= wYWODIT ^ISLO DNEJ W TEKU]EJ OBLASTI (calendar-count-days-region).
~TOBY OPREDELITX ^ISLO DNEJ W OBLASTI,NABERITE M-= (calendar-count-days-region).
kOLI^ESTWO DNEJ WYWODITSQ WKL@^ITELXNO;TO ESTX DNI,UKAZYWAEMYE TO^KOJ I METKOJ,
U^ITYWA@TSQ.
29.4 dRUGIE KOMANDY KALENDARQ
p d wYWODIT NOMER DNQ W GODU (calendar-print-day-of-year).
C-c C-l zANOWO GENERIRUET OKNO KALENDARQ (redraw-calendar).
SPC pROKRU^IWAET SLEDU@]EE OKNO (scroll-other-window).
q wYHODIT IZ KALENDARQ (exit-calendar).
~TOBY NAPE^ATATX ^ISLO DNEJ,PRO[ED[IH S NA^ALA GODA ILI OSTA@]IHSQ DO KONCA
GODA,NABERITE KOMANDU p d (calendar-print-day-of-year).oNA POKAVET OBA\TIH ^ISLA W
\HO-OBLASTI.kOLI^ESTWO PRO[ED[IH DNEJ WKL@^AET WYBRANNU@ DATU.~ISLO OSTAW[IHSQ
DNEJ NE WKL@^AET EE.
eSLI OKNO KALENDARQ OKAVETSQ ISPOR^ENO,NABERITE C-c C-l (redraw-calendar) ^TOBY
EGO PERERISOWATX.(tAKOE MOVET SLU^ITXSQ,TOLXKO ESLI WY ISPOLXZUETE KOMANDY REDAKTI-
ROWANIQ NE IZ REVIMA Calendar.)
306 rUKOWODSTWO PO GNU Emacsw REVIME Calendar WY MOVETE ISPOLXZOWATX SPC (scroll-other-window) DLQ PROKRUTKI
DRUGOGO OKNA.|TO UDOBNO,ESLI WY SMOTRITE W DRUGOM OKNE SPISOK PRAZDNIKOW ILI ZAPISI
EVEDNEWNIKA.
~TOBY WYJTI IZ KALENDARQ,NABERITE q (exit-calendar).|TA KOMANDA PRQ^ET WSE
BUFERY,SWQZANNYE S KALENDAREM,I WYBIRAET DRUGIE BUFERY.(eSLI FREJM SODERVIT
SPECIALXNO NAZNA^ENNOE OKNO KALENDARQ,WYHOD IZ KALENDARQ MINIMIZIRUET\TOT FREJM.)
29.5 LaTeX I KALENDARX
kOMANDY KALENDARQ DLQ RABOTY S LaT
E
X GENERIRU@T BUFER S LaT
E
X-KODOM,KOTORYJ
PE^ATAET KALENDARX.w ZAWISIMOSTI OT ISPOLXZOWANOJ KOMANDY NAPE^ATANNYJ KALENDARX
POKRYWAET DENX,NEDEL@,MESQC ILI GOD,W KOTOROM NAHODITSQ TO^KA.
t m gENERIRUET KALENDARX NA ODIN MESQC (cal-tex-cursor-month).
t M gENERIRUET GORIZONTALXNYJ KALENDARX NA ODIN MESQC (cal-tex-cursor-month-
landscape).
t d gENERIRUET KALENDARX NA ODIN DENX (cal-tex-cursor-day).
t w 1 gENERIRUET ODNOSTRANI^NYJ KALENDARX NA ODNU NEDEL@ (cal-tex-cursor-
week).
t w 2 gENERIRUET DWUHSTRANI^NYJ KALENDARX NA ODNU NEDEL@ (cal-tex-cursor-
week2).
t w 3 gENERIRUET KALENDARX W STILE ISO NA ODNU NEDEL@ (cal-tex-cursor-week-iso).
t w 4 gENERIRUET KALENDARX NA ODNU NEDEL@,NA^INA@]U@SQ S PONEDELXNIKA (cal-
tex-cursor-week-monday).
t f w gENERIRUET DWUHNEDELXNYJ KALENDARX NA ODNOJ STRANICE W STILE Filofax (cal-
tex-cursor-filofax-2week).
t f W gENERIRUET NEDELXNYJ KALENDARX NA ODNOJ STRANICE W STILE Filofax (cal-tex-
cursor-filofax-week).
t y gENERIRUET KALENDARX NA ODIN GOD (cal-tex-cursor-year).
t Y gENERIRUET GORIZONTALXNYJ KALENDARX NA ODIN GOD (cal-tex-cursor-year-
landscape).
t f y gENERIRUET KALENDARX NA ODIN GOD W STILE Filofax (cal-tex-cursor-filofax-
year).
nEKOTORYE IZ\TIH KOMAND PE^ATA@T KALENDARX GORIZONALXNO (W\LAND[AFTNOM REVI-
ME"),PO\TOMU EGO [IRINA MOVET BYTX BOLX[E DLINY.nEKOTORYE IZ NIH ISPOLXZU@T
RAZMER BUMAGI Filofax (3.75 NA 6.75 D@JMOW).wSE\TI KOMANDY PRINIMA@T PREFIKSNYJ
ARGUMENT,ZADA@]IJ ^ISLO PE^ATAEMYH DNEJ,NEDELX,MESQCEW ILI LET (WSEGDA NA^INAQ OT
TEKU]EGO).
eSLI PEREMENNAQ cal-tex-holidays NE RAWNA nil (\TO ZNA^ENIE PO UMOL^ANI@),TO PE-
^ATAEMYE KALENDARI POKAZYWA@T PRAZDNIKI IZ calendar-holidays.eSLI PEREMENNAQ cal-
tex-diary OTLI^NA OT nil (PO UMOL^ANI@\TO nil),TAKVE WKL@^A@TSQ ZAPISI IZ DNEWNIKA
(TOLXKO W NEDELXNYE I MESQ^NYE KALENDARI).eSLI OTLI^NA OT nil PEREMENNAQ cal-tex-
rules (PO UMOL^ANI@ nil),TO W TEH STILQH RASPE^ATKI KALENDARQ,GDE DOSTATO^NO MESTA,
STRANICY RAZLINOWANY.
gLAWA 29:kALENDARX I DNEWNIK 30729.6 pRAZDNIKI
kALENDARX Emacs ZNAET OBO WSEH BOLX[IH I O MNOGIH MALYH PRAZDNIKAH I MOVET IH
OTOBRAVATX.
h pOKAZATX PRAZDNIKI,PRIHODQ]IESQ NA WYBRANNU@ DATU (calendar-cursor-
holidays).
Mouse-2 Holidays
pOKAZATX WSE PRAZDNIKI DLQ DATY,NA KOTOROJ WY ]ELKNULI.
x pOMETITX PRAZDNIKI (mark-calendar-holidays).
u sNQTX METKI W OKNE KALENDARQ (calendar-unmark).
a pERE^ISLITX W DRUGOM OKNE WSE PRAZDNIKI DLQ POKAZANNYH TREH MESQCEW (list-
calendar-holidays).
M-x holidays
pERE^ISLITX W DRUGOM OKNE WSE PRAZDNIKI DLQ TREH MESQCEW WOKRUG TEKU]EJ
DATY.
M-x list-holidays
pERE^ISLITX W DRUGOM OKNE PRAZDNIKI DLQ ZADANNOGO PROMEVUTKA LET.
~TOBY UZNATX,NE PRIHODITSQ LI NA DANNU@ DATU PRAZDNIKOW,RASPOLOVITE TO^KU NA
\TOJ DATE W OKNE KALENDARQ I ISPOLXZUJTE KOMANDU h.iLI ]ELKNITE NA\TOJ DATE Mouse-2
I ZATEM WYBERITE IZ POQWIW[EGOSQ MEN@ PUNKT Holidays.w OBOIH SLU^AQH WYWODQTSQ
PRAZDNIKI DLQ ZADANNOJ DATY,W\HO-OBLASTI,ESLI ONI TAM UME]A@TSQ,ILI W OTDELXNOM
OKNE.
~TOBY PROSMOTRETX RASPREDELENIE PRAZDNIKOW DLQ WSEH POKAZANNYH W KALENDARE DAT,
ISPOLXZUJTE KOMANDU x.oNA OTOBRAVAET PRAZDNI^NYE DNI DRUGIM NA^ERTANIEM (ILI PO-
ME]AET POSLE\TIH DAT ZNA^OK`*',ESLI MNOVESTWENNYE NA^ERTANIQ NEDOSTUPNY).|TA KO-
MANDA PRIMENQETSQ I K MESQCAM,WIDIMYM W DANNYJ MOMENT,I K TEM,^TO STANUT WPOSLED-
STWII WIDIMYMI PRI PROKRUTKE.~TOBY WYKL@^ITX RAZMETKU I STERETX TEKU]IE METKI,
NABERITE u,^TO TAKVE STIRAET METKI DNEWNIKA (SM.rAZDEL 29.10 [dNEWNIK],S.313).
~TOBY POLU^ITX E]E BOLEE PODROBNU@ INFORMACI@,ISPOLXZUJTE KOMANDU a,KOTORAQ PO-
KAZYWAET OTDELXNYJ BUFER,SODERVA]IJ SPISOK WSEH PRAZDNIKOW W TEKU]EM TREHMESQ^NOM
DIAPAZONE.wY MOVETE ISPOLXZOWATX
h SPCi W OKNE KALENDARQ DLQ PROKRUTKI\TOGO SPISKA.
kOMANDA M-x holidays WYWODIT SPISOK PRAZDNIKOW DLQ TEKU]EGO,PREDYDU]EGO I SLE-
DU@]EGO MESQCA;ONA RABOTAET,DAVE ESLI U WAS NET OKNA KALENDARQ.eSLI WY HOTITE
POLU^ITX PERE^ENX PRAZDNIKOW,CENTRIROWANNYJ WOKRUG DRUGOGO MESQCA,ISPOLXZUJTE C-u
M-x holidays,KOTORAQ SPRA[IWAET MESQC I GOD.
iZWESTNYE Emacs PRAZDNIKI WKL@^A@T PRAZDNIKI s{a I OSNOWNYE HRISTIANSKIE,
IUDEJSKIE I ISLAMSKIE PRAZDNIKI;TAKVE ON ZNAET O SOLNCESTOQNIQH I RAWNODENSTWIQH.
kOMANDA M-x list-holidays WYWODIT SPISOK PRAZDNIKOW DLQ NESKOLXKIH LET.|TA FUNK-
CIQ ZAPRA[IWAET U WAS NA^ALXNYJ I KONE^NYJ GOD I POZWOLQET WYBRATX WSE PRAZDNIKI ILI
ODNU IZ IH KATEGORIJ.wY MOVETE ISPOLXZOWATX\TU KOMANDU,DAVE ESLI U WAS NET OKNA
KALENDARQ.
Emacs ISPOLXZUET DLQ PRAZDNIKOW DATY,OSNOWANNYE NA TEKU]EJ PRAKTIKE,A NE NA
ISTORI^ESKIH FAKTAH.k PRIMERU,ISTORI^ESKI MOMENT SEZONNOGO PEREWODA WREMENI I DAVE
SAMO EGO SU]ESTWOWANIE IZMENQLOSX OT GODA K GODU,NO TEKU]IJ ZAKON s{a GOWORIT,^TO
WREMQ PEREWODITSQ W PERWOE WOSKRESENXE APRELQ.kOGDA PRAWILA SEZONNOGO PEREWODA WREME-
NI USTANOWLENY PO AMERIKANSKIM NORMAM,Emacs WSEGDA ISPOLXZUET TEKU]EE OPREDELENIE,
DAVE ESLI ONO BYLO NEPRAWILXNO W NEKOTORYE PRO[LYE GODY.
308 rUKOWODSTWO PO GNU Emacs29.7 wREMQ WOSHODA I ZAKATA sOLNCA
oSOBYE KOMANDY KALENDARQ MOGUT SOOB]ITX WAM S TO^NOSTX@ DO MINUTY-DWUH WREMENA
WOSHODA I ZAKATA sOLNCA DLQ L@BOJ DATY.
S pOKAZYWAET WREMENA WOSHODA I ZAKATA sOLNCA DLQ WYBRANNOJ DATY (calendar-
sunrise-sunset).
Mouse-2 Sunrise/Sunset
pOKAZYWAET WREMENA WOSHODA I ZAKATA sOLNCA DLQ DATY,NA KOTOROJ WY ]ELK-
NULI.
M-x sunrise-sunset
pOKAZYWAET WREMENA WOSHODA I ZAKATA sOLNCA DLQ SEGODNQ[NEJ DATY.
C-u M-x sunrise-sunset
pOKAZYWAET WREMENA WOSHODA I ZAKATA sOLNCA DLQ ZADANNOJ DATY.
~TOBY PROSMOTRETX W\HO-OBLASTI MESTNOE WREMQ WOSHODA I ZAKATA sOLNCA,NAHODQSX
W KALENDARE,PEREMESTITE TO^KU K VELAEMOJ DATE I NAVMITE S.iLI ]ELKNITE NA\TOJ
DATE Mouse-2 I WYBERITE IZ POQWIW[EGOSQ MEN@ PUNKT Sunrise/Sunset.kOMANDA M-x
sunrise-sunset,DOSTUPNAQ IZWNE KALENDARQ,POKAZYWAET\TU INFORMACI@ DLQ TEKU]EJ
ILI UKAZANNOJ DATY.~TOBY ZADATX OTLI^NU@ OT SEGODNQ[NEJ DATU,ISPOLXZUJTE KOMANDU
C-u M-x sunrise-sunset,KOTORAQ SPROSIT GOD,MESQC I DENX.
wY MOVETE PROSMOTRETX WREMQ WOSHODA I ZAKATA sOLNCA DLQ L@BOJ MESTNOSTI I DATY
S POMO]X@ C-u C-u M-x sunrise-sunset.|TA KOMANDA ZAPRA[IWAET WAS [IROTU,DOLGOTU,
RAZNICU OT UNIWERSALXNOGO KOORDINIROWANNOGO WREMENI I DATU,A ZATEM SOOB]AET WAM
WREMENA WOSHODA I ZAKATA DLQ\TOGO MESTA I\TOJ DATY.
pOSKOLXKU WREMQ WOSHODA I ZAKATA sOLNCA ZAWISIT OT POLOVENIQ NA zEMLE,PERED IS-
POLXZOWANIEM\TIH KOMAND WY DOLVNY SKAZATX Emacs WA[U [IROTU,DOLGOTU I NAZWANIE
MESTNOSTI.wOT PRIMER ZADAWAEMYH ZNA^ENIJ:
(setq calendar-latitude 40.1)
(setq calendar-longitude -88.2)
(setq calendar-location-name"Urbana,IL")
zADAWAJTE ZNA^ENIQ calendar-latitude I calendar-longitude S TO^NOSTX@ DO ODNOJ DESQ-
TOJ.
wA[ ^ASOWOJ POQS TAKVE WLIQET NA WREMQ WOSHODA I ZAKATA.oBY^NO Emacs POLU^AET IN-
FORMACI@ O ^ASOWOM POQSE OT OPERACIONNOJ SISTEMY,NO ESLI\TO NE TE ZNA^ENIQ,KOTORYE
WY HOTITE (ILI ESLI OPERACIONNAQ SISTEMA IH NE PREDOSTAWLQET),WY DOLVNY USTANOWITX
IH SAMI.wOT PRIMER:
(setq calendar-time-zone -360)
(setq calendar-standard-time-zone-name"CST")
(setq calendar-daylight-time-zone-name"CDT")
zNA^ENIE calendar-time-zone |\TO RAZNICA MEVDU WA[IM MESTNYM STANDARTNYM I UNI-
WERSALXNYM KOORDINIROWANNYM (GRINWI^SKIM) WREMENEM,WYRAVENNAQ W MINUTAH.zNA-
^ENIQ calendar-standard-time-zone-name I calendar-daylight-time-zone-name |\TO
SOKRA]ENIQ,PRINQTYE DLQ OBOZNA^ENIQ WA[EGO ^ASOWOGO POQSA.Emacs POKAZYWAET WRE-
MQ WOSHODA I ZAKATA W S U^ETOM SEZONNOGO PEREWODA ^ASOW.sM.rAZDEL 29.12 [sEZONNYJ
PEREWOD ^ASOW],S.319,O TOM,KAK OPREDELQETSQ SEZONNAQ POPRAWKA.
kAK POLXZOWATELX,WY MOVETE S^ESTX UDOBNYM USTANOWITX PEREMENNYE KALENDARQ DLQ
ZADANIQ WA[EGO OBY^NOGO FIZI^ESKOGO MESTONAHOVDENIQ W WA[EM FAJLE`.emacs'.a KOGDA
WY USTANAWLIWAETE Emacs NA MA[INE,WY MOVETE SOZDATX FAJL`default.el',KOTORYJ BUDET
PRAWILXNO IH USTANAWLIWATX DLQ TIPI^NOGO MESTONAHOVDENIQ BOLX[INSTWA POLXZOWATELEJ
\TOJ MA[INY.sM.rAZDEL 31.7 [fAJL INICIALIZACII],S.366.
gLAWA 29:kALENDARX I DNEWNIK 30929.8 fAZY lUNY
|TI KOMANDY KALENDARQ POKAZYWA@T DATY I WREMENA LUNNYH FAZ (NOWOLUNIE,PERWAQ
^ETWERTX,POLNOLUNIE,POSLEDNQQ ^ETWERTX).|TA WOZMOVNOSTX POLEZNA PRI OTLADKE PRO-
BLEM,KOTORYE\ZAWISQT OT FAZY lUNY".
M wYWODIT DATY I WREMENA WSEH ^ETWERTEJ lUNY DLQ POKAZANNOGO TREHMESQ^NOGO
PERIODA (calendar-phases-of-moon).
M-x phases-of-moon
wYWODIT DATY I WREMENA ^ETWERTEJ lUNY DLQ TREH MESQCEW WOKRUG SEGODNQ[NEJ
DATY.
wNUTRI KALENDARQ,DLQ POKAZA W OTDELXNOM BUFERE FAZ lUNY DLQ TEKU]EGO TREHMESQ^-
NOGO PERIODA ISPOLXZUETSQ KOMANDA M.pERE^ISLQMYE DATY I WREMENA TO^NY DO NESKOLXKIH
MINUT.
wNE KALENDARQ,DLQ POKAZA FAZ lUNY DLQ TEKU]EGO,PREDYDU]EGO I SLEDU@]EGO ME-
SQCA ISPOLXZUJTE KOMANDU M-x phases-of-moon.~TOBY POLU^ITX SWEDENIQ DLQ KAKOGO-TO
DRUGOGO MESQCA,ISPOLXZUJTE C-u M-x phases-of-moon,ONA SPROSIT WAS O MESQCE I GODE.
dATY I WREMENA LUNNYH FAZ DA@TSQ W MESTNOM WREMENI (S U^ETOM SEZONNYH POPRAWOK,
ESLI\TO NEOBHODIMO);NO ESLI PEREMENNAQ calendar-time-zone NE OPREDELENA,ISPOLXZUETSQ
UNIWERSALXNOE KOORDINIROWANNOE WREMQ (GRINWI^SKIJ ^ASOWOJ POQS).sM.rAZDEL 29.12
[sEZONNYJ PEREWOD ^ASOW],S.319.
29.9 pREOBRAZOWANIE W DRUGIE KALENDARNYE SISTEMY I IZ NIH
w Emacs WSEGDA POKAZYWAETSQ GRIGORIANSKIJ KALENDARX,INOGDA NAZYWAEMYJ KALENDA-
REM\NOWOGO STILQ",KOTORYJ W NA[I DNI PRIMENQETSQ PO^TI WEZDE.oDNAKO,\TOT KALENDARX
NE SU]ESTWOWAL DO [ESTNADCATOGO STOLETIQ I NE ISPOLXZOWALSQ [IROKO DO WOSEMNADCATO-
GO;TOLXKO W NA^ALE DEWQTNADCATOGO WEKA ON POLNOSTX@ WYTESNIL @LIANSKIJ KALENDARX I
POLU^IL WSEMIRNOE PRIZNANIE.kALENDARX Emacs MOVET OTOBRAZITX L@BOJ MESQC NA^INAQ
OT QNWARQ PERWOGO GODA NA[EJ\RY,NO WSEGDA POKAZYWAET GRIGORIANSKIJ KALENDARX,DAVE
DLQ DAT,KOGDA EGO E]E NE SU]ESTWOWALO.
hOTQ Emacs NE MOVET POKAZYWATX DRUGIE KALENDARI,ON UMEET PREOBRAZOWAWATX DATY IZ
NESKOLXKIH DRUGIH KALENDARNYH SISTEM.
29.9.1 pODDERVIWAEMYE KALENDARNYE SISTEMY
kOMMER^ESKIJ KALENDARX ISO ISPOLXZUETSQ W OSNOWNOM W eWROPE.
`LIANSKIJ KALENDARX,NAZWANNYJ W ^ESTX`LIQ cEZARQ,ISPOLXZOWALSQ W eWROPE W
SREDNIE WEKA I WO MNOGIH DRUGIH STRANAH WPLOTX DO DEWQTNADCATOGO WEKA.
aSTRONOMY ISPOLXZU@T PROSTOJ PODS^ET DNEJ,ISTEK[IH OT POLUDNQ PONEDELXNIKA,PER-
WOGO QNWARQ,4713-GO GODA DO NA[EJ\RY PO @LIANSKOMU KALENDAR@.~ISLO PRO[ED[IH DNEJ
NAZYWAETSQ @LIANSKIM ILI ASTRONOMI^ESKIM NOMEROM DNQ.
iUDEJSKIJ KALENDARX PO TRADICII ISPOLXZUETSQ W EWREJSKOJ RELIGII.kALENDARNAQ
PROGRAMMA Emacs ISPOLXZUET IUDEJSKIJ KALENDARX DLQ OPREDELENIQ DAT EWREJSKIH PRAZD-
NIKOW.dATY IUDEJSKOGO KALENDARQ NA^INA@TSQ I ZAWER[A@TSQ PRI ZAHODE sOLNCA.
iSLAMSKIJ KALENDARX ISPOLXZUETSQ WO MNOGIH MUSULXMANSKIH STRANAH.Emacs ISPOLX-
ZUET EGO DLQ OPREDELENIQ DAT ISLAMSKIH PRAZDNIKOW.w ISLAMSKOM MIRE NET WSEOB]EJ
DOGOWORENNOSTI O KALENDARE;W Emacs PRIMENQETSQ [IROKO RASPROSTRANENNAQ WERSIQ,NO
TO^NYE DATY ISLAMSKOGO KALENDARQ ^ASTO OSNOWYWA@TSQ NA WYSKAZYWANIQH RELIGIOZNYH
AWTORITETOW,A NE NA WY^ISLENIQH.kAK SLEDSTWIE,DEJSTWITELXNYE DATY NABL@DENIQ MO-
GUT SLEGKA OTLI^ATXSQ OT WY^ISLENNYH W Emacs.dATY ISLAMSKOGO KALENDARQ NA^INA@TSQ
I ZAWER[A@TSQ PRI ZAHODE sOLNCA.
310 rUKOWODSTWO PO GNU EmacskALENDARX FRANCUZSKOJ REWOL@CII BYL SOZDAN QKOBINCAMI POSLE REWOL@CII 1789-GO
GODA DLQ WWEDENIQ BOLEE SWETSKOGO I OSNOWANNOGO NA PREDSTAWLENIQH O PRIRODE WZGLQDA NA
GODOWOJ CIKL I DLQ USTANOWLENIQ DESQTIDNEWNOJ NEDELI,BOLEE RACIONALISTI^ESKOJ,KAK
METRI^ESKAQ SISTEMA.fRANCUZSKOE PRAWITELXSTWO OFICIALXNO OTMENILO\TOT KALENDARX W
KONCE 1805-GO GODA.
cENTRALXNOAMERIKANSKIE mAJQ ISPOLXZOWALI TRI RAZNYE,PEREKRYWA@]IESQ KALENDAR-
NYE SISTEMY,DOLGIJ S^ET,TCOLKIN I HAAB.Emacs ZNAET OBO WSEH TREH KALENDARQH.|KS-
PERTY OBSUVDA@T TO^NOE SOOTWETSTWIE MEVDU KALENDAREM mAJQ I NA[IM KALENDAREM;
Emacs ISPOLXZUET DLQ WY^ISLENIJ KORRELQCI@ gUDMANA-mARTINESA-tOMSONA.
kOPTY ISPOLXZU@T KALENDARX,OSNOWANNYJ NA DREWNEEGIPETSKOM SOLNE^NOM KALENDARE.
oN SOSTOIT IZ DWENADCATI TRIDCATIDNEWNYH MESQCEW,ZA KOTORYM IDET DOPOLNITELXNYJ
PQTIDNEWNYJ PERIOD.rAZ W ^ETYRE GODA K\TOMU PERIODU DOBAWLQETSQ [ESTOJ,WISOKOSNYJ
DENX.|FIOPSKIJ KALENDARX OBLADAET TAKOJ VE STRUKTUROJ,NO W NEM DRUGIE NOMERA LET I
NAZWANIQ MESQCEW.
pERSY ISPOLXZU@T SOLNE^NYJ KALENDARX,OSNOWANNYJ NA RAZRABOTKAH oMARA hAJAMA.
iH KALENDARX SOSTOIT IZ DWENADCATI MESQCEW,PERWYE [ESTX IZ KOTORYH SODERVAT 31 DNEJ,
SLEDU@]IE PQTX |30 DNEJ,A W POSLEDNEM 29 DNEJ W OBY^NYE GODA I 30 DNEJ W WISOKOSNYE.
wISOKOSNYE GODA SLU^A@TSQ PO SLOVNOMU OBRAZCU KAVDYE ^ETYRE ILI PQTX LET.
kITAJSKIJ KALENDARX |\TO SLOVNAQ SISTEMA LUNNYH MESQCEW,SKOMBINIROWANNYH S
SOLNE^NYMI GODAMI.gODY PROHODQT PO CIKLAM IZ [ESTIDESQTI LET,OBY^NYJ GOD SODERVIT
12 MESQCEW,WISOKOSNYJ | 13;W KAVDOM MESQCE LIBO 29,LIBO 30 DNEJ.kAVDYJ GOD,
OBY^NYJ MESQC I DENX IMENUETSQ KOMBINACIEJ ODNOGO IZ DESQTI\NEBESNYH STEBLEJ"I
ODNOJ IZ DWENADCATI\ZEMNYH WETWEJ",W OB]EJ SLOVNOSTI ESTX [ESTXDESQT IMEN,KOTORYE
PROHODQT PO KRUGU.
29.9.2 pREOBRAZOWANIE W DRUGOJ KALENDARX
sLEDU@]IE KOMANDY OPISYWA@T WYBRANNU@ DATU (DATU,W KOTOROJ NAHODITSQ TO^KA) W
RAZLI^NYH KALENDARNYH SISTEMAH:
Mouse-2 Other Calendars
wYWODIT DATU,NA KOTOROJ WY ]ELKNULI,WYRAVENNU@ ^EREZ RAZLI^NYE DRUGIE
KALENDARI.
p c wYWODIT\KWIWALENT WYBRANNOGO DNQ W KOMMER^ESKOM KALENDARE ISO
(calendar-print-iso-date).
p j wYWODIT @LIANSKU@ DATU DLQ WYBRANNOGO DNQ (calendar-print-julian-date).
p a wYWODIT ASTRONOMI^ESKIJ (@LIANSKIJ) NOMER DNQ DLQ WYBRANNOJ DATY
(calendar-print-astro-day-number).
p h pOKAZYWAET IUDEJSKU@ DATU DLQ WYBRANNOGO DNQ (calendar-print-hebrew-
date).
p i pOKAZYWAET ISLAMSKU@ DATU DLQ WYBRANNOGO DNQ (calendar-print-islamic-
date).
p f pOKAZYWAET FRANCUZSKU@ REWOL@CIONNU@ DATU DLQ WYBRANNOGO DNQ (calendar-
print-french-date).
p C pOKAZYWAET KITAJSKU@ DATU DLQ WYBRANNOGO DNQ (calendar-print-chinese-
date).
p k pOKAZYWAET KOPTSKU@ DATU DLQ WYBRANNOGO DNQ (calendar-print-coptic-
date).
gLAWA 29:kALENDARX I DNEWNIK 311p e pOKAZYWAET\FIOPSKU@ DATU DLQ WYBRANNOGO DNQ (calendar-print-ethiopic-
date).
p p pOKAZYWAET DATU PERSIDSKOGO KALENDARQ DLQ WYBRANNOGO DNQ (calendar-print-
persian-date).
p m pOKAZYWAET DATU KALENDARQ mAJQ DLQ WYBRANNOGO DNQ (calendar-print-
mayan-date).
eSLI WY ISPOLXZUETE X,PROSTEJ[IJ SPOSOB PEREWESTI DATU W DRUGIE KALENDARI |
]ELKNUTX NA NEJ Mouse-2 I WYBRATX IZ POQWIW[EGOSQ MEN@ PUNKT Other Calendars.|TO
POKAVET W WIDE MEN@\KWIWALENTNYE FORMY DLQ DANNOJ DATY WO WSEH KALENDARQH,KOTORYE
PONIMAET Emacs.(wYBOR ALXTERNATIW IZ\TOGO MEN@ NE DELAET NI^EGO |ONO ISPOLXZUETSQ
TOLXKO DLQ POKAZA.)
pEREMESTITE TO^KU K VELAEMOJ DATE W GRIGORIANSKOM KALENDARE I NAVMITE PODHODQ]IE
KLAWI[I.p |\TO MNEMONIKA DLQ\print",POSKOLXKU Emacs\PE^ATAET"\KWIWALENTNU@ DATU
W\HO-OBLASTI.
29.9.3 pREOBRAZOWANIE IZ DRUGOGO KALENDARQ
wY MOVETE ISPOLXZOWATX PODDERVIWAEMYE KALENDARI DLQ ZADANIQ DATY,K KOTOROJ SLE-
DUET PEREMESTITXSQ.|TOT RAZDEL OPISYWAET KOMANDY DLQ PRODELYWANIQ\TOGO WO WSEH
KALENDARQH,KROME MAJQNSKOGO;^TOBY UZNATX,KAK\TO SDELATX DLQ KALENDARQ mAJQ,SMOT-
RITE SLEDU@]IJ RAZDEL.
g c pEREHOD K DATE,ZADANNOJ W KOMMER^ESKOM KALENDARE ISO (calendar-goto-iso-
date).
g j pEREHOD K DATE,ZADANNOJ W @LIANSKOM KALENDARE (calendar-goto-julian-
date).
g a pEREHOD K DATE,ZADANNOJ ASTRONOMI^ESKIM (@LIANSKIM) NOMEROM DNQ
(calendar-goto-astro-day-number).
g h pEREHOD K DATE,ZADANNOJ W IUDEJSKOM KALENDARE (calendar-goto-hebrew-
date).
g i pEREHOD K DATE,ZADANNOJ W ISLAMSKOM KALENDARE (calendar-goto-islamic-
date).
g f pEREHOD K DATE,ZADANNOJ WO FRANCUZSKOM REWOL@CIONNOM KALENDARE
(calendar-goto-french-date).
g C pEREHOD K DATE,ZADANNOJ W KITAJSKOM KALENDARE (calendar-goto-chinese-
date).
g p pEREHOD K DATE,ZADANNOJ W PERSIDSKOM KALENDARE (calendar-goto-persian-
date).
g k pEREHOD K DATE,ZADANNOJ W KOPTSKOM KALENDARE (calendar-goto-coptic-date).
g e pEREHOD K DATE,ZADANNOJ W\FIOPSKOM KALENDARE (calendar-goto-ethiopic-
date).
|TI KOMANDY ZAPRA[IWA@T U WAS DATU IZ DRUGOGO KALENDARQ,PEREME]A@T TO^KU K
\KWIWALENTNOJ DATE GRIGORIANSKOGO KALENDARQ I POKAZYWA@T DATU DRUGOGO KALENDARQ W
\HO-OBLASTI.pRI S^ITYWANII NAZWANIQ MESQCA Emacs ISPOLXZUET STROGOE ZAWER[ENIE (SM.rAZDEL 5.3 [zAWER[ENIE],S.47),PO\TOMU WAM NE NUVNO BESPOKOITXSQ O PRAWILXNOSTI NAPI-
SANIQ IUDEJSKIH,ISLAMSKIH ILI FRANCUZSKIH NAZWANIJ.
oDIN IZ WOPROSOW,^ASTO WOZNIKA@]IH W SWQZI S IUDEJSKIM KALENDAREM,| WY^ISLENIE
GODOW]INY SMERTI,NAZYWAEMOJ\yahrzeit".kALENDARX Emacs WKL@^AET SREDSTWA DLQ TAKIH
312 rUKOWODSTWO PO GNU EmacsWY^ISLENIJ.eSLI WY NAHODITESX W KALENDARE,KOMANDA M-x list-yahrzeit-dates SPRA-
[IWAET WAS O PROMEVUTKE LET I ZATEM POKAZYWAET DLQ\TOGO PROMEVUTKA SPISOK yahrzeit
DLQ DATY W TO^KE.eSLI WY NE W KALENDARE,\TA KOMANDA SNA^ALA SPROSIT O DATE SMERTI I
PROMEVUTKE LET,A ZATEM POKAVET SPISOK DAT yahrzeit.
29.9.4 pREOBRAZOWANIE IZ KALENDARQ mAJQ
|TO KOMANDY DLQ WYBORA DAT,OSNAWANNYH NA KALENDARE mAJQ:
g m l pEREHODIT K DATE,ZADANNOJ KALENDAREM DOLGOGO S^ETA (calendar-goto-mayan-
long-count-date).
g m n t pEREHODIT K SLEDU@]EMU POQWLENI@ NEKOTOROGO MESTA W KALENDARE TCOLKIN
(calendar-next-tzolkin-date).
g m p t pEREHODIT K PREDYDU]EMU POQWLENI@ NEKOTOROGO MESTA W KALENDARE TCOLKIN
(calendar-previous-tzolkin-date).
g m n h pEREHODIT K SLEDU@]EMU POQWLENI@ NEKOTOROGO MESTA W KALENDARE HAAB
(calendar-next-haab-date).
g m p h pEREHODIT K PREDYDU]EMU POQWLENI@ NEKOTOROGO MESTA W KALENDARE HAAB
(calendar-previous-haab-date).
g m n c pEREHODIT K SLEDU@]EMU POQWLENI@ NEKOTOROGO MESTA W KALENDARNOM KRUGE
(calendar-next-calendar-round-date).
g m p c pEREHODIT K PREDYDU]EMU POQWLENI@ NEKOTOROGO MESTA W KALENDARNOM KRUGE
(calendar-previous-calendar-round-date).
~TOBY PONQTX\TI KOMANDY,WY DOLVNY PONIMATX KALENDARI mAJQ.dOLGIJ S^ET |\TO
PODS^ET DNEJ W SLEDU@]IH EDINICAH:
1 KIN = 1 DENX 1 UINAL = 20 KIN 1 TUN = 18 UINAL
1 KATUN = 20 TUN 1 BAKTUN = 20 KATUN
tAKIM OBRAZOM,DATA 12.16.11.16.6 W DOLGOM S^ETE OZNA^AET 12 BAKTUN,16 KATUN,11 TUN,
16 UINAL I 6 KIN.kALENDARX Emacs MOVET OBRABATYWATX MAJQNSKIE DATY DOLGOGO S^E-
TA OT 7.17.18.13.1,NO NE BOLEE RANNIE.kOGDA WY ISPOLXZUETE KOMANDU g m l,NABIRAJTE
MAJQNSKU@ DATU DOLGOGO S^ETA,RAZDELQQ BAKTUN,KATUN,TUN,UINAL I KIN TO^KAMI.
mAJQNSKIJ KALENDARX TCOLKIN |\TO CIKL IZ 260 DNEJ,FORMIRUEMYJ PAROJ NEZAWISI-
MYH CIKLOW IZ 13 I 20 DNEJ.pOSKOLXKU\TOT CIKL POWTORQETSQ BESKONE^NO,Emacs PREDO-
STAWLQET KOMANDY DLQ PEREME]ENIQ NAZAD I WPERED K PREDYDU]EJ ILI SLEDU@]EJ TO^KE
CIKLA.nABERITE g m p t,^TOBY PEREJTI K PREDYDU]EJ DATE W TCOLKIN;Emacs SPROSIT U
WAS DATU W TCOLKIN I PEREMESTIT TO^KU K PREDYDU]EMU POQWLENI@\TOJ DATY.aNALOGI^NO,
NABERITE g m n t,^TOBY PEREJTI K SLEDU@]EMU POQWLENI@ DATY W TCOLKIN.
mAJQNSKIJ KALENDARX HAAB |\TO CIKL IZ 365 DNEJ,SOBRANNYJ IZ 18 MESQCEW PO 20 W
KAVDOM,ZA KOTORYMI SLEDUET PQTIDNEWNYJ PERIOD BEZ MESQCA.pODOBNO CIKLU TCOLKIN,
\TOT CIKL POWTORQETSQ BESKONE^NO,I ESTX KOMANDY DLQ PEREHODA NAZAD I WPERED K PREDY-
DU]EJ ILI SLEDU@]EJ TO^KE\TOGO CIKLA.nABERITE g m p h,^TOBY PEREJTI K PREDYDU]EJ
DATE HAAB;Emacs SPROSIT U WAS DATU W HAAB I PEREMESTIT TO^KU K PREDYDU]EMU POQWLENI@
\TOJ DATY.aNALOGI^NO,NABERITE g m n h,^TOBY PEREJTI K SLEDU@]EMU POQWLENI@ DATY
W HAAB.
mAJQ TAKVE ISPOLXZOWALI KOMBINACI@ DAT TCOLKIN I HAAB.|TA KOMBINACIQ | CIKL
PRIMERNO W 52 GODA,NAZYAWEMYJ KALENDARNYM KRUGOM.eSLI WY NABERETE g m p c,Emacs
SPROSIT U WAS DATY HAAB I TCOLKIN I ZATEM PEREMESTIT TO^KU K PREDYDU]EMU POQWLENI@
\TOJ KOMBINACII.iSPOLXZUJTE g m n c DLQ PEREME]ENIQ TO^KI K SLEDU@]EMU POQWLENI@
KOMBINACII.|TI KOMANDY SOOB]A@T OB O[IBKE,ESLI NABRANNAQ WAMI KOMBINACIQ DAT
HAAB/TCOLKIN NEWOZMOVNA.
gLAWA 29:kALENDARX I DNEWNIK 313pRI ZAPROSE MAJQNSKOJ DATY Emacs ISPOLXZUET STROGOE ZAWER[ENIE (SM.rAZDEL 5.3.3
[sTROGOE ZAWER[ENIE],S.48 ),PO\TOMU WAM NE NUVNO BESPOKOITXSQ O PRAWILXNOSTI NAPISA-
NIQ.
29.10 dNEWNIK
s POMO]X@ DNEWNIKA Emacs MOVNO PROSLEVIWATX NAZNA^ENNYE WSTRE^I I DRUGIE SOBY-
TIQ NA EVEDNEWNOJ OSNOWE I W SOWOKUPNOSTI S KALENDAREM.~TOBY WOSPOLXZOWATXSQ\TIMI
WOZMOVNOSTQMI,WY DOLVNY SNA^ALA SOZDATX FAJL DNEWNIKA,SODERVA]IJ PERE^ENX SOBY-
TIJ I IH DAT.tOGDA Emacs SMOVET AWTOMATI^ESKI PODOBRATX I POKAZATX WAM SOBYTIQ NA
SEGODNQ[NIJ DENX,NA BLIVAJ[EE BUDU]EE ILI DLQ UKAZANNOJ DATY.
pO UMOL^ANI@ W KA^ESTWE FAJLA DNEWNIKA Emacs ISPOLXZUET FAJL`~/diary'.|TO TOT
VE SAMYJ FAJL,^TO PRIMENQEISQ W UTILITE calendar.wOT PRIMER FAJLA`~/diary':
12/22/1988 Twentieth wedding anniversary!!
&1/1.Happy New Year!
10/22 Ruth's birthday.
* 21,*:Payday
Tuesday-weekly meeting with grad students at 10am
Supowit,Shen,Bitner,and Kapoor to attend.
1/13/89 Friday the thirteenth!!
&thu 4pm squash game with Lloyd.
mar 16 Dad's birthday
April 15,1989 Income tax due.
&* 15 time cards due.
w DANNOM PRIMERE DLQ WYRAWNIWANIQ OPISANIJ W BOLX[INSTWE WHOVDENIJ SOBYTIJ ISPOLX-
ZOWANY PROBELY.tAKOE FORMATIROWANIE POLNOSTX@ QWLQETSQ DELOM WKUSA.
hOTQ WEROQTNEE WSEGO WY NA^NETE SOSTAWLQTX EVEDNEWNIK WRU^NU@,Emacs PREDOSTAWLQET
WAM NESKOLXKO KOMAND DLQ PROSMOTRA,DOBAWLENIQ I IZMENENIQ ZAPISEJ DNEWNIKA.
29.10.1 kOMANDY DLQ PROSMOTRA ZAPISEJ W DNEWNIKE
pOSLE TOGO KAK WY SOZDALI FAJL`~/diary',WY MOVETE PROSMATRIWATX EGO IZ KALENDARQ.
wY TAKVE MOVETE PROSMOTRETX SPISOK SEGODNQ[NIH SOBYTIJ IZWNE REVIMA Calendar.
d pOKAZYWAET WSE ZAPISI DNEWNIKA DLQ WYBRANNOJ DATY (view-diary-entries).
Mouse-2 Diary
pOKAZYWAET WSE ZAPISI DNEWNIKA DLQ DATY,NA KOTOROJ WY ]ELKNULI.
s pOKAZYWAET WESX FAJL DNEWNIKA (show-all-diary-entries).
m pOME^AET WSE WIDIMYE DATY,DLQ KOTORYH ESTX ZAPISI W DNEWNIKE (mark-diary-
entries).
u uBIRAET METKI IZ OKNA KALENDARQ (calendar-unmark).
M-x print-diary-entries
pE^ATAET TWERDU@ KOPI@ OTOBRAVAENIQ DNEWNIKA W TOM WIDE,W KAKOM ON ESTX
NA\KRANE.
M-x diary pOKAZYWAET WSE WHOVDENIQ DNEWNIKA DLQ SEGODNQ[NEJ DATY.
M-x diary-mail-entries
oTPRAWLQET WAM PO PO^TE NAPOMINANIE O PREDSTOQ]IH SOBYTIQH.
314 rUKOWODSTWO PO GNU EmacsoTOBRAVENIE ZAPISEJ DNEWNIKA S POMO]X@ d POKAZYWAET W OTDELXNOM OKNE WHOVDENIQ
DNEWNIKA DLQ WYBRANNOJ W KALENDARE DATY.sTROKA REVIMA NOWOGO OKNA POKAZYWAET DATU
DLQ\TIH ZAPISEJ I WSE WYPADA@]IE NA NEE PRAZDNIKI.eSLI WY ZADADITE DLQ d ^ISLOWOJ
ARGUMENT,ONA POKAVET WSE ZAPISI DNEWNIKA NA UKAZANNOE ^ISLO DNEJ.tO ESTX,2 d POKAVET
WSE ZAPISI DLQ WYBRANNOJ DATY I DLQ SLEDU@]EGO DNQ.
dRUGOJ SPOSOB PROSMOTRETX ZAPISI DNEWNIKA DLQ KAKOJ-LIBO DATY |]ELKNUTX NA\TOJ
DATE Mouse-2,A ZATEM WYBRATX IZ POQWIW[EGOSQ MEN@ PUNKT Diary.
~TOBY POLU^ITX BOLEE [IROKIJ OBZOR UPOMQNUTYH W KALENDARE DNEJ,ISPOLXZUJTE KO-
MANDU m.oNA POKAZYWAET DATY,DLQ KOTORYH W DNEWNIKE ESTX ZAPISI,DRUGIM NA^ER-
TANIEM (ILI POME]AET POSLE NIH ZNAK`+',ESLI DISPLEJ NE MOVET OTOBRAZITX NESKOLXKO
NA^ERTANIJ).|TA KOMANDA PRIMENQETSQ KAK K WIDIMYM W DANNYJ MOMENT MESQCAM,TAK
I K OSTALXNYM,KOTORYE STANOWQTSQ WIDIMYMI PRI POSLEDU@]EJ PROKRUTKE.~TOBY WY-
KL@^ITX RAZMETKU I STERETX TEKU]IE METKI,NAVMITE u,^TO WYKL@^AET TAKVE I METKI
PRAZDNIKOW (SM.rAZDEL 29.6 [pRAZDNIKI],S.307).
~TOBY UWIDETX FAJL DNEWNIKA POLNOSTX@,A NE TOLXKO NEKOTORYE EGO WHOVDENIQ,IS-
POLXZUJTE KOMANDU s.
pRI WYWODE IZBRANNYH ZAPISEJ DNEWNIKA PRIMENQETSQ SREDSTWO WYBORO^NOGO POKAZA,
^TOBY SKRYTX NENUVNYE ZAPISI.
bUFER DNEWNIKA W TOJ FORME,KAK WY EGO WIDITE |\TO ILL@ZIQ,PO\TOMU PROSTAQ EGO
PE^ATX NE DAST TO,^TO WY WIDITE NA\KRANE.dLQ POLU^ENIQ TWERDOJ KOPII BUFERA DNEWNIKA
TAKIM,KAKIM ON WIDEN,ESTX OSOBAQ KOMANDA;\TO KOMANDA M-x print-diary-entries.oNA
POSYLAET DANNYE NEPOSREDSTWENNO NA PRINTER.wY MOVETE NASTRAIWATX EE,KAK lpr-region
(SM.rAZDEL 30.4 [rASPE^ATKA],S.331).
kOMANDA M-x diary POKAZYWAET ZAPISI DNEWNIKA DLQ TEKU]EJ DATY,NEZAWISIMO OT TOGO,
WIDEN LI KALENDARX,I KROME TOGO,WOZMOVNO,DLQ NESKOLXKIH SLEDU@]IH DNEJ;PEREMENNAQ
number-of-diary-entries ZADAET ^ISLO WKL@^AEMYH DNEJ.sM.RAZDEL\Calendar"W The
Emacs Lisp Reference Manual.
eSLI WY POMESTITE W WA[ FAJL`.emacs'STROKU (diary),TO PRI WHODE W Emacs WAM
BUDET AWTOMATI^ESKI POKAZYWATXSQ OKNO S ZAPISQMI DNEWNIKA NA SEGODNQ[NIJ DENX.sTROKA
REVIMA\TOGO OKNA POKAZYWAET DATU I WYPADA@]IE NA NEE PRAZDNIKI.
mNOGIM POLXZOWATELQM NRAWITSQ POLU^ATX NAPOMINANIQ O SOBYTIQH IZ EVEDNEW-
NIKA PO PO^TE.~TOBY POSLATX SEBE TAKIE SOOB]ENIQ,ISPOLXZUJTE KOMANDU M-x
diary-mail-entries.pREFIKSNYJ ARGUMENT UKAZYWAET,SKOLXKO DNEJ (NA^INAQ S
SEGODNQ[NEGO) SLEDUET PROWERQTX;INA^E ^ISLO DNEJ OPREDELQETSQ PO PEREMENNOJ
diary-mail-days.
29.10.2 fAJL DNEWNIKA
wA[ FAJL DNEWNIKA |\TO FAJL,W KOTOROM ZAPISANY SOBYTIQ,SWQZANNYE S OPREDE-
LENNYMI DATAMI.iMQ\TOGO FAJLA ZADAETSQ PEREMENNOJ diary-file;PO UMOL^ANI@\TO
`~/diary'.pROGRAMMA calendar PODDERVIWAET PODMNOVESTWO FORMATA,DOPUSKAEMOGO SRED-
STWAMI DNEWNIKA W Emacs,TAK ^TO WY MOVETE ISPOLXZOWATX\TU UTILITU DLQ PROSMOTRA
FAJLA DNEWNIKA S RAZUMNYMI REZULXTATAMI,ESLI NE S^ITATX WHOVDENIJ,KOTORYE ONA NE
PONIMAET.
kAVDAQ ZAPISX W FAJLE DNEWNIKA OPISYWAET ODNO SOBYTIE I SOSTOIT IZ ODNOJ ILI
NESKOLXKIH STROK.zAPISX WSEGDA NA^INAETSQ SO SPECIFIKACII DATY S LEWOGO KRAQ.oSTALX-
NAQ ^ASTX ZAPISI |\TO PROSTO TEKST,OPISYWA@]IJ SOBYTIE.eSLI ZAPISX SODERVIT BOLEE
ODNOJ STROKI,TO STROKI POSLE PERWOJ DOLVNY NA^INATXSQ S OTSTUPA,KAK UKAZANIE NA TO,
^TO ONI PRODOLVA@T PREDYDU]EE WHOVDENIE.sTROKI,KOTORYE NE NA^INA@TSQ S PRAWILX-
NOJ DATY I NE PRODOLVA@T PREDYDU]EE WHOVDENIE,IGNORIRU@TSQ.
wY MOVETE PODAWITX RAZMETKU OPREDELENNYH ZAPISEJ IZ DNEWNIKA W OKNE KALENDARQ;
^TOBY SDELATX TAK,WSTAWXTE W NA^ALE ZAPISI PERED DATOJ ZNAK`&'.|TO NE WLIQET NA
gLAWA 29:kALENDARX I DNEWNIK 315OTOBRAVENIE ZAPISI W OKNE DNEWNIKA;\TO ZATRAGIWAET TOLXKO METKI DAT W OKNE KALENDA-
RQ.zAPRET POMETKI ZAPISI OSOBENNO POLEZEN DLQ OBOB]ENNYH WHOVDENIJ,KOTORYE INA^E
POMETILI BY SLI[KOM MNOGO RAZNYH DNEJ.
eSLI PERWAQ STROKA ZAPISI SOSTOIT TOLXKO IZ DATY ILI NAZWANIQ DNQ NEDELI,I POSLE
NEE NET PROPUSKOW ILI PUNKTUACII,TO TAKAQ STROKA NE WYWODITSQ W OKNE DNEWNIKA;TAM
POQWLQ@TSQ TOLXKO STROKI PRODOLVENIQ.nAPRIMER,TAKAQ ZAPISX:
02/11/1989
Bill B.visits Princeton today
2pm Cognitive Studies Committee meeting
2:30-5:30 Liz at Lawrenceville
4:00pm Dentist appt
7:30pm Dinner at George's
8:00-10:00pm concert
POQWLQETSQ W OKNE DNEWNIKA BEZ STROKI S DATOJ W NA^ALE.tAKOJ STILX ZAPISEJ WYGLQDIT
KRASIWEE,ESLI WY PROSMATRIWAETE WHOVDENIQ DLQ ODNOGO DNQ,NO MOVET ZAPUTATX,ESLI WY
POPROSITE POKAZATX ZAPISI DLQ NESKOLXKIH DNEJ.
wY MOVETE REDAKTIROWATX ZAPISI DNEWNIKA W TOM WIDE,KAK ONI POQWLQ@TSQ W OKNE,NO
WAVNO POMNITX,^TO\TOT POKAZANNYJ BUFER SODERVIT POLNYJ FAJL DNEWNIKA,NO NEKOTORYE
EGO ^ASTI SKRYTY IZ WIDA.|TO OZNA^AET W ^ASTNOSTI,^TO KOMANDA C-f (forward-char)
MOVET POMESTITX TO^KU W TAKOM MESTE,KOTOROE KAVETSQ KONCOM STROKI,NO NA SAMOM DELE
\TO SEREDINA KAKOJ-TO SKRYTOJ STROKI.
bUDXTE WNIMATELXNY PRI REDAKTIROWANII ZAPISEJ DNEWNIKA!wSTAWKA NOWYH STROK ILI
DOBAWLENIE/UDALENIE ZNAKOW W SEREDINE WIDIMOJ STROKI NE MOGUT PRI^INITX PROBLEM,NO
REDAKTIROWANIE W KONCE STROKI MOVET DELATX NE TO,^TO WY OVIDAETE.uDALENIE STROKI
MOVET UDALITX DRUGIE NEWIDIMYE ZAPISI,KOTORYE SLEDU@T ZA NEJ.pERED REDAKTIROWANI-
EM DNEWNIKA LU^[E WSEGO OTOBRAZITX FAJL POLNOSTX@ S POMO]X@ KOMANDY s (show-all-
diary-entries).
29.10.3 fORMAT DAT
wOT NESKOLXKO PRIMERNYH ZAPISEJ DNEWNIKA,ILL@STRIRU@]IH RAZLI^NYE SPOSOBY FOR-
MATIROWANIQ DATY.wSE\TI PRIMERY POKAZYWA@T DATY,ZAPISANNYE W AMERIKANSKOM PO-
RQDKE (MESQC,DENX,GOD),NO REVIM Calendar PODDERVIWAET EWROPEJSKIJ PORQDOK (DENX,
MESQC,GOD) KAK ALXTERNATIWU.
4/20/93 Switch-over to new tabulation system
apr.25 Start tabulating annual results
4/30 Results for April are due
*/25 Monthly cycle finishes
Friday Don't leave without backing up files
pERWAQ ZAPISX POQWLQETSQ TOLXKO ODIN RAZ,20 APRELQ 1993 GODA.wTORAQ I TRETXQ PO-
QWLQ@TSQ KAVDYJ GOD W ZADANNYE DNI,A ^ETWERTAQ ISPOLXZUET DLQ MESQCA SIMWOL PODSTA-
NOWKI (ZWEZDO^KU),PO\TOMU ONA POQWLQETSQ 25-GO ^ISLA KAVDOGO MESQCA.pOSLEDNQQ ZAPISX
POQWLQETSQ KAVDU@ NEDEL@ W PQTNICU.
dLQ WYRAVENIQ DATY WY MOVETE ISPOLXZOWATX TOLXKO ^ISLA,KAK`MESQC/DENX'ILI`ME-
SQC/DENX/GOD'.pOSLE\TOGO DOLVNA IDTI NE-CIFRA.w SAMOJ DATE,MESQC I DENX DOLVNY
BYTX ODNOZNA^NYMI ILI DWUZNA^NYMI ^ISLAMI.nEOBQZATELXNYJ GOD |\TO TOVE ^ISLO,
EGO MOVNO SOKRA]ATX DO POSLEDNIH DWUH CIFR;TO ESTX WY MOVETE PISATX KAK`11/12/1989',
TAK I`11/12/89'.
dATY TAKVE MOVNO ZAPISYWATX W FORMATE`NAZWANIE-MESQCA DENX'ILI`NAZWANIE-MESQCA
DENX,GOD',GDE NAZWANIE MESQCA MOVNO PISATX POLNOSTX@ ILI SOKRA]ATX DO TREH BUKW (S
TO^KOJ ILI BEZ).rEGISTR ZNA^ENIQ NE IMEET.
316 rUKOWODSTWO PO GNU EmacsdATA MOVET BYTX OBOB]ENNOJ,TO ESTX ^ASTI^NO NEDOOPREDELENNOJ.tOGDA ONA PRIMENQ-
ETSQ KO WSEM DATAM,SOOTWETSTWU@]IM SPECIFIKACII.eSLI DATA NE SODERVIT GOD,TO ONA
OBOB]ENNAQ I OTNOSITSQ KO WSEM GODAM.iLI VE MESQC,DENX ILI GOD MOGUT BYTX ZNAKOM
`*';\TO SOOTWETSTWUET L@BOMU MESQCU,DN@ ILI GODU.tAKIM OBRAZOM,WHOVDENIE DNEWNIKA
`3/*/*'SOOTWETSTWUET L@BOMU DN@ MARTA W KAVDOM GODU;TO VE I DLQ`march *'.
eSLI WY PREDPO^ITAETE EWROPEJSKIJ STILX NAPISANIQ DAT | KOGDA DENX IDET PERED
MESQCEM | NABERITE W KALENDARE M-x european-calendar ILI USTANOWITE PEREMENNU@
european-calendar-style W ZNA^ENIE t PERED ISPOLXZOWANIEM L@BOJ KOMANDY KALENDA-
RQ ILI DNEWNIKA.|TOT REVIM INTERPRETIRUET WSE DATY W DNEWNIKE W EWROPEJSKOM STILE,
A TAKVE PRIMENQET EWROPEJSKIJ STILX PRI OTOBRAVENII DAT DNEWNIKA.(zAMETXTE,^TO PO-
SLE NAZWANIQ-MESQCA W EWROPEJSKOM STILE NET ZAPQTOJ.) ~TOBY WERNUTXSQ K AMERIKANSKOMU
(PRINIMAEMOMU PO UMOL^ANI@) STIL@ NAPISANIQ DAT,NABERITE M-x american-calendar.
wY MOVETE ISPOLXZOWATX NAZWANIE DNQ NEDELI W KA^ESTWE OBOB]ENNOJ DATY,KOTORAQ
OTNOSITSQ K L@BOJ DATE,PRIHODQ]EJSQ NA\TOT DENX NEDELI.nAZWANIQ DNEJ NEDELI MOVNO
SOKRA]ATX DO TREH BUKW (S TO^KOJ ILI BEZ) ILI PISATX POLNOSTX@;REGISTR ZNA^ENIQ NE
IMEET.
29.10.4 kOMANDY DLQ DOBAWLENIQ K DNEWNIKU
kOGDA WY NAHODITESX W KALENDARE,WAM DOSTUPNY NESKOLXKO KOMAND DLQ SOZDANIQ ZAPISEJ
W DNEWNIKE:
i d dOBAWLQET W DNEWNIK ZAPISX DLQ WYBRANNOJ DATY (insert-diary-entry).
i w dOBAWLQET W DNEWNIK ZAPISX DLQ WYBRANNOGO DNQ NEDELI (insert-weekly-
diary-entry).
i m dOBAWLQET W DNEWNIK ZAPISX DLQ WYBRANNOGO DNQ MESQCA (insert-monthly-
diary-entry).
i y dOBAWLQET W DNEWNIK ZAPISX DLQ WYBRANNOGO DNQ GODA (insert-yearly-diary-
entry).
wY MOVETE SOZDATX W DNEWNIKE ZAPISX DLQ KONKRETNOJ DATY,WYBRAW\TU DATU W OKNE
KALENDARQ I WYPOLNIW KOMANDU i d.|TA KOMANDA POKAZYWAET KONEC WA[EGO FAJLA DNEWNIKA
W DRUGOM OKNE I WSTAWLQET DATU;ZATEM WY MOVETE NAPE^ATATX OSTALXNU@ ^ASTX ZAPISI.
eSLI WY HOTITE SDELATX W DNEWNIKE ZAPISX,KOTORAQ OTNOSITSQ K KAKOMU-TO DN@ NEDELI,
WYBERITE\TOT DENX (MOVNO L@BOE EGO POQWLENIE) I NABERITE i w.|TO WSTAWIT NAZWANIE
DNQ NEDELI KAK OBOB]ENNU@ DATU;POTOM WY MOVETE WWESTI OSTALXNU@ ^ASTX ZAPISI.tAKIM
VE SPOSOBOM WY MOVETE SOZDATX EVEMESQ^NU@ ZAPISX.wYBERITE DENX MESQCA,PRIMENITE
KOMANDU i m I WWEDITE OSTATOK ZAPISI.aNALOGI^NO WY MOVETE WSTAWITX EVEGODNU@ ZAPISX
PRI POMO]I KOMANDY i y.
wSE OPISANNYE WY[E KOMANDY PO UMOL^ANI@ SOZDA@T POME^AEMYE ZAPISI.~TOBY SDE-
LATX W DNEWNIKE NEPOME^AEMU@ ZAPISX,DAJTE KOMANDE ^ISLOWOJ ARGUMENT.nAPRIMER,C-u
i w SOZDAET W DNEWNIKE NEPOME^AEMU@ EVENEDELXNU@ ZAPISX.
kOGDA WY IZMENITE FAJL DNEWNIKA,UBEDITESX,^TO WY SOHRANILI EGO PERED WYHODOM IZ
Emacs.
29.10.5 oSOBYE ZAPISI DNEWNIKA
pOMIMO WHOVDENIJ,OSNOWANNYH NA KALENDARNYH DATAH,FAJL DNEWNIKA MOVET SODER-
VATX sexp-WHOVDENIQ DLQ REGULQRNYH SOBYTIJ,TAKIH KAK GODOW]INY.tAKIE ZAPISI OSNO-
WANY NA LISPOWSKIH WYRAVENIQH (s-WYRAVENIQH),KOTORYE Emacs WYPOLNQET PO MERE SKA-
NIROWANIQ FAJLA DNEWNIKA.wMESTO DATY sexp-WHOVDENIE SODERVIT STROKU`%%',ZA KOTOROJ
gLAWA 29:kALENDARX I DNEWNIK 317IDET LISPOWSKOE WYRAVENIE,ZAKL@^ENNOE W KRUGLYE SKOBKI.|TO WYRAVENIE OPREDELQET,K
KAKIM DATAM OTNOSITSQ DANNAQ ZAPISX.
rEVIM Calendar PREDOSTAWLQET KOMANDY DLQ WSTAWKI NEKOTORYH ^ASTO ISPOLXZUEMYH
sexp-WHOVDENIJ:
i a dOBAWLQET W DNEWNIK ZAPISX O GODOW]INE SOBYTIQ DLQ TEKU]EJ DATY (insert-
anniversary-diary-entry).
i b dOBAWLQET BLO^NU@ ZAPISX DNEWNIKA DLQ TEKU]EJ OBLASTI (insert-block-
diary-entry).
i c dOBAWLQET CIKLI^ESKU@ ZAPISX DNEWNIKA,NA^INA@]U@SQ OT TEKU]EJ DATY
(insert-cyclic-diary-entry).
eSLI WY HOTITE SOZDATX W DNEWNIKE ZAPISX,KOTORAQ OTNOSITSQ K GODOW]INE KAKOJ-TO
DATY,PEREMESTITE TO^KU K\TOJ DATE I ISPOLXZUJTE KOMANDU i a.|TO POKAVET KONEC
WA[EGO FAJLA DNEWNIKA W DRUGOM OKNE I WSTAWIT OPISANIE GODOW]INY;ZATEM WY MOVETE
NABRATX OSTALXNU@ ^ASTX ZAPISI.zAPISX WYGLQDIT TAK:
%%(diary-anniversary 10 31 1948) Arthur's birthday
|TA ZAPISX OTNOSITSQ K 31 OKTQBRQ KAVDOGO GODA POSLE 1948;`10 31 1948'ZADAET DATU.
(eSLI WY ISPOLXZUETE EWROPEJSKIJ STILX KALENDARQ,MESQC I DENX MENQ@TSQ MESTAMI.)
pRI^INA TOGO,^TO\TO WYRAVENIE TREBUET UKAZANIQ NA^ALXNOGO GODA,SOSTOIT W TOM,^TO
PRODWINUTYE FUNKCII KALENDARQ MOGUT ISPOLXZOWATX EGO DLQ PODS^ETA ISTEK[IH LET.
bLO^NAQ ZAPISX DNEWNIKA PRIMENQETSQ K ZADANNOMU PROMEVUTKU POSLEDOWATELXNYH DAT.
wOT BLO^NAQ ZAPISX,KOTORAQ OTNOSITSQ KO WSEM DATAM OT 24 I@NQ 1990 DO 10 I@LQ 1990
GODA.
%%(diary-block 6 24 1990 7 10 1990) Vacation
`6 24 1990'OBOZNA^AET NA^ALXNU@ DATU,A`7 10 1990'| KONE^NU@.(oPQTX VE,ESLI WY
ISPOLXZUETE EWROPEJSKIJ STILX KALENDARQ,MESQC I DENX MENQ@TSQ MESTAMI.)
~TOBY WSTAWITX BLO^NU@ ZAPISX,POMESTITE TO^KU I METKU NA DWUH DATAH,KOTORYE
NA^INA@T I ZAWER[A@T PROMEVUTOK,I NABERITE i b.|TA KOMANDA POKAZYWAET KONEC WA[EGO
FAJLA DNEWNIKA W DRUGOM OKNE I WSTAWLQET OPISANIE BLOKA;POTOM WY MOVETE NAPE^ATATX
OSTALXNU@ ^ASTX ZAPISI.
cIKLI^ESKIE ZAPISI DNEWNIKA POWTORQ@TSQ POSLE FIKSIROWANNOGO INTERWALA DNEJ.~TO-
BY SOZDATX TAKU@ ZAPISX,WYBERITE NA^ALXNU@ DATU I ISPOLXZUJTE KOMANDU i c.|TA KO-
MANDA SPROSIT U WAS DLINU INTERWALA,A ZATEM WSTAWIT ZAPISX,WYGLQDQ]U@ SLEDU@]IM
OBRAZOM:
%%(diary-cyclic 50 3 1 1990) Renew medication
|TA ZAPISX OTNOSITSQ K 1 MARTA 1990 GODA I K KAVDOMU 50-OMU POSLEDU@]EMU DN@;`3 1
1990'ZADAET NA^ALXNU@ DATU.(eSLI WY ISPOLXZUETE EWROPEJSKIJ STILX KALENDARQ,MESQC
I DENX MENQ@TSQ MESTAMI.)
wSE TRI\TI KOMANDY SOZDA@T POME^AEMYE ZAPISI.~TOBY WSTAWITX NEPOME^AEMU@ ZA-
PISX,DAJTE KOMANDE ^ISLOWOJ ARGUMENT.nAPRIMER,C-u i a SOZDAET NEPOME^AEMU@ ZAPISX
DLQ GODOW]INY NEKOTOROGO SOBYTIQ.
pOMETKA sexp-WHOVDENIJ DNEWNIKA W KALENDARE ^REZWY^AJNO TREBOWATELXNA KO WREME-
NI,POSKOLXKU DOLVNA BYTX OTDELXNO PROWERENA KAVDAQ WIDIMAQ W OKNE KALENDARQ DATA.
pO\TOMU LU^[E DELATX sexp-WHOVDENIQ DNEWNIKA NEPOME^AEMYMI (S`&'),ESLI WOZMOVNO.
dRUGOJ,USLOVNENNYJ WID sexp-WHOVDENIQ,PLAWA@]AQ ZAPISX,ZADAET REGULQRNO SLU^A-
@]EESQ SOBYTIE PO SDWIGU,WYRAVENNOMU W DNQH,NEDELQH I MESQCAH.eE MOVNO SRAWNITX
S ZAPISQMI crontab,INTERPRETIRUEMYMI UTILITOJ cron.wOT NEPOME^AEMAQ PLAWA@]AQ
ZAPISX,KOTORAQ OTNOSITSQ K POSLEDNEMU ^ETWERGU NOQBRQ:
318 rUKOWODSTWO PO GNU Emacs&%%(diary-float 11 4 -1) American Thanksgiving
~ISLO 11 OBOZNA^AET NOQBRX (ODINNADCATYJ MESQC),4 OBOZNA^AET ^ETWERG (^ETWERTYJ DENX
NEDELI,GDE WOSKRESENXE S^ITAETSQ NULEM),A пЂЂ1 OBOZNA^AET\POSLEDNIJ"(1 OBOZNA^ALO BY
\PERWYJ",2 OBOZNA^ALO BY\WTOROJ",пЂЂ2 |\PREDPOSLEDNIJ"I TAK DALEE).mESQC MOVET
BYTX EDINSTWENNYM ILI SPISKOM MESQCEW.tAKIM OBRAZOM,WY MOGLI BY IZMENITX 11 WY[E
NA`'(1 2 3)'I POLU^ITX ZAPISX,OTNOSQ]U@SQ K POSLEDNEMU ^ETWERGU QNWARQ,FEWRALQ I
MARTA.eSLI MESQC ZADAN KAK t,ZAPISX OTNOSITSQ KO WSEM MESQCAM GODA.
w SAMOM OB]EM WIDE,sexp-WHOVDENIQ DNEWNIKA MOGUT PROIZWODITX DLQ OPREDELENIQ
SWOEJ PRIMENIMOSTI L@BYE WY^ISLENIQ.sM.RAZDEL\Sexp Diary Entries"W The Emacs Lisp
Reference Manual.
29.11 nAPOMINANIQ O NAZNA^ENNYH SOBYTIQH
eSLI U WAS W DNEWNIKE ESTX ZAPISX O NAZNA^ENNOM SOBYTII,I\TA ZAPISX NA^INAETSQ S
RASPOZNAWAEMOGO OPISANIQ WREMENI,Emacs MOVET PREDUPREDITX WAS ZA NESKOLXKO MINUT O
PRIBLIVENII\TOGO WREMENI.Emacs PREDUPREVDAET WAS O NAZNA^ENII,POKAZYWAQ SOOB]ENIE
W STROKE REVIMA.
~TOBY WKL@^ITX NAPOMINANIE O NAZNA^ENNYH SOBYTIQH,WY DOLVNY ZADEJSTWOWATX SRED-
STWO Emacs DLQ POKAZA WREMENI,M-x display-time (SM.rAZDEL 1.3 [sTROKA REVIMA],S.25).
wY TAKVE DOLVNY DOBAWITX K LOWU[KE diary-hook FUNKCI@ appt-make-list SLEDU@]IM
OBRAZOM:
(add-hook'diary-hook'appt-make-list)
pOME]ENIE TAKOGO TEKSTA W WA[ FAJL`.emacs'DELAET WSE SRAZU:
(display-time)
(add-hook'diary-hook'appt-make-list)
(diary 0)
eSLI SDELANA TAKAQ PODGOTOWKA,TO KOGDA WY OTOBRAVAETE DNEWNIK (S POMO]X@ KOMANDY
d W OKNE KALENDARQ ILI ^EREZ M-x diary),DLQ WSEH ZAPISEJ DNEWNIKA,W KOTORYH ESTX
RASPOZNAWAEMYE OPISANIQ WREMENI,NASTRAIWAETSQ SPISOK NAZNA^ENNYH SOBYTIJ,I PERED
KAVDYM IZ NIH WAM DELAETSQ NAPOMINANIE.
pREDPOLOVIM NAPRIMER,^TO FAJL DNEWNIKA SODERVIT TAKIE STROKI:
Monday
9:30am Coffee break
12:00pm Lunch
tOGDA PO PONEDELXNIKAM,POSLE TOGO KAK WY OTOBRAZITE DNEWNIK,WAM BUDUT NAPOMINATX W
9:20 O PERERYWE DLQ KOFE I W 11:50 OB OBEDE.
wY MOVETE ZAPISYWATX WREMQ W STILE am/pm (GDE`12:00am'OBOZNA^AET POLNO^X,A
`12:00pm'| POLDENX) ILI W DWADCATI^ETYREH^ASOWOM EWROPEJSKOM/WOENNOM STILE.nEOBQ-
ZATELXNO BYTX POSTOQNNYM;FAJL DNEWNIKA MOVET SODERVATX SMESX\TIH DWUH STILEJ.
Emacs AWTOMATI^ESKI OBNOWLQET SPISOK NAPOMINANIJ SRAZU POSLE POLUNO^I.|TO TAKVE
OTOBRAVAET W BUFERE DNEWNIKA ZAPISI DLQ SLEDU@]EGO DNQ,ESLI TOLXKO WY NE USTANOWILI
appt-display-diary RAWNOJ nil.
wY TAKVE MOVETE ISPOLXZOWATX SREDSTWA NAPOMINANIQ O NAZNA^ENNYH SOBYTIQH W KA-
^ESTWE BUDILXNIKA.kOMANDA M-x appt-add DOBAWLQET ZAPISI W SPISOK NAPOMINANIJ,NE
ZATRAGIWAQ WA[ FAJL DNEWNIKA.dLQ UDALENIQ ZAPISEJ IZ SPISKA NAPOMINANIJ PRIMENQET-
SQ KOMANDA M-x appt-delete.
wY MOVETE W L@BOE WREMQ WYKL@^ITX SREDSTWO NAPOMINANIQ O NAZNA^ENNYH SOBYTIQH,
USTANOWIW appt-issue-message W ZNA^ENIE nil.
gLAWA 29:kALENDARX I DNEWNIK 31929.12 sEZONNYJ PEREWOD WREMENI
Emacs PONIMAET RAZNICU MEVDU STANDARTNYM I SEZONNYM WREMENEM | WREMENA,WYDA-
WAEMYE DLQ WOSHODOW I ZAKATOW sOLNCA,SOLNCESTOQNIJ,RAWNODENSTWIJ I FAZ lUNY,U^I-
TYWA@T EGO.pRAWILA SEZONNOGO PEREWODA WREMENI MENQ@TSQ OT MESTA K MESTU I KROME
TOGO KOLEBALISX ISTORI^ESKI OT GODA K GODU.~TOBY DELATX SWO@ RABOTU PRAWILXNO,Emacs
DOLVEN ZNATX,KAKOE PRAWILO ISPOLXZOWATX.
nEKOTORYE OPERACIONNYE SISTEMY OTSLEVIWA@T PRAWILA,PRIMENQ@]IESQ W TOJ MEST-
NOSTI,GDE WY NAHODITESX;NA TAKIH SISTEMAH Emacs POLU^AET NEOBHODIMU@ INFORMACI@
OT SISTEMY AWTOMATI^ESKI.eSLI ^ASTX\TOJ INFORMACII ILI WSQ ONA NEIZWESTNA,Emacs
ZAPOLNQET PROBELY PRAWILAMI,ISPOLXZUEMYMI W DANNOE WREMQ W kEMBRIDVE,mASSA^U-
SETS.eSLI POLU^IW[IESQ PRAWILA |\TO NE TO,^TO WY HOTITE,WY MOVETE SOOB]ITX Emacs
NUVNYE PRAWILA,USTANAWLIWAQ OPREDELENNYE PEREMENNYE:calendar-daylight-savings-
starts I calendar-daylight-savings-ends.
zNA^ENIQMI\TIH PEREMENNYH DOLVNY BYTX LISPOWSKIE WYRAVENIQ,SSYLA@]IESQ NA
PEREMENNU@ year I WY^ISLQ@]IE GRIGORIANSKU@ DATU PEREHODA NA ZIMNEE I LETNEE WREMQ
W FORME SPISKA (MESQC DENX GOD).|TI ZNA^ENIQ DOLVNY BYTX RAWNY nil,ESLI W WA[EJ
MESTNOSTI NE BYWAET SEZONNOGO PEREWODA WREMENI.
Emacs ISPOLXZUET\TI WYRAVENIQ DLQ OPREDELENIQ DATY PEREWODA WREMENI PRI SOZDANII
SPISKA PRAZDNIKOW I DLQ KORREKTROWKI WREMENI PRI WY^ISLENIQH,SWQZANNYH S lUNOJ I
sOLNCEM.
dLQ MASSA^USETSKOGO kEMBRIDVA\TI ZNA^ENIQ TAKOWY:
(calendar-nth-named-day 1 0 4 year)
(calendar-nth-named-day -1 0 10 year)
|TO OBOZNA^AET PERWYJ NULEWOJ DENX NEDELI (WOSKRESENXE) ^ETWERTOGO MESQCA (APRELQ) W
GODU,ZADAWAEMOM PEREMENNOJ year,I POSLEDNEE WOSKRESENXE DESQTOGO MESQCA (OKTQBRQ) W
\TOM VE GODU.eSLI MOMENT PEREWODA WREMENI SMENILSQ BY NA 1 OKTQBRQ,WY USTANOWILI BY
PEREMENNU@ calendar-daylight-savings-starts W TAKOE ZNA^ENIE:
(list 10 1 year)
eSLI W WA[EJ MESTNOSTI WREMQ NE PEREWODITSQ,ILI ESLI WY HOTITE POLU^ATX WSE-
GDA STANDARTNOE WREMQ,USTANOWITE calendar-daylight-savings-starts I calendar-
daylight-savings-ends RAWNYMI nil.
pEREMENNAQ calendar-daylight-time-offset ZADAET RAZNICU WO WREMENI POSLE PEREWO-
DA,IZMERQEMU@ W MINUTAH.dLQ MASSA^USETSKOGO kEMBRIDVA\TO 60.
pEREMENNYE calendar-daylight-savings-starts-time I calendar-daylight-savings-
ends-time ZADA@T ^ISLO MINUT POSLE POLUNO^I PO MESTNOMU WREMENI,KOGDA PROISHODIT
PEREWOD ^ASOW.dLQ MASSA^USETSKOGO kEMBRIDVA ZNA^ENIQ OBOIH\TIH PEREMENNYH RAWNY
120.
320 rUKOWODSTWO PO GNU Emacs
gLAWA 30:rAZNOOBRAZNYE KOMANDY 32130 rAZNOOBRAZNYE KOMANDY
|TA GLAWA SODERVIT NESKOLXKO NEBOLX[IH TEM,KOTORYE NE WPISYWA@TSQ W DRUGIE GLA-
WY:^TENIE SETEWYH NOWOSTEJ,ZAPUSK KOMAND OBOLO^KI I PODPROCESSOW OBOLO^KI,ISPOLX-
ZOWANIE ODNOGO RAZDELQEMOGO Emacs DLQ UTILIT,KOTORYE PREDPOLAGA@T ZAPUSK REDAKTORA
KAK PODPROCESSA,PE^ATX TWERDOJ KOPII,SORTIROWKA TEKSTA,SUVENIE OTOBRAVENIQ DO ^ASTI
BUFERA,REDAKTIROWANIE DWUHKOLONO^NYH I DWOI^NYH FAJLOW,SOHRANENIE SEANSOW Emacs
DLQ POSLEDU@]EGO PRODOLVENIQ,\MULQCIQ DRUGIH REDAKTOROW I RAZLI^NYE RAZWLE^ENIQ.
30.1 Gnus
Gnus |\TO PAKET Emacs,RAZRABOTANNYJ W PERWU@ O^EREDX DLQ ^TENIQ I OTPRAWKI NOWO-
STEJ Usenet.eGO TAKVE MOVNO ISPOLXZOWATX DLQ ^TENIQ I NAPISANIQ OTWETOW NA SOOB]ENIQ
IZ MNOGIH DRUGIH ISTO^NIKOW |PO^TY,UDALENNYH KATALOGOW,DAJDVESTOW I DRUGIH.
zDESX MY DAEM WWEDENIE W Gnus I OPISYWAEM NEKOTORYE OSNOWNYE WOZMOVNOSTI.dLQ
POLU^ENIQ PODROBNOJ INFORMACII O Gnus NABERITE M-x info I WYBERITE ZATEM RUKOWODSTWO
PO Gnus.
~TOBY ZAPUSTITX Gnus,NAPE^ATAJTE M-x gnus hRETi.
30.1.1 bUFERY Gnus
w PROTIWOPOLOVNOSTX BOLX[INSTWU OBY^NYH PAKETOW Emacs,Gnus ISPOLXZUET DLQ PO-
KAZA INFORMACII I POLU^ENIQ KOMAND NESKOLXKO RAZNYH BUFEROW.bOLX[U@ ^ASTX WREMENI
POLXZOWATELI PROWODQT W TREH BUFERAH:BUFERE GRUPP,BUFERE REZ@ME I BUFERE STATXI.
bUFER GRUPP SODERVIT PERE^ENX GRUPP.|TO PERWYJ BUFER,KOTORYJ Gnus POKAZYWAET
POSLE ZAPUSKA.oBY^NO W NEM POKAZANY TOLXKO TE GRUPPY,NA KOTORYE WY PODPISANY,I
W KOTORYH ESTX NEPRO^TENNYE STATXI.iSPOLXZUJTE\TOT BUFER DLQ WYBORA KONKRETNOJ
GRUPPY.
bUFER REZ@ME POSTRO^NO PERE^ISLQET STATXI ODNOJ GRUPPY.pO UMOL^ANI@ DLQ KAVDOJ
STATXI POKAZYWA@TSQ AWTOR,ZAGOLOWOK I ^ISLO STROK,NO\TO MOVNO NASTROITX PO SWOEMU
WKUSU,KAK I BOLX[U@ ^ASTX TOGO,^TO OTOBRAVAET Gnus.bUFER REZ@ME SOZDAETSQ,KOGDA
WY WYBIRAETE GRUPPU W BUFERE GRUPP,I UNI^TOVAETSQ,KOGDA WY POKIDAETE\TU GRUPPU.
iSPOLXZUJTE\TOT BUFER DLQ WYBORA STATXI.
bUFER STATXI POKAZYWAET SAMU STATX@.pRI OBY^NOM ISPOLXZOWANII Gnus WY NE WYBI-
RAETE\TOT BUFER | WSE POLEZNYE KOMANDY,PREDNAZNA^ENNYE DLQ DEJSTWIJ NAD STATXEJ,
RABOTA@T IZ BUFERA REZ@ME.nO WY MOVETE WYBRATX BUFER STATXI I WYPOLNQTX WSE KOMAN-
DY Gnus IZ NEGO,ESLI HOTITE.
30.1.2 kOGDA Gnus ZAPUSKAETSQ
pRI ZAPUSKE Gnus S^ITYWAET WA[ FAJL INICIALIZACII NOWOSTEJ`.newsrc'I PYTAETSQ
USTANOWITX SWQZX S LOKALXNYM SERWEROM NOWOSTEJ,KOTORYJ SLUVIT HRANILI]EM STATEJ.
sERWER NOWOSTEJ NE OBQZAN BYTX TEM VE KOMPX@TEROM,NA KOTORYJ WY WO[LI.
eSLI WY ZAPUSTILI Gnus I SOEDINILISX S SERWEROM,NO NE WIDITE W BUFERE GRUPP NI
ODNOJ GRUPPY,NABERITE L ILI A k,^TOBY POLU^ITX PERE^ENX WSEH GRUPP.zATEM NAVIMAJTE
u,^TOBY PEREKL@^ATX PODPISKU NA GRUPPY.
kOGDA WY ZAPUSKAETE Gnus PERWYJ RAZ,ON PODPISYWAET WAS NA NESKOLXKO IZBRANNYH
GRUPP.wSE OSTALXNYE GRUPPY SNA^ALA UNI^TOVENY S WA[EJ TO^KI ZRENIQ;WY MOVETE
POLU^ITX IH PERE^ENX S POMO]X@ A k.wSE NOWYE GRUPPY,POQWLQ@]IESQ W DALXNEJ[EM NA
SERWERE,STANOWQTSQ DLQ WAS ZOMBIROWANNYMI;NABERITE A z,^TOBY POLU^ITX IH PERE^ENX.
wY MOVETE PODPISATXSQ NA GRUPPY,POKAZANNYE W\TIH SPISKAH,ISPOLXZUQ KOMANDU u.
322 rUKOWODSTWO PO GNU EmacskOGDA WY POKIDAETE Gnus PRI POMO]I q,ON AWTOMATI^ESKI ZAPISYWAET W WA[IH FAJLAH
INICIALIZACII`.newsrc'I`.newsrc.eld'STATUS PODPISKI WSEH GRUPP.oBY^NO WAM NE
STOIT REDAKTIROWATX\TI FAJLY WRU^NU@,NO WY MOVETE\TO DELATX,ESLI ZNAETE KAK.
30.1.3 oBZOR KOMAND Gnus
~TENIE NOWOSTEJ |\TO DWUH[AGOWYJ PROCESS:
1.wYBERITE GRUPPU W BUFERE GRUPP.
2.wYBIRAJTE STATXI W BUFERE REZ@ME.kAVDAQ WYBRANNAQ STATXQ POKAZYWAETSQ W BUFERE
STATXI W BOLX[OM OKNE POD BUFEROM REZ@ME W MALENXKOM OKNE.
kAVDYJ BUFER Gnus IMEET SWOI OSOBYE KOMANDY;ODNAKO,SMYSL L@BOGO DANNOGO KL@^A
W RAZLI^NYH BUFERAH Gnus OBY^NO ANALOGI^EN,DAVE ESLI I RAZLI^AETSQ.wOT KOMANDY
BUFEROW GRUPP I REZ@ME:
q w BUFERE GRUPP,OBNOWLQET FAJL INICIALIZACII`.newsrc'I POKIDAET Gnus.
w BUFERE REZ@ME,POKIDAET TEKU]U@ GRUPPU I WOZWRA]AET W BUFER GRUPP.tA-
KIM OBRAZOM,DWAVDY NAVAW q,WY WYJDETE IZ Gnus.
L w BUFERE GRUPP,PERE^ISLQET WSE DOSTUPNYE GRUPPY NA WA[EM SERWERE NOWOSTEJ
(KROME TEH,^TO WY UNI^TOVILI).|TO MOVET BYTX DLINNYJ SPISOK!
l w BUFERE GRUPP,PERE^ISLQET TOLXKO TE GRUPPY,NA KOTORYE WY PODPISANY,I
KOTORYE SODERVAT NEPRO^TENNYE STATXI.
u w BUFERE GRUPP,OTMENQET PODPISKU (ILI USTANAWLIWAET EE) NA GRUPPU,PERE-
^ISLENNU@ W STROKE,W KOTOROJ NAHODITSQ TO^KA.kOGDA WY WYHODITE IZ Gnus,
NAVAW q,Gnus PERE^ISLQET W WA[EM FAJLE`.newsrc'TE GRUPPY,NA KOTORYE WY
PODPISANY.pRI SLEDU@]EM ZAPUSKE Gnus WY NE UWIDITE\TU GRUPPU,POTOMU
^TO OBY^NO Gnus POKAZYWAET TOLXKO GRUPPY,NA KOTORYE WY PODPISANY.
C-k w BUFERE GRUPP,\UNI^TOVAET"GRUPPU NA TEKU]EJ STROKE | DAVE NE PERE^IS-
LQET EE OTNYNE W`.newsrc'.|TO ZATRAGIWAET KAK TEKU]IJ SEANS Gnus,TAK I
POSLEDU@]IE.
kOGDA WY POKIDAETE Gnus PRI POMO]I q,Gnus ZAPISYWAET INFORMACI@ W FAJLE
`.newsrc',OPISYWAQ WSE GRUPPY,KROME TEH,^TO WY\UNI^TOVILI".
h SPCi w BUFERE GRUPP,WYBIRAET GRUPPU NA STROKE POD KURSOROM I POKAZYWAET PERWU@
NEPRO^TENNU@ STATX@ W\TOJ GRUPPE.
w BUFERE REZ@ME,
пЂЏ wYBIRAET STATX@ POD KURSOROM,ESLI NI ODNA E]E NE WYBRANA.
пЂЏ pROKRU^IWAET TEKST TEKU]EJ STATXI (ESLI TAKAQ ESTX).
пЂЏ wYBIRAET SLEDU@]U@ NEPRO^TENNU@ STATX@,ESLI TEKU]AQ STATXQ KON^I-
LASX.
tAKIM OBRAZOM,WY MOVETE PROJTI PO WSEM STATXQM,POSLEDOWATELXNO NAVIMAQ
hSPCi.
h DELi w BUFERE GRUPP,PEREME]AET TO^KU K PREDYDU]EJ GRUPPE,SODERVA]EJ NEPRO-
^TENNYE STATXI.
w BUFERE REZ@ME,PROKRU^IWAET TEKST STATXI NAZAD.
n pEREME]AET TO^KU K SLEDU@]EJ NEPRO^ITANNOJ GRUPPE ILI WYBIRAET SLEDU@-
]U@ NEPRO^ITANNU@ STATX@.
p pEREME]AET TO^KU K PREDYDU]EJ NEPRO^ITANNOJ GRUPPE ILI WYBIRAET PREDY-
DU]U@ NEPRO^ITANNU@ STATX@.
gLAWA 30:rAZNOOBRAZNYE KOMANDY 323C-n
C-p pEREME]AET TO^KU K SLEDU@]EMU ILI PREDYDU]EMU PUNKTU,DAVE ESLI ON PO-
ME^EN KAK PRO^TENNYJ.|TO NE WYBIRAET GRUPPU ILI STATX@ NA TOJ STROKE.
s w BUFERE REZ@ME,NA^INAET NARA]IWAEMYJ POISK W TEKSTE TEKU]EGO BUFERA
STATXI,TO^NO TAK VE,KAK ESLI BY WY PEREKL@^ILISX W BUFER STATXI I NABRALI
C-s.
M-s regexp
hRETi
w BUFERE REZ@ME,PROIZWODIT POISK STATEJ,SODERVA]IH SOWPADENIE S regexp.
30.2 zAPUSK KOMAND OBOLO^KI IZ Emacs
w Emacs ESTX KOMANDY DLQ PEREDA^I ODINO^NYH KOMANDNYH STROK POD^INENNYM PRO-
CESSAM OBOLO^KI.sU]ESTWUET WOZMOVNOSTX INTERAKTIWNOGO ZAPUSKA OBOLO^KI S WWODOM I
WYWODOM W BUFER Emacs S IMENEM`*shell*'.
M-!KMD h RETi
zAPUSTITX KOMANDNU@ STROKU OBOLO^KI KMD I POKAZATX EE WYWOD (shell-
command).
M-| KMD h RETi
zAPUSTITX KOMANDNU@ STROKU OBOLO^KI KMD S SODERVIMYM OBLASTI W KA^E-
STWE WWODA;WOZMOVNA ZAMENA SODERVIMOGO OBLASTI WYWODOM KOMANDY (shell-
command-on-region).
M-x shell zAPUSTITX PODOBOLO^KU S WWODOM I WYWODOM ^EREZ BUFER Emacs.zATEM WY
MOVETE ZADAWATX KOMANDY INTERAKTIWNO.
30.2.1 oTDELXNYE KOMANDY OBOLO^KI
M-!(shell-command) S^ITYWAET W MINIBUFERE STROKU TEKSTA I WYPOLNQET EE KAK KO-
MANDU OBOLO^KI W PODOBOLO^KE,SOZDANNOJ TOLXKO DLQ\TOJ KOMANDY.sTANDARTNYJ WWOD
KOMANDE POSTUPAET IZ NULEWOGO USTROJSTWA.eSLI KOMANDA OBOLO^KI PROIZWODIT KAKOJ-LIBO
WYWOD,TO ON POSTUPAET W BUFER Emacs S IMENEM`*Shell Command Output*',KOTORYJ OTRA-
VAETSQ NE W WYBRANNOM,A W DRUGOM OKNE.~ISLOWOJ ARGUMENT,KAK W M-1 M-!,WELIT KOMANDE
WSTAWITX WESX WYWOD W TEKU]IJ BUFER.w\TOM SLU^AE TO^KA OSTAETSQ PERED WYWODOM,A
METKA USTANAWLIWAETSQ ZA NIM.
eSLI KOMANDNAQ STROKA OBOLO^KI ZAWER[AETSQ NA`&',ONA WYPOLNQETSQ ASINHRONNO.dLQ
SINHRONNOJ KOMANDY OBOLO^KI shell-command WOZWRA]AET WYHODNOE ZNA^ENIE\TOJ KOMAN-
DY (0 OBOZNA^AET USPEH),KOGDA ONA WYZYWAETSQ IZ lISP-PROGRAMMY.
M-| (shell-command-on-region) POHOVA NA M-!,NO KOMANDE OBOLO^KI PEREDAETSQ W KA^E-
STWE STANDARTNOGO WWODA SODERVIMOE OBLASTI,A NE PUSTOTA.eSLI ISPOLXZUETSQ ^ISLOWOJ
ARGUMENT,OZNA^A@]IJ WSTAWKU WYWODA W TEKU]IJ BUFER,TO STARAQ OBLASTX SNA^ALA UDA-
LQETSQ,A POTOM ZAMENQETSQ WYWODOM.oNA WOZWRA]AET WYHODNOE ZNA^ENIE KOMANDY,KOGDA
ZAPUSKAETSQ IZ LISPOWSKOJ PROGRAMMY.
oBE KOMANDY M-!I M-| ISPOLXZU@T OBOLO^KU,UKAZANNU@ PEREMENNOJ shell-file-name.
pRI ZAPUSKE Emacs\TA PEREMENNAQ INICIALIZIRUETSQ NA OSNOWANII WA[EJ PEREMENNOJ SRE-
DY SHELL.eSLI W IMENI\TOGO FAJLA NE UKAZYWAETSQ KATALOG,TO PROSMATRIWA@TSQ KATA-
LOGI W SPISKE exec-path;\TOT SPISOK INICIALIZIRUETSQ PRI ZAPUSKE Emacs PO PEREMENNOJ
SREDY PATH.wA[ FAJL`.emacs'MOVET OTMENQTX LIBO ODNU,LIBO OBE\TI INICIALIZACII
PO UMOL^ANI@.
i M-!I M-| OVIDA@T ZAWER[ENIQ KOMANDY OBOLO^KI.~TOBY OSTANOWITX OVIDANIE,
ISPOLXZUJTE KOMANDU C-g;ONA ZAWER[AET KOMANDU OBOLO^KI SIGNALOM SIGINT | TEM VE
SIGNALOM,KOTORYJ OBY^NO GENERIRUETSQ OBOLO^KOJ PRI WWODE C-c.Emacs VDET,POKA\TA
324 rUKOWODSTWO PO GNU EmacsKOMANDA NA SAMOM DELE ZAWER[ITSQ.eSLI KOMANDA OBOLO^KI NE OSTANOWILASX (POTOMU ^TO
ONA IGNORIRUET SIGNAL SIGINT),NABERITE C-g SNOWA;\TO PO[LET SIGNAL SIGKILL,KOTORYJ
NEWOZMOVNO PROIGNORIROWATX.
~TOBY UKAZATX SISTEMU KODIROWANIQ DLQ M-!ILI M-|,ISPOLXZUJTE KOMANDU C-x
hRETi c
NEPOSREDSTWENNO PERED NIMI.sM.rAZDEL 18.9 [zADANIE KODIROWANIQ],S.168.
sOOB]ENIQ KOMANDY OB O[IBKAH OBY^NO PEREMEVA@TSQ S OBY^NYM WYWODOM.eSLI WY
USTANOWITE PEREMENNU@ shell-command-default-error-buffer RAWNOJ STROKE,QWLQ@]EJSQ
IMENEM BUFERA,PROTOKOL O[IBOK BUDET WSTAWLQTXSQ PERED TO^KOJ W BUFERE S\TIM IMENEM.
30.2.2 iNTERAKTIWNAQ POD^INENNAQ OBOLO^KA
dLQ ZAPUSKA INTERAKTIWNOJ PODOBOLO^KI S SOHRANENIEM PROTOKOLA W BUFERE Emacs PRI-
MENQETSQ M-x shell.|TA KOMANDA SOZDAET (ILI WNOWX ISPOLXZUET) BUFER S IMENEM`*shell*'
I ZAPUSKAET PODOBOLO^KU S WWODOM,PRIHODQ]IM IZ\TOGO BUFERA,I WYWODOM,IDU]IM W
NEGO.tO ESTX,L@BOJ\TERMINALXNYJ WWOD"DLQ PODOBOLO^KI PRIHODIT IZ TEKSTA W BUFERE,
A L@BOJ\TERMINALXNYJ WYWOD"IZ PODOBOLO^KI POSTUPAET W BUFER,PRODWIGAQ TO^KU WPE-
RED.dLQ PEREDA^I WWODA W PODOBOLO^KU NEOBHODIMO OTPRAWITXSQ W KONEC BUFERA,NABRATX
NUVNOE I ZAWER[ITX NABOROM
h RETi.
Emacs NE VDET,POKA PODOBOLO^KA ^TO-LIBO SDELAET.mOVNO PEREKL@^ATX OKNA ILI
BUFERY I REDAKTIROWATX IH,POKA OBOLO^KA OVIDAET,ILI POKA ONA WYPOLNQET KOMANDU.
wYWOD IZ PODOBOLO^KI VDET DO TEH POR,POKA U Emacs NE POQWITSQ WREMQ NA EGO OBRABOTKU;
PRIEM PROISHODIT WSQKIJ RAZ,KOGDA Emacs OVIDAET WWODA S KLAWIATURY,A TAKVE KOGDA
ESTX SWOBODNOE WREMQ.
w KA^ESTWE IMENI FAJLA DLQ ZAGRUZKI PODOBOLO^KI ISPOLXZUETSQ ZNA^ENIE PEREMENNOJ
explicit-shell-file-name,ESLI ONO NE nil.w PROTIWNOM SLU^AE,ISPOLXZUETSQ PEREMEN-
NAQ SREDY ESHELL ESLI ONA USTANOWLENA,ILI SHELL.eSLI UKAZANNOE IMQ FAJLA QWLQETSQ
OTNOSITELXNYM,PROSMATRIWA@TSQ KATALOGI W SPISKE exec-path;\TOT INICIALIZIRUETSQ
PO PEREMENNOJ SREDY PATH WO WREMQ ZAPUSKA Emacs.wA[ FAJL`.emacs'MOVET PEREKRYTX
ODNU ILI OBE IZ\TIH INICIALIZACIJ.
~TOBY UKAZATX DLQ OBOLO^KI SISTEMU KODIROWANIQ,WY MOVETE ISPOLXZOWATX KOMANDU
C-x
h RETi c NEPOSREDSTWENNO PERED M-x shell.wY TAKVE MOVETE ZADATX SISTEMU KODIROWA-
NIQ POSLE ZAPUSKA OBOLO^KI S POMO]X@ KOMANDY C-x hRETi p W EE BUFERE.sM.rAZDEL 18.9
[zADANIE KODIROWANIQ],S.168.
kAK TOLXKO OBOLO^KA ZAPU]ENA,NA WHOD EJ PODAETSQ SODERVIMOE FAJLA`~/.emacs_IMQ-
OBOLO^KI',ESLI\TOT FAJL SU]ESTWUET,GDE IMQ-OBOLO^KI QWLQETSQ IMENEM FAJLA,IZ KOTO-
ROGO ZAGRUVAETSQ OBOLO^KA.nAPRIMER,ESLI WY ISPOLXZUETE bash,TO EJ POSYLAETSQ FAJL
`~/.emacs_bash'.
kOMANDY cd,pushd I popd,PEREDAWAEMYE POD^INENNOJ OBOLO^KE,OTSLEVIWA@TSQ W
Emacs TAK,^TOBY KATALOG PO UMOL^ANI@ BUFERA`*shell*'WSEGDA SOWPADAL S RABO^IM KATA-
LOGOM OBOLO^KI.|TI KOMANDY RASPOZNA@TSQ SINTAKSI^ESKI PROWERKOJ POSYLAEMYH STROK
WWODA.eSLI WY ISPOLXZUETE DLQ\TIH KOMAND PSEWDONIMY,TO WY MOVETE UKAZATX Emacs,
^TO IH TOVE SLEDUET RASPOZNAWATX.nAPRIMER,ESLI ZNA^ENIE PEREMENNOJ shell-pushd-
regexp SOOTWETSTWUET NA^ALU KOMANDNOJ STROKI OBOLO^KI,TO\TA STROKA WOSPRINIMAETSQ
KAK KOMANDA pushd.eSLI DLQ`pushd'ISPOLXZU@TSQ PSEWDONIMY,TO NEOBHODIMO IZMENITX
\TU PEREMENNU@.aNALOGI^NO,shell-popd-regexp I shell-cd-regexp ISPOLXZU@TSQ DLQ
RASPOZNAWANIQ KOMAND,OBOZNA^A@]IH`popd'I`cd'.pRI^EM\TI KOMANDY RASPOZNA@TSQ
TOLXKO W NA^ALE KOMANDNOJ STROKI OBOLO^KI.
eSLI Emacs POLU^AET O[IBKU PRI POPYTKE OBRABOTATX TO,^TO ON S^ITAET KOMANDA-
MI`cd',`pushd'ILI`popd',ON ZAPUSKAET LOWU[KU shell-set-directory-error-hook (SM.rAZDEL 31.2.3 [lOWU[KI],S.349).
eSLI Emacs NE OTSLEVIWAET PRAWILXNO IZMENENIQ TEKU]EGO KATALOGA PODOBOLO^KI,IS-
POLXZUJTE KOMANDU M-x dirs,^TOBY SPROSITX OBOLO^KU,KAKOJ U NEE TEKU]IJ KATALOG.|TA
gLAWA 30:rAZNOOBRAZNYE KOMANDY 325KOMANDA RABOTAET DLQ OBOLO^EK,PODDERVIWA@]IH NAIBOLEE RASPROSTRANENNYJ SINTAKSIS
KOMAND;ONA NE RABOTAET S NEOBY^NYMI OBOLO^KAMI.
wY TAKVE MOVETE ISPOLXZOWATX M-x dirtrack-mode,^TOBY WKL@^ITX (ILI WYKL@^ITX)
ALXTERNATIWNYJ I BOLEE AGRESSIWNYJ METOD OTSLEVIWANIQ IZMENENIJ TEKU]EGO KATALOGA.
Emacs OPREDELQET W PODOBOLO^KE PEREMENNU@ SREDY EMACS SO ZNA^ENIEM t.sCENARIJ
OBOLO^KI MOVET PROWERITX\TU PEREMENNU@,^TOBY OPREDELITX,ZAPU]EN LI ON IZ PODOBO-
LO^KI Emacs.
30.2.3 rEVIM Shell
bUFERY OBOLO^KI ISPOLXZUET REVIM Shell,W KOTOROM OPREDELENO NESKOLXKO SPECIALXNYH
KL@^EJ,PRIWQZANNYH K PREFIKSU C-c.oNI WYBRANY TAK,^TO IMITIRU@T OBY^NYE KLAWI-
[I REDAKTIROWANIQ I UPRAWLENIQ ZADANIQMI,PRISUTSTWU@]IE W OBOLO^KAH WNE Emacs,S
TOJ LI[X RAZNICEJ,^TO SNA^ALA WY DOLVNY NABRATX C-c.nIVE PRIWEDEN POLNYJ SPISOK
TAKIH KL@^EJ REVIMA Shell.
hRETi w KONCE BUFERA,POSYLAET STROKU W KA^ESTWE WWODA;W PROTIWNOM SLU^AE KOPI-
RUET TEKU]U@ STROKU W KONEC BUFERA I POSYLAET EE (send-shell-input).pRI
KOPIROWANII STROKI L@BOJ TEKST W EE NA^ALE,SOOTWETSTWU@]IJ PEREMENNOJ
shell-prompt-pattern,PROPUSKAETSQ;ZNA^ENIE\TOJ PEREMENNOJ DOLVNO BYTX
REGULQRNYM WYRAVENIEM,KOTOROE SOOTWETSTWUET PODSKAZKAM,ISPOLXZUEMYM W
WA[EJ OBOLO^KE.
h TABi zAWER[AET IMQ KOMANDY ILI FAJLA PERED TO^KOJ W BUFERE OBOLO^KI (comint-
dynamic-complete).hTABi TAKVE ZAWER[AET SSYLKI NA ISTORI@ (SM.rAZ-
DEL 30.2.4.3 [sSYLKI NA ISTORI@],S.328 ) I IMENA PEREMENNYH SREDY.
pEREMENNAQ shell-completion-fignore ZADAET SPISOK RAS[IRENIJ FAJLOW,KO-
TORYE DOLVNY IGNORIROWATXSQ PRI ZAWER[ENII W REVIME Shell.uSTANOWKA
PO UMOL^ANI@ IGNORIRUET IMENA FAJLOW,ZAKAN^IWA@]IESQ NA`~',`#'ILI
`%'.dRUGIE RODSTWENNYE S Comint REVIMY ISPOLXZU@T PEREMENNU@ comint-
completion-fignore.
M-?wREMENNO POKAZYWAET SPISOK WOZMOVNYH ZAWER[ENIJ IMENI FAJLA PERED TO^KOJ
W BUFERE OBOLO^KI (comint-dynamic-list-filename-completions).
C-d lIBO UDALQET ODIN ZNAK,LIBO POSYLAET eof (comint-delchar-or-maybe-eof).
nABRANNYJ W KONCE BUFERA OBOLO^KI,C-d POSYLAET PODOBOLO^KE eof.nABRAN-
NYJ W L@BOJ DRUGOJ POZICII W\TOM BUFERE,C-d UDALQET ODIN ZNAK,KAK OBY^NO.
C-c C-a pEREME]AET W NA^ALO STROKI,NO POSLE PODSKAZKI,ESLI ONA ESTX (comint-bol).
eSLI WY NABERETE\TU KOMANDU DWA RAZA PODRQD,NA WTOROJ RAZ ONA WOZWRA]AET
K METKE PROCESSA,TO ESTX K NA^ALU WWODA,KOTORYJ WY E]E NE POSLALI PODOBO-
LO^KE.(oBY^NO\TO ODNO I TO VE MESTO | KONEC PODSKAZKI W TEKU]EJ STROKE
|NO POSLE C-c
h SPCi METKA PROCESSA MOVET OKAZATXSQ NA PREDYDU]EJ STROKE.)
C-c h SPCi nAKAPLIWAET NESKOLXKO STROK WWODA,I POTOM POSYLAET IH WMESTE.|TA KOMANDA
WSTAWLQET PERED TO^KOJ PEREWOD STROKI,NO NE POSYLAET PRED[ESTWU@]IJ TEKST
NA WHOD PODOBOLO^KI |PO KRAJNEJ MERE NE SEJ^AS.oBE STROKI,I TA,^TO PERED
PEREWODOM STROKI,I TA,^TO POSLE,BUDUT POSLANY WMESTE (I S RAZDELQ@]IM IH
PEREWODOM STROKI),KOGDA WY NAVMETE hRETi.
C-c C-u uNI^TOVAET WESX TEKST,KOTORYJ E]E NE BYL POSLAN W KA^ESTWE WWODA (comint-
kill-input).
C-c C-w uNI^TOVAET SLOWO PERED TO^KOJ (backward-kill-word).
C-c C-c pRERYWAET OBOLO^KU ILI EE TEKU]EE PODZADANIE,ESLI ONO SU]ESTWUET (comint-
interrupt-subjob).|TA KOMANDA UNI^TOVAET TAKVE WESX PREDNAZNA^ENNYJ DLQ
WWODA TEKST,KOTORYJ E]E NE BYL POSLAN.
326 rUKOWODSTWO PO GNU EmacsC-c C-z oSTANAWLIWAET OBOLO^KU ILI EE TEKU]EE PODZADANIE,ESLI ONO SU]ESTWUET
(comint-stop-subjob).|TA KOMANDA UNI^TOVAET TAKVE WESX TEKST,KOTORYJ
E]E NE BYL POSLAN W KA^ESTWE WWODA.
C-c C-\pOSYLAET SIGNAL WYHODA OBOLO^KE ILI EE TEKU]EMU PODZADANI@,ESLI ONO SU-
]ESTWUET (comint-quit-subjob).|TA KOMANDA UNI^TOVAET TAKVE WESX PREDNA-
ZNA^ENNYJ DLQ WWODA TEKST,KOTORYJ E]E NE BYL POSLAN.
C-c C-o uNI^TOVAET POSLEDN@@ PORCI@ WYWODA OT KOMANDY OBOLO^KI (comint-kill-
output).|TO POLEZNO,ESLI KOMANDA OBOLO^KI IZWERGAET MNOGO TEKSTA,KOTORYJ
TOLXKO ME[AET.
C-c C-r
C-M-l pROKRU^IWAET OKNO TAK,^TOBY NA^ALO POSLEDNEJ PORCII WYWODA OKAZALOSX WWER-
HU;TAKVE PEREME]AET TUDA KURSOR (comint-show-output).
C-c C-e pROKRU^IWAET OKNO,^TOBY NA^ALO POSLEDNEJ PORCII WYWODA OKAZALOSX WNIZU
(comint-show-maximum-output).
C-c C-f pEREME]AET WPERED NA ODNU KOMANDU OBOLO^KI,NO W PREDELAH TEKU]EJ STROKI
(shell-forward-command).pEREMENNAQ shell-command-regexp UKAZYWAET,KAK
RASPOZNATX KONEC KOMANDY.
C-c C-b pEREME]AET NAZAD NA ODNU KOMANDU OBOLO^KI,NO W PREDELAH TEKU]EJ STROKI
(shell-backward-command).
C-c C-l pOKAZYWAET ISTORI@ KOMAND OBOLO^KI\TOGO BUFERA W DRUGOM OKNE (comint-
dynamic-list-input-ring).
M-x dirs sPRA[IWAET OBOLO^KU O TEKU]EM KATALOGE,^TOBY Emacs SKOORDINIROWALSQ S
OBOLO^KOJ.
M-x send-invisible
hRETi TEKST hRETi
s^ITYWAET TEKST I POSYLAET EGO NA WHOD OBOLO^KI BEZ\HO.|TO POLEZNO,KOGDA
KOMANDA OBOLO^KI ZAPUSKAET PROGRAMMU,SPRA[IWA@]U@ PAROLX.
iLI WY MOVETE SOOB]ITX Emacs,KAK RASPOZNAWATX ZAPROSY PAROLQ I WYKL@-
^ATX DLQ NIH\HO:
(add-hook'comint-output-filter-functions
'comint-watch-for-password-prompt)
M-x comint-continue-subjob
wOZOBNOWLQET PROCESS OBOLO^KI.|TO POLEZNO,ESLI WY NE^AQNNO PRIOSTANOWILI
PROCESS OBOLO^KI.
1
M-x comint-strip-ctrl-m
uBIRAET WSE ZNAKI control-M IZ TEKU]EJ PORCII WYWODA OBOLO^KI.nAIBOLEE
UDOBNYJ SPOSOB ISPOLXZOWATX\TU KOMANDU | ZAPUSKATX EE AWTOMATI^ESKI,KO-
GDA WY POLU^AETE WYWOD OT PODOBOLO^KI.~TOBY SDELATX TAK,WY^ISLITE SLEDU-
@]EE LISPOWSKOE WYRAVENIE:
(add-hook'comint-output-filter-functions
'comint-strip-ctrl-m)
M-x comint-truncate-buffer
|TA KOMANDA USEKAET BUFER OBOLO^KI DO OPREDELENNOGO MAKSIMALXNOGO ^ISLA
STROK,ZADAWAEMOGO PEREMENNOJ comint-buffer-maximum-size.|TO MOVNO SDE-
LATX AWTOMATI^ESKI KAVDYJ RAZ PRI POLU^ENII WYWODA OT PODOBOLO^KI TAKIM
SPOSOBOM:1
wY NE DOLVNY PRIOSTANAWLIWATX PROCESS OBOLO^KI.pRIOSTANOWKA PODZADANIQ W OBOLO^KE |\TO SOWSEM
DRUGOE DELO,\TO OBY^NAQ PRAKTIKA,NO DLQ PRODOLVENIQ PODZADANIQ WY ISPOLXZUETE SAMU OBOLO^KU;
DANNAQ KOMANDA\TOGO NE SDELAET.
gLAWA 30:rAZNOOBRAZNYE KOMANDY 327(add-hook'comint-output-filter-functions
'comint-truncate-buffer)
rEVIM Shell TAKVE NASTRAIWAET KOMANDY RABOTY S ABZACAMI TAKIM OBRAZOM,^TO TOLXKO
PODSKAZKI OBOLO^KI NA^INA@T ABZACY.tAKIM OBRAZOM,ABZAC SOSTOIT IZ WWEDENNOJ KOMANDY
PL@S IZ SLEDU@]EGO ZA NEJ W BUFERE WYWODA.
rEVIM Shell PROISHODIT OT REVIMA Comint,REVIMA OB]EGO NAZNA^ENIQ DLQ OB]ENIQ S
INTERAKTIWNYMI PODPROCESSAMI.bOLX[INSTWO WOZMOVNOSTEJ REVIMA Shell W DEJSTWITELX-
NOSTI DAET REVIM Comint,KAK WY MOVETE PONQTX IZ IMEN PERE^ISLENNYH WY[E KOMAND.
oSOBYE SREDSTWA REVIMA Shell WKL@^A@T WYBOR REGULQRNOGO WYRAVENIQ DLQ RASPOZNAWANIQ
PODSKAZKI,SREDSTWO OTSLEVIWANIQ KATALOGOW I NESKOLXKO POLXZOWATELXSKIH KOMAND.
dRUGIE SREDSTWA Emacs,ISPOLXZU@]IE WARIANTY REVIMA Comint,WKL@^A@T GUD (SM.rAZDEL 23.5 [oTLAD^IKI],S.249) I M-x run-lisp (SM.rAZDEL 23.10 [zAPUSK WNE[NEGO lISPA],
S.256 ).
wY MOVETE ISPOLXZOWATX M-x comint-run DLQ WYPOLNENIQ L@BOJ PROGRAMMY PO WA[EMU
WYBORU W NEIZMENENNOM REVIME Comint |BEZ OSOBENNOSTEJ REVIMA Shell.
30.2.4 iSTORIQ KOMAND OBOLO^KI
bUFERY OBOLO^KI PODDERVIWA@T TRI SPOSOBA POWTORENIQ BOLEE RANNIH KOMAND.wY
MOVETE ISPOLXZOWATX TE VE KL@^I,^TO ISPOLXZU@TSQ W MINIBUFERE;ONI RABOTA@T WO
MNOGOM TAK VE,KAK W MINIBUFERE,WSTAWLQQ TEKST PREDYDU]IH KOMAND,WSEGDA OSTAWLQQ
TO^KU W KONCE BUFERA.wY MOVETE PEREMESTITXSQ PO BUFERU NAZAD K PREDYDU]IM KOMANDAM
W IH NA^ALXNOJ POZICII I ZATEM SNOWA POSLATX IH ILI SKOPIROWATX W KONEC.iLI WY MOVETE
ISPOLXZOWATX ZNAK`!'DLQ SSYLOK NA STARYE KOMANDY.
30.2.4.1 sPISOK ISTORII OBOLO^KI
M-p iZWLEKAET SLEDU@]U@ BOLEE STARU@ KOMANDU OBOLO^KI.
M-n iZWLEKAET SLEDU@]U@ BOLEE NOWU@ KOMANDU OBOLO^KI.
M-r regexp
hRETi
M-s regexp h RETi
pROIZWODIT POISK KOMANDY OBOLO^KI,SOOTWETSTWU@]EJ REGULQRNOMU WYRAVE-
NI@ regexp,WPERED ILI NAZAD.
C-c C-x (REVIM Shell)
iZWLEKAET SLEDU@]U@ KOMANDU W SPISKE ISTORII.
bUFERY OBOLO^KI PREDOSTAWLQ@T ISTORI@ RANEE WWEDENNYH KOMAND.~TOBY SNOWA IS-
POLXZOWATX KOMANDY OBOLO^KI,SOHRANENNYE W ISTORII,ISPOLXZUJTE KOMANDY REDAKTIROWA-
NIQ M-p,M-n,M-r I M-s.oNI RABOTA@T TAK VE,KAK KOMANDY ISTORII MINIBUFERA,ZA TEM
LI[X ISKL@^ENIEM,^TO DEJSTWU@T NA TEKST W KONCE BUFERA OBOLO^KI,GDE WY WSTAWLQLI
BY TEKST DLQ OTPRAWKI OBOLO^KE.
M-p WSTAWLQET BOLEE RANN@@ KOMANDU OBOLO^KI W BUFER OBOLO^KI.pOSLEDOWATELXNOE
PRIMENENIE M-p IZWLEKAET POSLEDOWATELXNO WSE BOLEE RANNIE KOMANDY OBOLO^KI,KAVDYJ
RAZ ZAME]AQ L@BOJ TEKST,UVE SU]ESTWOWAW[IJ W KA^ESTWE POTENCIALXNOGO WWODA DLQ OBO-
LO^KI.M-n RABOTAET POHOVE,NO POSLEDOWATELXNO NAHODIT BOLEE POZDNIE KOMANDY OBOLO^KI
IZ\TOGO BUFERA.
kOMANDY POISKA W ISTORII,M-r I M-s,S^ITYWA@T REGULQRNOE WYRAVENIE I PROIZWODQT
POISK SOWPADA@]EJ KOMANDY W ISTORII.kROME PREDOSTAWLENIQ WYBORA,KAKU@ IMENNO
KOMANDU WY HOTITE IZWLE^X,ONI RABOTA@T TO^NO TAK VE,KAK M-p I M-r.eSLI WY WWEDETE
PUSTOE REGULQRNOE WYRAVENIE,BUDET ISPOLXZOWANO TO REGULQRNOE WYRAVENIE,KOTOROE WY
PREDOSTAWILI W POSLEDNIJ RAZ.
328 rUKOWODSTWO PO GNU EmacskOGDA WY NA[LI VELAEMYJ PREDYDU]IJ WWOD,WY MOVETE SNOWA POSLATX EGO,NAVAW
h RETi,ILI SNA^ALA OTREDAKTIROWATX I ZATEM POSLATX,ESLI HOTITE.
~ASTO BYWAET POLEZNO ZANOWO WYPOLNITX NESKOLXKO POSLEDOWATELXNYH KOMAND OBOLO^KI,
KOTORYE RANEE WYPOLNQLISX PO PORQDKU.~TOBY SDELATX\TO,SNA^ALA NAJDITE I WYPOLNITE
PERWU@ KOMANDU W POSLEDOWATELXNOSTI.zATEM NABERITE C-c C-x;\TO IZWLE^ET SLEDU@]U@
KOMANDU | TU,KOTORAQ [LA ZA TOLXKO ^TO POWTORENNOJ.zATEM NAVMITE hRETi,^TOBY
ZANOWO WYPOLNITX\TU KOMANDU.wY MOVETE POWTORITX NESKOLXKO POSLEDOWATELXNYH KOMAND,
NABIRAQ C-c C-x h RETi SNOWA I SNOWA.
|TI KOMANDY POLU^A@T TEKST BOLEE RANNIH KOMAND OBOLO^KI IZ SPECIALXNOGO SPISKA
ISTORII,NE IZ SAMOGO BUFERA OBOLO^KI.pO\TOMU REDAKTIROWANIE BUFERA OBOLO^KI ILI
DAVE UNI^TOVENIE BOLX[IH EGO ^ASTEJ NE WLIQET NA ISTORI@,K KOTOROJ OBRA]A@TSQ\TI
KOMANDY.
nEKOTORYE OBOLO^KI SOHRANQ@T ISTORII IH KOMAND W FAJLAH,^TOBY WY MOGLI SO-
SLATXSQ NA STARYE KOMANDY IZ PREDYDU]IH SEANSOWx.Emacs S^ITYWAET FAJL ISTORII
KOMAND DLQ WYBRANNOJ WAMI OBOLO^KI,^TOBY PROINICIALIZIROWATX SWO@ SOBSTWENNU@ IS-
TORI@ KOMAND.|TOT FAJL NAZYWAETSQ`~/.bash_history'W bash,`~/.sh_history'W ksh I
`~/.history'W DRUGIH OBOLO^KAH.
30.2.4.2 kOPIROWANIE ISTORII OBOLO^KI
C-c C-p pEREME]AET TO^KU K PREDYDU]EJ PODSKAZKE (comint-previous-prompt).
C-c C-n pEREME]AET TO^KU K SLEDU@]EJ PODSKAZKE (comint-next-prompt).
C-c
h RETi kOPIRUET KOMANDU WWODA,W KOTOROJ NAHODITSQ TO^KA,WSTAWLQQ EE KOPI@ W KONEC
BUFERA (comint-copy-old-input).|TO POLEZNO,ESLI WY PEREMESTILI TO^KU
NAZAD K PREDYDU]EJ KOMANDE.pOSLE TOGO,KAK WY SKOPIROWALI\TU KOMANDU,
WY MOVETE POSLATX KOPI@ W KA^ESTWE WWODA,NAVAW hRETi.eSLI WY HOTITE,WY
MOVETE OTREDAKTIROWATX KOPI@ PERED OTPRAWLENIEM.
pEREME]ENIE K PREDYDU]EMU WWODU I POSLEDU@]EE EGO KOPIROWANIE S POMO]X@ C-c
h RETi DAET TOT VE REZULXTAT |TO VE SODERVIMOE BUFERA |KAKOJ WY POLU^ILI BY PRIME-
NENIEM M-p DOSTATO^NOE ^ISLO RAZ,^TOBY IZWLE^X\TU STARU@ KOMANDU IZ SPISKA ISTORII.
oDNAKO,C-c hRETi KOPIRUET TEKST IZ BUFERA,KOTORYE MOVET OTLI^ATXSQ OT TOGO,^TO NAHO-
DITSQ W SPISKE ISTORII,ESLI WY REDAKTIROWALI W BUFERE WWEDENNYJ TEKST POSLE TOGO,KAK
ON BYL POSLAN.
30.2.4.3 sSYLKI NA ISTORI@ OBOLO^KI
rAZLI^NYE OBOLO^KI,WKL@^AQ csh I bash,PODDERVIWA@T SSYLKI NA ISTORI@,KOTORYE
NA^INA@TSQ S`!'I`^'.rEVIM Shell MOVET PONIMATX TAKIE KONSTRUKCII I DELATX DLQ WAS
PODSTANOWKU.eSLI WY WSTAWILI SSYLKU NA ISTORI@ I NAVALI hTABi,\TO PRIWEDET K POISKU
SOWPADA@]EJ KOMANDY W ISTORII WWODA,PODSTANOWKE,ESLI ONA NEOBHODIMA,I POME]ENI@
W BUFER REZULXTATA NA MESTO SSYLKI.nAPRIMER,WY MOVETE IZWLE^X SAMU@ NEDAWN@@
KOMANDU,NA^INA@]U@SQ NA`mv',S POMO]X@!m v h TABi.wY MOVETE OTREDAKTIROWATX\TU
KOMANDU,ESLI HOTITE,I ZATEM POSLATX EE OBOLO^KE,NAVAW hRETi.
sSYLKI NA ISTORI@ DEJSTWU@T TOLXKO POSLE PODSKAZKI OBOLO^KI.pEREMENNAQ shell-
prompt-pattern UKAZYWAET,KAK RASPOZNATX PODSKAZKU.wOOB]E,REVIMY Comint ISPOLXZU-
@T DLQ OPREDELENIQ PODSKAZKI PEREMENNU@ comint-prompt-regexp;REVIM Shell ISPOLXZUET
shell-prompt-pattern,^TOBY USTANOWITX LOKALXNOE ZNA^ENIE comint-prompt-regexp.
w REVIME Shell ESTX WOZMOVNOSTX RASKRYWATX SSYLKI NA ISTORI@,KOGDA WY OTPRAWLQETE
IH OBOLO^KE.~TOBY ZATREBOWATX\TO,USTANOWITE PEREMENNU@ comint-input-autoexpand
RAWNOJ input.
wY MOVETE SDELATX TAK,^TOBY h SPCi PROIZWODIL RASKRYTIE ISTORII,PRIWQZAW hSPCi K
KOMANDE comint-magic-space.
gLAWA 30:rAZNOOBRAZNYE KOMANDY 32930.2.5 pARAMETRY REVIMA Shell
eSLI PEREMENNAQ comint-scroll-to-bottom-on-input NE RAWNA nil,KOMANDY WSTAWKI I
WOSSTANOWLENIQ PROKRU^IWA@T WYBRANNOE OKNO KNIZU PERED WSTAWKOJ.
eSLI comint-scroll-show-maximum-output NE RAWNA nil,TO PROKRUTKA IZ-ZA POSTUPLE-
NIQ WYWODA STARAETSQ RAZMESTITX POSLEDN@@ STROKU TEKSTA NA NIVNEJ STROKE OKNA,^TOBY
WY WIDELI KAK MOVNO BOLX[E POLEZNOGO TEKSTA.(|TO IMITIRUET POWEDENIE PROKRUTKI NA
MNOGIH TERMINALAH.) pO UMOL^ANI@\TA PEREMENNAQ RAWNA nil.
uSTANOWKOJ comint-scroll-to-bottom-on-output WY MOVETE SDELATX TAK,^TOBY TO^KA
PERESKAKIWALA W KONEC BUFERA WSQKIJ RAZ PRI POSTUPLENII WYWODA | NEZAWISIMO OT TOGO,
GDE TO^KA BYLA RANX[E.eSLI ZNA^ENIE RAWNO this,TO^KA PERESKAKIWAET W WYBRANNOM OKNE.
eSLI ZNA^ENIE RAWNO all,TO^KA PERESKAKIWAET W KAVDOM OKNE,POKAZYWA@]EM\TOT BUFER
Comint.eSLI ZNA^ENIE RAWNO other,TO^KA PERESKAKIWAET WO WSEH NEWYBRANNYH OKNAH,
POKAZYWA@]IH TEKU]IJ BUFER.pO UMOL^ANI@\TO nil,^TO OZNA^AET,^TO TO^KA NE DOLVNA
PEREME]ATXSQ W KONEC.
pEREMENNAQ comint-input-ignoredups GOWORIT,NUVNO LI SOHRANQTX W ISTORII POSLE-
DOWATELXNYE ODINAKOWYE STROKI WWODA.oTLI^NOE OT nil ZNA^ENIE WELIT OPUSKATX WWOD,
IDENTI^NYJ PREDYDU]EMU.pO UMOL^ANI@\TA PEREMENNAQ RAWNA nil;\TO ZNA^IT,^TO
SOHRANQETSQ L@BOJ WWOD,DAVE ESLI ON\KWIWALENTEN PREDYDU]EMU.
zAWER[ENIE IMEN FAJLOW UPRAWLQETSQ TREMQ PEREMENNYMI.pEREMENNAQ comint-
completion-addsuffix GOWORIT,WSTAWLQET LI ZAWER[ENIE PROBEL ILI KOSU@ ^ERTU,^TOBY
OBOZNA^ITX POLNOSTX@ ZAWER[ENNOE IMQ FAJLA ILI KATALOGA (NE-nil WELIT WSTAWLQTX PRO-
BEL ILI KOSU@ ^ERTU).comint-completion-recexact,ESLI NE RAWNA nil,UKAZYWAET hTABi
WYBIRATX NAIMENX[EE WOZMOVNOE ZAWER[ENIE,ESLI OBY^NYJ ALGORITM ZAWER[ENIQ Emacs
NE MOVET DOBAWITX DAVE ODNOGO ZNAKA.comint-completion-autolist,ESLI NE RAWNA nil,
WELIT PERE^ISLQTX WSE WOZMOVNYE ZAWER[ENIQ,KOGDA NELXZQ NAJTI TO^NOE ZAWER[ENIE.
kOMANDA comint-dynamic-complete-variable ZAWER[AET IMQ PEREMENNOJ,ISPOLXZUQ
USTANOWKI PEREMENNYH SREDY WNUTRI Emacs.pEREMENNYE,UPRAWLQ@]IE ZAWER[ENIEM IMEN
FAJLOW,PRIMENQ@TSQ I K ZAWER[ENI@ IMEN PEREMENNYH.|TA KOMANDA OBY^NO DOSTUPNA
^EREZ MEN@.
pRI ZAWER[ENII KOMAND OBY^NO RASSMATRIWA@TSQ TOLXKO ISPOLNQEMYE FAJLY.eSLI
WY USTANOWITE shell-command-execonly RAWNOJ nil,BUDUT RASSMATRIWATXSQ TAKVE IMENA
I NEISPOLNQEMYH FAJLOW.
wY MOVETE SKONFIGURIROWATX POWEDENIE`pushd'.eSTX PEREMENNYE,KOTORYE UKAZYWA@T,
WEDET LI SEBQ pushd,KAK cd,ESLI EJ NE ZADAN ARGUMENT (shell-pushd-tohome),WYTALKI-
WAET LI ONA KATALOG,A NE PROKRU^IWAET,ESLI EJ ZADAN ^ISLOWOJ ARGUMENT (shell-pushd-
dextract),I DOBAWLQET LI ONA KATALOGI W STEK TOLXKO W TOM SLU^AE,ESLI IH E]E NET W NEM
(shell-pushd-dunique).wYBRANNYE WAMI ZNA^ENIQ DOLVNY,RAZUMEETSQ,SOOTWETSTWOWATX
WA[EJ OBOLO^KE.
30.2.6 oBOLO^KA NA UDALENNOJ MA[INE
Emacs PREDOSTAWLQET DWE KOMANDY DLQ ZAHODA NA DRUGOJ KOMPX@TER I OB]ENIQ S NIM
^EREZ BUFER Emacs.
M-x telnet
h RETi IMQ-MA[INY hRETi
uSTANAWLIWAET S KOMPX@TEROM IMQ-MA[INY SOEDINENIE PO Telnet.
M-x rlogin
h RETi IMQ-MA[INY hRETi
uSTANAWLIWAET S KOMPX@TEROM IMQ-MA[INY SOEDINENIE PO Rlogin.
iSPOLXZUJTE M-x telnet,^TOBY USTANOWITX SOEDINENIE PO Telnet S DRUGIM KOMPX@TE-
ROM.(Telnet |\TO STANDARTNYJ PROTOKOL Internet DLQ ZAHODA NA UDALENNU@ SISTEMU.) oNA
330 rUKOWODSTWO PO GNU EmacsS^ITYWAET W MINIBUFERE IMQ DRUGOGO KOMPX@TERA W KA^ESTWE ARGUMENTA.kOGDA SOEDINENIE
USTANOWLENO,OB]ENIE S DRUGIM KOMPX@TEROM RABOTAET POHOVE NA OB]ENIE S PODOBOLO^KOJ:
WY MOVETE REDAKTIROWATX WWOD S POMO]X@ OBY^NYH KOMAND Emacs I POSYLATX EGO POSTRO^-
NO,NABIRAQ
hRETi.wYWOD WSTAWLQETSQ W BUFER WPEREME[KU SO WWODOM.
iSPOLXZUJTE M-x rlogin DLQ USTANOWKI SOEDINENIQ PO Rlogin.Rlogin |\TO DRUGOJ PRO-
TOKOL OB]ENIQ S UDALENNOJ SISTEMOJ,WO MNOGOM POHOVIJ NA Telnet,NO NE SOWMESTIMYJ
S NIM I PODDERVIWAEMYJ TOLXKO NA NEKOTORYH SISTEMAH.pREIMU]ESTWA Rlogin SOSTOQT
W TOM,^TO WY MOVETE SDELATX TAK,^TOBY WAM NEOBQZATELXNO BYLO ZADAWATX IMQ POLXZO-
WATELQ I PAROLX PRI OB]ENII MEVDU ^ASTO ISPOLXZUEMYMI MA[INAMI,I ^TO WY MOVETE
USTANOWITX WOSXMIBITNOE SOEDINENIE.(~TOBY SDELATX\TO W Emacs,USTANOWITE rlogin-
explicit-args RAWNOJ ("-8") PERED ZAPUSKOM Rlogin.)
M-x rlogin USTANAWLIWAET KATALOG PO UMOL^ANI@ DANNOGO BUFERA Emacs,^TOBY POLU-
^ATX DOSTUP K UDALENNOJ MA[INE ^EREZ FTP (SM.rAZDEL 14.1 [iMENA FAJLOW],S.105),I
OTSLEVIWAET KOMANDY OBOLO^KI,KOTORYE IZMENQ@T TEKU]IJ KATALOG,TAK VE,KAK REVIM
Shell.
eSTX DWA SPOSOBA OTSLEVIWANIQ KATALOGOW W BUFERE Rlogin | LIBO S POMO]X@ IMEN
UDALENNYH KATALOGOW`/MA[INA:KAT/',LIBO S POMO]X@ LOKALXNYH IMEN (\TO RABOTAET,
ESLI\UDALENNAQ"MA[INA RAZDELQET FAJLOWYE SISTEMY S WA[EJ NA^ALXNOJ MA[INOJ).wY
MOVETE ISPOLXZOWATX KOMANDU rlogin-directory-tracking-mode,^TOBY PEREKL@^ATX\TI
REVIMY.oTSUTSTWIE ARGUMENTA OBOZNA^AET ISPOLXZOWANIE IMEN UDALENNYH KATALOGOW,
POLOVITELXNYJ ARGUMENT OBOZNA^AET ISPOLXZOWANIE LOKALXNYH IMEN,A OTRICATELXNYJ
WYKL@^AET OTSLEVIWANIE KATALOGOW.
30.3 iSPOLXZOWANIE Emacs W KA^ESTWE SERWERA
rAZLI^NYE PROGRAMMY,TAKIE KAK mail,MOGUT WYZYWATX WYBRANNYJ WAMI REDAKTOR DLQ
REDAKTIROWANIQ OPREDELENNOGO TEKSTA,NAPRIMER,OTPRAWLQEMOGO SOOB]ENIQ.pO SOGLA[E-
NI@,BOLX[INSTWO\TIH PROGRAMM ISPOLXZU@T PEREMENNU@ SREDY EDITOR,^TOBY OPREDE-
LITX,KAKOJ REDAKTOR NADO ZAPUSKATX.eSLI WY USTANOWITE EDITOR RAWNOJ`emacs',ONI
WYZOWUT Emacs |NO NEUDOBNYM SPOSOBOM,ZAPUSKAQ NOWYJ OTDELXNYJ PROCESS Emacs.|TO
NEUDOBNO,POTOMU ^TO ZANIMAET WREMQ I POTOMU ^TO NOWYJ PROCESS Emacs NE RAZDELQET
BUFERY S SU]ESTWU@]IM PROCESSOM.
wY MOVETE SDELATX TAK,^TOBY W KA^ESTWE REDAKTORA DLQ PROGRAMM WRODE mail ISPOLX-
ZOWALSQ WA[ SU]ESTWU@]IJ PROCESS Emacs,PUTEM PRIMENENIQ KLIENTA I SERWERA Emacs.
wOT KAK\TO DELAETSQ.
wO-PERWYH,PODGOTOWKA.wNUTRI Emacs,WYZOWITE FUNKCI@ server-start.(wA[ FAJL
`.emacs'MOVET DELATX\TO AWTOMATI^ESKI,ESLI WY DOBAWITE W NEGO WYRAVENIE (server-
start).) zATEM,IZWNE Emacs,USTANOWITE PEREMENNU@ SREDY EDITOR RAWNOJ`emacsclient'.
(zAMETXTE,^TO NEKOTORYE PROGRAMMY ISPOLXZU@T DRUGU@ PEREMENNU@ SREDY;NAPRIMER,
^TOBY T
E
X ISPOLXZOWAL`emacsclient',WAM NUVNO USTANOWITX PEREMENNU@ SREDY TEXEDIT
RAWNOJ`emacsclient +%d %s'.)
wPOSLEDSTWII,KOGDA L@BAQ PROGRAMMA WYZYWAET UKAZANNU@ PROGRAMMU EDITOR,W RE-
ZULXTATE WA[EMU GLAWNOMU Emacs BUDET OTPRAWLENO SOOB]ENIE,^TOBY ON OBRATILSQ K
FAJLU.(pROGRAMMA emacsclient DELAET IMENNO\TO.) Emacs NEMEDLENNO POKAZYWAET\TOT
BUFER,I WY SRAZU MOVETE NA^ATX EGO REDAKTIROWANIE.
kOGDA WY ZAWER[ITE REDAKTIROWANIE\TOGO BUFERA,NABERITE C-x#(server-edit).|TO
SOHRANIT FAJL I PO[LET PROGRAMME emacsclient SOOB]ENIE,PRIKAZYWA@]EE WYJTI.pRO-
GRAMMY,ISPOLXZU@]IE EDITOR,OVIDA@T,POKA\REDAKTOR"(NA SAMOM DELE,emacsclient) NE
WYJDET.C-x#TAKVE PROWERQET DRUGIE OTLOVENNYE WNE[NIE ZAPROSY NA REDAKTIROWANIE
RAZLI^NYH FAJLOW I WYBIRAET SLEDU@]IJ.
gLAWA 30:rAZNOOBRAZNYE KOMANDY 331wY MOVETE PEREKL@^ITXSQ W SERWERNYJ BUFER WRU^NU@,ESLI HOTITE;NEOBQZATELXNO
POPADATX W NEGO S POMO]X@ C-x#.nO C-x#DAET EDINSTWENNYJ SPOSOB SKAZATX,^TO\ZAKON-
^ILI"S TEKU]IM.
eSLI WY USTANOWITE PEREMENNU@ server-window RAWNOJ OKNU ILI FREJMU,C-x#BUDET
POKAZYWATX SERWERNYJ BUFER W\TOM OKNE ILI FREJME.
pOKA mail ILI DRUGOE PRILOVENIE OVIDAET ZAWER[ENIQ emacsclient,emacsclient NE
^ITAET TERMINALXNYJ WWOD.pO\TOMU TERMINAL,KOTORYJ ISPOLXZOWALA mail,KAK BY BLO-
KIRUETSQ NA\TO WREMQ.~TOBY REDAKTIROWATX W WA[EM GLAWNOM Emacs,WAM NUVNA WOZMOV-
NOSTX ISPOLXZOWATX Emacs BEZ\TOGO TERMINALA.eSTX DWA SPOSOBA DOBITXSQ\TOGO:
пЂЏ iSPOLXZUQ OKONNU@ SISTEMU,ZAPUSKAJTE mail I GLAWNYJ Emacs W DWUH RAZNYH OKNAH.
pOKA mail OVIDAET emacsclient,OKNO,W KOTOROM ONA ZAPU]ENA,BLOKIRUETSQ,NO WY
MOVETE ISPOLXZOWATX Emacs,PEREKL@^IW OKNO.
пЂЏ iSPOLXZUJTE DLQ ZAPUSKA DRUGIH PROGRAMM,TAKIH KAK mail,REVIM Shell W Emacs;
TOGDA emacsclient BLOKIRUET TOLXKO PODOBOLO^KU W Emacs,I WY MOVETE PRODOLVATX
ISPOLXZOWATX Emacs DLQ REDAKTIROWANIQ\TOGO FAJLA.
nEKOTORYE PROGRAMMY ZAPISYWA@T DLQ WA[EGO REDAKTIROWANIQ WREMENNYE FAJLY.pO-
SLE TOGO,KAK WY OTREDAKTIROWALI TAKOJ WREMENNYJ FAJL,PROGRAMMA S^ITYWAET EGO I
UDALQET.eSLI SERWER Emacs POZVE POPROSQT OTREDAKTIROWATX FAJL S TEM VE IMENEM,ON
NE DOLVEN PREDPOLAGATX,^TO\TOT FAJL IMEET KAKOE-LIBO OTNO[ENIE K PREDYDU]EMU PO-
QWLENI@\TOGO VE IMENI.sERWER DELAET\TO,UNI^TOVAQ BUFER WREMENNOGO FAJLA,KOGDA
WY ZAKON^ILI S NIM.iSPOLXZUJTE PEREMENNU@ server-temp-file-regexp,^TOBY UKAZATX,
KAKIE FAJLY QWLQ@TSQ WREMENNYMI W\TOM SMYSLE;EE ZNA^ENIEM DOLVNO BYTX REGULQRNOE
WYRAVENIE,SOWPADA@]EE S IMENAMI WREMENNYH FAJLOW.
eSLI WY ZAPUSKAETE emacsclient S KL@^OM`-no-wait',ON WOZWRA]AETSQ SRAZU,NE DOVI-
DAQSX,POKA WY\ZAWER[ITE"S BUFEROM W Emacs.
30.4 wYWOD TWERDOJ KOPII
kOMANDY Emacs DLQ SOZDANIQ TWERDOJ KOPII POZWOLQ@T WAM NAPE^ATATX WESX BUFER
ILI TOLXKO EGO ^ASTX S ZAGOLOWKAMI ILI BEZ NIH.sMOTRITE TAKVE KOMANDY PE^ATI Dired
(SM.rAZDEL 14.10 [dRUGIE DEJSTWIQ NAD FAJLAMI],S.132) I DNEWNIKA (SM.rAZDEL 29.10.1
[kOMANDY DNEWNIKA],S.313 ).
M-x print-buffer
wYDATX RASPE^ATKU TEKU]EGO BUFERA S ZAGOLOWKAMI,SODERVA]IMI IMQ FAJLA
I NOMER STRANICY.
M-x lpr-buffer
wYDATX RASPE^ATKU TEKU]EGO BUFERA BEZ ZAGOLOWKOW STRANIC.
M-x print-region
kAK print-buffer,NO PE^ATATX TOLXKO TEKU]U@ OBLASTX.
M-x lpr-region
kAK lpr-buffer,NO PE^ATATX TOLXKO TEKU]U@ OBLASTX.
wSE KOMANDY PE^ATI (KROME ISPOLXZU@]IH Postscript) PEREDA@T PROGRAMME lpr DOPOL-
NITELXNYE KL@^I,BAZIRU@]IESQ NA ZNA^ENII PEREMENNOJ lpr-switches.eE ZNA^ENIE
DOLVNO BYTX SPISKOM STROK,PRI^EM KAVDAQ STROKA |\TO KL@^,NA^INA@]IJSQ S`-'.
nAPRIMER,^TOBY SDELATX [IRINU STROK RAWNOJ WOSXMIDESQTI STOLBCAM DLQ WSEH RASPE^A-
TOK,POLU^AEMYH IZ Emacs,USTANOWITE lpr-switches TAK:
(setq lpr-switches'("-w80"))
wY MOVETE UKAZATX,KAKOJ PRINTER DOLVEN ISPOLXZOWATXSQ,USTANOWIW PEREMENNU@
printer-name.
332 rUKOWODSTWO PO GNU EmacspEREMENNAQ lpr-command ZADAET IMQ ISPOLXZUEMOJ PROGRAMMY PE^ATI;ZNA^ENIE PO
UMOL^ANI@ ZAWISIT OT TIPA WA[EJ OPERACIONNOJ SISTEMY.nA BOLX[INSTWE SISTEM\TO
"lpr".pEREMENNAQ lpr-headers-switches POHOVIM OBRAZOM ZADAET DOPOLNITELXNYE KL@-
^I DLQ SOZDANIQ ZAGOLOWKOW STRANIC.pEREMENNAQ lpr-add-switches UKAZYWAET,NUVNO LI
PEREDAWATX PROGRAMME PE^ATI KL@^I`-T'I`-J'(PODHODQ]IE DLQ lpr):nil OZNA^AET,^TO
DOBAWLQTX IH NE NADO.lpr-add-switches DOLVNA BYTX RAWNA nil,ESLI WA[A PROGRAMMA
PE^ATI NE SOWMESTIMA S lpr.
30.5 pE^ATX ^EREZ Postscript
|TI KOMANDY PREOBRAZU@T SODERVIMOE BUFERA W Postscript I LIBO PE^ATA@T EGO,LIBO
OSTAWLQ@T W DRUGOM BUFERE Emacs.
M-x ps-print-buffer
wYWODIT RASPE^ATKU TEKU]EGO BUFERA W FORME Postscript.
M-x ps-print-region
wYWODIT RASPE^ATKU TEKU]EJ OBLASTI W FORME Postscript.
M-x ps-print-buffer-with-faces
wYWODIT RASPE^ATKU TEKU]EGO BUFERA W FORME Postscript,POKAZYWAQ ISPOLXZO-
WANNYE W TEKSTE NA^ERTANIQ SREDSTWAMI Postscript.
M-x ps-print-region-with-faces
wYWODIT RASPE^ATKU TEKU]EJ OBLASTI W FORME Postscript,POKAZYWAQ ISPOLXZO-
WANNYE W TEKSTE NA^ERTANIQ SREDSTWAMI Postscript.
M-x ps-spool-buffer
gENERIRUET Postscript DLQ TEKSTA TEKU]EGO BUFERA.
M-x ps-spool-region
gENERIRUET Postscript DLQ TEKU]EJ OBLASTI.
M-x ps-spool-buffer-with-faces
gENERIRUET Postscript DLQ TEKU]EGO BUFERA,POKAZYWAQ ISPOLXZOWANNYE NA^ER-
TANIQ.
M-x ps-spool-region-with-faces
gENERIRUET Postscript DLQ TEKU]EJ OBLASTI,POKAZYWAQ ISPOLXZOWANNYE NA^ER-
TANIQ.
kOMANDY RABOTY S Postscript,ps-print-buffer I ps-print-region,PE^ATA@T SODER-
VIMOE BUFERA W FORME Postscript.oDNA KOMANDA PE^ATAET WESX BUFER,DRUGAQ | TOLXKO
OBLASTX.sOOTWETSTWU@]IE KOMANDY S OKON^ANIEM`-with-faces',ps-print-buffer-with-
faces I ps-print-region-with-faces,ISPOLXZU@T SREDSTWA Postscript DLQ PEREDA^I NA-
^ERTANIJ ([RIFTOW I CWETOW) W SWOJSTWAH PE^ATAEMOGO TEKSTA.
eSLI WY ISPOLXZUETE CWETNOJ DISPLEJ,WY MOVETE NAPE^ATATX BUFER,SODERVA]IJ KOD
PROGRAMMY,S CWETOWOJ PODSWETKOJ,WKL@^IW W\TOM BUFERE REVIM Font-Lock I WYZWAW
ps-print-buffer-with-faces.
kOMANDY,^XI IMENA SODERVAT`spool'NA MESTE`print',GENERIRU@T WYWOD Postscript W
BUFERE Emacs,A NE POSYLA@T EGO NA PRINTER.
30.6 pEREMENNYE,UPRAWLQ@]IE PE^ATX@ W Postscript
wSE KOMANDY PE^ATI ^EREZ Postscript ISPOLXZU@T PEREMENNYE ps-lpr-command I ps-
lpr-switches,UKAZYWA@]IE,KAK NUVNO PE^ATATX.ps-lpr-command ZADAET IMQ ZAPUS-
KAEMOJ KOMANDY,ps-lpr-switches ZADAET KL@^I KOMANDNOJ STROKI,A ps-printer-name
gLAWA 30:rAZNOOBRAZNYE KOMANDY 333ZADAET PRINTER.eSLI WY NE USTANOWILI PERWYE DWE PEREMENNYE SAMI,ONI POLU^A@T SWOI
NA^ALXNYE ZNA^ENIQ OT lpr-command I lpr-switches.eSLI ps-printer-name RAWNA nil,
ISPOLXZUETSQ printer-name.
pEREMENNAQ ps-print-header KONTROLIRUET,BUDUT LI\TI KOMANDY DOBAWLQTX STROKI
ZAGOLOWKA DLQ KAVDOJ STRANICY,|USTANOWITE EE RAWNOJ nil,^TOBY WYKL@^ITX ZAGOLOWKI.
wY MOVETE OTKL@^ITX OBRABOTKU CWETOW,USTANOWIW ps-print-color-p W ZNA^ENIE nil.
pEREMENNAQ ps-paper-type UKAZYWAET,DLQ KAKOGO RAZMERA STANICY NUVNO FORMATIRO-
WATX;DOPUSTIMYE ZNA^ENIQ WKL@^A@T a4,a3,a4small,b4,b5,executive,ledger,legal,
letter,letter-small,statement,tabloid.pO UMOL^ANI@\TO letter.wY MOVETE
OPREDELITX DOPOLNITELXNYE RAZMERY BUMAGI,IZMENQQ PEREMENNU@ ps-page-dimensions-
database.
pEREMENNAQ ps-landscape-mode UKAZYWAET ORIENTACI@ TEKSTA NA STRANICE.pO UMOL^A-
NI@ ONA RAWNA nil,^TO OBOZNA^AET\PORTRETNYJ"REVIM.l@BOE OTLI^NOE OT nil ZNA^ENIE
ZADAET\LAND[AFTNYJ"REVIM.
pEREMENNAQ ps-number-of-columns ZADAET ^ISLO KOLONOK;ONA IGRAET ROLX I W\PORTRET-
NOM",I W\LAND[AFTNOM"REVIME.pO UMOL^ANI@\TO 1.
pEREMENNAQ ps-font-family UKAZYWAET,KAKOE SEMEJSTWO [RIFTOW NUVNO ISPOLXZO-
WATX PRI PE^ATI OBY^NOGO TEKSTA.dOPUSTIMYE ZNA^ENIQ WKL@^A@T Courier,Helvetica,
NewCenturySchlbk,Palatino I Times.pEREMENNAQ ps-font-size ZADAET RAZMER [RIFTA
DLQ OBY^NOGO TEKSTA.pO UMOL^ANI@\TO 8.5 PUNKTOW.
mNOGIE DRUGIE PEREMENNYE DLQ NASTROJKI\TIH KOMAND OPREDELENY I OPISANY W FAJLE
NA lISPE`ps-print.el'.
30.7 sORTIROWKA TEKSTA
Emacs PREDOSTAWLQET NESKOLXKO KOMAND DLQ SORTIROWKI TEKSTA W BUFERE.wSE ONI OPERI-
RU@T S SODERVIMYM OBLASTI (TEKSTOM MEVDU TO^KOJ I METKOJ).|TI KOMANDY RAZDELQ@T
TEKST OBLASTI NA BOLX[OE ^ISLO ZAPISEJ SORTIROWKI,OPREDELQ@T KL@^ SORTIROWKI DLQ
KAVDOJ ZAPISI I ZATEM PERESTAWLQ@T ZAPISI W PORQDKE,OPREDELQEMOM KL@^AMI SORTIROW-
KI.zAPISI RASPOLAGA@TSQ TAKIM OBRAZOM,^TOBY IH KL@^I NAHODILISX W ALFAWITNOM
ILI,DLQ ^ISLOWOJ SORTIROWKI,^ISLOWOM PORQDKE.pRI ALFAWITNOJ SORTIROWKE WSE BUK-
WY WERHNEGO REGISTRA OT`A'DO`Z'IDUT PERED`A'NIVNEGO REGISTRA,W SOOTWETSTWII S
POSLEDOWATELXNOSTX@ ZNAKOW ASCII.
rAZLI^IE KOMAND SORTIROWKI SOSTOIT W TOM,KAK ONI DELQT TEKST NA ZAPISI SORTIROWKI,
I KAKAQ ^ASTX KAVDOJ ZAPISI ISPOLXZUETSQ W KA^ESTWE KL@^A SORTIROWKI.bOLX[INSTWO
KOMAND S^ITA@T KAVDU@ STROKU OTDELXNOJ ZAPISX@,NO NEKOTORYE ISPOLXZU@T W KA^ESTWE
TAKIH ZAPISEJ ABZACY ILI STRANICY.bOLX[INSTWO KOMAND SORTIROWKI ISPOLXZU@T WS@
ZAPISX SORTIROWKI W KA^ESTWE SWOEGO SOBSTWENNOGO KL@^A,NO NEKOTORYE ISPOLXZU@T W KA-
^ESTWE KL@^A SORTIROWKI TOLXKO ^ASTX ZAPISI.
M-x sort-lines
rAZDELITX OBLASTX NA STROKI I OTSORTIROWATX W SOOTWETSTWII S POLNYM TEK-
STOM STROKI.~ISLOWOJ ARGUMENT OZNA^AET SORTIROWKU PO UBYWANI@.
M-x sort-paragraphs
rAZDELITX OBLASTX NA ABZACY I OTSORTIROWATX,SRAWNIWAQ TEKST ABZACEW CELI-
KOM (ZA ISKL@^ENIEM PUSTYH STROK W NA^ALE).~ISLOWOJ ARGUMENT OZNA^AET
SORTIROWKU PO UBYWANI@.
M-x sort-pages
rAZDELITX OBLASTX NA STRANICY I OTSORTIROWATX,SRAWNIWAQ POLNYJ TEKST
STRANIC (ZA ISKL@^ENIEM PUSTYH STROK W NA^ALE).~ISLOWOJ ARGUMENT OZNA-
^AET,^TO SORTIROWKA PROIZWODITSQ PO UBYWANI@.
334 rUKOWODSTWO PO GNU EmacsM-x sort-fields
rAZDELITX OBLASTX NA STROKI I OTSORTIROWATX,SRAWNIWAQ SODERVIMOE ODNOGO
POLQ W KAVDOJ STROKE.pOLQ RAZDELQ@TSQ PROPUSKAMI,TAK ^TO PERWYJ OTRE-
ZOK POSLEDOWATELXNYH NEPROBELXNYH ZNAKOW W STROKE SOSTAWLQET POLE 1,WTOROJ
TAKOJ OTREZOK SOSTAWLQET POLE 2,I TAK DALEE.
pOLE,PO KOTOROMU DOLVNA PROIZWODITSQ SORTIROWKA,UKAZYWAETSQ S POMO]X@
^ISLOWOGO ARGUMENTA:1 ISPOLXZUETSQ DLQ SORTIROWKI PO POL@ 1,I TAK DALEE.
oTRICATELXNYJ ARGUMENT OZNA^AET OTS^ET POLEJ SPRAWA,A NE SLEWA;TO ESTX
MINUS 1 OBOZNA^AET SORTIROWKU PO POSLEDNEMU POL@.eSLI SODERVANIE POLEJ
SORTIROWKI W NESKOLXKIH STROKAH ODINAKOWO,\TI STROKI OSTA@TSQ W TOM VE
OTNOSITELXNOM PORQDKE,W KAKOM ONI BYLI IZNA^ALXNO.
M-x sort-numeric-fields
|TA KOMANDA PODOBNA M-x sort-fields,ZA ISKL@^ENIEM TOGO,^TO DLQ KAVDOJ
STROKI UKAZANNOE POLE PREWRA]AETSQ W ^ISLO,I SRAWNIWA@TSQ UVE\TI ^ISLA.
`10'PRED[ESTWUET`2',KOGDA RASSMATRIWAETSQ KAK TEKST,NO SLEDUET ZA`2',KOGDA
RASSMATRIWAETSQ KAK ^ISLO.
M-x sort-columns
kAK M-x sort-fields,ZA ISKL@^ENIEM TOGO,^TO ISPOLXZUEMYJ DLQ SRAWNE-
NIQ TEKST POLU^AETSQ W PREDELAH KAVDOJ STROKI IZ FIKSIROWANNOGO DIAPAZONA
STOLBCOW.oB_QSNENIE PRIWEDENO NIVE.
M-x reverse-region
oBRATITX PORQDOK STROK W OBLASTI.|TO POLEZNO DLQ SORTIROWKI W PORQDKE
UBYWANIQ PO POLQM ILI KOLONKAM,TAK KAK DANNYE KOMANDY SORTIROWKI NE
IME@T SREDSTW DLQ\TOGO.
nAPRIMER,ESLI BUFER SODERVIT TAKOJ TEKST:
On systems where clash detection (locking of files being edited) is
implemented,Emacs also checks the first time you modify a buffer
whether the file has changed on disk since it was last visited or
saved.If it has,you are asked to confirm that you want to change
the buffer.
PRIMENENIE M-x sort-lines KO WSEMU BUFERU DAST SLEDU@]EE:
On systems where clash detection (locking of files being edited) is
implemented,Emacs also checks the first time you modify a buffer
saved.If it has,you are asked to confirm that you want to change
the buffer.
whether the file has changed on disk since it was last visited or
GDE ZAGLAWNAQ`O'IDET PERED WSEMI STRO^NYMI BUKWAMI.eSLI WY WMESTO\TOGO PRIMENITE
C-u 2 M-x sort-fields,TO POLU^ITE SLEDU@]EE:
implemented,Emacs also checks the first time you modify a buffer
saved.If it has,you are asked to confirm that you want to change
the buffer.
On systems where clash detection (locking of files being edited) is
whether the file has changed on disk since it was last visited or
GDE KL@^AMI SORTIROWKI BYLI`Emacs',`If',`buffer',`systems'I`the'.
M-x sort-columns TREBUET BOLEE PODROBNOGO OB_QSNENIQ.wY UKAZYWAETE KOLONKI,USTA-
NAWLIWAQ TO^KU NA ODNOM STOLBCE,A METKU | NA DRUGOM.tAK KAK\TO OZNA^AET,^TO WY
NE MOVETE POSTAWITX TO^KU ILI METKU W NA^ALE PERWOJ STROKI,S KOTOROJ DOLVNA NA^ATX-
SQ SORTIROWKA,TO\TA KOMANDA ISPOLXZUET NEOBY^NOE OPREDELENIE`OBLASTI':WSQ STROKA S
TO^KOJ RASSMATRIWAETSQ KAK ^ASTX OBLASTI,I TAK VE WSE SODERVIMOE STROKI,W KOTOROJ
NAHODITSQ METKA,I WSE STROKI MEVDU NIMI.
gLAWA 30:rAZNOOBRAZNYE KOMANDY 335nAPRIMER,DLQ SORTIROWKI TABLICY PO INFORMACII,RAZME]ENNOJ W STOLBCAH S 10 PO
15,METKU MOVNO POSTAWITX W PERWOJ STROKE TABLICY W STOLBCE 10,A TO^KU W STOLBCE 15
W POSLEDNEJ STROKE TABLICY I ZATEM ZAPUSTITX sort-columns.iLI WY MOVETE POSTAWITX
METKU W STOLBCE 15 W PERWOJ STROKE,A TO^KU |W STOLBCE 10 W POSLEDNEJ STROKE.
|TO MOVNO RASSMATRIWATX KAK SORTIROWKU PRQMOUGOLXNIKA,ZADANNOGO TO^KOJ I MET-
KOJ,ZA ISKL@^ENIEM TOGO,^TO TEKST W KAVDOJ STROKE SPRAWA I SLEWA OT PRQMOUGOLXNIKA
DWIGAETSQ WMESTE S TEKSTOM WNUTRI PRQMOUGOLXNIKA.sM.rAZDEL 9.4 [pRQMOUGOLXNIKI],
S.74.
mNOGIE KOMANDY SORTIROWKI IGNORIRU@T PRI SRAWNENIQH RAZLI^IE W REGISTRE BUKW,
ESLI sort-fold-case NE RAWNA nil.
30.8 sUVENIE
sUVENIE OZNA^AET SOSREDOTO^ENIE NA NEKOTOROJ ^ASTI BUFERA,PRI KOTOROM OSTAW[AQSQ
^ASTX STANOWITSQ WREMENNO NEDOSTUPNOJ.tA ^ASTX,W KOTORU@ WY WSE E]E MOVETE POPASTX,
NAZYWAETSQ DOSTUPNOJ ^ASTX@.oTMENA SUVENIQ I PEREHOD W SOSTOQNIE,KOGDA WESX BUFER
SNOWA STANOWITSQ DOSTUPNYM,NAZYWAETSQ RAS[IRENIEM.rAZMER DEJSTWU@]EGO SUVENIQ
BUFERA W KAKOE-LIBO WREMQ NAZYWAETSQ OGRANI^ENIEM\TOGO BUFERA.
sUVENIE MOVET POMO^X SKONCENTRIROWATXSQ NA EDINSTWENNOJ PODPROGRAMME ILI ABZACE,
UBIRAQ LI[NEE.oNO TAKVE MOVET BYTX ISPOLXZOWANO DLQ OGRANI^ENIQ DIAPAZONA DEJSTWIQ
KOMANDY ZAMENY ILI POWTORQ@]EGOSQ MAKROSA KLAWIATURY.
C-x n n sUZITX DO OBLASTI MEVDU TO^KOJ I METKOJ (narrow-to-region).
C-x n w rAS[IRITX TAK,^TOBY BUFER SNOWA STAL POLNOSTX@ DOSTUPNYM (widen).
C-x n p sUZITX DO TEKU]EJ STRANICY (narrow-to-page).
C-x n d sUZITX DO TEKU]EGO OPREDELENIQ FUNKCII (narrow-to-defun).
kOGDA WY SDELALI SUVENIE DO ^ASTI BUFERA,\TA ^ASTX | WSE,^TO WY WIDITE.wY NE
MOVETE WIDETX OSTALXNU@ ^ASTX,W NEE NEWOZMOVNO PEREJTI (KOMANDY DWIVENIQ NE WYJDUT
ZA PREDELY DOSTUPNOJ ^ASTI) I NELXZQ IZMENITX EE NIKAKIM OBRAZOM.nO ONA NE PROPALA,
I ESLI WY SOHRANQETE FAJL,TO SOHRANITSQ I NEDOSTUPNAQ ^ASTX TEKSTA.pRI DEJSTWII
SUVENIQ W STROKE REVIMA POQWLQETSQ SLOWO`Narrow'.
oSNOWNOJ KOMANDOJ SUVENIQ QWLQETSQ C-x n n (narrow-to-region).oNA USTANAWLIWAET
OGRANI^ENIQ DLQ TEKU]EGO BUFERA TAKIM OBRAZOM,^TO OSTAETSQ DOSTUPNYM TOLXKO TEKST
TEKU]EJ OBLASTI,NO WESX TEKST PERED OBLASTX@ I POSLE NEE STANOWITSQ NEDOSTUPNYM.
tO^KA I METKA NE IZMENQ@TSQ.
e]E WY MOVETE ISPOLXZOWATX C-x n p (narrow-to-page) DLQ SUVENIQ DO TEKU]EJ STRA-
NICY.sM.rAZDEL 21.4 [sTRANICY],S.184,OPREDELENIE STRANICY.C-x n d (narrow-to-
defun) SUVAET DO OPREDELENIQ FUNKCII,SODERVA]EGO TO^KU (SM.rAZDEL 22.4 [oPREDELENIQ
FUNKCIJ],S.208 ).
oTMENA SUVENIQ WYPOLNQETSQ KOMANDOJ C-x n w (widen).oNA DELAET WESX TEKST BUFERA
SNOWA DOSTUPNYM.
wY MOVETE POLU^ITX INFORMACI@ O TOM,DO KAKOJ ^ASTI SUVEN BUFER,PRIMENIW KOMAN-
DU C-x =.sM.rAZDEL 4.9 [iNFORMACIQ O POZICII],S.40.
pOSKOLXKU SUVENIE MOVET LEGKO ZAPUTATX POLXZOWATELQ,NE PONIMA@]EGO EGO,KOMANDA
narrow-to-region OBY^NO ZABLOKIROWANA.pRI POPYTKE EE ISPOLXZOWANIQ ZAPRA[IWAETSQ
PODTWERVDENIE I PREDOSTAWLQETSQ WOZMOVNOSTX EE WKL@^ENIQ;ESLI WY ZADEJSTWOWALI\TU
KOMANDU,PODTWERVDENIE BOLX[E NE TREBUETSQ.sM.rAZDEL 31.4.11 [bLOKIROWANIE KOMAN-
DY],S.364.
336 rUKOWODSTWO PO GNU Emacs30.9 rEDAKTIROWANIE TEKSTA W DWE KOLONKI
rEVIM Two-column POZWOLQET WAM UDOBNO REDAKTIROWATX TEKST W DWE KOLONKI.oN IS-
POLXZUET DWA RASPOLOVENNYH RQDOM OKNA,KAVDOE IZ KOTORYH POKAZYWAET SWOJ BUFER.
eSTX DWA SPOSOBA WOJTI W DWUHKOLONO^NYJ REVIM:
hF2i 2 ILI C-x 6 2
wHODIT W REVIM two-column,SLEWA POQWLQETSQ TEKU]IJ BUFER,A SPRAWA POQW-
LQETSQ BUFER,^XE IMQ OSNOWANO NA IMENI TEKU]EGO BUFERA (2C-two-columns).
eSLI PRAWYJ BUFER E]E NE SU]ESTWUET,IZNA^ALXNO ON DELAETSQ PUSTYM;SODER-
VIMOE TEKU]EGO BUFERA NE IZMENQETSQ.
|TA KOMANDA PODHODIT,ESLI TEKU]IJ BUFER PUST ILI SODERVIT TEKST TOLXKO
ODNOJ KOLONKI,I WY HOTITE DOBAWITX WTORU@.
h F2i s or C-x 6 s
rAZDELQET TEKU]IJ BUFER S TEKSTOM W DWUH KOLONKAH NA DWA BUFERA I POKAZY-
WAET IH RQDOM DRUG S DRUGOM (2C-split).tEKU]IJ BUFER STANOWITSQ LEWYM
BUFEROM,NO TEKST IZ PRAWOJ KOLONKI PEREME]AETSQ W PRAWYJ BUFER.tEKU]IJ
STOLBEC OPREDELQET TO^KU RAZDELA.rAZDELENIE NA^INAETSQ OT TEKU]EJ STROKI
I PRODOLVAETSQ DO KONCA BUFERA.
|TA KOMANDA POLEZNA,ESLI U WAS UVE ESTX BUFER S DWUHKOLONO^NYM TEKSTOM,I
WY HOTITE WREMENNO RAZDELITX KOLONKI.
h F2i b BUFER hRETi
C-x 6 b BUFER h RETi
wHODIT W REVIM two-column,ISPOLXZUQ TEKU]IJ BUFER W KA^ESTWE LEWOGO I
BUFER BUFER W KA^ESTWE PRAWOGO (2C-associate-buffer).
h F2i s ILI C-x 6 s I]ET RAZDELITELX KOLONOK,KOTORYJ QWLQETSQ STROKOJ,STOQ]EJ MEV-
DU DWUH KOLONOK NA KAVDOJ STROKE.wY MOVETE ZADATX [IRINU RAZDELITELQ S POMO]X@
^ISLOWOGO ARGUMENTA DLQ hF2i s;STOLXKO ZNAKOW,STOQ]IH PERED TO^KOJ,WYRAZQT STROKU-
RAZDELITELX.pO UMOL^ANI@ [IRINA RAWNA 1,PO\TOMU RAZDELITELX KOLONOK |\TO ZNAK
PERED TO^KOJ.
kOGDA STROKA SODERVIT RAZDELITELX NA SWOEM MESTE,hF2i s POME]AET TEKST POSLE RAZDE-
LITELQ W PRAWYJ BUFER I UDALQET RAZDELITELX.sTROKI,NE IME@]IE RAZDELITELQ KOLONOK,
OSTAWLQ@TSQ NERAZBITYMI;ONI OSTA@TSQ W LEWOM BUFERE,A W PRAWYJ BUFER POME]AETSQ
DLQ SOOTWETSTWIQ PUSTAQ STROKA.(tAKIM OBRAZOM MOVNO NAPISATX STROKU,KOTORAQ\PROHO-
DIT PO OBEIM KOLONKAM W DWUHKOLONO^NOM REVIME":NAPISATX EE W LEWOM BUFERE I SDELATX
PUSTU@ STROKU W PRAWOM BUFERE.)
kOMANDA C-x 6 h RETi ILI hF2i hRETi (2C-newline) WSTAWLQET ZNAK NOWOJ STROKI W OBA BU-
FERA W SOOTWETSTWU@]IH POZICIQH.|TO SAMYJ PROSTOJ SPOSOB DOBAWITX NOWU@ STROKU W
DWUHKOLONO^NOM TEKSTE,KOGDA WY REDAKTIRUETE EGO W RAZNYH BUFERAH.
kOGDA WY OTREDAKTIROWALI OBA BUFERA,KAK WAM HOTELOSX,OB_EDINITE IH S POMO]X@
h F2i 1 ILI C-x 6 1 (2C-merge).|TO KOPIRUET TEKST IZ PRAWOGO BUFERA KAK WTORU@ KOLONKU
DRUGOGO BUFERA.~TOBY WERNUTXSQ K REDAKTIROWANI@ W DWE KOLONKI,ISPOLXZUJTE hF2i s.
iSPOLXZUJTE h F2i d ILI C-x 6 d,^TOBY RAZ_EDINITX DWA BUFERA,OSTAWLQQ KAVDYJ KAK
ESTX (2C-dissociate).eSLI DRUGOJ BUFER,NE TEKU]IJ W MOMENT,KOGDA WY NABRALI hF2i d,
OKAZALSQ PUSTYM,h F2i d UNI^TOVAET EGO.
30.10 rEDAKTIROWANIE DWOI^NYH FAJLOW
sU]ESTWUET SPECIALXNYJ OSNOWNOJ REVIM DLQ REDAKTIROWANIQ DWOI^NYH FAJLOW:
REVIM Hexl.~TOBY WOSPOLXZOWATXSQ IM,WYZOWITE DLQ OBRA]ENIQ K FAJLU M-x
hexl-find-file WMESTO C-x C-f.|TA KOMANDA PREOBRAZUET SODERVIMOE FAJLA W
gLAWA 30:rAZNOOBRAZNYE KOMANDY 337[ESTNADCATIRI^NYE ^ISLA I POZWOLQET WAM REDAKTIROWATX IH.kOGDA WY SOHRANQETE\TOT
FAJL,ON AWTOMATI^ESKI PREOBRAZUETSQ OBRATNO W DWOI^NYJ FORMAT.
wY MOVETE TAKVE ISPOLXZOWATX M-x hexl-mode DLQ PREOBRAZOWANIQ SU]ESTWU@]EGO BU-
FERA W [ESTNADCATIRI^NYJ WID.|TO POLEZNO,ESLI WY OBRATILISX K FAJLU OBY^NYM
SPOSOBOM I POTOM OBNARUVILI,^TO\TO DWOI^NYJ FAJL.
oBY^NYE ZNAKI W REVIME Hexl PEREZAPISYWA@T POWERH SU]ESTWU@]EGO TEKSTA.|TO
SDELANO DLQ UMENX[ENIQ RISKA NE^AQNNOJ POTERI WYRAWNIWANIQ DANNYH W FAJLE.dLQ
WSTAWKI ESTX OSOBYE KOMANDY.wOT PERE^ENX KOMAND REVIMA Hexl:
C-M-d wSTAWLQET BAJT S WWEDENNYM DESQTI^NYM KODOM.
C-M-o wSTAWLQET BAJT S WWEDENNYM WOSXMIRI^NYM KODOM.
C-M-x wSTAWLQET BAJT S WWEDENNYM [ESTNADCATIRI^NYM KODOM.
C-x [ pEREME]AET NA NA^ALO 1k-BAJTNOJ\STRANICY".
C-x ] pEREME]AET NA KONEC 1k-BAJTNOJ\STRANICY".
M-g pEREME]AET K ADRESU,ZADANNOMU [ESTNADCATIRI^NYM ^ISLOM.
M-j pEREME]AET K ADRESU,ZADANNOMU DESQTI^NYM ^ISLOM.
C-c C-c pOKIDAET REVIM Hexl,WOZWRA]AQSX K TOMU OSNOWNOMU REVIMU,KOTORYJ BYL W
\TOM BUFERE DO TOGO,KAK WY WYZWALI hexl-mode.
30.11 sOHRANENIE SEANSOW Emacs
wY MOVETE ISPOLXZOWATX BIBLIOTEKU Desktop DLQ SOHRANENIQ SOSTOQNIQ Emacs OT OD-
NOGO SEANSA K DRUGOMU.sOHRANENIE SOSTOQNIQ OZNA^AET,^TO Emacs ZAPUSKAETSQ S TEM VE
SAMYM NABOROM BUFEROW,OSNOWNYH REVIMOW,POZICIJ W BUFERAH I PRO^IM,KAKIE BYLI W
PREDYDU]EM SEANSE Emacs.
~TOBY ISPOLXZOWATX Desktop,WY DOLVNY WOSPOLXZOWATXSQ BUFEROM Customization (SM.rAZDEL 31.2.2 [pROSTAQ NASTROJKA],S.344) I USTANOWITX desktop-enable W OTLI^NOE OT nil
ZNA^ENIE ILI DOBAWITX TAKIE STROKI W WA[ FAJL`.emacs':
(desktop-load-default)
(desktop-read)
pERWYJ RAZ,KOGDA WY SOHRANQETE SOSTOQNIE SEANSA Emacs,WY DOLVNY SDELATX\TO WRU^-
NU@,S POMO]X@ KOMANDY M-x desktop-save.kAK TOLXKO WY\TO SDELALI,PRI WYHODE IZ
Emacs SOSTOQNIE BUDET SOHRANQTXSQ SNOWA | NE TOLXKO W SU]ESTWU@]EM SEANSE Emacs,NO
I WO WSEH POSLEDU@]IH.wY TAKVE MOVETE ZAPISATX SOSTOQNIE W L@BOE WREMQ NE WYHODQ IZ
Emacs,SNOWA NABRAW M-x desktop-save.
~TOBY Emacs WOSSTANOWIL SOSTOQNIE PREDYDU]EGO SEANSA,WY OBQZANY ZAPUSTITX EGO IZ
TOGO VE KATALOGA,KOTORYJ WY ISPOLXZOWALI W PRO[LOM SEANSE.|TO NEOBHODIMO,POTOMU
^TO desktop-read PROSMATRIWAET W POISKAH FAJLA,KOTORYJ ONA DOLVNA PRO^ITATX,IMENNO
TEKU]IJ KATALOG.|TO OZNA^AET,^TO WY MOVETE HRANITX OTDELXNYE SOHRANENNYE SEANSY
W RAZNYH KATALOGAH;KATALOG,W KOTOROM WY ZAPUSKAETE Emacs,BUDET UKAZYWATX,KAKOJ IZ
SOHRANENNYH SEANSOW WY HOTITE WOSSTANOWITX.
pEREMENNAQ desktop-files-not-to-save GOWORIT,KAKIE FAJLY ISKL@^A@TSQ PRI SO-
HRANENII SOSTOQNIQ.eE ZNA^ENIE |\TO REGULQRNOE WYRAVENIE,SOWPADA@]EE S IMENAMI
ISKL@^AEMYH FAJLOW.pO UMOL^ANI@ ISKL@^A@TSQ UDALENNYE (POLU^ENNYE PO FTP) FAJ-
LY;POTOMU ^TO POWTORNOE K NIM OBRA]ENIE W POSLEDU@]EM SEANSE MOVET BYTX MEDLENNYM.
eSLI WY HOTITE WKL@^ITX\TI FAJLY W SOHRANENNOE SOSTOQNIE,USTANOWITE desktop-files-
not-to-save RAWNOJ"^$".sM.rAZDEL 14.12 [uDALENNYE FAJLY],S.134.
338 rUKOWODSTWO PO GNU Emacs30.12 uROWNI REKURSIWNOGO REDAKTIROWANIQ
rEKURSIWNOE REDAKTIROWANIE |\TO SITUACIQ,W KOTOROJ WY ISPOLXZUETE KOMANDY Emacs
DLQ WYPOLNENIQ PROIZWOLXNOGO REDAKTIROWANIQ,NAHODQSX W SEREDINE DRUGOJ KOMANDY
Emacs.nAPRIMER,PRI NABORE KOMANDY C-r WNUTRI query-replace PROISHODIT WHOD W
REKURSIWNOE REDAKTIROWANIE,GDE MOVNO IZMENITX TEKU]IJ BUFER.wYHODQ IZ\TOGO REKUR-
SIWNOGO REDAKTIROWANIQ,WY WOZWRA]AETESX W query-replace.
wYHOD IZ REKURSIWNOGO REDAKTIROWANIQ OZNA^AET WOZWRAT K NEZAKON^ENNOJ KOMANDE,KO-
TORAQ PRODOLVAET WYPOLNQTXSQ.wYHOD PROIZWODITSQ S POMO]X@ KOMANDY C-M-c (exit-
recursive-edit).
wY MOVETE TAKVE PRERWATX REKURSIWNOE REDAKTIROWANIE.|TO POHOVE NA WYHOD,NO PRI
\TOM PROISHODIT TAKVE I NEZAMEDLITELXNYJ WYHOD IZ NEZAKON^ENNOJ KOMANDY.pRERYWA-
NIE REKURSIWNOGO REDAKTIROWANIQ PROIZWODITSQ PO KOMANDE C-] (abort-recursive-edit).
sM.rAZDEL 32.1 [wYHOD],S.371.
sTROKA REVIMA POKAZYWAET WAM,^TO WY NAHODITESX W REKURSIWNOM REDAKTIROWANII,PRI
POMO]I KWADRATNYH SKOBOK WOKRUG KRUGLYH SKOBOK,KOTORYE WSEGDA OKRUVA@T NAZWANIQ
OSNOWNOGO I WTOROSTEPENNYH REVIMOW.sTROKA REVIMA KAVDOGO OKNA POKAZYWAET\TO TAKIM
VE OBRAZOM,POSKOLXKU NAHOVDENIE W REKURSIWNOM REDAKTIROWANII OTNOSITSQ K Emacs W
CELOM,A NE K KAKOMU-LIBO OTDELXNOMU OKNU ILI BUFERU.
wOZMOVNO PREBYWANIE W REKURSIWNYH REDAKTIROWANIQH WNUTRI REKURSIWNYH REDAKTIRO-
WANIJ.nAPRIMER,POSLE NABORA KOMANDY C-r W query-replace MOVNO NABRATX KOMANDU,KO-
TORAQ WHODIT W OTLAD^IK.|TO NA^INAET UROWENX REKURSIWNOGO REDAKTIROWANIQ DLQ OTLAD-
^IKA WNUTRI UROWNQ REKURSIWNOGO REDAKTIROWANIQ DLQ C-r.sTROKI REVIMA POKAZYWA@T
PARU KWADRATNYH SKOBOK DLQ KAVDOGO RABOTA@]EGO W DANNYJ MOMENT UROWNQ REKURSIWNOGO
REDAKTIROWANIQ.
wYHOD IZ WNUTRENNEGO REKURSIWNOGO REDAKTIROWANIQ (NAPRIMER,S POMO]X@ KOMANDY
c OTLAD^IKA) WOZOBNOWLQET KOMANDU ODNIM UROWNEM WY[E.pO OKON^ANI@\TOJ KOMANDY
MOVNO ISPOLXZOWATX C-M-c,^TOBY WYJTI IZ E]E ODNOGO UROWNQ REKURSIWNOGO REDAKTIRO-
WANIQ,I TAK DALEE.wYHOD OTNOSITSQ TOLXKO K SAMOMU WNUTRENNEMU UROWN@.pRERYWANIE
TOVE PRIWODIT K WYHODU LI[X IZ ODNOGO UROWNQ REKURSIWNOGO REDAKTIROWANIQ:PROISHO-
DIT NEMEDLENNYJ WOZWRAT NA UROWENX KOMANDY PREDYDU]EGO REKURSIWNOGO REDAKTIROWANIQ.
eSLI HOTITE,TO MOVETE ZATEM PRERWATX I SLEDU@]IJ UROWENX.
nAPROTIW,KOMANDA M-x top-level PRERYWAET WSE UROWNI REKURSIWNOGO REDAKTIROWANIQ,
WOZWRA]AQSX NEPOSREDSTWENNO NA WERHNIJ KOMANDNYJ UROWENX.
tEKST,REDAKTIRUEMYJ WNUTRI REVIMA REKURSIWNOGO REDAKTIROWANIQ,NE OBQZAN BYTX
TEM VE,^TO REDAKTIRUETSQ NA WERHNEM UROWNE.|TO ZAWISIT OT TOGO,DLQ ^EGO PREDNA-
ZNA^ALOSX REKURSIWNOE REDAKTIROWANIE.eSLI KOMANDA,KOTORAQ ZAPUSKAET REKURSIWNOE
REDAKTIROWANIE,WYBIRAET WNA^ALE DRUGOJ BUFER,TO ON I BUDET BUFEROM,KOTORYJ RE-
KURSIWNO REDAKTIRUETSQ.w L@BOM SLU^AE,WNUTRI REKURSIWNOGO REDAKTIROWANIQ MOVNO
PEREKL@^ATX BUFERY OBY^NYM SPOSOBOM (ESLI KL@^I,PEREKL@^A@]IE BUFERY,NE PERE-
PRIWQZANY).wEROQTNO,MOVNO OSTAWATXSQ WNUTRI REKURSIWNOGO REDAKTIROWANIQ I DO KONCA
SEANSA,OBRA]AQSX K FAJLAM I DELAQ TAM WSE PRO^EE.nO WREMQ OT WREMENI\TO MOVET
PRIWODITX K NEOVIDANNYM REZULXTATAM (NAPRIMER,K PEREPOLNENI@ STEKA).pO\TOMU NE
ZABYWAJTE PRERYWATX REKURSIWNOE REDAKTIROWANIE ILI WYHODITX IZ NEGO,ESLI ONO WAM
BOLX[E NE NUVNO.
w OSNOWNOM MY STARAEMSQ MINIMIZIROWATX ISPOLXZOWANIE UROWNEJ REKURSIWNOGO REDAK-
TIROWANIQ W GNU Emacs.|TO TAK,POTOMU ^TO ONI OBQZYWA@T WAS\WOZWRA]ATXSQ"W OPRE-
DELENNOM PORQDKE | OT SAMOGO WNUTRENNEGO UROWNQ K WERHNEMU UROWN@.eSLI WOZMOVNO,
MY PREDSTAWLQEM RAZLI^NYE WIDY DEQTELXNOSTI W RAZNYH BUFERAH,^TOBY WY MOGLI PE-
REKL@^ATXSQ MEVDU NIMI,KAK WAM NRAWITSQ.nEKOTORYE KOMANDY PEREKL@^A@T W NOWYJ
OSNOWNOJ REVIM,KOTORYJ PREDOSTAWLQET KOMANDU DLQ PEREKL@^ENIQ NAZAD.|TI METODY
gLAWA 30:rAZNOOBRAZNYE KOMANDY 339DA@T WAM BOLX[U@ GIBKOSTX DLQ WOZWRATA K NEZAKON^ENNYM ZANQTIQM W TOM PORQDKE,W
KAKOM WY POVELAETE.
30.13 |MULQCIQ
GNU Emacs MOVET BYTX ZAPROGRAMMIROWAN DLQ\MULQCII (W BOLX[EJ ILI MENX[EJ
STEPENI) BOLX[INSTWA DRUGIH REDAKTOROW.sTANDARTNYE SREDSTWA MOGUT\MULIROWATX SLE-
DU@]EE:
EDT (REDAKTOR DEC VMS)
|MULQCIQ EDT WKL@^AETSQ S POMO]X@ KOMANDY M-x edt-emulation-on.kO-
MANDA M-x edt-emulation-off WOSSTANAWLIWAET OBY^NYE DLQ Emacs PRIWQZKI.
bOLX[INSTWO KOMAND\MULQCII EDT QWLQ@TSQ KL@^AMI WSPOMOGATELXNOJ KLA-
WIATURY,I BOLX[INSTWO STANDARTNYH PRIWQZOK KL@^EJ W Emacs OSTA@TSQ DO-
STUPNYMI.pEREPRIWQZKI PRI\MULQCII EDT WYPOLNQ@TSQ W GLOBALXNOJ TA-
BLICE KL@^EJ,TAKIM OBRAZOM,PRI NAHOVDENII W REVIME\MULQCII EDT NET
PROBLEMY PEREKL@^ENIQ BUFEROW ILI OSNOWNYH REVIMOW.
vi (REDAKTOR bERKLI)
Viper | NOWEJ[IJ\MULQTOR vi.oN REALIZUET NESKOLXKO UROWNEJ\MULQCII:
UROWENX 1 BLIVE WSEH K vi,TOGDA KAK UROWENX 5 OTHODIT OT STROGOJ\MULQCII,
^TOBY WOSPOLXZOWATXSQ WOZMOVNOSTQMI Emacs.~TOBY WYZWATX Viper,NABERITE
M-x viper-mode;\TO PROWEDET WAS PO OSTALXNOMU PUTI I SPROSIT OB UROWNE
\MULQCII.sM.Info FAJL`viper',node`Top'.
vi (DRUGOJ\MULQTOR)
M-x vi-mode WHODIT W OSNOWNOJ REVIM,KOTORYJ ZAMENQET PREVDE USTANOWLEN-
NYJ REVIM.wSE KOMANDY vi,KOTORYE W NASTOQ]EM vi WHODQT W REVIM\WWODA",
ZAPROGRAMMIROWANY DLQ WOZWRATA W PREDYDU]IJ OSNOWNOJ REVIM.tAKIM OB-
RAZOM,OBY^NYJ Emacs SLUVIT REVIMOM\WWODA"DLQ vi.
pOSKOLXKU\MULQCIQ vi RABOTAET ^EREZ OSNOWNYE REVIMY,PEREKL@^ATX BUFERA
W PROCESSE\MULQCII NELXZQ.sNA^ALA NEOBHODIMO WERNUTXSQ W OBY^NYJ Emacs.
eSLI WY PLANIRUETE ^ASTO ISPOLXZOWATX\MULQCI@ vi,TO,WEROQTNO,POQWITSQ
VELANIE PRIWQZATX KL@^ K KOMANDE vi-mode.
vi (E]E ODIN\MULQTOR)
M-x vip-mode WYZYWAET E]E ODIN\MULQTOR vi,PRO KOTORYJ GOWORQT,^TO ON
SOOTWETSTWUET NASTOQ]EMU vi BOLEE POLNO,^EM M-x vi-mode.rEVIM\WWODA"W
\TOM\MULQTORE OTLI^AETSQ OT OBY^NOGO Emacs,TAK ^TO DLQ WOZWRATA W REVIM
\MULQCII vi MOVNO ISPOLXZOWATX hESCi.dLQ WOZWRATA IZ REVIMA\MULQCII vi W
OBY^NYJ Emacs NEOBHODIMO NABRATX C-z.
|TOT REVIM\MULQCII NE RABOTAET ^EREZ OSNOWNYE REVIMY,^TO OBESPE^IWAET
WOZMOVNOSTX RAZLI^NYH WARIANTOW PEREKL@^ENIQ BUFEROW WNUTRI\MULQTORA.
pRIPISYWATX KL@^ KOMANDE vip-mode NET TAK NEOBHODIMO,KAK W SLU^AE vi-
mode,POSKOLXKU ZAWER[ENIE REVIMA WSTAWKI NE ISPOLXZUET EE.
sM.Info FAJL`vip',node`Top',DLQ POLU^ENIQ POLNOJ INFORMACII.
30.14 dISSO[I\JTED pRESS
M-x dissociated-press |\TO KOMANDA DLQ PEREME[IWANIQ TEKSTOWOGO FAJLA SLOWO ZA
SLOWOM ILI ZNAK ZA ZNAKOM.iMEQ W NA^ALE BUFER S NORMALXNYM TEKSTOM,ONA FORMIRUET
KRAJNE ZABAWNYJ WYWOD.wWOD PROIZWODITSQ IZ TEKU]EGO BUFERA Emacs.dISSO[I\JTED
pRESS ZAPISYWAET SWOJ WYWOD W BUFER S IMENEM`*Dissociation*',PRI\TOM,^TOBY OB-
LEG^ITX EGO POSTEPENNOE ^TENIE,^EREZ KAVDU@ PARU STROK (PRIMERNO) SODERVIMOE BUFERA
POKAZYWAETSQ ZANOWO.
340 rUKOWODSTWO PO GNU EmacsdISSO[I\JTED pRESS WREMQ OT WREMENI SPRA[IWAET,PRODOLVATX LI DEJSTWIE.dLQ
OSTANOWKI NEOBHODIMO OTWETITX n.oSTANOWITX MOVNO TAKVE W L@BOE WREMQ S POMO]X@
C-g.dISSOCIIROWANNAQ WYDA^A SOHRANQETSQ W BUFERE`*Dissosiation*',^TOBY PO VELANI@
MOVNO BYLO SKOPIROWATX EE W DRUGOE MESTO.
dISSO[I\JTED pRESS W PROCESSE RABOTY SOWER[AET BESPORQDO^NYE PRYVKI IZ ODNOJ
TO^KI BUFERA W DRUGU@.dLQ POLU^ENIQ PRAWDOPODOBNOGO WYWODA,A NE TARABAR]INY,ONA
SOBL@DAET NEKOTOROE PEREKRYTIE MEVDU KONCOM ODNOGO OTREZKA POSLEDOWATELXNOSTI SLOW
ILI ZNAKOW I NA^ALOM SLEDU@]EGO.tAK,ESLI TOLXKO ^TO ONA NAPE^ATALA SLOWO`PREZIDENT'
I TEPERX RE[AET PRYGNUTX W DRUGU@ TO^KU FAJLA,TO ONA MOVET ZAMETITX`ENT'W SLOWE
`PENTAGON'I PRODOLVITX WYWOD OTS@DA,WYDAWAQ W REZULXTATE`PREZIDENTAGON'.
2
nAILU^-
[IE REZULXTATY POLU^A@TSQ NA DLINNYH WYBORKAH.
pOLOVITELXNYJ ARGUMENT M-x dissociated-press WELIT EJ RABOTATX POZNAKOWO I OPRE-
DELQET ^ISLO PEREKRYWA@]IHSQ ZNAKOW.oTRICATELXNYJ ARGUMENT ZASTAWLQET EE DEJSTWO-
WATX SLOWO ZA SLOWOM I OPREDELQET KOLI^ESTWO PEREKRYWA@]IHSQ SLOW.w\TOM REVIME
CELYE SLOWA,A NE ZNAKI,TRAKTU@TSQ KAK PERESTAWLQEMYE\LEMENTY.oTSUTSTWIE ARGUMEN-
TA\KWIWALENTNO ARGUMENTU,RAWNOMU DWUM.k SNOWA[EMU SWEDENI@,WYWOD OSU]ESTWLQETSQ
TOLXKO W BUFER`*Dissociation*'.bUFER,S KOTOROGO WY NA^ALI,NE IZMENQETSQ.
dISSO[I\JTED pRESS PROIZWODIT PRIMERNO TE VE REZULXTATY,^TO I MARKOWSKAQ CEPX,
OSNOWANNAQ NA ^ASTOTNOJ TABLICE,POSTROENNOJ PO WYBORO^NOMU TEKSTU.oDNAKO,\TOT ME-
TOD QWLQETSQ NEZAWISIMYM,IGNORIGINALXNYM IZOBRETENIEM.dISSO[I\JTED pRESS POWSEME-
TODI^ESKI KOPIRUET NESKOLXKO POSLEDOWATELXNYH ZNAKOW IZ WYBORKI OT PRYVKA K PRYVKU,
TOGDA KAK CEPX mARKOWA DELALA BY SLU^AJNYJ WYBOR DLQ KAVDOGO SLOWA ILI ZNAKA.w ITOGE
WSE\TO RABOTAET BYSTREE I PRIDAET REZULXTATU BOLEE BLAGOZWU^NYJ WID.
nESOMNEKOTORYE GOWORQT,^TO IZLI[NE INTENSIWNOE ISPOLXZOWANIE dISSO[I\JTED pRESS
MOVET STATX POSTOMEHOJ W WA[EJ REALXNOJ RABOTE.pOD^AS DO UROWNQ BEZOBRAGEDII.i
IZBEGAJTE DISSO[ISLOW W SWOEJ DOKUMENTACII,ESLI WY HOTITE BYTX DLQ POLXZOWATELEJ
WPOLNQTNYMI I PRAWOSLOWNYMI.pOZABAWXTESX.wA[I BREDLOVENIQ GORQ^O PRIWETSTWU@TSQ.
30.15 dRUGIE RAZWLE^ENIQ
eSLI WY NEMNOGO ZASKU^ALI,MOVETE POPROBOWATX M-x hanoi.eSLI WAM O^ENX SKU^NO,
TO ZADAJTE EJ ^ISLENNYJ ARGUMENT.eSLI WAM O^ENX-O^ENX SKU^NO,TO POPROBUJTE ZADATX
ARGUMENT 9.oTKINXTESX NA SPINKU KRESLA I NABL@DAJTE.
eSLI WAM HO^ETSQ BOLX[E LI^NOGO U^ASTIQ,POPROBUJTE KOMANDU M-x gomoku,KOTORAQ
SYGRAET S WAMI W PQTX-W-RQD.
M-x blackbox I M-x mpuz |\TO DWE GOLOWOLOMKI.blackbox PREDLAGAET WAM OPREDELITX S
POMO]X@ TOMOGRAFII POLOVENIE OB_EKTOW WNUTRI ^ERNOGO Q]IKA.mpuz POKAZYWAET ZADA^U
NA UMNOVENIE,GDE CIFRY ZAMENENY BUKWAMI,A KAK,WY DOLVNY DOGADATXSQ.~TOBY SDELATX
PREDPOLOVENIE,NABERITE BUKWU,A ZATEM CIFRU,KOTORAQ,KAK WY DUMAETE,OBOZNA^ENA\TOJ
BUKWOJ.
M-x dunnet ZAPUSKAET PRIKL@^EN^ESKU@ IGRU;\TO BOLX[AQ GOLOWOLOMKA.
eSLI WAS RASSTROILI,ZAPUSTITE ZNAMENITU@ PROGRAMMU Eliza.nABERITE PROSTO M-x
doctor.kAVDYJ WWOD ZAKAN^IWAJTE DWOJNYM NABOROM hRETi.
kOGDA WAM BUDET NE PO SEBE,NABERITE M-x yow.2
|TO DISSO[ISLOWO DEJSTWITELXNO WOZNIKLO WO WREMQ WOJNY WO wXETNAME,KOGDA ONO BYLO O^ENX
AKTUALXNO.
gLAWA 31:nASTROJKA 34131 nASTROJKA
w\TOJ GLAWE OBSUVDA@TSQ RAZLI^NYE WOPROSY,OTNOSQ]IESQ K PROSTOJ ADAPTACII POWE-
DENIQ Emacs.~TOBY UZNATX,KAK SDELATX BOLX[IE IZMENENIQ,SMOTRITE KNIGU The Emacs
Lisp Reference Manual.
wSE WIDY NASTROJKI WOZDEJSTWU@T TOLXKO NA TOT SEANS Emacs,W KOTOROM WY IH DELAETE.
oNI POLNOSTX@ IS^EZA@T PRI ZAWER[ENII RABOTY S Emacs I NE DEJSTWU@T NA DRUGIE SEANSY
Emacs,KOTORYE MOGUT BYTX ZAPU]ENY W TO VE SAMOE WREMQ ILI POZVE.tOLXKO W ODNOM
SLU^AE SEANS RABOTY S Emacs MOVET POWLIQTX NA ^TO-LIBO WNE EGO SAMOGO | PRI ZAPISI
FAJLA.w ^ASTNOSTI,^TOBY SDELATX NASTROJKU\POSTOQNNOJ",SU]ESTWUET EDINSTWENNYJ
PUTX | POMESTITX NE^TO W WA[ FAJL`.emacs'ILI DRUGOJ PODHODQ]IJ FAJL,^TO BUDET
WYPOLNQTX NASTROJKU W KAVDOM SEANSE.sM.rAZDEL 31.7 [fAJL INICIALIZACII],S.366.
31.1 wTOROSTEPENNYE REVIMY
wTOROSTEPENNYE REVIMY |\TO NEOBQZATELXNYE WOZMOVNOSTI,KOTORYE WY MOVETE WKL@-
^ATX I WYKL@^ATX.nAPRIMER,REVIM Auto Fill |\TO WTOROSTEPENNYJ REVIM,W KOTOROM
h SPCi RAZRYWAET STROKI NA GRANICE SLOW PO MERE TOGO,KAK WY NABIRAETE.wSE WTOROSTEPEN-
NYE REVIMY NEZAWISIMY DRUG OT DRUGA I OT WYBRANNOGO OSNOWNOGO REVIMA.bOLX[INSTWO
WTOROSTEPENNYH REVIMOW SOOB]A@T,^TO ONI WKL@^ENY,W STROKE REVIMA;NAPRIMER,NAD-
PISX`Fill'W STROKE REVIMA OZNA^AET,^TO WKL@^EN REVIM Auto Fill.
dLQ POLU^ENIQ IMENI KOMANDNOJ FUNKCII,WKL@^A@]EJ ILI WYKL@^A@]EJ WTOROSTE-
PENNYJ REVIM,DOBAWXTE K IMENI WTOROSTEPENNOGO REVIMA SLOWO -mode.tAKIM OBRAZOM,
KOMANDA ZAPUSKA ILI WYKL@^ENIQ REVIMA Auto Fill NAZYWAETSQ M-x auto-fill-mode.pO-
DOBNYE KOMANDY OBY^NO ZAPUSKA@TSQ ^EREZ M-x,NO PRI VELANII K NIM MOVNO PRIWQZATX
KL@^I.bEZ ARGUMENTA\TI KOMANDY WKL@^A@T REVIM,ESLI ON BYL WYKL@^EN,I WYKL@-
^A@T,KOGDA ON BYL WKL@^EN.|TA TEHNIKA IZWESTNA KAK PEREKL@^ENIE.pOLOVITELXNYJ
ARGUMENT WSEGDA WKL@^AET REVIM,A QWNYJ NULEWOJ ILI OTRICATELXNYJ ARGUMENT WSEGDA
WYKL@^AET EGO.
wKL@^ENIE ILI WYKL@^ENIE NEKOTORYH WTOROSTEPENNYH REVIMOW PRIMENQETSQ TOLXKO K
TEKU]EMU BUFERU;KAVDYJ BUFER NEZAWISIM OT DRUGIH.sLEDOWATELXNO,WY MOVETE WKL@-
^ITX REVIM W ODNIH BUFERAH I WYKL@^ITX W DRUGIH.k WTOROSTEPENNYM REVIMAM,KOTORYE
MOGUT TAK RABOTATX,OTNOSQTSQ REVIM Abbrev,REVIM Auto Fill,REVIM Auto Save,REVIM
Font-Lock,REVIM Hscroll,REVIM ISO Accents,WTOROSTEPENNYJ REVIM Outline,REVIM Over-
write I REVIM Binary Overwrite.
rEVIM Abbrev POZWOLQET WAM OPREDELITX SOKRA]ENIQ,KOTORYE AWTOMATI^ESKI RAS[IF-
ROWYWA@TSQ PRI NABORE.nAPRIMER,`amd'MOVET RASKRYWATXSQ W`abbrev mode'.sM.gLA-
WA 24 [sOKRA]ENIQ],S.257,DLQ POLU^ENIQ POLNOJ INFORMACII.
rEVIM Auto Fill POZWOLQET WWODITX ZAPOLNENNYJ TEKST BEZ QWNOGO PRERYWANIQ STROK.
Emacs WSTAWLQET PEREWOD STROKI,KOGDA\TO NUVNO,^TOBY STROKA NE STALA SLI[KOM DLIN-
NOJ.sM.rAZDEL 21.5 [zAPOLNENIE],S.185.
rEVIM Auto Save ZASTAWLQET Emacs PERIODI^ESKI SOHRANQTX SODERVIMOE BUFERA,^TOBY
UMENX[ITX WOZMOVNYJ OB_EM POTERQNNOJ RABOTY W SLU^AE KRAHA SISTEMY.sM.rAZDEL 14.5
[sAMOSOHRANENIE],S.114.
rEVIM Enriched POZWOLQET REDAKTIROWATX I SOHRANQTX FORMATIROWANNYJ TEKST.sM.rAZDEL 21.11 [fORMATIROWANNYJ TEKST],S.198.
rEVIM Flyspell AWTOMATI^ESKI PODSWE^IWAET NEPRAWILXNO NABRANNYE SLOWA.sM.rAZ-
DEL 13.4 [pRAWOPISANIE],S.102.
rEVIM Font-Lock AWTOMATI^ESKI PODSWE^IWAET OPREDELENNYE TEKSTOWYE EDINICY,IS-
POLXZUEMYE W PROGRAMMAH,TAKIE KAK KOMMENTARII,STROKI I IMENA OPREDELENNYH FUNK-
CIJ.dLQ\TOGO TREBUETSQ OKONNAQ SISTEMA,KOTORAQ MOVET OTOBRAVATX RAZNYE [RIFTY.
sM.rAZDEL 17.13 [nA^ERTANIQ],S.155.
342 rUKOWODSTWO PO GNU EmacsrEVIM Hscroll WYPOLNQET AWTOMATI^ESKU@ GORIZONTALXNU@ PROKRUTKU\KRANA,^TOBY
TO^KA WSEGDA BYLA WIDNA.sM.rAZDEL 11.2 [gORIZONTALXNAQ PROKRUTKA],S.82.
rEVIM ISO Accents KOMPONUET ZNAKI``',`'',`"',`^',`/'I`~'SO SLEDU@]IJ BUKWOJ W BUKWU
S AKCENTOM IZ NABORA ZNAKOW ISO Latin-1.sM.rAZDEL 18.12 [pODDERVKA ZAPADNOEWROPEJSKIH
ALFAWITOW],S.172.
wTOROSTEPENNYJ REVIM Outline OBESPE^IWAET TE VE WOZMOVNOSTI,^TO I OSNOWNOJ REVIM,
NAZYWAEMYJ Outline;NO POSKOLXKU ON QWLQETSQ WTOROSTEPENNYM REVIMOM,TO WY MOVETE
ISPOLXZOWATX EGO WMESTE S L@BYM OSNOWNYM.sM.rAZDEL 21.8 [rEVIM Outline],S.190.
rEVIM Overwrite ZAMENQET SU]ESTWU@]IE ZNAKI PRI WWODE NOWYH WMESTO OBY^NOJ WSTAW-
KI SO SDWIGOM WPRAWO.nAPRIMER,ESLI TO^KA NAHODITSQ PERED`B'W SLOWE`FOOBAR',TO W RE-
VIME Overwrite WWOD G IZMENQET\TO SLOWO NA`FOOGAR',WMESTO`FOOGBAR',KAK\TO DELAETSQ
OBY^NO.w REVIME Overwrite,KOMANDA C-q WSTAWLQET ZNAK,KAKIM BY ON NE BYL,DAVE ESLI
\TO CIFRA,|\TO DAET WAM SPOSOB WSTAWKI ZNAKA WMESTO ZAMENY SU]ESTWU@]EGO.
rEVIM Binary Overwrite |\TO WARIANT REVIMA Overwrite DLQ REDAKTIROWANIQ DWOI^-
NYH FAJLOW;ON OBRABATYWAET ZNAKI NOWOJ STROKI I TABULQCII TO^NO TAKVE,KAK I DRUGIE
ZNAKI,TAK ^TO ONI MOGUT ZAMENQTX DRUGIE ZNAKI I SAMI MOGUT BYTX ZAMENENY DRUGIMI
ZNAKAMI.
sLEDU@]IE WTOROSTEPENNYE REVIMY OBY^NO PRIMENQ@TSQ KO WSEM BUFERAM SRAZU.pO-
SKOLXKU KAVDYJ IZ NIH WKL@^AETSQ ILI WYKL@^AETSQ S POMO]X@ USTANOWKI ZNA^ENIQ PE-
REMENNOJ,WY MOVETE USTANOWITX IH PO-RAZNOMU DLQ OTDELXNYH BUFEROW,QWNO DELAQ\TI
PEREMENNYE LOKALXNYMI DLQ\TIH BUFEROW.sM.rAZDEL 31.2.4 [lOKALXNYE PEREMENNYE],
S.350.
rEVIM Icomplete POKAZYWAET WOZMOVNOSTX ZAWER[ENIQ,KOGDA WY NAHODITESX W MINIBU-
FERE I ZAWER[ENIE AKTIWNO.sM.rAZDEL 5.3.4 [pARAMETRY ZAWER[ENIQ],S.49.
rEVIM Line Number POSTOQNNO OTOBRAVAET NOMER TEKU]EJ STROKI W STROKE REVIMA.sM.rAZDEL 1.3 [sTROKA REVIMA],S.25.
rEVIM Resize-MinibuпЂ‹er ZASTAWLQET MINIBUFER RAS[IRQTXSQ TAK,^TOBY ON MOG WME-
STITX WESX TEKST,KOTORYJ WY W NEGO POME]AETE.sM.rAZDEL 5.2 [rEDAKTIROWANIE W MINI-
BUFERE],S.46.
rEVIM Scroll Bar PRIKREPLQET K KAVDOMU OKNU POLOSKU PROKRUTKI (SM.rAZDEL 17.11
[pOLOSKI PROKRUTKI],S.154 ).rEVIM Menu Bar PRIKREPLQET K KAVDOMU FREJMU POLOSKU
MEN@ (SM.rAZDEL 17.12 [pOLOSKI MEN@],S.155).oBA\TIH REVIMA PO UMOL^ANI@ WKL@^ENY
PRI ISPOLXZOWANII X Window System.
w REVIME Transient Mark,KAVDOE IZMENENIE SODERVIMOGO BUFERA\DEAKTIWIRUET"METKU,
TAK ^TO KOMANDY,KOTORYE OPERIRU@T S OBLASTX@,BUDU WYDAWATX O[IBKU.|TO OZNA^AET,
^TO WY DOLVNY LIBO USTANOWITX POMETKU,LIBO QWNO\AKTIWIROWATX"EE PERED KAVDOJ KO-
MANDOJ,KOTORAQ RABOTAET S OBLASTX@.pREIMU]ESTWO REVIMA Transient Mark W TOM,^TO
Emacs MOVET OTRISOWYWATX OBLASTX PODSWE^ENNOJ (W NASTOQ]EE WREMQ TOLXKO PRI RABOTE
W X).sM.rAZDEL 8.1 [uSTANOWKA METKI],S.63.
dLQ BOLX[INSTWA WTOROSTEPENNYH REVIMOW,IMQ KOMANDY TAKVE SOWPADAET S IMENEM
PEREMENNOJ,KOTORAQ KONTROLIRUET DANNYJ REVIM.rEVIM WKL@^AETSQ,KOGDA ZNA^ENIE
PEREMENNOJ USTANAWLIWAETSQ W NE-nil,I KOMANDA USTANOWKI WTOROSTEPENNOGO REVIMA RABO-
TAET PUTEM USTANOWKI\TOJ PEREMENNOJ.nAPRIMER,KOMANDA outline-minor-mode RABOTAET,
USTANAWLIWAQ ZNA^ENIE outline-minor-mode KAK PEREMENNOJ;IMENNO\TA PEREMENNAQ NEPO-
SREDSTWENNO WKL@^AET I WYKL@^AET WTOROSTEPENNYJ REVIM Outline.~TOBY PROWERITX,
RABOTAET LI NEKIJ WTOROSTEPENNYJ REVIM TAKIM SPOSOBOM,ISPOLXZUJTE C-h v,^TOBY ZA-
PROSITX DOKUMENTACI@ NA IMQ PEREMENNOJ.
pEREMENNYE WTOROSTEPENNYH REVIMOW OBESPE^IWA@T HORO[IJ SPOSOB WKL@^ENIQ I WY-
KL@^ENIQ WTOROSTEPENNYH REVIMOW DLQ PROGRAMM NA lISPE;ONI TAKVE POLEZNY W SPISKAH
LOKALXNYH PEREMENNYH FAJLOW.nO POVALUJSTA,DWAVDY PODUMAJTE,PREVDE ^EM USTANAW-
LIWATX WTOROSTEPENNYE REVIMY ^EREZ SPISOK LOKALXNYH PEREMENNYH,POTOMU ^TO BOLX[IN-
STWO WTOROSTEPENNYH REVIMOW QWLQ@TSQ PREDMETOM PREDPO^TENIJ POLXZOWATELQ | DRUGIE
gLAWA 31:nASTROJKA 343POLXZOWATELI,KOTORYE BUDUT REDAKTIROWATX\TOT VE FAJL,MOGUT NE ZAHOTETX ISPOLXZOWATX
TE VE REVIMY,^TO PREDPO^ITAETE WY.
31.2 pEREMENNYE
pEREMENNAQ |\TO LISPOWSKIJ SIMWOL,KOTORYJ IMEET ZNA^ENIE.iMQ SIMWOLA TAKVE
NAZYWAETSQ IMENEM SOOTWETSTWU@]EJ PEREMENNOJ.iMENA PEREMENNYH MOGUT SODERVATX
L@BYE ZNAKI,KOTORYE MOGUT POQWITXSQ W FAJLE,NO PRINQTO SOSTAWLQTX IH IZ SLOW,RAZ-
DELENNYH DEFISAMI.pEREMENNAQ MOVET IMETX STROKU DOKUMENTACII,KOTORAQ OPISYWAET,
ZNA^ENIE KAKOGO WIDA ONA DOLVNA IMETX,I KAK\TO ZNA^ENIE BUDET ISPOLXZOWATXSQ.
lISP POZWOLQET HRANITX W L@BOJ PEREMENNOJ L@BOJ WID ZNA^ENIQ,NO BOLX[INSTWO
ISPOLXZUEMYH W Emacs PEREMENNYH TREBU@T ZNA^ENIE OPREDELENNOGO TIPA.zA^ASTU@ ZNA-
^ENIE DOLVNO WSEGDA BYTX STROKOJ ILI WSEGDA ^ISLOM.iNOGDA MY GOWORIM,^TO NEKOTOROE
SWOJSTWO WKL@^ENO,ESLI NEKAQ PEREMENNAQ\OTLI^NA OT nil",PODRAZUMEWAQ,^TO ESLI ZNA-
^ENIE PEREMENNOJ RAWNO nil,TO\TO SWOJSTWO WYKL@^ENO,NO ONO WKL@^ENO DLQ L@BOGO
DRUGOGO ZNA^ENIQ.pOSKOLXKU PRI USTANOWKE PEREMENNOJ WAM NUVNO WYBRATX ODNO OPREDE-
LENNOE ZNA^ENIE,DLQ WKL@^ENIQ SWOJSTWA PRINQTO ISPOLXZOWATX ZNA^ENIE t.
kAK I WSQKAQ PROGRAMMA NA lISPE,Emacs ISPOLXZUET MNOGO LISPOWSKIH PEREMENNYH
DLQ HRANENIQ WNUTRENNIH ZAPISEJ.nO BOLX[INSTWO PEREMENNYH,KOTORYE PREDSTAWLQ@T
DLQ WAS INTERES,|\TO TE,^TO SU]ESTWU@T RADI NASTROJKI.Emacs (OBY^NO) NE MENQET
ZNA^ENIQ\TIH PEREMENNYH,WMESTO\TOGO WY SAMI USTANAWLIWAETE ZNA^ENIQ,TEM SAMYM
IZMENQQ I UPRAWLQQ POWEDENIEM NEKOTORYH KOMAND Emacs.|TI PEREMENNYE NAZYWA@TSQ
POLXZOWATELXSKIMI PARAMETRAMI.bOLX[INSTWO PARAMETROW OPISANY W\TOM RUKOWODSTWE I
PRIWEDENY W UKAZATELE PEREMENNYH (SM.[uKAZATELX PEREMENNYH],S.459).
pRIMEROM PEREMENNOJ,QWLQ@]EJSQ POLXZOWATELXSKIM PARAMETROM,SLUVIT fill-
column;ONA OPREDELQET POZICI@ PRAWOGO KRAQ (KAK ^ISLO ZNAKOW OT LEWOGO KRAQ),KOTORAQ
ISPOLXZUETSQ KOMANDAMI ZAPOLNENIQ (SM.rAZDEL 21.5 [zAPOLNENIE],S.185).
31.2.1 pROSMOTR I USTANOWKA PEREMENNYH
C-h v PER h RETi
pOKAZYWAET ZNA^ENIE PEREMENNOJ PER I DOKUMENTACI@ PO NEJ (describe-
variable).
M-x set-variable hRETi PER hRETi ZNA^ENIE hRETi
iZMENQET ZNA^ENIE PEREMENNOJ PER NA ZNA^ENIE.
~TOBY POSMOTRETX ZNA^ENIE OTDELXNOJ PEREMENNOJ,ISPOLXZUETSQ KOMANDA C-h v
(describe-variable),KOTORAQ S^ITYWAET W MINIBUFERE IMQ PEREMENNOJ S WOZMOVNOSTX@
ZAWER[ENIQ.|TA KOMANDA PE^ATAET I ZNA^ENIE PEREMENNOJ,I DOKUMENTACI@ PO NEJ.
nAPRIMER,
C-h v fill-column
h RETi
WYWEDET PRIMERNO SLEDU@]EE:
fill-column's value is 75
Documentation:
*Column beyond which automatic line-wrapping should happen.
Automatically becomes buffer-local when set in any fashion.
zWEZDO^KA W NA^ALE OPISANIQ POKAZYWAET,^TO\TA PEREMENNAQ QWLQETSQ POLXZOWATELXSKIM
PARAMETROM.C-h v NE OGRANI^IWAETSQ TOLXKO POLXZOWATELXSKIMI PARAMETRAMI,ONA PRI-
NIMAET IMQ L@BOJ PEREMENNOJ.
344 rUKOWODSTWO PO GNU EmacsnAIBOLEE UDOBNYJ SPOSOB USTANOWITX KONKRETNYJ PARAMETR | WYPOLNITX M-x
set-variable.|TA KOMANDA S^ITYWAET IMQ PEREMENNOJ S POMO]X@ MINIBUFERA (S
ZAWER[ENIEM),A ZATEM S^ITYWAET LISPOWSKOE WYRAVENIE DLQ NOWOGO ZNA^ENIQ,SNOWA
ISPOLXZUQ MINIBUFER.nAPRIMER,
M-x set-variable hRETi fill-column hRETi 75 hRETi
USTANAWLIWAET fill-column RAWNOJ 75.
dEJSTWIE M-x set-variable OGRANI^ENO POLXZOWATELXSKIMI PARAMETRAMI,NO WY MOVETE
USTANOWITX ZNA^ENIE L@BOJ PEREMENNOJ S POMO]X@ WYRAVENIQ NA QZYKE lISP,ISPOLXZUQ
FUNKCI@ setq.wOT WYRAVENIE DLQ USTANOWKI ZNA^ENIQ PEREMENNOJ fill-column ^EREZ
setq:
(setq fill-column 75)
~TOBY WYPOLNITX WYRAVENIE,PODOBNOE\TOMU,PEREKL@^ITESX W BUFER`*scratch*',NA-
BERITE WYRAVENIE I ZATEM NAVMITE C-j.sM.rAZDEL 23.9 [dIALOG S lISPOM],S.255.
uSTANOWKA PEREMENNYH WLIQET TOLXKO NA TEKU]IJ SEANS Emacs,TAK VE,KAK I WSE OSTALX-
NYE SPOSOBY NASTROJKI Emacs,ZA ISKL@^ENIEM SLU^AEW,KOGDA QWNO SKAZANO INOE.
31.2.2 iNTERFEJS DLQ PROSTOJ NASTROJKI
uDOBNYJ SPOSOB NAJTI VELAEMYE PARAMETRY I IZMENITX IH PREDOSTAWLQET KOMANDA M-x
customize.oNA SOZDAET BUFER NASTROJKI,GDE WY MOVETE PROSMOTRIWATX POLXZOWATELXSKIE
PARAMETRY Emacs,PREDSTAWLENNYE LOGI^ESKI ORGANIZOWANNOJ STRUKTUROJ,REDAKTIROWATX
IH I USTANAWLIWATX IH ZNA^ENIQ.wY TAKVE MOVETE ISPOLXZOWATX BUFER NASTROJKI DLQ
POSTOQNNOGO SOHRANENIQ\TIH USTANOWOK.(pOKA W\TU STRUKTURU WKL@^ENY NE WSE POLXZO-
WATELXSKIE PARAMETRY Emacs,NO MY DOBAWLQEM OSTAW[IESQ.)
31.2.2.1 gRUPPY NASTROJKI
w CELQH NASTROJKI POLXZOWATELXSKIE PARAMETRY SOBRANY W GRUPPY,^TOBY IH BYLO
PRO]E NAJTI.gRUPPY SOBRANY W E]E BOLX[IE GRUPPY,I TAK DO SAMOJ WERHNEJ GRUPPY,
NAZWANNOJ Emacs.
kOMANDA M-x customize SOZDAET BUFER NASTROJKI,KOTORYJ POKAZYWAET GRUPPU WERHNEGO
UROWNQ Emacs I GRUPPY,KOTORYE LEVAT NA UROWENX NIVE.|TO WYGLQDIT PRIMERNO TAK,
POKAZANA ^ASTX:
/- Emacs group:----------------------------------\
[State]:visible group members are all at standard settings.
Customization of the One True Editor.
See also [Manual].
Editing group:[Go to Group]
Basic text editing facilities.
External group:[Go to Group]
Interfacing to external utilities.
E]E GRUPPY WTOROGO UROWNQ
\- Emacs group end --------------------------------/
|TO OZNA^AET,^TO BUFER POKAZYWAET SODERVIMOE GRUPPY Emacs.dRUGIE GRUPPY PERE^ISLE-
NY ZDESX,POSKOLXKU ONI QWLQ@TSQ EE SODERVIMYM.nO ONI PERE^ISLENY INA^E,BEZ OTSTUPOW
gLAWA 31:nASTROJKA 345I TIRE,POTOMU ^TO IH SODERVIMOE S@DA NE WKL@^ENO.kAVDAQ GRUPPA IMEET ODNOSTRO^NOE
OPISANIE;U GRUPPY Emacs TAKVE ESTX STROKA`[State]'.
bOLX[INSTWO TEKSTA W BUFERE NASTROJKI NAHODITSQ W REVIME TOLXKO DLQ ^TENIQ,NO
OBY^NO W NEGO WKL@^ENO NESKOLXKO REDAKTIRUEMYH POLEJ,KOTORYE WY MOVETE IZMENQTX.
sU]ESTWU@T TAKVE AKTIWNYE POLQ;\TO OZNA^AET,^TO ONI DELA@T ^TO-TO,KOGDA WY AKTI-
WIZIRUETE IH.dLQ AKTIWIZACII AKTIWNOGO POLQ LIBO ]ELKNITE NA NEM KNOPKOJ Mouse-1,
ILI USTANOWITE NA NEM TO^KU I NAVMITE
hRETi.
nAPRIMER,FRAZA`[Go to Group]',POQWLQ@]AQ W GRUPPE WTOROGO UROWNQ,| AKTIWNOE
POLE.aKTIWIZACIQ POLQ`[Go to Group]'DLQ GRUPPY SOZDAET NOWYJ BUFER NASTROJKI,KOTO-
RYJ POKAZYWAET\TU GRUPPU I EE SODERVIMOE.|TO POLE QWLQETSQ ^EM-TO WRODE GIPERSSYLKI
NA DRUGU@ GRUPPU.
sAMA GRUPPA Emacs NE WKL@^AET NI ODNOGO POLXZOWATELXSKOGO PARAMETRA,NO ONI ESTX W
DRUGIH GRUPPAH.iSSLEDUQ RAZNYE GRUPPY,WY W KONCE KONCOW NAJDETE NUVNYE WAM PARA-
METRY I NA^ERTANIQ.zATEM WY MOVETE ISPOLXZOWATX BUFER NASTROJKI,^TOBY USTANOWITX
IH.
wY MOVETE PROSMOTRETX STRUKTURU GRUPP NASTROJKI W UKRUPNENNOM WIDE,ISPOLXZUQ
KOMANDU M-x customize-browse.|TA KOMANDA SOZDAET OSOBYJ WID BUFERA NASTROJKI,KOTO-
RYJ POKAZYWAET TOLXKO IMENA GRUPP (A TAKVE PARAMETRY I NA^ERTANIQ) I IH STRUKTURU.
w\TOM BUFERE WY MOVETE PROSMATRIWATX SODERVIMOE GRUPPY,AKTIWIZIRUQ KNOPKU
`[+]'.kOGDA POKAZYWAETSQ SODERVIMOE GRUPPY,\TA KNOPKA MENQETSQ NA`[-]';AKTIWIZACIQ
\TOJ KNOPKI PRQ^ET SODERVIMOE GRUPPY.
iMQ KAVDOJ GRUPPY,PARAMETRA ILI NA^ERTANIQ W\TOM BUFERE IMEET AKTIWNOE POLE,
W KOTOROM NAPISANO`[Group]',`[Option]'ILI`[Face]'.pRI AKTIWIZACII\TOGO AKTIW-
NOGO POLQ SOZDAETSQ OBY^NYJ BUFER NASTROJKI,POKAZYWA@]IJ TOLXKO\TU GRUPPU S EE
SODERVIMYM,ILI TOLXKO\TOT PARAMETR ILI TOLXKO\TO NA^ERTANIE.tAKIM SPOSOBOM
USTANAWLIWA@T ZNA^ENIQ.
31.2.2.2 iZMENENIE PARAMETRA
zDESX PRIWEDEN PRIMER TOGO,KAK WYGLQDQT W BUFERE NASTROJKI POLXZOWATELXSKIJ PARA-
METR:
Kill Ring Max:[Hide] 30
[State]:this option is unchanged from its standard setting.
Maximum length of kill ring before oldest elements are thrown away.
tEKST,SLEDU@]IJ ZA`[Hide]',| W NA[EM SLU^AE\TO`30'| POKAZYWAET TEKU]EE ZNA-
^ENIE PARAMETRA.eSLI WMESTO`[Hide]'WY WIDITE`[Show]',TO\TO OZNA^AET,^TO ZNA^ENIE
SKRYTO;BUFER NASTROJKI SNA^ALA SKRYWAET ZNA^ENIQ,KOTORYE ZANIMA@T NESKOLXKO STROK.
nAVMITE NA`[Show]',^TOBY OTKRYTX ZNA^ENIE.
sTROKA,SLEDU@]AQ ZA IMENEM PARAMETRA,POKAZYWAET SOSTOQNIE NASTROJKI DLQ DANNOGO
PARAMETRA:W WY[EPRIWEDENNOM PRIMERE,ONA SOOB]AET,^TO WY E]E NE IZMENILI\TOT
PARAMETR.sLOWO`[State]'W NA^ALE STROKI QWLQETSQ AKTIWNYM;WY MOVETE POLU^ITX MEN@
RAZNYH OPERACIJ,NAVAW NA NEJ Mouse-1 ILI h RETi.|TI OPERACII QWLQ@TSQ SU]ESTWENNYMI
DLQ NASTROJKI PEREMENNOJ.
sTROKA POSLE STROKI`[State]'POKAZYWAET NA^ALO OPISANIQ DANNOGO PARAMETRA.eSLI
DOKUMENTACIQ ZANIMAET NESKOLXKO STROK,TO\TA STROKA OKAN^IWAETSQ KNOPKOJ`[More]';WY
MOVETE WYBRATX EE DLQ TOGO,^TOBY POSMOTRETX BOLEE POLNOE OPISANIE.
dLQ TOGO ^TOBY WWESTI NOWOE ZNA^ENIE DLQ`Kill Ring Max',PEREMESTITE TO^KU K ZNA^E-
NI@ I OTREDAKTIRUJTE EGO KAK OBY^NYJ TEKST.nAPRIMER,WY MOVETE NABRATX M-d I WWESTI
ZATEM DRUGOE ^ISLO.
kOGDA WY NA^INAETE REDAKTIROWATX TEKST,WY UWIDITE,^TO STROKA`[State]'IZMENILASX,
SOOB]AQ,^TO WY POMENQLI ZNA^ENIE:
346 rUKOWODSTWO PO GNU Emacs[State]:you have edited the value as text,but not set the option.
iZMENENIE ZNA^ENIQ W DEJSTWITELXNOSTI NE USTANAWLIWAET ZNA^ENIE PEREMENNOJ.dLQ
\TOGO WY DOLVNY USTANOWITX DANNYJ PARAMETR.~TOBY SDELATX\TO,AKTIWIZIRUJTE KNOPKU
`[State]'I WYBERITE`Set for Current Session'.
kOGDA WY USTANOWITE PARAMETR,EGO SOSTOQNIE WIZUALXNO IZMENITSQ:
[State]:you have set this option,but not saved it for future sessions.
nE NUVNO BESPOKOITXSQ O TOM,^TO WY UKAZALI NEDOPUSTIMOE ZNA^ENIE;PRI USTANOWKE
PARAMETRA ZNA^ENIE PROWERQETSQ,I NEDOPUSTIMOE ZNA^ENIE NIKOGDA NE BUDET USTANOWLENO.
pRI REDAKTIROWANII ZNA^ENIQ POLQ,KOTOROE QWLQETSQ IMENEM FAJLA,KATALOGA,KOMAN-
DY ILI ^EM-NIBUDX E]E,DLQ ^EGO OPREDELENO ZAWER[ENIE,WY MOVETE NAVIMATX M-hTABi
(widget-complete),^TOBY PROIZWESTI ZAWER[ENIE.
nEKOTORYE PARAMETRY IME@T NEBOLX[OJ FIKSIROWANNYJ NABOR WOZMOVNYH ZNA^ENIJ.
|TI PARAMETRY NE POZWOLQ@T WAM REDAKTIROWATX ZNA^ENIQ KAK TEKST.wMESTO\TOGO PERED
ZNA^ENIEM POQWLQETSQ AKTIWNOE POLE`[Value Menu]';AKTIWIZIRUJTE\TO POLE DLQ IZMENE-
NIQ ZNA^ENIQ.dLQ LOGI^ESKOGO ZNA^ENIQ\WKL/WYKL"AKTIWNOE POLE POKAZYWAET NADPISX
`[Toggle]',I ONO PEREKL@^AET\TO ZNA^ENIE.`[Value Menu]'I`[Toggle]'IZMENQ@T BUFER;
IZMENENIQ WSTUPA@T W SILU,KOGDA WY ISPOLXZUETE OPERACI@`Set for Current Session'.
nEKOTORYE PARAMETRY IME@T ZNA^ENIQ SO SLOVNOJ STRUKTUROJ.nAPRIMER,ZNA^ENIE
PEREMENNOJ load-path QWLQETSQ SPISKOM KATALOGOW.zDESX POKAZANO,KAK ONO IZOBRAVAETSQ
W BUFERE NASTROJKI:
Load Path:
[INS] [DEL] [Current dir?]:/usr/local/share/emacs/20.3/site-lisp
[INS] [DEL] [Current dir?]:/usr/local/share/emacs/site-lisp
[INS] [DEL] [Current dir?]:/usr/local/share/emacs/20.3/leim
[INS] [DEL] [Current dir?]:/usr/local/share/emacs/20.3/lisp
[INS] [DEL] [Current dir?]:/build/emacs/e20/lisp
[INS] [DEL] [Current dir?]:/build/emacs/e20/lisp/gnus
[INS]
[State]:this item has been changed outside the customization buffer.
List of directories to search for files to load....
kAVDYJ KATALOG W\TOM SPISKE IZOBRAVAETSQ NA OTDELXNOJ STROKE,A KAVDAQ STROKA IMEET
NESKOLXKO REDAKTIRUEMYH ILI AKTIWNYH POLEJ.
wY MOVETE IZMENQTX L@BOE IZ IMEN KATALOGOW.dLQ TOGO ^TOBY UDALITX KATALOG IZ
SPISKA,WYBERITE KNOPKU`[DEL]'W EGO STROKE.dLQ TOGO ^TOBY WSTAWITX W SPISOK NOWYJ
KATALOG,WYBERITE KNOPKU`[INS]'W TOJ TO^KE,KUDA WY HOTITE WSTAWITX IMQ.
wY TAKVE MOVETE WYBRATX POLE`[Current dir?]',^TOBY PEREKL@^ITXSQ MEVDU WKL@-
^ENIEM W PUTX KONKRETNOGO UKAZANNOGO KATALOGA ILI ZNA^ENIQ nil.(nil W PUTI POISKA
OZNA^AET\POPROBOWATX TEKU]IJ KATALOG").
dWE SPECIALXNYE KOMANDY,h TABi I S-hTABi,POLEZNY DLQ PEREME]ENIQ PO BUFERU NA-
STROJKI.h TABi (widget-forward) PEREME]AET WPERED NA SLEDU@]EE AKTIWNOE ILI REDAKTI-
RUEMOE POLE;S-hTABi (widget-backward) PEREME]AET W OBRATNOM NAPRAWLENII NA PREDYDU-
]EE AKTIWNOE ILI REDAKTIRUEMOE POLE.
nAVIMAQ h RETi NA REDAKTIRUEMOM POLE,WY TAKVE PEREME]AETESX NA SLEDU@]EE POLE,
ANALOGI^NO DEJSTWI@ hTABi.pRI^INA\TOGO ZAKL@^AETSQ W TOM,^TO L@DI ^ASTO NAVIMA@T
h RETi PO ZAWER[ENII REDAKTIROWANIQ POLQ.eSLI WAM PONADOBITSQ WSTAWITX W REDAKTIRUE-
MOE POLE PEREWOD STROKI,ISPOLXZUJTE C-o ILI C-q C-j.
uSTANOWKA PARAMETRA IZMENQET EGO ZNA^ENIE W TEKU]EM SEANSE Emacs;SOHRANENIE ZNA-
^ENIQ IZMENQET EGO I DLQ BUDU]IH SEANSOW.|TO RABOTAET PUTEM ZAPISI KODA W WA[ FAJL
`~/.emacs',TAK ^TO ZNA^ENIQ PARAMETROW BUDUT USTANAWLIWATXSQ KAVDYJ RAZ,KOGDA WY
gLAWA 31:nASTROJKA 347ZAPUSKAETE Emacs.dLQ TOGO ^TOBY SOHRANITX PARAMETR,AKTIWIZIRUJTE KNOPKU`[State]'
I WYBERITE OPERACI@`Save for Future Sessions'.
wY TAKVE MOVETE WOSSTANOWITX STANDARTNYE ZNA^ENIQ PARAMETROW,AKTIWIZIRUQ KNOPKU
`[State]'I WYBIRAQ OPERACI@`Reset to Standard Settings'.w DEJSTWITELXNOSTI SU]E-
STWUET TRI STANDARTNYH OPERACII WOSSTANOWLENIQ:
`Reset'eSLI WY WNESLI NEKOTORYE IZMENENIQ I NE USTANOWILI PARAMETR,TO\TA OPERA-
CIQ WOSSTANAWLIWAET TEKST BUFERA NASTROJKI,^TOBY ON SOOTWETSTWAL TEKU]EMU
ZNA^ENI@.
`Reset to Saved'
|TA OPERACIQ WOSSTANAWLIWAET ZNA^ENIE PARAMETRA W POSLEDNEE SOHRANENNOE
ZNA^ENIE I SOOTWETSTWENNO OBNOWLQET TEKST.
`Reset to Standard Settings'
|TA OPERACIQ USTANAWLIWAET PARAMETR W EGO STANDARTNOE ZNA^ENIE I SOOTWET-
STWENNO OBNOWLQET TEKST.|TA OPERACIQ TAKVE UNI^TOVAET L@BOE SOHRANENNOE
ZNA^ENIE DLQ DANNOGO PARAMETRA,TAK ^TO W BUDU]IH SEANSAH RABOTY S Emacs
WY BUDETE POLU^ATX STANDARTNOE ZNA^ENIE.
sOSTOQNIE GRUPPY POKAZYWAET,BYLO LI ^TO-NIBUDX W\TOJ GRUPPE IZMENENO,USTANOW-
LENO ILI SOHRANENO.wY MOVETE WYBRATX OPERACII`Set for Current Session',`Save for
Future Sessions'I RAZLI^NYE WIDY OPERACII`Reset'DLQ DANNOJ GRUPPY;\TI OPERACII
NAD GRUPPOJ PRIMENQ@TSQ SRAZU KO WSEM NASTROJKAM W GRUPPE I EE PODGRUPPAH.
w NA^ALE BUFERA NASTROJKI NAHODQTSQ DWE STROKI,SODERVA]IE NESKOLXKO AKTIWNYH
POLEJ:
[Set for Current Session] [Save for Future Sessions]
[Reset] [Reset to Saved] [Reset to Standard] [Bury Buffer]
aKTIWIZACIQ KNOPKI`[Bury Buffer]'SKRYWAET BUFER NASTROJKI.kAVDOE IZ OSTALXNYH
POLEJ WYPOLNQET OPERACII | USTANOWKU,SOHRANENIE ILI WOSSTANOWLENIE | NAD KAVDYM
IZ PUNKTOW W BUFERE,KOTORYE MOGUT BYTX USTANOWLENY,SOHRANENY ILI WOSSTANOWLENY.
31.2.2.3 nASTROJKA NA^ERTANIJ
pOMIMO POLXZOWATELXSKIH PARAMETROW,NEKOTORYE GRUPPY NASTROJKI TAKVE WKL@^A@T
W SEBQ NA^ERTANIQ.kOGDA WY PROSMATRIWAETE SODERVIMOE GRUPPY,W BUFERE NASTROJKI
POKAZYWA@TSQ I POLXZOWATELXSKIE PARAMETRY,I NA^ERTANIQ IZ\TOJ GRUPPY.nA^ERTANIE
MOVET WYGLQDETX TAK:
Custom Changed Face:(sample)
[State]:this face is unchanged from its standard setting.
Face used when the customize item has been changed.
Attributes:[ ] Bold:[toggle] off
[X] Italic:[toggle] on
[ ] Underline:[toggle] off
[ ] Inverse-Video:[toggle] on
[ ] Foreground:black (sample)
[ ] Background:white (sample)
[ ] Stipple:
kAVDYJ ATRIBUT NA^ERTANIQ RASPOLAGAETSQ NA OTDELXNOJ STROKE.pOLE`[x]'PERED IME-
NEM ATRIBUTA POKAZYWAET,WKL@^EN LI\TOT ATRIBUT;ZNAK`X'OBOZNA^AET,^TO WKL@^EN.wY
MOVETE WKL@^ATX ILI WYKL@^ATX ATRIBUT,WYBIRAQ DANNOE POLE.kOGDA ATRIBUT WKL@^EN,
WY MOVETE IZMENITX EGO ZNA^ENIE OBY^NYMI SPOSOBAMI.
348 rUKOWODSTWO PO GNU EmacsnA ^ERNO-BELOM DISPLEE WAM DOSTUPNY DLQ ISPOLXZOWANIQ W KA^ESTWE FONA SLEDU@]IE
CWETA:`black',`white',`gray',`gray1'I`gray3'.Emacs PODDERVIWAET\TI OTTENKI SEROGO,
ISPOLXZUQ WMESTO CWETA [TRIHOWANIE FONA S POMO]X@ MASOK.
uSTANOWKA,SOHRANENIE I SBROS NA^ERTANIQ RABOTAET TO^NO TAKVE,KAK I S POLXZOWATELX-
SKIMI PARAMETRAMI (SM.rAZDEL 31.2.2.2 [iZMENENIE PARAMETRA],S.345).
nA^ERTANIE MOVET ZADAWATX RAZNYJ WID DLQ RAZNYH TIPOW DISPLEEW.nAPRIMER,NA^ER-
TANIE MOVET SDELATX TEKST KRASNYM NA CWETNOM DISPLEE,A NA MONOHROMNOM OTOBRAVATX
\TOT TEKST VIRNYM [RIFTOM.dLQ TOGO ^TOBY UKAZATX RAZNYJ WID DLQ DANNOGO NA^ERTA-
NIQ,WYBERITE PUNKT`Show Display Types'IZ MEN@,KOTOROE POQWLQETSQ PRI WYBORE KNOPKI
`[State]'.
dRUGOJ,BOLEE OB]IJ SPOSOB USTANOWITX ATRIBUTY ZADANNOGO NA^ERTANIQ | ISPOLXZO-
WATX KOMANDU M-x modify-face.|TA KOMANDA S^ITYWAET IMQ NA^ERTANIQ I ATRIBUTY,ODIN
ZA DRUGIM.dLQ ATRIBUTOW,ZADA@]IH CWETA I MASKI,TEKU]IM ZNA^ENIEM ATRIBUTA BU-
DET ZNA^ENIE PO UMOL^ANI@ | PROSTO NAVMITE h RETi,ESLI WY NE HOTITE IZMENQTX\TOT
ATRIBUT.nABERITE`none'W TOM SLU^AE,KOGDA WY HOTITE O^ISTITX DANNYJ ATRIBUT.
31.2.2.4 nASTROJKA OTDELXNYH PUNKTOW
wMESTO TOGO ^TOBY NAHODITX PARAMETR,KOTORYJ WY HOTITE IZMENITX,PEREME]AQSX
SKWOZX DEREWO GRUPP,WY MOVETE UKAZATX,KAKOJ KONKRETNO PARAMETR,NA^ERTANIE ILI GRUP-
PU WY HOTITE NASTROITX.
M-x customize-option h RETi PARAMETR hRETi
sOZDATX BUFER NASTROJKI TOLXKO DLQ ODNOGO PARAMETRA.
M-x customize-face
h RETi NA^ERTANIE hRETi
sOZDATX BUFER NASTROJKI TOLXKO DLQ ODNOGO NA^ERTANIQ.
M-x customize-group
h RETi GRUPPA hRETi
sOZDATX BUFER NASTROJKI TOLXKO DLQ ODNOJ GRUPPY.
M-x customize-apropos
h RETi regexp hRETi
sOZDATX BUFER NASTROJKI DLQ WSEH PARAMETROW,NA^ERTANIJ I GRUPP,KOTORYE
SOOTWETSTWU@T regexp.
M-x customize-changed-options
h RETi WERSIQ hRETi
sOZDATX BUFER NASTROJKI DLQ WSEH PARAMETROW,NA^ERTANIJ I GRUPP,^EJ SMYSL
IZMENILSQ NA^INAQ S UKAZANNOJ WERSII Emacs.
M-x customize-saved
sOZDATX BUFER NASTROJKI,SODERVA]IJ WSE PARAMETRY I NA^ERTANIQ,KOTORYE
WY SOHRANILI S POMO]X@ BUFEROW NASTROJKI.
M-x customize-customized
sOZDATX BUFER NASTROJKI,SODERVA]IJ WSE PARAMETRY I NA^ERTANIQ,KOTORYE
WY IZMENILI,NO NE SOHRANILI.
eSLI WY HOTITE IZMENITX KONKRETNYJ POLXZOWATELXSKIJ PARAMETR S POMO]X@ BUFERA
NASTROJKI,I WY ZNAETE EGO IMQ,TO WY MOVETE ISPOLXZOWATX KOMANDU M-x customize-option
I UKAZATX IMQ\TOGO PARAMETRA.|TO SOZDAET BUFER NASTROJKI TOLXKO DLQ ODNOGO PARAMETRA
|DLQ TOGO,KOTORYJ WY ZAPROSILI.iZMENENIE,USTANOWKA I SOHRANENIE ZNA^ENIQ RABOTAET
TO^NO TAK VE,KAK OPISANO WY[E,NO TOLXKO DLQ UKAZANNOGO PARAMETRA.
tAKIM VE OBRAZOM WY MOVETE IZMENITX PARAMETRY KONKRETNOGO NA^ERTANIQ,WYBRANNOGO
PO IMENI.dLQ\TOGO ISPOLXZUJTE KOMANDU M-x customize-face.
wY TAKVE MOVETE SOZDATX BUFER NASTROJKI DLQ OTDELXNOJ GRUPPY,ISPOLXZUQ KOMANDU
M-x customize-group.w\TOM BUFERE POQWITSQ NEPOSREDSTWENNOE SODERVIMOE WYBRANNOJ
gLAWA 31:nASTROJKA 349GRUPPY,W TOM ^ISLE PEREMENNYE-PARAMETRY,NA^ERTANIQ I DRUGIE GRUPPY.oDNAKO SO-
DERVIMOE PODGRUPP IZNA^ALXNO BUDET SKRYTO.wY MOVETE PROSMOTRETX IH SODERVIMOE
OBY^NYM SPOSOBOM,WYBRAW KNOPKU`[Show]'.
dLQ BOLEE TO^NOGO UKAZANIQ TOGO,^TO WY HOTITE NASTROITX,WY MOVETE ISPOLXZOWATX
KOMANDU M-x customize-apropos.w KA^ESTWE ARGUMENTA WY UKAZYWAETE REGULQRNOE WYRA-
VENIE;ZATEM W SOZDANNOM BUFERE NASTROJKI OTOBRAVA@TSQ WSE PARAMETRY,NA^ERTANIQ I
GRUPPY,^XI IMENA UDOWLETWORQ@T\TOMU REGULQRNOGO WYRAVENI@.eSLI WY UKAVETE PU-
STOE REGULQRNOE WYRAVENIE,TO BUFER NASTROJKI BUDET WKL@^ATX WSE GRUPPY,PARAMETRY
I NA^ERTANIQ (NO\TO ZAJMET DLITELXNOE WREMQ).
kOGDA WY USTANAWLIWAETE NOWU@ WERSI@ Emacs,WY MOVETE ZAHOTETX NASTROITX NOWYE
PARAMETRY,A TAKVE TE PARAMETRY,^EJ SMYSL ILI ZNA^ENIQ PO UMOL^ANI@ BYLI IZMENENY.
~TOBY SDELATX\TO,WOSPOLXZUJTESX KOMANDOJ M-x customize-changed-options I UKAVITE
W MINIBUFERE NOMER PREDYDU]EJ WERSII Emacs.|TA KOMANDA SOZDAST BUFER NASTROJKI,
KOTORYJ POKAVET WAM WSE PARAMETRY (I GRUPPY),^XE OPREDELENIE IZMENILOSX PO SRAWNENI@
S UKAZANNOJ WERSIEJ.
eSLI WY IZMENILI ZNA^ENIQ PARAMETROW I ZATEM RE[ILI,^TO SDELALI\TO PO O[IB-
KE,TO U WAS ESTX DWE SPECIALXNYE KOMANDY DLQ TOGO,^TOBY PERESMOTRETX PREDYDU]IE
IZMENENIQ.iSPOLXZUJTE KOMANDU customize-saved,^TOBY POSMOTRETX NA PARAMETRY I NA-
^ERTANIQ,KOTORYE WY UVE SOHRANILI.a KOMANDU M-x customize-customized ISPOLXZUJTE
DLQ TOGO,^TOBY POSMOTRETX NA PARAMETRY I NA^ERTANIQ,KOTORYE WY USTANOWILI,NO E]E
NE SOHRANILI.
31.2.3 lOWU[KI
lOWU[KI |\TO WAVNYJ MEHANIZM NASTROJKI Emacs.lOWU[KOJ NAZYWA@T LISPOWSKU@
PEREMENNU@,SODERVA]U@ SPISOK FUNKCIJ,KOTORYE WYZYWA@TSQ W NEKOTOROJ OPREDELENNOJ
SITUACII.(|TO NAZYWAETSQ ZAPUSKOM LOWU[KI.) oTDELXNYE FUNKCII W\TOM SPISKE NAZYWA-
@TSQ FUNKCIQMI\TOJ LOWU[KI.zA REDKIMI ISKL@^ENIQMI,SRAZU POSLE ZAPUSKA LOWU[KI
W Emacs PUSTYE,TAK ^TO WSE FUNKCII W L@BOJ LOWU[KE |\TO QWNO POME]ENNYE TUDA WAMI
DLQ NASTROJKI.
bOLX[INSTWO OSNOWNYH REVIMOW ZAPUSKA@T NA POSLEDNEM\TAPE INICIALIZACII ODNU
ILI BOLEE LOWU[EK REVIMA.|TO OBLEG^AET NASTROJKU POWEDENIQ REVIMA PUTEM PEREKRYTIQ
LOKALXNYH PEREMENNYH,ZNA^ENIQ KOTORYH UVE BYLI PRISWOENY DANNYM REVIMOM.nO
LOWU[KI TAKVE ISPOLXZU@TSQ W DRUGIH KONTEKSTAH.nAPRIMER,LOWU[KA suspend-hook
ZAPUSKAETSQ NEPOSREDSTWENNO PERED TEM,KAK Emacs PRIOSTANAWLIWAET SWO@ RABOTU SM.rAZDEL 3.1 [wYHOD IZ Emacs],S.33).
bOLX[INSTWO LOWU[EK W Emacs QWLQ@TSQ NORMALXNYMI LOWU[KAMI.|TO OZNA^AET,^TO
ZAPUSK TAKOJ LOWU[KI DEJSTWUET PUTEM BEZUSLOWNOGO WYZOWA WSEH EE FUNKCIJ BEZ ARGUMEN-
TOW.mY STARALISX SOHRANITX BOLX[U@ ^ASTX LOWU[EK NORMALXNYMI,^TOBY WY MOGLI
ISPOLXZOWATX IH ODNIM I TEM VE SPOSOBOM.kAVDAQ PEREMENNAQ W Emacs,^XE IMQ OKAN^I-
WAETSQ NA`-hook',QWLQETSQ NORMALXNOJ LOWU[KOJ.
tAKVE ESTX NESKOLXKO ANOMALXNYH LOWU[EK.iMENA\TIH PEREMENNYH OKAN^IWA@TSQ
NA`-hooks'ILI`-functions',A NE NA`-hook'.aNOMALXNOSTX\TIH LOWU[EK ZAKL@^AETSQ
W TOM,^TO IH FUNKCII WYZYWA@TSQ S KAKOJ-TO OSOBENNOSTX@ | WOZMOVNO,IM PEREDA-
@TSQ ARGUMENTY,A MOVET WOZWRA]AEMOE IMI ZNA^ENIE KAK-TO ISPOLXZUETSQ.nAPRIMER,
find-file-not-found-hooks (SM.rAZDEL 14.2 [oBRA]ENIE],S.106) |ANOMALXNAQ LOWU[KA,
POTOMU ^TO KAK TOLXKO ODNA IZ EE FUNKCIJ WOZWRA]AET OTLI^NOE OT nil ZNA^ENIE,OSTALX-
NYE FUNKCII NE WYZYWA@TSQ SOWSEM.w DOKUMENTACII NA KAVDU@ ANOMALXNU@ LOWU[KU
PODROBNO OPISANO,W ^EM SOSTOIT EE OSOBENNOSTX.
dLQ DOBAWLENIQ FUNKCII K LOWU[KE (KAK NORMALXNOJ,TAK I ANOMALXNOJ) REKOMENDUETSQ
WYZYWATX FUNKCI@ add-hook.wY MOVETE ISPOLXZOWATX L@BU@ PRAWILXNU@ FUNKCI@ QZY-
KA lISP KAK FUNKCI@ LOWU[KI,PRI USLOWII,^TO ONA MOVET OBRABOTATX PRAWILXNOE ^ISLO
350 rUKOWODSTWO PO GNU EmacsARGUMENTOW (NULX W SLU^AE NORMALXNOJ LOWU[KI).kONE^NO,NE WSQKAQ LISPOWSKAQ FUNKCIQ
POLEZNA W KAVDOJ KONKRETNOJ LOWU[KE.
nAPRIMER,WOT KAK USTANOWITX LOWU[KU DLQ WKL@^ENIQ REVIMA Auto Fill PRI WHODE W
REVIM Text I W DRUGIE REVIMY,OSNOWANNYE NA REVIME Text:
(add-hook'text-mode-hook'turn-on-auto-fill)
sLEDU@]IJ PRIMER POKAZYWAET,KAK ISPOLXZOWATX LOWU[KI DLQ NASTROJKI OTSTUPOW
W PROGRAMMAH NA sI.(l@DI ^ASTO OTDA@T STROGOE PREDPO^TENIE ODNOMU FORMATU PO
SRAWNENI@ S DRUGIM).pRIWODIMAQ ZDESX FUNKCIQ LOWU[KI QWLQETSQ ANONIMNYM LQMBDA-
WYRAVENIEM.
(setq my-c-style
'((c-comment-only-line-offset.4)
(c-cleanup-list.(scope-operator
empty-defun-braces
defun-close-semi))
(c-offsets-alist.((arglist-close.c-lineup-arglist)
(substatement-open.0)))))
(add-hook'c-mode-common-hook
(function (lambda ()
(c-add-style"my-style"my-c-style t))))
lU^[E WSEGO PROEKTIROWATX FUNKCII LOWU[EK TAKIM OBRAZOM,^TOBY PORQDOK WYPOLNE-
NIQ NE IGRAL ROLI.sOZDAWATX L@BU@ ZAWISIMOSTX OT PORQDKA WYZOWA |\NAPRA[IWATXSQ
NA PROBLEMY".oDNAKO,PORQDOK PREDSKAZUEM:FUNKCII,DOBAWLENNYE POSLEDNIMI,WYPOL-
NQ@TSQ PERWYMI.
31.2.4 lOKALXNYE PEREMENNYE
M-x make-local-variable hRETi PER hRETi
sDELATX PEREMENNU@ PER LOKALXNOJ W TEKU]EM BUFERE.
M-x kill-local-variable h RETi PER hRETi
sDELATX TAK,^TO PEREMENNAQ PER ISPOLXZOWALA W TEKU]EM BUFERE SWOE GLOBALX-
NOE ZNA^ENIE.
M-x make-variable-buffer-local h RETi PER hRETi
pOMETITX PEREMENNU@ PER TAK,^TOBY EE USTANOWKA DELALA EE LOKALXNOJ DLQ
TEKU]EGO W TOT MOMENT BUFERA.
pO^TI L@BAQ PEREMENNAQ MOVET BYTX SDALANA W LOKALXNOJ DLQ OPREDELENNOGO BUFERA
Emacs.|TO OZNA^AET,^TO EE ZNA^ENIE W\TOM BUFERE NE ZAWISIT OT EE ZNA^ENIQ W DRUGIH
BUFERAH.nESKOLXKO PEREMENNYH WSEGDA QWLQ@TSQ LOKALXNYMI W KAVDOM BUFERE.l@BAQ
DRUGAQ PEREMENNAQ Emacs IMEET GLOBALXNOE ZNA^ENIE,KOTOROE DEJSTWUET WO WSEH BUFERAH,
W KOTORYH\TA PEREMENNAQ NE SDELANA LOKALXNOJ.
kOMANDA M-x make-local-variable S^ITYWAET IMQ PEREMENNOJ I DELAET EE LOKALXNOJ
DLQ DANNOGO BUFERA.bUDU]IE IZMENENIQ W DANNOM BUFERE NE ZATRONUT DRUGIE BUFERY,A
BUDU]IE IZMENENIQ GLOBALXNOGO ZNA^ENIQ NE ZATRONUT ZNA^ENIQ DLQ DANNOGO BUFERA.
M-x make-variable-buffer-local S^ITYWAET IMQ PEREMENNOJ I IZMENQET BUDU]EE EE
POWEDENIE TAKIM OBRAZOM,^TO PRI USTANOWKE ONA AWTOMATI^ESKI STANOWITSQ LOKALXNOJ.
tO^NEE,ESLI PEREMENNAQ POME^AETSQ TAKIM SPOSOBOM,TO OBY^NYE SPOSOBY USTANOWKI PERE-
MENNOJ SNA^ALA BUDUT AWTOMATI^ESKI WYPOLNQTX make-local-variable.tAKIE PEREMENNYE
MY NAZYWAEM PEREMENNYMI BUFERA.
oSNOWNYE REVIMY (SM.gLAWA 19 [oSNOWNYE REVIMY],S.175) WSEGDA DELA@T PEREMENNYE
LOKALXNYMI DLQ BUFERA DO IH USTANOWKI.pO\TOMU IZMENENIE OSNOWNOGO REVIMA W ODNOM
gLAWA 31:nASTROJKA 351BUFERE NE WLIQET NA DRUGIE BUFERY.wTOROSTEPENNYE REVIMY TAKVE RABOTA@T PUTEM
USTANOWKI PEREMENNYH | OBY^NO KAVDYJ WTOROSTEPENNYJ REVIM IMEET ODNU UPRAWLQ@-
]U@ PEREMENNU@,KOTORAQ OTLI^NA OT nil,KOGDA DANNYJ REVIM WKL@^EN (SM.rAZDEL 31.1
[wTOROSTEPENNYE REVIMY],S.341 ).dLQ BOLX[INSTWA WTOROSTEPENNYH REVIMOW UPRAWLQ@-
]AQ PEREMENNAQ QWLQETSQ PEREMENNOJ BUFERA.
Emacs SODERVIT NEKOTOROE KOLI^ESTWO PEREMENNYH,KOTORYE WSEGDA QWLQ@TSQ PEREMEN-
NYMI BUFERA.s@DA WKL@^A@TSQ abbrev-mode,auto-fill-function,case-fold-search,
comment-column,ctl-arrow,fill-column,fill-prefix,indent-tabs-mode,left-margin,
mode-line-format,overwrite-mode,selective-display-ellipses,selective-display,
tab-width I truncate-lines.nEKOTORYE DRUGIE PEREMENNYE TAKVE WSEGDA QWLQ@TSQ LO-
KALXNYMI DLQ TEKU]EGO BUFERA,NO ONI ISPOLXZU@TSQ DLQ WNUTRENNIH CELEJ.
nEKOTORYE PEREMENNYE NE MOGUT BYTX LOKALXNYMI DLQ BUFERA,POTOMU ^TO ONI WMESTO
\TOGO WSEGDA LOKALXNY DLQ KAVDOGO DISPLEQ (SM.rAZDEL 17.8 [mNOVESTWO DISPLEEW],S.152).
eSLI WY POPYTAETESX SDELATX KAKU@-LIBO IZ\TIH PEREMENNYH LOKALXNOJ DLQ BUFERA,TO
WY POLU^ITE SOOB]ENIE OB O[IBKE.
kOMANDA M-x kill-local-variable S^ITYWAET IZ MINIBUFERA IMQ PEREMENNOJ I PRE-
KRA]AET EE SU]ESTWOWANIE KAK LOKALXNOJ DLQ TEKU]EGO BUFERA.s\TOGO MOMENTA W\TOM
BUFERE NA^INAET DEJSTWOWATX GLOBALXNOE ZNA^ENIE PEREMENNOJ.uSTANOWKA OSNOWNOGO REVI-
MA UNI^TOVAET WSE LOKALXNYE PEREMENNYE BUFERA ZA ISKL@^ENIEM NESKOLXKIH,SPECIALXNO
OTME^ENNYH KAK POSTOQNNO LOKALXNYE.
dLQ USTANOWKI GLOBALXNOGO ZNA^ENIQ PEREMENNOJ,NEZAWISIMO OT TOGO,IMEET LI ONA
LOKALXNOE ZNA^ENIE W TEKU]EM BUFERE,MOVNO ISPOLXZOWATX FUNKCI@ lISPA setq-default.
oNA RABOTAET ANALOGI^NO setq,NO USTANAWLIWAET GLOBALXNYE ZNA^ENIQ PEREMENNYH,A NE
LOKALXNYE (ESLI ONI ESTX).eSLI W TEKU]EM BUFERE DEJSTWITELXNO SU]ESTWUET LOKALXNOE
ZNA^ENIE,TO NOWOE GLOBALXNOE ZNA^ENIE MOVET BYTX NEWIDIMO DO TEH POR,POKA WY NE
PEREKL@^ITESX W DRUGOJ BUFER.wOT PRIMER:
(setq-default fill-column 75)
setq-default |\TO EDINSTWENNYJ SPOSOB USTANOWKI GLOBALXNOGO ZNA^ENIQ PEREMENNOJ,
KOTORAQ BYLA POME^ENA FUNKCIEJ make-variable-buffer-local.
pROGRAMMY NA lISPE MOGUT POSMOTRETX NA ZNA^ENIE NEKOTOROJ PEREMENNOJ PO UMOL^A-
NI@ S POMO]X@ FUNKCII default-value.|TA FUNKCIQ PRINIMAET W KA^ESTWE ARGUMENTA
SIMWOL I WOZWRA]AET EGO ZNA^ENIE PO UMOL^ANI@.aRGUMENT WY^ISLQETSQ;OBY^NO WY
DOLVNY QWNO POSTAWITX PERED NIM KAWY^KU.nAPRIMER,WOT KAK MOVNO POLU^ITX ZNA^ENIE
PO UMOL^ANI@ DLQ PEREMENNOJ fill-column:
(default-value'fill-column)
31.2.5 lOKALXNYE PEREMENNYE W FAJLAH
fAJL MOVET UKAZYWATX SPISOK ZNA^ENIJ LOKALXNYH PEREMENNYH,KOTORYE DOLVNY IS-
POLXZOWATXSQ PRI REDAKTIROWANII\TOGO FAJLA W Emacs.oBRA]ENIE K FAJLU PROWERQET
SPISOK LOKALXNYH PEREMENNYH,PRI\TOM KAVDAQ IZ\TIH PEREMENNYH DELAETSQ LOKALXNOJ
DLQ BUFERA,I DLQ NEE USTANAWLIWAETSQ ZNA^ENIE,UKAZANNOE W FAJLE.
eSTX DWA SPOSOBA UKAZANIQ LOKALXNYH PEREMENNYH:W PERWOJ STROKE ILI S POMO]X@
SPISKA LOKALXNYH PEREMENNYH.zDESX MY POKAVEM,KAK ZADATX PEREMENNYE W PERWOJ STROKE:
-*- mode:IMQ-REVIMA;PER:ZNA^ENIE;...-*-
tAKIM SPOSOBOM WY MOVETE NAPISATX L@BOE KOLI^ESTWO PAR PEREMENNAQ/ZNA^ENIE,KAVDAQ
PARA RAZDELQETSQ DWOETO^IEM I TO^KOJ S ZAPQTOJ,KAK POKAZANO WY[E.mode:IMQ-REVIMA;
ZADAET OSNOWNOJ REVIM;\TA PARA DOLVNA BYTX PERWOJ W STROKE.zNA^ENIQ NE WY^ISLQ@TSQ,
A ISPOLXZU@TSQ BUKWALXNO.wOT PRIMER,KOTORYJ ZADAET REVIM Lisp I USTANAWLIWAET DWE
PEREMENNYE S ^ISLOWYMI ZNA^ENIQMI:
352 rUKOWODSTWO PO GNU Emacs;;-*-mode:Lisp;fill-column:75;comment-column:50;-*-
|TIM SPOSOBOM WY MOVETE TAKVE UKAZATX SISTEMU KODIROWANIQ DLQ DANNOGO FAJLA:
PROSTO ZADAJTE ZNA^ENIE DLQ\PEREMENNOJ"S IMENEM coding.zNA^ENIEM DOLVNO BYTX
IMQ SISTEMY KODIROWANIQ,KOTOROE Emacs MOVET RASPOZNATX.sM.rAZDEL 18.7 [sISTEMY
KODIROWANIQ],S.165.
sPISOK LOKALXNYH PEREMENNYH NAHODITSQ W KONCE FAJLA,NA POSLEDNEJ STRANICE.(~ASTO
BYWAET LU^[E WSEGO POMESTITX EGO NA OTDELXNU@ STRANICU.) sPISOK LOKALXNYH PEREMEN-
NYH NA^INAETSQ SO STROKI,SODERVA]EJ`Local Variables:',I OKAN^IWAETSQ STROKOJ,SODER-
VA]EJ`End:'.mEVDU NIMI IDUT IMENA PEREMENNYH I IH ZNA^ENIQ,PO ODNOMU NA STROKE,
W WIDE`PEREMENNAQ:ZNA^ENIE'.zNA^ENIQ NE WY^ISLQ@TSQ,ONI ISPOLXZU@TSQ BUKWALXNO.
eSLI W FAJLE ISPOLXZU@TSQ I SPISOK LOKALXNYH PEREMENNYH,I STROKA`-*-',TO Emacs
OBRABATYWAET SNA^ALA WSE W STROKE`-*-',A ZATEM WSE W SPISKE LOKALXNYH PEREMENNYH.
wOT PRIMER SPISKA LOKALXNYH PEREMENNYH:
;;;Local Variables:***
;;;mode:lisp ***
;;;comment-column:0 ***
;;;comment-start:";;;"***
;;;comment-end:"***"***
;;;End:***
kAK WY WIDITE,KAVDAQ STROKA NA^INAETSQ S PREFIKSA`;;;'I ZAKAN^IWAETSQ SUFFIKSOM
`***'.Emacs RASPOZNAET IH KAK PREFIKS I SUFFIKS,OSNOWYWAQSX NA PERWOJ STROKE SPISKA,
TAK KAK ONI OKRUVA@T MAGI^ESKU@ STROKU`Local Variables:';ZATEM ONI AWTOMATI^ESKI
ISKL@^A@TSQ IZ OSTALXNYH STROK SPISKA.
oBY^NO PREFIKSY I/ILI SUFFIKSY ISPOLXZU@TSQ DLQ WSTRAIWANIQ SPISKA LOKALXNYH
PEREMENNYH W KOMMENTARII,^TOBY ON NE SMU]AL DRUGIE PROGRAMMY,NA WHOD KOTORYM
PODAETSQ\TOT FAJL.pRIMER WY[E NAPISAN DLQ QZYKA,GDE KOMMENTARIJ NA^INAETSQ S`;;;
'I ZAKAN^IWAETSQ NA`***';ZNA^ENIQ LOKALXNYH PEREMENNYH comment-start I comment-end
NASTRAIWA@T Emacs NA PONIMANIE\TOGO NEOBY^NOGO SINTAKSISA.nE ISPOLXZUJTE PREFIKS
ILI SUFFIKS,ESLI ONI WAM NE NUVNY.
dWA\IMENI PEREMENNYH"IME@T OSOBYJ SMYSL W SPISKE LOKALXNYH PEREMENNYH:ZNA^E-
NIE DLQ PEREMENNOJ mode W DEJSTWITELXNOSTI USTANAWLIWAET OSNOWNOJ REVIM,A ZNA^ENIE
DLQ PEREMENNOJ eval PROSTO WY^ISLQETSQ KAK WYRAVENIE,A EGO ZNA^ENIE IGNORIRUETSQ.
mode I eval NE QWLQ@TSQ NASTOQ]IMI PEREMENNYMI;USTANOWKA PEREMENNYH S IMENAMI
mode I eval W L@BOM DRUGOM KONTEKSTE NE IMEET OSOBOGO SMYSLA.eSLI mode ISPOLXZUETSQ
DLQ USTANOWKI OSNOWNOGO REVIMA,TO ONA DOLVNA BYTX PERWOJ\PEREMENNOJ"W SPISKE.
wY MOVETE ISPOLXZOWATX\PEREMENNU@"mode DLQ USTANOWKI WTOROSTEPENNYH REVIMOW
TO^NO TAK VE,KAK I OSNOWNYH REVIMOW;W DEJSTWITELXNOSTI,WY MOVETE ISPOLXZOWATX EE
NESKOLXKO RAZ,SNA^ALA DLQ USTANOWKI OSNOWNOGO REVIMA,A ZATEM DLQ USTANOWKI WTORO-
STEPENNYH REVIMOW,KOTORYE BUDET DEJSTWOWATX DLQ WYBRANNOGO BUFERA.nO BOLX[INSTWO
WTOROSTEPENNYH REVIMOW NE STOIT NIKAK UKAZYWATX W FAJLE,POSKOLXKU ONI PREDSTAWLQ@T
PREDPO^TENIQ POLXZOWATELQ.
nAPRIMER,U WAS MOVETE POQWITXSQ ISKU[ENIE WKL@^ITX REVIM Auto Fill S POMO]X@
SPISKA LOKALXNYH PEREMENNYH.|TO BUDET O[IBKOJ.iSPOLXZOWATX REVIM Auto Fill ILI NET
|\TO DELO LI^NOGO WKUSA,A NE SWOJSTWO SODERVIMOGO FAJLA.eSLI WY HOTITE ISPOLXZO-
WATX REVIM Auto Fill,TO USTANOWITE LOWU[KI OSNOWNYH REVIMOW W WA[EM FAJLE`.emacs',
^TOBY ON WKL@^ALSQ (KOGDA NUVNO) TOLXKO DLQ WAS (SM.rAZDEL 31.7 [fAJL INICIALIZACII],
S.366 ).nE ISPOLXZUJTE SPISOK LOKALXNYH PEREMENNYH DLQ NAWQZYWANIQ WA[EGO WKUSA WSEM
OSTALXNYM.
sPISOK LOKALXNYH PEREMENNYH DOLVEN NA^INATXSQ NE DALEE,^EM ZA 3000 ZNAKOW OT KON-
CA FAJLA,I ON DOLVNO NAHODITXSQ NA POSLEDNEJ STRANICE,ESLI FAJL PODELEN NA STRANICY.
iNA^E Emacs NE ZAMETIT EGO TAM.cELX\TOGO W TOM,^TOBY SLU^AJNAQ`Local Variable:',
gLAWA 31:nASTROJKA 353POQWIW[AQSQ NE NA POSLEDNEJ STRANICE,NE PUTALA Emacs,I ^TOBY PRI OBRA]ENII K DLIN-
NOMU FAJLU,KOTORYJ POLNOSTX@ QWLQETSQ ODNOJ STRANICEJ I NE IMEET SPISKA LOKALXNYH
PEREMENNYH,NE TRATILOSX WREMQ NA PROSMOTR WSEGO FAJLA.
iSPOLXZUJTE KOMANDU normal-mode DLQ PEREUSTANOWKI LOKALXNYH PEREMENNYH I OSNOW-
NOGO REVIMA DANNOGO BUFERA SOOTWETSTWENNO IMENI FAJLA I EGO SODERVIMOGO,WKL@^AQ
SPISKI LOKALXNYH PEREMENNYH,ESLI ONI ESTX.sM.rAZDEL 19.1 [wYBOR REVIMA],S.175.
pEREMENNAQ enable-local-variables GOWORIT,NUVNO LI OBRABATYWATX LOKALXNYE PE-
REMENNYE W FAJLAH,I TAKIM OBRAZOM DAET WAM [ANS PEREKRYTX IH.pO UMOL^ANI@ EE
ZNA^ENIE RAWNO t,^TO OZNA^AET OBRABOTKU LOKALXNYH PEREMENNYH W FAJLAH.eSLI WY USTA-
NOWITE ZNA^ENIE PEREMENNOJ RAWNYM nil,TO Emacs PROSTO BUDET IGNORIROWATX LOKALXNYE
PEREMENNYE W FAJLAH.l@BOE DRUGOE ZNA^ENIE WELIT DELATX ZAPROS U POLXZOWATELQ O KAV-
DOM FAJLE,W KOTOROM IME@TSQ LOKALXNYE PEREMENNYE,POKAZYWAQ OPREDELENIQ LOKALXNYH
PEREMENNYH,^TOBY WY MOGLI PRINQTX RE[ENIE.
\pEREMENNAQ"eval I NEKOTORYE NASTOQ]IE PEREMENNYE SOZDA@T NEKIJ RISK;KOGDA WY
OBRA]AETESX K ^UVIM FAJLAM,OPREDELENIQ LOKALXNYH PEREMENNYH DLQ NIH MOGUT PROIZ-
WOLXNO WOZDEJSTWOWATX NA WA[ Emacs.pO\TOMU PARAMETR enable-local-eval KONTROLI-
RUET,BUDET LI Emacs OBRABATYWATX PEREMENNYE eval,A TAK VE PEREMENNYE,^XI IMENA
OKAN^IWA@TSQ NA`-hook',`-hooks',`-function'ILI`-functions',A TAKVE NEKOTORYE DRU-
GIE PEREMENNYE.sU]ESTWUET TRI WOZMOVNYH ZNA^ENIQ DLQ DANNOGO PARAMETRA:t,nil I
^TO-NIBUDX DRUGOE,TO^NO TAK VE,KAK I DLQ enable-local-variables.zNA^ENIEM PO UMOL-
^ANI@ QWLQETSQ maybe,\TO NE t I NE nil,TAK ^TO OBY^NO Emacs SPROSIT PODTWERVDENIE
OB USTANOWKE\TIH PEREMENNYH.
31.3 kLAWIATURNYE MAKROSY
kLAWIATURNYJ MAKROS |\TO OPREDELENNAQ POLXZOWATELEM KOMANDA,OBOZNA^A@]AQ DRU-
GU@ POSLEDOWATELXNOSTX KL@^EJ.nAPRIMER,ESLI WY OBNARUVILI,^TO WAM NUVNO NABRATX
C-n C-d SOROK RAZ,TO WY MOVETE USKORITX RABOTU,OPREDELIW KLAWIATURNYJ MAKROS DLQ
C-n C-d I WYZWAW EGO SO S^ET^IKOM POWTORENIJ 40.
C-x ( nA^ATX OPREDELENIE KLAWIATURNOGO MAKROSA (start-kbd-macro).
C-x ) zAKON^ITX OPREDELENIE KLAWIATURNOGO MAKROSA (end-kbd-macro).
C-x e wYPOLNITX SAMYJ POSLEDNIJ KLAWIATURNYJ MAKROS (call-last-kbd-macro).
C-u C-x ( zANOWO WYPOLNITX POSLEDNIJ KLAWIATURNYJ MAKROS I ZATEM DOBAWITX DOPOLNI-
TELXNYE KL@^I K EGO OPREDELENI@.
C-x q kOGDA DOSTIGAETSQ\TA TO^KA PRI WYPOLNENII MAKROSA,SDELATX ZAPROS O POD-
TWERVDENII (kbd-macro-query).
M-x name-last-kbd-macro
zADATX IMQ KOMANDY (NA WREMQ TEKU]EGO SEANSA) DLQ POSLEDNEGO OPREDELENNOGO
KLAWIATURNOGO MAKROSA.
M-x insert-kbd-macro
wSTAWITX W BUFER OPREDELENIE KLAWIATURNOGO MAKROSA KAK KOD NA lISPE.
C-x C-k oTREDAKTIROWATX RANEE OPREDELENNYJ KLAWIATURNYJ MAKROS (edit-kbd-
macro).
M-x apply-macro-to-region-lines
zAPUSTITX POSLEDNIJ KLAWIATURNYJ MAKROS NA KAVDOJ POLNOJ STROKE W OBLA-
STI.
kLAWIATURNYE MAKROSY OTLI^A@TSQ OT OBY^NYH KOMAND Emacs TEM,^TO ONI NAPISANY
NA KOMANDNOM QZYKE Emacs,A NE NA lISPE.|TO OBLEG^AET IH NAPISANIE DLQ NOWI^KOW I DE-
LAET IH BOLEE UDOBNYMI W KA^ESTWE WREMENNYH HAKOW.oDNAKO,MO]NOSTI KOMANDNOGO QZYKA
354 rUKOWODSTWO PO GNU EmacsEmacs KAK QZYKA PROGRAMMIROWANIQ NEDOSTATO^NO,^TOBY ON BYL UDOBNYM DLQ NAPISANIQ
^EGO-LIBO UMNOGO ILI UNIWERSALXNOGO.dLQ TAKIH WE]EJ NADO ISPOLXZOWATX lISP.
wY OPREDELQETE KLAWIATURNYE MAKROSY WO WREMQ WYPOLNENIQ KOMAND,QWLQ@]IHSQ OPRE-
DELENIEM.gOWORQ DRUGIMI SLOWAMI,WO WREMQ OPREDELENIQ KLAWIATURNOGO MAKROSA EGO OPRE-
DELENIE WYPOLNQETSQ W PERWYJ RAZ.tAKIM OBRAZOM,WY MOVETE WIDETX,KAKOWO DEJSTWIE
WA[IH KOMAND,TAK ^TO WY NE DOLVNY PROS^ITYWATX EGO W UME.kOGDA WY KON^ILI,MAKROS
KLAWIATURY OPREDELEN,A TAKVE ODIN RAZ FAKTI^ESKI WYPOLNEN.pOSLE\TOGO WY MOVETE
SNOWA I SNOWA WYPOLNQTX WSE CELIKOM,WYZYWAQ MAKROS.
31.3.1 oSNOWY ISPOLXZOWANIQ
dLQ NA^ALA OPREDELENIQ KLAWIATURNOGO MAKROSA NABERITE KOMANDU C-x ( (start-kbd-
macro).nA^INAQ S\TOGO MOMENTA WA[I NAVATIQ NA KLAWI[I PO-PREVNEMU WYPOLNQ@TSQ,
NO TAKVE STANOWQTSQ ^ASTX@ OPREDELENIQ MAKROSA.w STROKE REVIMA POQWLQETSQ SLOWO
`Def',^TOBY NAPOMNITX WAM O TOM,^TO PROISHODIT.kOGDA WY ZAKON^ITE,KOMANDA C-x )
(end-kbd-macro) ZAKON^IT OPREDELENIE MAKROSA (NO NE STANET EGO ^ASTX@!).nAPRIMER,
C-x ( M-f foo C-x )
OPREDELQET MAKROS DLQ PEREME]ENIQ WPERED NA SLOWO I WSTAWKI`foo'.
oPREDELENNYJ TAKIM OBRAZOM MAKROS MOVET ZAPUSKATXSQ SNOWA S POMO]X@ KOMANDY C-x
e (call-last-kbd-macro),W KA^ESTWE ^ISLOWOGO ARGUMENTA KOTOROJ MOVNO ZADATX S^ET^IK
POWTOROW DLQ MNOGOKRATNOGO WYPOLNENIQ MAKROSA.kOMANDE C-x ) TAKVE MOVNO ZADATX
S^ET^IK POWTOROW W KA^ESTWE ARGUMENTA,W\TOM SLU^AE IMENNO STOLXKO RAZ ONA POWTORQ-
ET MAKROS SRAZU POSLE EGO OPREDELENIQ,NO SAMO OPREDELENIE MAKROSA ZAS^ITYWAETSQ KAK
PERWOE POWTORENIE (TAK KAK ONO WYPOLNQETSQ W TO WREMQ,KAK WY EGO OPREDELQETE).tAKIM
OBRAZOM,C-x ) S ARGUMENTOM 4 PRIWODIT K NEPOSREDSTWENNOMU WYPOLNENI@ MAKROSA E]E 3
RAZA.aRGUMENT 0 DLQ C-x e ILI C-x ) OZNA^AET POWTORENIE MAKROSA BESKONE^NOE ^ISLO RAZ
(POKA ON NE POLU^IT O[IBKU,ILI WY NE NABERETE C-g ILI,W MS-DOS,C-
hBREAKi).
eSLI WY HOTITE POWTORQTX OPERACI@ W REGULQRNO RASPOLOVENNYH MESTAH W TEKSTE,TO
OPREDELITE MAKROS I WKL@^ITE W NEGO KOMANDY DLQ PEREDWIVENIQ K SLEDU@]EMU MESTU,W
KOTOROM WY HOTITE EGO ISPOLXZOWATX.nAPRIMER,ESLI WY HOTITE IZMENITX KAVDU@ STROKU,
WAM NUVNO POSTAWITX TO^KU W NA^ALO STROKI I OPREDELITX MAKROS,IZMENQ@]IJ\TU STROKU
I PEREME]A@]IJ TO^KU W NA^ALO SLEDU@]EJ STROKI.pOSLE\TOGO POWTORENIE MAKROSA BUDET
OBRABATYWATX STROKI ODNU ZA DRUGOJ.
pOSLE TOGO KAK WY ZAWER[ILI OPREDELENIE MAKROSA,WY MOVETE DOBAWITX ^TO-LIBO W
EGO KONEC,NABRAW C-u C-x ).|TO\KWIWALENTNO OBY^NOJ C-x (,ZA KOTOROJ SLEDUET POWTOR-
NYJ NABOR WSEGO IMEW[EGOSQ DO SIH POR OPREDELENIQ.kAK SLEDSTWIE\TOGO,ONA POWTORNO
WYPOLNIT MAKROS,KAK BYLO OPREDELENO RANEE.
wY MOVETE ISPOLXZOWATX W KLAWIATURNYH MAKROSAH FUNKCIONALXNYE KLAWI[I,TO^NO
TAK VE,KAK KLAWI[I KLAWIATURY.wY DAVE MOVETE ISPOLXZOWATX SOBYTIQ OT MY[I,
NO BUDXTE WNIMATELXNY S NIMI:KOGDA MAKROS PROIGRYWAET SOBYTIE MY[I,ON ISPOLXZU-
ET ORIGINALXNU@ POZICI@ MY[I DLQ\TOGO SOBYTIQ,TU,KOTORU@ MY[X IMELA WO WREMQ
OPREDELENIQ MAKROSA.~TO MOVET PRI\TOM PROIZOJTI,TRUDNO PREDSKAZATX.(|FFEKT OT
ISPOLXZOWANIQ TEKU]EJ POZICII MY[I BYL BY E]E MENEE PREDSKAZUEM.)
oDNA IZ WE]EJ,KOTORAQ NE WSEGDA PRAWILXNO RABOTAET W KLAWIATURNYH MAKROSAH,|
\TO KOMANDA C-M-c (exit-recursive-edit).kOGDA\TA KOMANDA WYWODIT IZ REKURSIWNOGO
REDAKTIROWANIQ,KOTOROE BYLO NA^ATO WNUTRI MAKROSA,TO ONA RABOTAET TAK,KAK WY OVI-
DALI.nO ESLI WY WYHODITE IZ REKURSIWNOGO REDAKTIROWANIQ,KOTOROE BYLO NA^ATO DO TOGO,
KAK WY ZAPUSTILI KLAWIATURNYJ MAKROS,TO TAKVE PROISHODIT WYHOD IZ KLAWIATURNOGO
MAKROSA KAK IZ ^ASTI\TOGO PROCESSA.
wY MOVETE OTREDAKTIROWATX UVE SU]ESTWU@]IJ KLAWIATURNYJ MAKROS,ISPOLXZUQ C-x
C-k (edit-kbd-macro).zATEM WY DOLVNY WWESTI TO,^TO WY BUDETE ISPOLXZOWATX DLQ
gLAWA 31:nASTROJKA 355WYZOWA MAKROSA | C-x e ILI M-x IMQ ILI KAKU@-TO DRUGU@ POSLEDOWATELXNOSTX KL@^EJ.
|TO FORMATIRUET OPREDELENIE MAKROSA W BUFERE I WHODIT W SPECIALXNYJ OSNOWNOJ REVIM
DLQ EGO REDAKTIROWANIQ.nABERITE W\TOM BUFERE C-h m,^TOBY POLU^ITX PODROBNOSTI O
REDAKTIROWANII MAKROSA.kOGDA WY ZAKON^ITE REDAKTIROWANIE,NAVMITE C-c C-c.
kOMANDA M-x apply-macro-to-region-lines POWTORQET POSLEDNIJ OPREDELENNYJ KLAWI-
ATURNYJ MAKROS DLQ KAVDOJ POLNOJ STROKI WNUTRI TEKU]EJ OBLASTI.oNA DELAET\TO
STROKA ZA STROKOJ,PEREME]AQ TO^KU W NA^ALO STROKI I WYPOLNQQ ZATEM MAKROS.
31.3.2 iMENOWANIE I SOHRANENIE KLAWIATURNYH MAKROSOW
eSLI WY HOTITE SOHRANITX MAKROS KLAWIATURY DOLX[E,^EM DO SLEDU@]EGO OPREDELENIQ,
TO WY DOLVNY DATX EMU IMQ,ISPOLXZUQ M-x name-last-kbd-macro.|TA KOMANDA S^ITYWAET
IMQ KAK ARGUMENT,ISPOLXZUQ MINIBUFER,I OPREDELQET\TO IMQ DLQ WYPOLNENIQ MAKROSA.
iMQ MAKROSA |\TO LISPOWSKIJ SIMWOL,A OPREDELENIE EGO TAKIM SPOSOBOM DELAET EGO DO-
PUSTIMYM IMENEM KOMANDY DLQ WYZOWA PRI POMO]I M-x ILI DLQ PRIWQZYWANIQ KL@^A S
POMO]X@ global-set-key (SM.rAZDEL 31.4.1 [tABLICY KL@^EJ],S.356).eSLI WY UKAVETE
IMQ,UVE IME@]EE OPREDELENIE,OTLI^NOE OT MAKROSA KLAWIATURY,TO PE^ATAETSQ SOOB]E-
NIE OB O[IBKE,I NI^EGO NE IZMENQETSQ.
kOGDA MAKROS POLU^AET IMQ KOMANDY,WY MOVETE ZAPISATX EGO OPREDELENIE W FAJL.
pOTOM EGO MOVNO BUDET ISPOLXZOWATX W DRUGOM SEANSE REDAKTIROWANIQ.sNA^ALA OBRATITESX
K FAJLU,W KOTOROM HOTITE ZAPISATX OPREDELENIE.zATEM ISPOLXZUJTE\TU KOMANDU:
M-x insert-kbd-macro
h RETi IMQ-MAKRO hRETi
|TO WSTAWLQET lISP-KOD,KOTORYJ,BUDU^I WYPOLNEN POZDNEE,OPREDELIT TOT VE SAMYJ
MAKROS S TEM VE SAMYM OPREDELENIEM,KOTOROE ON IMEET SEJ^AS.(~TOBY SDELATX\TO,
WAM NE NUVNO RAZBIRATXSQ W lISP-KODE,TAK KAK insert-kbd-macro NAPI[ET EGO ZA WAS.)
zATEM SOHRANITE FAJL.pOZVE WY MOVETE ZAGRUZITX\TOT FAJL S POMO]X@ load-file (SM.rAZDEL 23.7 [bIBLIOTEKI lISPA],S.253).eSLI FAJL,W KOTORYJ WY ZAPISYWAETE,QWLQETSQ
WA[IM FAJLOM INICIALIZACII`~/.emacs'(SM.rAZDEL 31.7 [fAJL INICIALIZACII],S.366),
TO MAKROS BUDET OPREDELQTXSQ KAVDYJ RAZ,KOGDA WY ZAPUSKAETE Emacs.
eSLI WY ZADADITE KOMANDE insert-kbd-macro ^ISLOWOJ ARGUMENT,TO ONA SOZDAST DOPOL-
NITELXNYJ lISP-KOD DLQ ZAPISI KL@^EJ (ESLI ONI ESTX),KOTORYE WY PRIWQZALI K MAKROSU
KLAWIATURY;TAKIM OBRAZOM,KOGDA WY ZAGRUZITE FAJL,MAKROS BUDUT WNOWX PRIWQZAN K TEM
VE SAMYM KL@^AM.
31.3.3 wYPOLNENIE MAKROSA S WARIACIQMI
iSPOLXZUQ C-x q (kbd-macro-query),WY MOVETE DOSTIGNUTX\FFEKTA,SHODNOGO S DEJ-
STWIEM query-replace,KOGDA MAKROS KAVDYJ RAZ ZAPRA[IWAET U WAS,DOLVEN LI ON PRO-
IZWODITX IZMENENIQ.wO WREMQ OPREDELENIQ MAKROSA NABERITE C-x q W TOJ TO^KE,GDE WY
HOTITE POLU^ATX ZAPROS.pRI OPREDELENII MAKROSA\TA KOMANDA NI^EGO NE DELAET,NO
KOGDA WY ZAPUSKAETE MAKROS,TO C-x q PROIZWEDET INTERAKTIWNYJ ZAPROS O PRODOLVENII
DEJSTWIJ.
pRAWILXNYMI OTWETAMI NA ZAPROS OT C-x q QWLQ@TSQ
h SPCi (ILI y),hDELi (ILI n),hRETi
(ILI q),C-l I C-r.oTWETY TE VE SAMYE,^TO I DLQ query-replace,HOTQ NE WSE WARIANTY
OTWETA DLQ query-replace IME@T SMYSL.
|TI OTWETY WKL@^A@T h SPCi DLQ PRODOLVENIQ,A hDELi DLQ PROPUSKA OSTATKA\TOGO PO-
WTORENIQ MAKROSA I NA^ALA NOWOGO POWTORENIQ MAKROSA.hRETi OZNA^AET PROPUSK OSTATKA
DANNOGO POWTORENIQ I OTMENY OSTALXNYH POWTORENIJ.C-l PERERISOWYWAET\KRAN I SNOWA
DELAET ZAPROS.
C-r WHODIT NA UROWENX REKURSIWNOGO REDAKTIROWANIQ,GDE WY MOVETE WYPOLNITX RE-
DAKTIROWANIE,KOTOROE NE QWLQETSQ ^ASTX@ MAKROSA.kOGDA WY WYJDETE IZ REKURSIWNOGO
356 rUKOWODSTWO PO GNU EmacsREDAKTIROWANIQ S POMO]X@ C-M-c,U WAS SNOWA SPROSQT O TOM,KAK PRODOLVATX WYPOLNENIE
KLAWIATURNOGO MAKROSA.eSLI TOGDA WY NAVMETE hSPCi,TO BUDET WYPOLNEN OSTATOK MAKROSA.
C-u C-x q,TO ESTX C-x q S ^ISLOWYM ARGUMENTOM,OSU]ESTWLQET SOWER[ENNO DRUGU@
FUNKCI@.oNA WHODIT W REKURSIWNOE REDAKTIROWANIE,S^ITYWAQ WWOD S KLAWIATURY,I KO-
GDA WY NABIRAETE EGO WO WREMQ OPREDELENIQ MAKROSA,I KOGDA ON WYPOLNQETSQ IZ MAKROSA.
wO WREMQ OPREDELENIQ,REDAKTIROWANIE,KOTOROE WY DELAETE WNUTRI REKURSIWNOGO REDAK-
TIROWANIQ,NE STANOWITSQ ^ASTX@ MAKROSA.wO WREMQ WYPOLNENIQ MAKROSA REKURSIWNOE
REDAKTIROWANIE DAET WAM WOZMOVNOSTX WYPOLNITX KAKOE-LIBO OSOBENNOE REDAKTIROWANIE W
KAVDOM POWTORENII.sM.rAZDEL 30.12 [rEKURSIWNOE REDAKTIROWANIE],S.338.
dRUGOJ SPOSOB IZMENITX POWEDENIE KLAWIATURNOGO MAKROSA | ISPOLXZOWATX W KA^ESTWE
S^ET^IKA REGISTR,UWELI^IWAQ EGO PRI KAVDOM POWTORE MAKROSA.sM.rAZDEL 10.5 [rEG~IS-
LA],S.78.
31.4 nASTROJKA PRIWQZOK KL@^EJ
|TOT RAZDEL OPISYWAET PRIWQZKI KL@^EJ,KOTORYE OTOBRAVA@T KL@^I W KOMANDY,I
TABLICY KL@^EJ,KOTORYE SOHRANQ@T PRIWQZKI.zDESX TAKVE OB_QSNQETSQ,KAK IZMENQTX
PRIWQZKI KL@^EJ DLQ SWOIH NUVD.
nAPOMNIM,^TO KOMANDA |\TO FUNKCIQ lISPA,^XE OPREDELENIE OBESPE^IWAET INTERAK-
TIWNOE ISPOLXZOWANIE.pODOBNO L@BOJ LISPOWSKOJ FUNKCII,KAVDAQ KOMANDA IMEET IMQ,
KOTOROE OBY^NO SOSTOIT IZ BUKW NIVNEGO REGISTRA I DEFISOW.
31.4.1 tABLICY KL@^EJ
pRIWQZKI MEVDU POSLEDOWATELXNOSTQMI KL@^EJ I FUNKCIQMI-KOMANDAMI SOHRANQ@TSQ W
STRUKTURAH DANNYH,NAZYWAEMYH TABLICAMI KL@^EJ.w Emacs MNOGO TAKIH TABLIC,KAVDAQ
IZ KOTORYH ISPOLXZUETSQ W OSOBYH SLU^AQH.
nAPOMNIM,^TO POSLEDOWATELXNOSTX KL@^EJ (ILI KOROTKO,KL@^) |\TO POSLEDOWATELX-
NOSTX SOBYTIJ WWODA,KOTORAQ IMEET SMYSL KAK ODNO CELOE.sOBYTIQ WWODA WKL@^A@T W
SEBQ ZNAKI,FUNKCIONALXNYE KLAWI[I I KNOPKI MY[I | WSE WIDY WWODA,KAKIE WY MOVE-
TE POSLATX KOMPX@TERU S WA[EGO TERMINALA.pOSLEDOWATELXNOSTX KL@^EJ POLU^AET SWOJ
SMYSL IZ PRIWQZKI,KOTORAQ GOWORIT,KAKU@ KOMANDU DANNYJ KL@^ ZAPUSKAET.nAZNA^ENIE
TABLIC KL@^EJ SOSTOIT W SOHRANENII\TIH PRIWQZOK.
gLOBALXNAQ TABLICA KL@^EJ QWLQETSQ NAIBOLEE WAVNOJ,POTOMU ^TO ONA DEJSTWUET WSE-
GDA.gLOBALXNAQ TABLICA OPREDELQET KL@^I DLQ REVIMA Fundamental;BOLX[INSTWO IZ\TIH
OPREDELENIJ QWLQ@TSQ OB]IMI DLQ WSEH OSNOWNYH REVIMOW.kAVDYJ OSNOWNOJ ILI WTORO-
STEPENNYJ REVIM MOVET IMETX SWO@ SOBSTWENNU@ TABLICU KL@^EJ,KOTORAQ PEREKRYWAET
GLOBALXNYE OPREDELENIQ NEKOTORYH KL@^EJ.
nAPRIMER,SAMOWSTAWLQ@]IJSQ ZNAK,TAKOJ KAK g,QWLQETSQ SAMOWSTAWLQ@]IMSQ,PO-
TOMU ^TO GLOBALXNAQ TABLICA KL@^EJ PRIWQZYWAET EGO K KOMANDE self-insert-command.
sTANDARTNYE ZNAKI REDAKTIROWANIQ W Emacs,TAKIE KAK C-a,TAKVE POLU^A@T SWOJ STAN-
DARTNYJ SMYSL IZ GLOBALXNOJ TABLICY KL@^EJ.kOMANDY DLQ PEREPRIWQZKI KL@^EJ,TAKIE
KAK M-x global-set-key,NA SAMOM DELE RABOTA@T PUTEM SOHRANENIQ NOWOJ PRIWQZKI W SO-
OTWETSTWU@]EM MESTE GLOBALXNOJ TABLICY KL@^EJ.sM.rAZDEL 31.4.5 [pEREPRIWQZKA],
S.359.
Meta-ZNAKI RABOTA@T PO DRUGOMU;Emacs TRANSLIRUET KAVDYJ Meta-ZNAK W PARY ZNAKOW,
NA^INA@]IESQ S hESCi.kOGDA WY NABIRAETE ZNAK M-a,Emacs ZAMENQET EE NA hESCi a.Meta-
KLAWI[A PRIHODIT KAK ODINO^NOE SOBYTIE WWODA,NO DLQ CELEJ PRIWQZKI KL@^EJ STANOWITSQ
DWUMQ SOBYTIQMI.|TO PROISHODIT PO ISTORI^ESKIM PRI^INAM,I MY MOVEM KOGDA-NIBUDX
\TO IZMENITX.
gLAWA 31:nASTROJKA 357nA BOLX[INSTWE SOWREMENNYH KLAWIATUR POMIMO ZNAKOWYH KLAWI[ ESTX FUNKCIONALX-
NYE KLAWI[I.fUNKCIONALXNYE KLAWI[I POSYLA@T SOBYTIQ WWODA,TO^NO TAK VE,KAK I
ZNAKOWYE KLAWI[I,I TABLICY KL@^EJ MOGUT SODERVATX PRIWQZKI DLQ NIH.
nA MNOGIH TERMINALAH NAVATIE NA FUNKCIONALXNU@ KLAWI[U W DEJSTWITELXNOSTI PO-
SYLAET KOMPX@TERU POSLEDOWATELXNOSTX ZNAKOW;TO^NAQ INFORMACIQ O TOM,^TO\TO ZA PO-
SLEDOWATELXNOSTX,ZAWISIT OT SAMOJ FUNKCIONALXNOJ KLAWI[I I OT TOGO,KAKU@ MODELX
TERMINALA WY ISPOLXZUETE.(~ASTO TAKAQ POSLEDOWATELXNOSTX NA^INAETSQ S hESCi [.) eS-
LI Emacs PONIMAET WA[ TIP TERMINALA PRAWILXNO,TO ON RASPOZNAET POSLEDOWATELXNOSTI
ZNAKOW,FORMIRU@]IE FUNKCIONALXNYE KLAWI[I,W KAKOM BY MESTE POSLEDOWATELXNOSTI
KL@^EJ ONI NE WSTRE^ALISX (NE TOLXKO W NA^ALE).tAKIM OBRAZOM,DLQ BOLX[INSTWA CELEJ
WY MOVETE S^ITATX,^TO FUNKCIONALXNYE KLAWI[I DOSTIGA@T Emacs NEPOSREDSTWENNO,I
IGNORIROWATX IH KODIROWANIE KAK POSLEDOWATELXNOSTX ZNAKOW.
kNOPKI MY[I TAKVE PROIZWODQT SOBYTIQ WWODA.|TI SOBYTIQ PRINOSQT DRUGU@ INFOR-
MACI@ | OKNO I POZICI@,GDE BYLA NAVATA ILI OTPU]ENA KNOPKA MY[I,I WREMENNU@
METKU.nO DLQ PRIWQZOK KL@^EJ WAVNO LI[X ZNATX KNOPKU;DRUGIE DANNYE IGRA@T ROLX,
TOLXKO ESLI\TO NUVNO KOMANDE.(kOMANDY,RAZRABOTANNYE DLQ WYZOWA S POMO]X@ MY[I,
NA SAMOM DELE OBY^NO OBRA]A@T WNIMANIE NA\TI DANNYE).
tABLICA KL@^EJ ZAPISYWAET OPREDELENIQ DLQ ODINO^NYH SOBYTIJ.dLQ INTERPRETACII
POSLEDOWATELXNOSTI KL@^EJ,SOSTOQ]EJ IZ NESKOLXKIH SOBYTIJ,NUVNA CEPO^KA TABLIC
KL@^EJ.pERWAQ TABLICA DAET OPREDELENIE PERWOGO SOBYTIQ;\TO OPREDELENIE QWLQETSQ
DRUGOJ TABLICEJ KL@^EJ,KOTORAQ ISPOLXZUETSQ DLQ POISKA WTOROGO SOBYTIQ W POSLEDOWA-
TELXNOSTI,I TAK DALEE.
pOSLEDOWATELXNOSTX KL@^EJ MOVET SODERVATX NAVATIQ NA FUNKCIONALXNYE I ZNAKOWYE
KLAWI[I.nAPRIMER,C-x h SELECTi IMEET SMYSL.eSLI WY SDELAETE KLAWI[U hSELECTi PRE-
FIKSNYM KL@^OM,TO h SELECTi C-n TOVE BUDET IMETX SMYSL.wY DAVE MOVETE SME[IWATX
SOBYTIQ OT MY[I S SOBYTIQMI OT KLAWIATURY,NO MY NE REKOMENDUEM DELATX TAK,POTOMU
^TO TAKIE POSLEDOWATELXNOSTI NEUDOBNO NABIRATX.
kAK POLXZOWATELX WY MOVETE PEREPRIWQZATX L@BOJ KL@^;NO BUDET LU^[E,ESLI WY
WSEGDA BUDETE ISPOLXZOWATX POSLEDOWATELXNOSTI KL@^EJ,SOSTOQ]IE IZ C-c,ZA KOTORYM
SLEDUET BUKWA.|TI KLAWI[I\ZAREZERWIROWANY DLQ POLXZOWATELEJ",TAK ^TO ONI NE BUDUT
KONFLIKTOWATX NI S ODNIM PRAWILXNO SPROEKTIROWANNYM RAS[IRENIEM Emacs.fUNKCI-
ONALXNYE KLAWI[I OT h F5i DO hF9i TAKVE ZAREZERWIROWANY DLQ POLXZOWATELEJ.eSLI WY
PEREPRIWQZYWAETE KAKOJ-TO DRUGOJ KL@^,WA[E OPREDELENIE MOVET BYTX PEREKRYTO NEKO-
TORYMI RAS[IRENIQMI ILI OSNOWNYMI REVIMAMI,KOTORYE PEREOPREDELQ@T TOT VE SAMYJ
KL@^.
31.4.2 tABLICY PREFIKSNYH KL@^EJ
pREFIKSNYJ KL@^,TAKOJ KAK C-x ILI
hESCi,IME@T SOBSTWENNU@ TABLICU KL@^EJ,KOTO-
RAQ HRANIT OPREDELENIQ DLQ SOBYTIJ,NEPOSREDSTWENNO SLEDU@]IH ZA\TIM PREFIKSOM.
oPREDELENIE PREFIKSNOGO KL@^A |\TO OBY^NO TABLICA KL@^EJ,W KOTOROJ I]ETSQ
SLEDU@]EE SOBYTIE.|TO OPREDELENIE TAKVE MOVET BYTX LISPOWSKIM SIMWOLOM,^XE OPRE-
DELENIE FUNKCII QWLQETSQ SLEDU@]EJ TABLICEJ KL@^EJ;REZULXTAT\TOGO TOT VE SAMYJ,
NO ON PREDOSTAWLQET DLQ PREFIKSNOGO KL@^A KOMANDNOE IMQ,KOTOROE MOVET BYTX ISPOLX-
ZOWANO KAK OPISANIE TOGO,DLQ ^EGO PREDNAZNA^EN\TOT PREFIKSNYJ KL@^.tAKIM OBRAZOM,
PRIWQZKA C-x |\TO SIMWOL Ctl-X-Prefix,^XE OPREDELENIE FUNKCII QWLQETSQ TABLICEJ
KL@^EJ DLQ KOMAND NA C-x.oPREDELENIQ C-c,C-x,C-h I hESCi KAK PREFIKSNYH KL@^EJ
POQWLQ@TSQ W GLOBALXNOJ TABLICE,TAK ^TO\TI PREFIKSNYE KL@^I DOSTUPNY WSEGDA.
pOMIMO OBY^NYH PREFIKSNYH KL@^EJ SU]ESTWU@T FIKTIWNYE\PREFIKSNYE KL@^I",
KOTORYE PREDSTAWLQ@T POLOSKU MEN@;SMOTRITE RAZDEL\Menu Bar"W The Emacs Lisp Refer-
ence Manual,DLQ DOPOLNITELXNOJ INFORMACII O PRIWQZKAH KL@^EJ POLOSKI MEN@.sOBYTIQ
OT KNOPOK MY[I,KOTORYE ZAPUSKA@T WSPLYWA@]IE MEN@,TAKVE QWLQ@TSQ PREFIKSNYMI
358 rUKOWODSTWO PO GNU EmacsKL@^AMI;SMOTRITERAZDEL\Menu Keymaps"W The Emacs Lisp Reference Manual,DLQ DO-
POLNITELXNOJ INFORMACII.
nEKOTORYE TABLICY PREFIKSNYH KL@^EJ HRANQTSQ W IMENOWANNYH PEREMENNYH:
пЂЏ ctl-x-map |\TO IMQ PEREMENNOJ DLQ TABLICY,ISPOLXZUEMOJ DLQ ZNAKOW,SLEDU@]IH
ZA C-x.
пЂЏ help-map DLQ ZNAKOW,SLEDU@]IH ZA C-h.
пЂЏ esc-map DLQ ZNAKOW,SLEDU@]IH ZA
h ESCi.tAKIM OBRAZOM,WSE Meta-ZNAKI W DEJSTWI-
TELXNOSTI OPREDELQ@TSQ\TOJ TABLICEJ.
пЂЏ ctl-x-4-map DLQ ZNAKOW,SLEDU@]IH ZA C-x 4.
пЂЏ mode-specific-map DLQ ZNAKOW,SLEDU@]IH ZA C-c.
31.4.3 lOKALXNYE TABLICY KL@^EJ
dO SIH POR MY OB_QSNQLI PRINCIPY RABOTY GLOBALXNOJ TABLICY.oSNOWNYE REVIMY
NASTRAIWA@T Emacs,PREDOSTAWLQQ SOBSTWENNYE PRIWQZKI KL@^EJ W LOKALXNYH TABLICAH
KL@^EJ.nAPRIMER,REVIM C PEREOPREDELQET hTABi DLQ SOZDANIQ OTSTUPA TEKU]EJ STROKI
KODA NA sI.kUSKI TEKSTA W BUFERE MOGUT UKAZYWATX SWOI SOBSTWENNYE TABLICY KL@^EJ
WZAMEN TABLICY OSNOWNOGO REVIMA\TOGO BUFERA.
wTOROSTEPENNYE REVIMY TAKVE MOGUT IMETX LOKALXNYE TABLICY KL@^EJ.kOGDA DEJ-
STWUET WTOROSTEPENNYJ REVIM,OPREDELENIQ IZ EGO TABLICY KL@^EJ PEREKRYWA@T I LO-
KALXNU@ TABLICU OSNOWNOGO REVIMA,I GLOBALXNU@ TABLICU.
lOKALXNYE TABLICY KL@^EJ DLQ REVIMA Lisp I NEKOTORYH DRUGIH OSNOWNYH REVIMOW
WSEGDA SU]ESTWU@T,DAVE KOGDA NE ISPOLXZU@TSQ.oNI HRANQTSQ W PEREMENNYH S IMENAMI
lisp-mode-map I TAK DALEE.dLQ MENEE ^ASTO ISPOLXZUEMYH OSNOWNYH REVIMOW LOKALXNAQ
TABLICA KL@^EJ OBY^NO SOZDAETSQ PRI PERWOM ISPOLXZOWANII W SEANSE.|TO SBEREGAET RE-
SURSY.eSLI WY HOTITE IZMENITX ODNU IZ\TIH TABLIC KL@^EJ,TO WY DOLVNY ISPOLXZOWATX
LOWU[KU REVIMA |SMOTRITE NIVE.
wSE TABLICY KL@^EJ WTOROSTEPENNYH REVIMOW SOZDA@TSQ ZARANEE.nE SU]ESTWUET SPO-
SOBA ZADERVATX IH SOZDANIE DO TEH POR,POKA\TOT WTOROSTEPENNYJ REVIM NE BUDET WKL@^EN
PERWYJ RAZ.
lOKALXNAQ TABLICA KL@^EJ MOVET LOKALXNO PEREOPREDELQTX KL@^ KAK PREFIKSNYJ,
OPREDELQQ EGO KAK PREFIKSNU@ TABLICU KL@^EJ.eSLI\TOT KL@^ OPREDELEN KAK PREFIKS I W
GLOBALXNOJ TABLICE,TO EGO LOKALXNOE I GLOBALXNOE OPREDELENIQ (IZ OBOIH TABLIC KL@^EJ)
\FFEKTIWNO KOMBINIRUETSQ:OBE ONI ISPOLXZU@TSQ DLQ POISKA SOBYTIQ,KOTOROE SLEDUET
ZA PREFIKSNYM KL@^OM.tAKIM OBRAZOM,ESLI LOKALXNAQ TABLICA KL@^EJ OPREDELQET C-c
KAK E]E ODNU TABLICU KL@^EJ,A\TA TABLICA OPREDELQET C-z KAK KOMANDU,TO\TO PRIDAET
LOKALXNYJ SMYSL DLQ C-c C-z.|TO NE ZATRAGIWAET DRUGIE POSLEDOWATELXNOSTI,KOTORYE
NA^INA@TSQ S C-c;ESLI U\TIH POSLEDOWATELXNOSTEJ NET SOBSTWENNOJ LOKALXNOJ PRIWQZKI,
TO PRODOLVA@T DEJSTWOWATX GLOBALXNYE PRIWQZKI.
dRUGOJ SPOSOB PONQTX\TO | S^ITATX,^TO Emacs OBRABATYWAET POSLEDOWATELXNOSTI
KL@^EJ,SOSTOQ]IE IZ NESKOLXKIH SOBYTIJ,PROSMATRIWAQ NESKOLXKO TABLIC KL@^EJ ODNU
ZA ODNOJ W POISKAH\TOJ POSLEDOWATELXNOSTI CELIKOM.sNA^ALA ON PROWERQET TABLICY
KL@^EJ TEKU]IH WTOROSTEPENNYH REVIMOW,ZATEM TABLICU KL@^EJ OSNOWNOGO REVIMA I
ZATEM ON I]ET W GLOBALXNOJ TABLICE.|TO NE SOWSEM TO^NO OPISYWAET TO,KAK RABOTAET
POISK,NO DOSTATO^NO HORO[O DLQ PONIMANIQ OBY^NOGO POLOVENIQ DEL.
dLQ IZMENENIQ LOKALXNYH PRIWQZOK OSNOWNOGO REVIMA WY DOLVNY IZMENITX LOKALXNU@
TABLICU KL@^EJ\TOGO REVIMA.oBY^NO WY DOLVNY DOVDATXSQ PERWOGO ISPOLXZOWANIQ RE-
VIMA,POSKOLXKU DO TOGO MOMENTA BOLX[INSTWO REVIMOW NE SOZDA@T SWOI TABLICY KL@^EJ.
eSLI WY HOTITE UKAZATX ^TO-NIBUDX W WA[EM FAJLE`~/.emacs'DLQ IZMENENIQ PRIWQZOK
OSNOWNOGO REVIMA,TO WY DOLVNY ISPOLXZOWATX LOWU[KU\TOGO REVIMA,^TOBY ZADERVATX
IZMENENIQ DO EGO PERWOGO ISPOLXZOWANIQ.
gLAWA 31:nASTROJKA 359nAPRIMER,KOMANDA texinfo-mode DLQ WYBORA REVIMA Texinfo ZAPUSKAET LOWU[KU
texinfo-mode-hook.pRODEMONSTRIRUEM,KAK MOVNO ISPOLXZOWATX\TU LOWU[KU DLQ DO-
BAWLENIQ LOKALXNYH PRIWQZOK (MY PRIZNAEM,NE SLI[KOM POLEZNOJ) DLQ KLAWI[ C-c n I
C-c p W REVIME Texinfo:
(add-hook'texinfo-mode-hook
'(lambda ()
(define-key texinfo-mode-map
"\C-cp"
'backward-paragraph)
(define-key texinfo-mode-map
"\C-cn"
'forward-paragraph)
))
sM.rAZDEL 31.2.3 [lOWU[KI],S.349.
31.4.4 tABLICY KL@^EJ MINIBUFERA
mINIBUFER IMEET SWOJ SOBSTWENNYJ NABOR LOKALXNYH TABLIC KL@^EJ;ONI SODERVAT
RAZNYE KOMANDY ZAWER[ENIQ I WYHODA.
пЂЏ minibuffer-local-map ISPOLXZUETSQ DLQ OBYKNOWENNOGO WWODA (BEZ ZAWER[ENIQ).
пЂЏ minibuffer-local-ns-map POHOVA,NO hSPCi WYHODIT,TO^NO TAK VE,KAK hRETi.|TO
ISPOLXZUETSQ GLAWNYM OBRAZOM DLQ SOWMESTIMOSTI S Mocklisp.
пЂЏ minibuffer-local-completion-map DLQ SWOBODNOGO ZAWER[ENIQ.
пЂЏ minibuffer-local-must-match-map DLQ STROGOGO I OSTOROVNOGO ZAWER[ENIQ.
31.4.5 iNTERAKTIWNOE IZMENENIE PRIWQZOK KL@^EJ
~TOBY PEREOPREDELITX KL@^ W Emacs,NADO IZMENITX EE ZAPISX W TABLICE KL@^EJ.wY
MOVETE IZMENITX GLOBALXNU@ TABLICU KL@^EJ,TOGDA IZMENENIE PODEJSTWUET NA WSE OSNOW-
NYE REVIMY (ZA ISKL@^ENIEM TEH,W KOTORYH ESTX SWOI LOKALXNYE,PEREKRYWA@]IE OPRE-
DELENIQ DLQ TOGO VE SAMOGO KL@^A).iLI WY MOVETE IZMENITX LOKALXNU@ TABLICU KL@^EJ
TEKU]EGO BUFERA,^TO ZATRONET WSE BUFERY,ISPOLXZU@]IE TOT VE SAMYJ OSNOWNOJ REVIM.
M-x global-set-key h RETi KL@^ KMD hRETi
gLOBALXNO OPREDELQET KL@^ DLQ ZAPUSKA KOMANDY KMD.
M-x local-set-key h RETi KL@^ KMD hRETi
lOKALXNO OPREDELQET KL@^ (W TEKU]EM OSNOWNOM REVIME) DLQ ZAPUSKA KOMANDY
KMD.
M-x global-unset-key h RETi KL@^
dELAET KL@^ NEOPREDELENNYM W GLOBALXNOJ TABLICE KL@^EJ.
M-x local-unset-key h RETi KL@^
dELAET KL@^ NEOPREDELENNYM W LOKALXNOJ TABLICE KL@^EJ (W TEKU]EM OSNOW-
NOM REVIME).
dOPUSTIM NAPRIMER,^TO WY HOTITE WYPOLNQTX KOMANDY W PODOBOLO^KE WNUTRI BUFERA
Emacs,A NE PRIOSTANAWLIWATX Emacs I WYPOLNQTX KOMANDY W WA[EJ WHODNOJ OBOLO^KE.
oBY^NO C-z PRIWQZAN K FUNKCII suspend-emacs (KOGDA NE ISPOLXZUETSQ SISTEMA X Win-
dows),NO WY MOVETE IZMENITX C-z NA ZAPUSK INTERAKTIWNOJ PODOBOLO^KI WNUTRI Emacs,
PRIWQZAW EE K KOMANDE shell,KAK POKAZANO:
M-x global-set-key hRETi C-z shell hRETi
360 rUKOWODSTWO PO GNU Emacsglobal-set-key S^ITYWAET IMQ KOMANDY POSLE KLAWI[I.pOSLE TOGO KAK WY NAVMETE KLA-
WI[U,POQWITSQ PRIMERNO TAKOE SOOB]ENIE,TAK ^TO WY SMOVETE UBEDITXSQ,^TO NAZNA^AETE
TU KLAWI[U,KOTORU@ HOTITE:
Set key C-z to command:
wY MOVETE PEREOPREDELITX FUNKCIONALXNYE KLAWI[I I SOBYTIQ OT MY[I TEM VE SA-
MYM SPOSOBOM;PROSTO NAVMITE NA FUNKCIONALXNU@ KLAWI[U ILI ]ELKNITE KNOPKOJ MY-
[I,KOGDA U WAS SPRA[IWA@T,KAKOJ KL@^ NUVNO PEREPRIWQZATX.
wY MOVETE PEREPRIWQZATX KL@^,KOTORYJ SODERVIT BOLX[E ODNOGO SOBYTIQ,TEM VE SA-
MYM SPOSOBOM.Emacs PRODOLVAET S^ITYWATX KL@^ DLQ PEREPRIWQZKI DO TEH POR,POKA ON
NE STANET POLNYM KL@^OM (TO ESTX NEPREFIKSNYM).tAKIM OBRAZOM,ESLI WY NAVMETE C-f
KAK KL@^,TO NA\TOM WSE ZAKON^ITSQ;WY SRAZU POPADETE W MINIBUFER DLQ S^ITYWANIQ KO-
MANDY KMD.nO ESLI WY NAVMETE C-x,S^ITYWAETSQ E]E ODIN ZNAK;ESLI\TO 4,S^ITYWAETSQ
E]E ODIN,I TAK DALEE.nAPRIMER,
M-x global-set-key hRETi C-x 4 $ spell-other-window hRETi
PEREOPREDELQET C-x 4 $ DLQ ZAPUSKA KOMANDY (FIKTIWNOJ) spell-other-window.
dWUHZNAKOWYE KL@^I,SOSTOQ]IE IZ C-c I BUKWY,ZAREZERWIROWANY DLQ POLXZOWATELXSKOJ
NASTROJKI.pREDPOLAGAETSQ,^TO PROGRAMMY NA lISPE NE OPREDELQ@T\TI KL@^I,TAK ^TO
WA[I PRIWQZKI DLQ NIH BUDUT DOSTUPNY WO WSEH OSNOWNYH REVIMAH I NE BUDUT NI^EMU
ME[ATX.
wY MOVETE UBRATX GLOBALXNOE OPREDELENIE KL@^A S POMO]X@ KOMANDY global-unset-
key.|TO DELAET KL@^ NEOPREDELENNYM;ESLI WY NABERETE EGO,Emacs PROSTO PODAST ZWU-
KOWOJ SIGNAL.sHODNYM OBRAZOM local-unset-key DELAET KL@^ NEOPREDELENNYM W TABLICE
KL@^EJ TEKU]EGO OSNOWNOGO REVIMA,I W\TOM OSNOWNOM REVIME WSTUPAET W DEJSTWIE OPRE-
DELENIE (ILI OTSUTSTWIQ OPREDELENIQ) IZ GLOBALXNOJ TABLICY KL@^EJ.
eSLI WY PEREOPREDELILI (ILI SDELALI NEOPREDELENNYM) KAKOJ-TO KL@^ I ZATEM HOTITE
OTKAZATXSQ OT IZMENENIQ,TO OTMENA OPREDELENIQ NE BUDET RABOTATX | WAM NEOBHODIMO
PEREOPREDELITX KL@^,ISPOLXZUQ STANDARTNOE OPREDELENIE.~TOBY NAJTI IMQ STANDART-
NOGO OPREDELENIQ KL@^A,PEREJDITE W BUFER S REVIMOM Fundamental I PRIMENITE C-h c.
oPISANIQ KL@^EJ W DANNOM RUKOWODSTWE TAKVE SOOB]A@T IMENA SOOTWETSWU@]IH KOMAND.
eSLI WY HOTITE OBEZOPASITX SEBQ OT O[IBO^NOGO WYZOWA KOMANDY,TO LU^[E BLOKIROWATX
KOMANDU,A NE OTMENQTX OPREDELENIE KL@^A.bLOKIROWANNU@ KOMANDU PRO]E WYZWATX,KOGDA
WY NA SAMOM DELE ZAHOTITE\TOGO.sM.rAZDEL 31.4.11 [bLOKIROWANIE KOMANDY],S.364.
31.4.6 pEREPRIWQZKA KL@^EJ W FAJLE INICIALIZACII
eSLI U WAS ESTX NABOR PRIWQZOK KL@^EJ,KOTORYE WY HOTITE ISPOLXZOWATX WSEGDA,WY
MOVETE UKAZATX IH W WA[EM FAJLE`.emacs',ISPOLXZUQ SINTAKSIS lISPA.
pROSTEJ[IJ SPOSOB RABOTAET TOLXKO SO ZNAKAMI ASCII I IH Meta-WARIANTAMI.|TOT ME-
TOD ISPOLXZUET DLQ PREDSTAWLENIQ PEREPRIWQZYWAEMOJ POSLEDOWATELXNOSTI KL@^EJ STROKU.
nAPRIMER,KAK PRIWQZATX C-z K KOMANDE shell:
(global-set-key"\C-z"'shell)
|TOT PRIMER ISPOLXZUET STROKOWU@ KONSTANTU,SODERVA]U@ ODIN ZNAK,C-z.oDINARNAQ
KAWY^KA PERED IMENEM KOMANDY,shell,OTME^AET EE KAK KONSTANTNYJ SIMWOL,A NE KAK
PEREMENNU@.eSLI WY OPUSTITE KAWY^KU,Emacs POPYTAETSQ SRAZU WY^ISLITX shell KAK
PEREMENNU@.|TO WEROQTNO WYZOWET O[IBKU;\TO QWNO NE TO,^TO WY HOTITE.
wOT DRUGOJ PRIMER,KOTORYJ PRIWQZYWAET POSLEDOWATELXNOSTX KL@^EJ IZ DWUH ZNAKOW:
(global-set-key"\C-xl"'make-symbolic-link)
kOGDA POSLEDOWATELXNOSTX KL@^EJ WKL@^AET W SEBQ FUNKCIONALXNYE KLAWI[I,ILI SO-
BYTIQ OT KNOPOK MY[I ILI NE WHODQ]IE W ASCII ZNAKI,TAKIE KAK C-= ILI H-a,WY DOLVNY
gLAWA 31:nASTROJKA 361ISPOLXZOWATX BOLEE OB]IJ METOD PEREPRIWQZKI,W KOTOROM DLQ UKAZANIQ POSLEDOWATELXNO-
STI KL@^EJ ISPOLXZUETSQ WEKTOR.
dLQ TOGO ^TOBY ZAPISATX WEKTOR W Emacs Lisp,NEOBHODIMO ZAKL@^ITX\LEMENTY WEKTORA
W KWADRATNYE SKOBKI.dLQ RAZDELENIQ\LEMENTOW ISPOLXZUJTE PROBELY.eSLI\LEMENT
QWLQETSQ SIMWOLOM,TO PROSTO NAPI[ITE IMQ SIMWOLA |NIKAKIH DRUGIH RAZDELITELEJ ILI
PUNKTUACII NE NUVNO.eSLI\LEMENT WEKTORA QWLQETSQ ZNAKOM,TO PI[ITE EGO KAK ZNAKOWU@
KONSTANTU lISPA:`?',ZA KOTORYM SLEDUET SAM ZNAK W TOM WIDE,KAK ON POQWILSQ BY W STROKE.
wOT PRIMERY ISPOLXZOWANIQ WEKTOROW DLQ PEREPRIWQZKI C-= (UPRAWLQ@]IJ ZNAK,NE
WHODQ]IJ W ASCII),H-a (Hyper-ZNAK;W ASCII WOOB]E NET Hyper);
hF7i (FUNKCIONALXNAQ
KLAWI[A) I C-Mouse-1 (MODIFICIROWANNAQ S KLAWIATURY KNOPKA MY[I):
(global-set-key [?\C-=]'make-symbolic-link)
(global-set-key [?\H-a]'make-symbolic-link)
(global-set-key [f7]'make-symbolic-link)
(global-set-key [C-mouse-1]'make-symbolic-link)
wY TAKVE MOVETE ISPOLXZOWATX WEKTOR I DLQ PROSTYH SLU^AEW.wOT KAK MOVNO PEREPI-
SATX PERWYE DWA PRIMERA,PRIWEDENNYE WY[E,S ISPOLXZOWANIEM WEKTOROW:
(global-set-key [?\C-z]'shell)
(global-set-key [?\C-x?l]'make-symbolic-link)
31.4.7 pEREPRIWQZKA FUNKCIONALXNYH KLAWI[
pOSLEDOWATELXNOSTI KL@^EJ MOGUT SODERVATX FUNKCIONALXNYE KLAWI[I,KAK I OBY^-
NYE ZNAKI.tAK VE,KAK LISPOWSKIE ZNAKI (NA SAMOM DELE CELYE ^ISLA) PREDSTAWLQ@T ZNAKI
KLAWIATURY,LISPOWSKIE SIMWOLY PREDSTAWLQ@T FUNKCIONALXNYE KLAWI[I.eSLI NA FUNK-
CIONALXNOJ KLAWI[A NADPISANO SLOWO,TO\TO SLOWO TAKVE BUDET IMENEM SOOTWETSTWU@]EGO
LISPOWSKOGO SIMWOLA.zDESX PRIWODQTSQ LISPOWSKIE IMENA DLQ ^ASTO WSTRE^A@]IHSQ FUNK-
CIONALXNYH KLAWI[:
left,up,right,down
kURSORNYE STRELKI.
begin,end,home,next,prior
dRUGIE KLAWI[I PEREME]ENIQ KURSORA.
select,print,execute,backtab
insert,undo,redo,clearline
insertline,deleteline,insertchar,deletechar,
rAZLI^NYE FUNKCIONALXNYE KLAWI[I.
f1,f2,...f35
nUMEROWANNYE FUNKCIONALXNYE KLAWI[I (RASPOLOVENNYE SWERHU KLAWIATURY).
kp-add,kp-subtract,kp-multiply,kp-divide
kp-backtab,kp-space,kp-tab,kp-enter
kp-separator,kp-decimal,kp-equal
kLAWI[I DOPOLNITELXNOJ KLAWIATURY (SPRAWA OT OSNOWNOJ KLAWIATURY),S IME-
NAMI ILI ZNAKAMI PUNKTUACII.
kp-0,kp-1,...kp-9
kLAWI[I DOPOLNITELXNOJ KLAWIATURY S CIFRAMI.
kp-f1,kp-f2,kp-f3,kp-f4
fUNKCIONALXNYE KLAWI[I DOPOLNITELXNOJ KLAWIATURY.
362 rUKOWODSTWO PO GNU Emacs|TI IMENA QWLQ@TSQ OB]EPRINQTYMI,NO NEKOTORYE SISTEMY (OSOBENNO PRI ISPOLXZO-
WANII X Windows) MOGUT ISPOLXZOWATX DRUGIE IMENA.~TOBY UBEDITXSQ,KAKOJ SIMWOL
ISPOLXZUETSQ DLQ OPREDELENNOJ FUNKCIONALXNOJ KLAWI[I NA WA[EM TERMINALE,NABERITE
C-h c I ZATEM NUVNU@ KLAWI[U.
pOSLEDOWATELXNOSTX KL@^EJ,KOTORAQ SODERVIT SIMWOLY FUNKCIONALXNYH KLAWI[ (ILI
^TO-TO DRUGOE KROME ASCII-ZNAKOW),DOLVNY BYTX WEKTOROM,A NE STROKOJ.sINTAKSIS
WEKTOROW ISPOLXZUET PROBEL MEVDU\LEMENTAMI I KWADRATNYE SKOBKI WOKRUG WSEGO WEKTORA.
tAKIM OBRAZOM,DLQ PRIWQZKI FUNKCIONALXNOJ KLAWI[I`f1'K KOMANDE rmail,NAPI[ITE
SLEDU@]EE:
(global-set-key [f1]'rmail)
dLQ PRIWQZKI KLAWI[I S PRAWOJ STRELKOJ K KOMANDE forward-char,WY MOVETE ISPOLXZO-
WATX TAKOE WYRAVENIE:
(global-set-key [right]'forward-char)
zDESX ISPOLXZUETSQ LISPOWSKIJ SINTAKSIS DLQ WEKTORA,SODERVA]EGO SIMWOL right.(|TA
PRIWQZKA SU]ESTWUET PO UMOL^ANI@ W Emacs).
sM.rAZDEL 31.4.6 [pEREPRIWQZKA PRI STARTE],S.360,DLQ DOPOLNITELXNOJ INFORMACII
OB ISPOLXZOWANII WEKTOROW DLQ PEREPRIWQZKI.
w POSLEDOWATELXNOSTI KL@^EJ WY MOVETE SME[IWATX FUNKCIONALXNYE KLAWI[I I ZNAKI.
|TOT PRIMER PRIWQZYWAET C-x
h NEXTi K KOMANDE forward-page.
(global-set-key [?\C-x next]'forward-page)
GDE?\C-x |\TO ZNAKOWAQ KONSTANTA lISPA DLQ ZNAKA C-x.|LEMENT WEKTORA next QWLQETSQ
LISPOWSKIM SIMWOLOM,I PO\TOMU K NEMU NE PRIPISAN WOPROSITELXNYJ ZNAK.
wY MOVETE ISPOLXZOWATX KLAWI[I-MODIFIKATORY
hCTRLi,hMETAi,hHYPERi,hSUPERi,hALTi
I h SHIFTi WMESTE S FUNKCIONALXNYMI KLAWI[AMI.dLQ PREDSTAWLENIQ\TIH MODIFIKATOROW
DOBAWXTE STROKI`C-',`M-',`H-',`s-',`A-'I`S-'W NA^ALO IMENI SIMWOLA.tAKIM OBRAZOM,
^TOBY Hyper-Meta-hRIGHTi PEREME]AL WPERED NA SLOWO,NUVNO SDELATX TAK:
(global-set-key [H-M-right]'forward-word)
31.4.8 iMENOWANNYE UPRAWLQ@]IE ASCII-ZNAKI
h TABi,hRETi,hBSi,hLFDi,hESCi I hDELi NA^ALI SWO@ VIZNX KAK IMENA OPREDELENNYH UPRAWLQ-
@]IH ZNAKOW ASCII,ISPOLXZOWAW[IHSQ TAK ^ASTO,^TO DLQ NIH BYLI SDELANY SPECIALXNYE
KLAWI[I.pOZDNEE,POLXZOWATELI SO^LI UDOBNYM RAZLI^ATX W Emacs\TI KLAWI[I I\TE VE
SAMYE"UPRAWLQ@]IE ZNAKI,NABRANNYMI S POMO]X@ KLAWI[I hCTRLi.
Emacs RAZLI^AET\TI DWA TIPA WWODA,KOGDA ISPOLXZUETSQ S X Window System.oN OBRA-
BATYWAET\TI\OSOBYE"KLAWI[I KAK FUNKCIONALXNYE S IMENAMI tab,return,backspace,
linefeed,escape I delete.|TI FUNKCIONALXNYE KLAWI[I AWTOMATI^ESKI TRANSLIRU@TSQ
W SOOTWETSTWU@]IE ASCII-ZNAKI,ESLI U NIH NET SOBSTWENNYH PRIWQZOK.w REZULXTATE NI
POLXZOWATELI,NI PROGRAMMY NA lISPE NE OBQZANY POMNITX OB\TOM RAZLI^II,ESLI TOLXKO
IM\TO NE NUVNO.
eSLI WY NE HOTITE RAZLI^ATX (NAPRIMER) h TABi I C-i,PROSTO SDELAJTE ODNU PRIWQZKU
DLQ ASCII-ZNAKA h TABi (WOSXMIRI^NYJ KOD 011).eSLI WY DEJSTWITELXNO HOTITE RAZLI^ATX
IH,TO SDELAJTE ODNU PRIWQZKU DLQ\TOGO ASCII-ZNAKA,A WTORU@ DLQ\FUNKCIONALXNOJ
KLAWI[I"tab.
nA OBY^NYH ASCII-TERMINALAH NET SPOSOBA RAZLI^ATX hTABi I C-i (I ANALOGI^NO DLQ
DRUGIH TAKIH PAR),POTOMU ^TO TERMINAL POSYLAET ODIN I TOT VE ZNAK W OBOIH SLU^AQH.
gLAWA 31:nASTROJKA 36331.4.9 nE-ASCII-ZNAKI NA KLAWIATURE
eSLI NA WA[EJ KLAWIATURE ESTX KLAWI[I,KOTORYE POSYLA@T ZNAKI,NE WHODQ]IE W
ASCII,NAPRIMER AKCENTIROWANNYE BUKWY,PEREPRIWQZKA IH DELAETSQ NESKOLXKO HITRO.
eSTX DWA RE[ENIQ.oDNO | UKAZATX SISTEMU KODIROWANIQ DLQ KLAWIATURY,ISPOLXZUQ
set-keyboard-coding-system (SM.rAZDEL 18.9 [zADANIE KODIROWANIQ],S.168).zATEM WY
MOVETE PRIWQZYWATX\TI KLAWI[I OBY^NYM SPOSOBOM,NO ZAPISYWAQ
(global-set-key [?ZNAK]'KAKAQ-TO-FUNKCIQ)
I PODSTAWLQQ ZNAK,KOTORYJ WY HOTITE PRIWQZATX
eSLI WY NE UKAZYWAETE SISTEMU KODIROWANIQ DLQ KLAWIATURY,\TOT SPOSOB NE SRABOTAET.
wMESTO\TOGO WAM NUVNO WYQSNITX KOD,KOTORYJ W DEJSTWITELXNOSTI POSYLAET TERMINAL.
pROSTEJ[IJ SPOSOB SDELATX\TO W Emacs | SOZDATX PUSTOJ BUFER S POMO]X@ C-x b temp
h RETi,SDELATX EGO ODNOBAJTNYM,NABRAW M-x toggle-enable-multibyte-characters hRETi,
A ZATEM NAVATX KLAWI[U,KOTORAQ WSTAWIT W\TOT BUFER NUVNYJ ZNAK.
rASPOLOVITE TO^KU SRAZU PERED\TIM ZNAKOM,ZATEM NABERITE C-x =.|TO OTOBRAZIT W
MINIBUFERE SOOB]ENIE,POKAZYWA@]EE WOSXMIRI^NYJ,[ESTNADCATIRI^NYJ I DESQTI^NYJ
KOD ZNAKA,WSE W KRUGLYH SKOBKAH.iSPOLXZUJTE WTOROE IZ\TIH TREH ^ISEL,DESQTI^NOE,
WNUTRI WEKTORA DLQ PRIWQZKI:
(global-set-key [DESQTI^NYJ-KOD]'KAKAQ-TO-FUNKCIQ)
31.4.10 pEREPRIWQZKA KNOPOK MY[I
Emacs ISPOLXZUET LISPOWSKIE SIMWOLY I DLQ OBOZNA^ENIQ KNOPOK MY[I.oBY^NYMI
SOBYTIQMI OT MY[I W Emacs QWLQ@TSQ SOBYTIQ-]EL^KI;\TO SLU^AETSQ,KOGDA WY NAVI-
MAETE I OTPUSKAETE KNOPKU BEZ PEREME]ENIQ MY[I.wY MOVETE TAKVE POLU^ITX SOBYTIE-
PROWEDENIE,KOGDA WY PEREME]AETE MY[X,DERVA NAVATOJ KNOPKU.sOBYTIQ-PROWEDENIQ W
DEJSTWITELXNOSTI PROISHODQT,KOGDA WY OTPUSKAETE KNOPKU MY[I.
sIMWOLAMI DLQ OSNOWNYH SOBYTIJ-]EL^KOW QWLQ@TSQ mouse-1 DLQ LEWOJ KNOPKI MY[I,
mouse-2 DLQ SLEDU@]EJ KNOPKI I TAK DALEE.wOT KAK MOVNO PEREOPREDELITX WTORU@ KNOPKU
MY[I DLQ RAZDELENIQ TEKU]EGO OKNA:
(global-set-key [mouse-2]'split-window-vertically)
sIMWOLY DLQ SOBYTIQ-PROWEDENIQ POHOVI NA PREDYDU]IE,NO IME@T PREFIKS`drag-'
PERED SLOWOM`mouse'.nAPRIMER,PROWEDENIE S POMO]X@ PERWOJ KNOPKI GENERIRUET SOBYTIE
drag-mouse-1.
wY TAKVE MOVETE OPREDELITX PRIWQZKI DLQ SOBYTIJ,KOTORYE WOZNIKA@T W MOMENT
NAVATIQ NA KNOPKU MY[I.iMENA\TIH SOBYTIJ NA^INA@TSQ SO SLOWA`down-'WMESTO
`drag-'.tAKIE SOBYTIQ GENERIRU@TSQ,TOLXKO ESLI ONI IME@T PRIWQZKU.kOGDA WY POLU^I-
TE SOBYTIE-NAVATIE,TO ZA NIM WSEGDA BUDUT SLEDOWATX SOOTWETSTWU@]EE SOBYTIE-]EL^OK
ILI PROWEDENIE.
eSLI HOTITE,WY MOVETE RAZLI^ATX ODINO^NYE,DWOJNYE I TROJNYE ]EL^KI.dWOJNOJ
]EL^OK OZNA^AET ]ELKANXE KNOPKOJ MY[I DWAVDY PO^TI W ODNOM I TOM VE MESTE.pERWYJ
]EL^OK GENERIRUET OBY^NOE SOBYTIE-]EL^OK.wTOROJ ]EL^OK,ESLI ON PRIHODIT DOSTA-
TO^NO BYSTRO,GENERIRUET SOBYTIE-DWOJNOJ ]EL^OK.tIP SOBYTIQ DLQ DWOJNOGO ]EL^KA
NA^INAETSQ S`double-':NAPRIMER,double-mouse-3.
|TO OZNA^AET,^TO WY MOVETE PRIDATX OSOBYJ SMYSL WTOROMU ]EL^KU W TOM VE SAMOM
MESTE,NO ON DOLVEN DEJSTWOWATX W PREDPOLOVENII,^TO OBY^NOE OPREDELENIE ODINARNOGO
]EL^KA UVE OBRABOTALOSX,KOGDA BYL POLU^EN PERWYJ ]EL^OK.
|TO OGRANI^IWAET WA[I WOZMOVNOSTI PO ISPOLXZOWANI@ DWOJNYH ]EL^KOW,NO DIZAJ-
NERY POLXZOWATELXSKIH INTERFEJSOW GOWORQT,^TO\TOMU OGRANI^ENI@ NUVNO SLEDOWATX W
L@BOM SLU^AE.dWOJNOJ ]EL^OK DOLVEN DELATX ^TO-TO PODOBNOE ODINO^NOMU ]EL^KU,TOLXKO
364 rUKOWODSTWO PO GNU Emacs\^UTX BOLX[E".kOMANDA DLQ SOBYTIQ-DWOJNOGO ]EL^KA DOLVNA WYPOLNQTX BOLX[E RABOTY
DLQ DWOJNOGO ]EL^KA.
eSLI DLQ SOBYTIQ DWOJNOGO ]EL^KA NET PRIWQZKI,ONO IZMENQETSQ NA SOOTWETSTWU@]EE
SOBYTIE ODINO^NOGO ]EL^KA.tAKIM OBRAZOM,ESLI WY NE OPREDELITE SPECIALXNO DWOJNOJ
]EL^OK,TO BUDET DWAVDY WYPOLNQTXSQ KOMANDA DLQ ODINO^NOGO ]EL^KA.
Emacs TAKVE PODDERVIWAET SOBYTIQ-TROJNYE ]EL^KI,^XI IMENA NA^INA@TSQ S
`triple-'.Emacs NE RAZLI^AET ^ETWERTNOE NAVATIE KAK TIP SOBYTIQ;]EL^KI SWY[E
TRETXEGO GENERIRU@T DOPOLNITELXNYE SOBYTIQ-TROJNYE ]EL^KI.oDNAKO POLNOE
KOLI^ESTWO ]EL^KOW SOHRANQETSQ W SPISKE SOBYTIJ,TAK ^TO WY MOVETE RAZLI^ATX TAKIE
SLU^AI,ESLI WAM\TO DEJSTWITELXNO NUVNO.mY NE REKOMENDUEM OSOBYH ZNA^ENIJ DLQ
BOLEE ^EM TREH ]EL^KOW,NO INOGDA POLEZNO,^TOBY POSLEDU@]IE ]EL^KI PROHODILI PO
CIKLU TOGO VE NABORA TREH ZNA^ENIJ,TAK ^TO ^ETYRE ]EL^KA\KWIWALENTNY ODNOMU,PQTX
\KWIWALENTNY DWUM,A [ESTX |TREM.
Emacs TAKVE ZAPISYWAET MNOVESTWENNYE NAVATIQ W SOBYTIQH PROWEDENIQ I NAVATIQ.
nAPRIMER,KOGDA WY DWAVDY NAVMETE KNOPKU,A ZATEM PEREMESTITE MY[X,DERVA KNOP-
KU NAVATOJ,Emacs POLU^IT SOBYTIE`double-drag-'.a KOGDA WY NAVIMAETE NA KNOPKU
WTOROJ RAZ,Emacs POLU^IT SOBYTIE`double-down-'(KOTOROE IGNORIRUETSQ,PODOBNO WSEM
SOBYTIQM NAVATIQ,ESLI U NIH NET PRIWQZKI).
pEREMENNAQ double-click-time ZADAET PROMEVUTOK WREMENI,KOTORYJ MOVET PROJTI
MEVDU DWUMQ ]EL^KAMI,^TOBY ONI S^ITALISX PAROJ.eE ZNA^ENIE IZMERQETSQ W MILLI-
SEKUNDAH.eSLI ZNA^ENIE RAWNO nil,TO DWOJNOJ ]EL^OK NE RASPOZNAETSQ SOWSEM.eSLI
ZNA^ENIE RAWNO t,TO NET NIKAKOGO WREMENNOGO OGRANI^ENIQ.
sIMWOLY DLQ SOBYTIJ MY[I TAKVE POKAZYWA@T STATUS KLAWI[-MODIFIKATOROW,S OBY^-
NYMI PREFIKSAMI`C-',`M-',`H-',`s-',`A-'I`S-'.oNI WSEGDA STOQT PERED`double-'ILI
`triple-',KOTORYE WSEGDA PRED[ESTWU@T`drag-'ILI`down-'.
fREJM WKL@^AET OBLASTI,KOTORYE NE OTOBRAVA@T TEKST BUFERA,TAKIE KAK STROKA RE-
VIMA I LINEJKA PROKRUTKI.wY MOVETE SUDITX O TOM,^TO KNOPKA MY[I NAVATA NA SPE-
CIALXNOJ OBLASTI\KRANA,POSREDSTWOM PREFIKSNYH PSEWDO-KL@^EJ.nAPRIMER,ESLI WY
]ELKNETE MY[X@ W STROKE REVIMA,TO WY POLU^ITE PREFIKSNYJ KL@^ mode-line PERED
OBY^NYM SIMWOLOM,OBOZNA^A@]EM KNOPKU MY[I.wOT KAK OPREDELITX ]EL^OK PERWOJ
KNOPKOJ NA STROKE REVIMA DLQ ZAPUSKA scroll-up:
(global-set-key [mode-line mouse-1]'scroll-up)
wOT POLNYJ SPISOK TAKIH PREFIKSNYH PSEWDO-KL@^EJ I IH ZNA^ENIJ:
mode-line
mY[X NAHODILASX NA STROKE REVIMA OKNA.
vertical-line
mY[X NAHODILASX NA WERTIKALXNOJ LINII,RAZDELQ@]EJ OKNA.(eSLI WY IS-
POLXZUETE POLOSKI PROKRUTKI,ONI POQWLQ@TSQ WMESTO\TIH WERTIKALXNYH LI-
NIJ).
vertical-scroll-bar
mY[X NAHODILASX NA WERTIKALXNOJ POLOSKE PROKRUTKI.(pOKA\TO EDINSTWEN-
NAQ RAZNOWIDNOSTX POLOSOK PROKRUTKI,KOTORYE PODDERVIWAET Emacs).
wY MOVETE POMESTITX W POSLEDOWATELXNOSTX KL@^EJ BOLX[E ODNOGO SOBYTIQ OT KNOPOK
MY[I,NO OBY^NO TAK NE DALA@T.
31.4.11 bLOKIROWANIE KOMAND
bLOKIROWANIE POME^AET KOMANDU KAK TREBU@]U@ PODTWERVDENIQ DO TOGO,KAK ONA BUDET
WYPOLNENA.cELX BLOKIROWANIQ SOSTOIT W TOM,^TOBY Z]ITITX NA^INA@]IH POLXZOWATELEJ
OT SLU^AJNOGO WYPOLNENIQ KOMAND,KOTORYE MOGLI BY IH ZAPUTATX.
gLAWA 31:nASTROJKA 365pOPYTKA INTERAKTIWNOGO WYZOWA BLOKIROWANNOJ KOMANDY W Emacs OTOBRAVAET OKNO,SO-
DERVA]EE IMQ KOMANDY,EE OPISANIE I NEKOTORYE REKOMENDACII O TOM,^TO NADO SDELATX
NEMEDLENNO;ZATEM Emacs SPROSIT U WAS WWOD,UKAZYWA@]IJ,NUVNO LI WYPOLNQTX\TU
KOMANDU,KAK ZAPRO[ENO,RAZBLOKIROWATX EE ILI OTMENITX ZAPROS.eSLI WY RE[ITE RAZBLO-
KIROWATX KOMANDU,TO WAS SPROSQT,WYPOLNITX LI\TO POSTOQNNO ILI TOLXKO DLQ TEKU]EGO
SEANSA.pOSTOQNNOE RAZBLOKIROWANIE PROIZWODITSQ PUTEM AWTOMATI^ESKOGO REDAKTIROWANIQ
WA[EGO FAJLA`.emacs'.
pRQMOJ MEHANIZM BLOKIROWANIQ KOMANDY | POME]ENIE OTLI^NOGO OT nil SWOJSTWA
disabled W LISPOWSKIJ SIMWOL DLQ DANNOJ KOMANDY.wOT PROGRAMMA NA lISPE,KOTORAQ
DELAET\TO:
(put'delete-region'disabled t)
eSLI ZNA^ENIE SWOJSTWA disabled QWLQETSQ STROKOJ,TO\TA STROKA WKL@^AETSQ W SOOB-
]ENIE,WYWODIMOE PRI ISPOLXZOWANII\TOJ KOMANDY:
(put'delete-region'disabled
"It's better to use`kill-region'instead.\n")
wY MOVETE BLOKIROWATX KOMANDU LIBO NEPOSREDSTENNYM REDAKTIROWANIEM FAJLA
`.emacs',LIBO S POMO]X@ KOMANDY M-x disable-command,KOTORAQ RADAKTIRUET FAJL
`.emacs'ZA WAS.pODOBNYM OBRAZOM KOMANDA M-x enable-command IZMENQET`.emacs'DLQ
POSTOQNNOGO RAZRE[ENIQ KOMANDY.sM.rAZDEL 31.7 [fAJL INICIALIZACII],S.366.
bLOKIROWANIE KOMANDY NE ZAWISIT OT TOGO,KAKOJ KL@^ ISPOLXZUETSQ DLQ EE ZAPUSKA;
BLOKIROWANIE TAKVE DEJSTWUET,ESLI KOMANDA WYZYWAETSQ ^EREZ M-x.bLOKIROWANIE NE
IMEET\FFEKTA PRI WYZOWE KOMANDY KAK FUNKCII IZ PROGRAMM NA lISPE.
31.5 pEREWOD KLAWIATURY
nEKOTORYE KLAWIATURY NE POZWOLQ@T UDOBNO POSYLATX WSE SPECIALXNYE ZNAKI,KOTORYE
ISPOLXZUET Emacs.nAIBOLEE OB]IM SLU^AEM\TOJ PROBLEMY QWLQETSQ ZNAK h DELi.nEKOTO-
RYE KLAWIATURY NE OBESPE^IWA@T UDOBNOGO SPOSOBA DLQ NABORA\TOGO O^ENX WAVNOGO ZNAKA
| OBY^NO POTOMU ^TO ONI SPROEKTIROWANY W PREDPOLOVENII,^TO DLQ UDALENIQ BUDET
ISPOLXZOWATXSQ ZNAK C-h.nA TAKIH KLAWIATURAH,ESLI WY NAVMETE KLAWI[U,OBY^NO IS-
POLXZUEMU@ DLQ UDALENIQ,TO Emacs OBRABOTAET C-h KAK PREFIKSNYJ KL@^ I PREDLOVIT
WAM SPISOK PARAMETROW,A\TO NE TO,^TO WAM NUVNO.
wY MOVETE OBOJTI\TU PROBLEMU WNUTRI Emacs,PODGOTOWIW PEREWOD KLAWIATURY DLQ
PREWRA]ENIQ C-h W
h DELi I hDELi W C-h,KAK POKAZANO:
;;pEREWODIT C-h W
h DELi.
(keyboard-translate?\C-h?\C-?)
;;pEREWODIT
h DELi W C-h.
(keyboard-translate?\C-??\C-h)
pEREWOD KLAWIATURY |\TO NE TO VE SAMOE,^TO I PRIWQZKA KL@^EJ W TABLICAH KL@^EJ
(SM.rAZDEL 31.4.1 [tABLICY KL@^EJ],S.356).Emacs SODERVIT MNOGO^ISLENNYE TABLICY
KL@^EJ,KOTORYE PRIMENQ@TSQ W RAZNYH SITUACIQH,NO TOLXKO ODIN NABOR PEREWODOW KLA-
WI[,I ON PRIMENQETSQ K KAVDOMU ZNAKU,KOTORYJ Emacs S^ITYWAET S TERMINALA.pEREWOD
KLAWIATURY PROISHODQT NA NIZ[EM UROWNE OBRABOTKI WWODA;KL@^I,POISK KOTORYH PROIS-
HODIT W TABLICAH KL@^EJ,SODERVAT ZNAKI,POQWLQ@]IESQ POSLE PEREWODA KLAWIATURY.
pRI RABOTE W X,KLAWI[A S IMENEM
h DELETEi QWLQETSQ FUNKCIONALXNOJ KLAWI[EJ,I ONA
OTLI^AETSQ OT ASCII-ZNAKA S IMENEM h DELi.sM.rAZDEL 31.4.8 [iMENOWANNYE ASCII-ZNAKI],
S.362.pEREWOD KLAWIATURY ZATRAGIWAET TOLXKO WWOD ASCII-ZNAKOW,NO NE FUNKCIONALXNYH
KLAW
Автор
unnotigkeit
Документ
Категория
Без категории
Просмотров
388
Размер файла
3 143 Кб
Теги
руководство, emacs, 1999, столмен, gnu, ричард
1/--страниц
Пожаловаться на содержимое документа