X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=info%2Fxemacs.info-20;h=a3b119fca4f580bf547743ec296c9057b7fba8bc;hb=98769b42a33fd8236341ac4175165b2dab7ceae4;hp=9ce962ea1a127c5462e65167ce7771f4285005e3;hpb=5483e97d616f1d057edccd2683b499bcf75c402a;p=chise%2Fxemacs-chise.git diff --git a/info/xemacs.info-20 b/info/xemacs.info-20 index 9ce962e..a3b119f 100644 --- a/info/xemacs.info-20 +++ b/info/xemacs.info-20 @@ -1,4 +1,4 @@ -This is ../info/xemacs.info, produced by makeinfo version 4.0 from +This is ../info/xemacs.info, produced by makeinfo version 4.0b from xemacs/xemacs.texi. INFO-DIR-SECTION XEmacs Editor @@ -30,954 +30,784 @@ versions, except that the sections entitled "The GNU Manifesto", translation approved by the author instead of in the original English.  -File: xemacs.info, Node: Manifesto, Next: Key Index, Prev: Glossary, Up: Top - -The GNU Manifesto -***************** - -What's GNU? GNU's Not Unix! -============================ - - GNU, which stands for GNU's Not Unix, is the name for the complete -Unix-compatible software system which I am writing so that I can give it -away free to everyone who can use it. Several other volunteers are -helping me. Contributions of time, money, programs, and equipment are -greatly needed. - - So far we have an Emacs text editor with Lisp for writing editor -commands, a source level debugger, a yacc-compatible parser generator, -a linker, and around 35 utilities. A shell (command interpreter) is -nearly completed. A new portable optimizing C compiler has compiled -itself and may be released this year. An initial kernel exists, but -many more features are needed to emulate Unix. When the kernel and -compiler are finished, it will be possible to distribute a GNU system -suitable for program development. We will use TeX as our text -formatter, but an nroff is being worked on. We will use the free, -portable X window system as well. After this we will add a portable -Common Lisp, an Empire game, a spreadsheet, and hundreds of other -things, plus online documentation. We hope to supply, eventually, -everything useful that normally comes with a Unix system, and more. - - GNU will be able to run Unix programs, but will not be identical to -Unix. We will make all improvements that are convenient, based on our -experience with other operating systems. In particular, we plan to -have longer filenames, file version numbers, a crashproof file system, -filename completion perhaps, terminal-independent display support, and -perhaps eventually a Lisp-based window system through which several -Lisp programs and ordinary Unix programs can share a screen. Both C -and Lisp will be available as system programming languages. We will -try to support UUCP, MIT Chaosnet, and Internet protocols for -communication. - - GNU is aimed initially at machines in the 68000/16000 class with -virtual memory, because they are the easiest machines to make it run -on. The extra effort to make it run on smaller machines will be left -to someone who wants to use it on them. - - To avoid horrible confusion, please pronounce the `G' in the word -`GNU' when it is the name of this project. - -Why I Must Write GNU -==================== - - I consider that the golden rule requires that if I like a program I -must share it with other people who like it. Software sellers want to -divide the users and conquer them, making each user agree not to share -with others. I refuse to break solidarity with other users in this -way. I cannot in good conscience sign a nondisclosure agreement or a -software license agreement. For years I worked within the Artificial -Intelligence Lab to resist such tendencies and other inhospitalities, -but eventually they had gone too far: I could not remain in an -institution where such things are done for me against my will. - - So that I can continue to use computers without dishonor, I have -decided to put together a sufficient body of free software so that I -will be able to get along without any software that is not free. I -have resigned from the AI lab to deny MIT any legal excuse to prevent -me from giving GNU away. - -Why GNU Will Be Compatible With Unix -==================================== - - Unix is not my ideal system, but it is not too bad. The essential -features of Unix seem to be good ones, and I think I can fill in what -Unix lacks without spoiling them. And a system compatible with Unix -would be convenient for many other people to adopt. - -How GNU Will Be Available -========================= - - GNU is not in the public domain. Everyone will be permitted to -modify and redistribute GNU, but no distributor will be allowed to -restrict its further redistribution. That is to say, proprietary -modifications will not be allowed. I want to make sure that all -versions of GNU remain free. - -Why Many Other Programmers Want to Help -======================================= - - I have found many other programmers who are excited about GNU and -want to help. - - Many programmers are unhappy about the commercialization of system -software. It may enable them to make more money, but it requires them -to feel in conflict with other programmers in general rather than feel -as comrades. The fundamental act of friendship among programmers is the -sharing of programs; marketing arrangements now typically used -essentially forbid programmers to treat others as friends. The -purchaser of software must choose between friendship and obeying the -law. Naturally, many decide that friendship is more important. But -those who believe in law often do not feel at ease with either choice. -They become cynical and think that programming is just a way of making -money. - - By working on and using GNU rather than proprietary programs, we can -be hospitable to everyone and obey the law. In addition, GNU serves as -an example to inspire and a banner to rally others to join us in -sharing. This can give us a feeling of harmony which is impossible if -we use software that is not free. For about half the programmers I -talk to, this is an important happiness that money cannot replace. - -How You Can Contribute -====================== - - I am asking computer manufacturers for donations of machines and -money. I'm asking individuals for donations of programs and work. - - One consequence you can expect if you donate machines is that GNU -will run on them at an early date. The machines should be complete, -ready-to-use systems, approved for use in a residential area, and not -in need of sophisticated cooling or power. - - I have found very many programmers eager to contribute part-time -work for GNU. For most projects, such part-time distributed work would -be very hard to coordinate; the independently-written parts would not -work together. But for the particular task of replacing Unix, this -problem is absent. A complete Unix system contains hundreds of utility -programs, each of which is documented separately. Most interface -specifications are fixed by Unix compatibility. If each contributor -can write a compatible replacement for a single Unix utility, and make -it work properly in place of the original on a Unix system, then these -utilities will work right when put together. Even allowing for Murphy -to create a few unexpected problems, assembling these components will -be a feasible task. (The kernel will require closer communication and -will be worked on by a small, tight group.) - - If I get donations of money, I may be able to hire a few people full -or part time. The salary won't be high by programmers' standards, but -I'm looking for people for whom building community spirit is as -important as making money. I view this as a way of enabling dedicated -people to devote their full energies to working on GNU by sparing them -the need to make a living in another way. - -Why All Computer Users Will Benefit -=================================== - - Once GNU is written, everyone will be able to obtain good system -software free, just like air. - - This means much more than just saving everyone the price of a Unix -license. It means that much wasteful duplication of system programming -effort will be avoided. This effort can go instead into advancing the -state of the art. - - Complete system sources will be available to everyone. As a result, -a user who needs changes in the system will always be free to make them -himself, or hire any available programmer or company to make them for -him. Users will no longer be at the mercy of one programmer or company -which owns the sources and is in sole position to make changes. - - Schools will be able to provide a much more educational environment -by encouraging all students to study and improve the system code. -Harvard's computer lab used to have the policy that no program could be -installed on the system if its sources were not on public display, and -upheld it by actually refusing to install certain programs. I was very -much inspired by this. - - Finally, the overhead of considering who owns the system software -and what one is or is not entitled to do with it will be lifted. - - Arrangements to make people pay for using a program, including -licensing of copies, always incur a tremendous cost to society through -the cumbersome mechanisms necessary to figure out how much (that is, -which programs) a person must pay for. And only a police state can -force everyone to obey them. Consider a space station where air must -be manufactured at great cost: charging each breather per liter of air -may be fair, but wearing the metered gas mask all day and all night is -intolerable even if everyone can afford to pay the air bill. And the -TV cameras everywhere to see if you ever take the mask off are -outrageous. It's better to support the air plant with a head tax and -chuck the masks. - - Copying all or parts of a program is as natural to a programmer as -breathing, and as productive. It ought to be as free. - -Some Easily Rebutted Objections to GNU's Goals -============================================== - - "Nobody will use it if it is free, because that means they can't - rely on any support." - - "You have to charge for the program to pay for providing the - support." - - If people would rather pay for GNU plus service than get GNU free -without service, a company to provide just service to people who have -obtained GNU free ought to be profitable. - - We must distinguish between support in the form of real programming -work and mere handholding. The former is something one cannot rely on -from a software vendor. If your problem is not shared by enough -people, the vendor will tell you to get lost. - - If your business needs to be able to rely on support, the only way -is to have all the necessary sources and tools. Then you can hire any -available person to fix your problem; you are not at the mercy of any -individual. With Unix, the price of sources puts this out of -consideration for most businesses. With GNU this will be easy. It is -still possible for there to be no available competent person, but this -problem cannot be blamed on distribution arrangements. GNU does not -eliminate all the world's problems, only some of them. - - Meanwhile, the users who know nothing about computers need -handholding: doing things for them which they could easily do -themselves but don't know how. - - Such services could be provided by companies that sell just -hand-holding and repair service. If it is true that users would rather -spend money and get a product with service, they will also be willing -to buy the service having got the product free. The service companies -will compete in quality and price; users will not be tied to any -particular one. Meanwhile, those of us who don't need the service -should be able to use the program without paying for the service. - - "You cannot reach many people without advertising, and you must - charge for the program to support that." - - "It's no use advertising a program people can get free." - - There are various forms of free or very cheap publicity that can be -used to inform numbers of computer users about something like GNU. But -it may be true that one can reach more microcomputer users with -advertising. If this is really so, a business which advertises the -service of copying and mailing GNU for a fee ought to be successful -enough to pay for its advertising and more. This way, only the users -who benefit from the advertising pay for it. - - On the other hand, if many people get GNU from their friends, and -such companies don't succeed, this will show that advertising was not -really necessary to spread GNU. Why is it that free market advocates -don't want to let the free market decide this? - - "My company needs a proprietary operating system to get a - competitive edge." - - GNU will remove operating system software from the realm of -competition. You will not be able to get an edge in this area, but -neither will your competitors be able to get an edge over you. You and -they will compete in other areas, while benefitting mutually in this -one. If your business is selling an operating system, you will not -like GNU, but that's tough on you. If your business is something else, -GNU can save you from being pushed into the expensive business of -selling operating systems. - - I would like to see GNU development supported by gifts from many -manufacturers and users, reducing the cost to each. - - "Don't programmers deserve a reward for their creativity?" - - If anything deserves a reward, it is social contribution. -Creativity can be a social contribution, but only in so far as society -is free to use the results. If programmers deserve to be rewarded for -creating innovative programs, by the same token they deserve to be -punished if they restrict the use of these programs. - - "Shouldn't a programmer be able to ask for a reward for his - creativity?" - - There is nothing wrong with wanting pay for work, or seeking to -maximize one's income, as long as one does not use means that are -destructive. But the means customary in the field of software today -are based on destruction. - - Extracting money from users of a program by restricting their use of -it is destructive because the restrictions reduce the amount and the -ways that the program can be used. This reduces the amount of wealth -that humanity derives from the program. When there is a deliberate -choice to restrict, the harmful consequences are deliberate destruction. - - The reason a good citizen does not use such destructive means to -become wealthier is that, if everyone did so, we would all become -poorer from the mutual destructiveness. This is Kantian ethics; or, -the Golden Rule. Since I do not like the consequences that result if -everyone hoards information, I am required to consider it wrong for one -to do so. Specifically, the desire to be rewarded for one's creativity -does not justify depriving the world in general of all or part of that -creativity. - - "Won't programmers starve?" - - I could answer that nobody is forced to be a programmer. Most of us -cannot manage to get any money for standing on the street and making -faces. But we are not, as a result, condemned to spend our lives -standing on the street making faces, and starving. We do something -else. - - But that is the wrong answer because it accepts the questioner's -implicit assumption: that without ownership of software, programmers -cannot possibly be paid a cent. Supposedly it is all or nothing. - - The real reason programmers will not starve is that it will still be -possible for them to get paid for programming; just not paid as much as -now. - - Restricting copying is not the only basis for business in software. -It is the most common basis because it brings in the most money. If it -were prohibited, or rejected by the customer, software business would -move to other bases of organization which are now used less often. -There are always numerous ways to organize any kind of business. - - Probably programming will not be as lucrative on the new basis as it -is now. But that is not an argument against the change. It is not -considered an injustice that sales clerks make the salaries that they -now do. If programmers made the same, that would not be an injustice -either. (In practice they would still make considerably more than -that.) - - "Don't people have a right to control how their creativity is - used?" - - "Control over the use of one's ideas" really constitutes control over -other people's lives; and it is usually used to make their lives more -difficult. - - People who have studied the issue of intellectual property rights -carefully (such as lawyers) say that there is no intrinsic right to -intellectual property. The kinds of supposed intellectual property -rights that the government recognizes were created by specific acts of -legislation for specific purposes. - - For example, the patent system was established to encourage -inventors to disclose the details of their inventions. Its purpose was -to help society rather than to help inventors. At the time, the life -span of 17 years for a patent was short compared with the rate of -advance of the state of the art. Since patents are an issue only among -manufacturers, for whom the cost and effort of a license agreement are -small compared with setting up production, the patents often do not do -much harm. They do not obstruct most individuals who use patented -products. - - The idea of copyright did not exist in ancient times, when authors -frequently copied other authors at length in works of non-fiction. This -practice was useful, and is the only way many authors' works have -survived even in part. The copyright system was created expressly for -the purpose of encouraging authorship. In the domain for which it was -invented--books, which could be copied economically only on a printing -press--it did little harm, and did not obstruct most of the individuals -who read the books. - - All intellectual property rights are just licenses granted by society -because it was thought, rightly or wrongly, that society as a whole -would benefit by granting them. But in any particular situation, we -have to ask: are we really better off granting such license? What kind -of act are we licensing a person to do? - - The case of programs today is very different from that of books a -hundred years ago. The fact that the easiest way to copy a program is -from one neighbor to another, the fact that a program has both source -code and object code which are distinct, and the fact that a program is -used rather than read and enjoyed, combine to create a situation in -which a person who enforces a copyright is harming society as a whole -both materially and spiritually; in which a person should not do so -regardless of whether the law enables him to. - - "Competition makes things get done better." - - The paradigm of competition is a race: by rewarding the winner, we -encourage everyone to run faster. When capitalism really works this -way, it does a good job; but its defenders are wrong in assuming it -always works this way. If the runners forget why the reward is offered -and become intent on winning, no matter how, they may find other -strategies--such as, attacking other runners. If the runners get into -a fist fight, they will all finish late. - - Proprietary and secret software is the moral equivalent of runners -in a fist fight. Sad to say, the only referee we've got does not seem -to object to fights; he just regulates them ("For every ten yards you -run, you can fire one shot"). He really ought to break them up, and -penalize runners for even trying to fight. - - "Won't everyone stop programming without a monetary incentive?" - - Actually, many people will program with absolutely no monetary -incentive. Programming has an irresistible fascination for some -people, usually the people who are best at it. There is no shortage of -professional musicians who keep at it even though they have no hope of -making a living that way. - - But really this question, though commonly asked, is not appropriate -to the situation. Pay for programmers will not disappear, only become -less. So the right question is, will anyone program with a reduced -monetary incentive? My experience shows that they will. - - For more than ten years, many of the world's best programmers worked -at the Artificial Intelligence Lab for far less money than they could -have had anywhere else. They got many kinds of non-monetary rewards: -fame and appreciation, for example. And creativity is also fun, a -reward in itself. - - Then most of them left when offered a chance to do the same -interesting work for a lot of money. - - What the facts show is that people will program for reasons other -than riches; but if given a chance to make a lot of money as well, they -will come to expect and demand it. Low-paying organizations do poorly -in competition with high-paying ones, but they do not have to do badly -if the high-paying ones are banned. - - "We need the programmers desperately. If they demand that we stop - helping our neighbors, we have to obey." - - You're never so desperate that you have to obey this sort of demand. -Remember: millions for defense, but not a cent for tribute! - - "Programmers need to make a living somehow." - - In the short run, this is true. However, there are plenty of ways -that programmers could make a living without selling the right to use a -program. This way is customary now because it brings programmers and -businessmen the most money, not because it is the only way to make a -living. It is easy to find other ways if you want to find them. Here -are a number of examples. - - A manufacturer introducing a new computer will pay for the porting of -operating systems onto the new hardware. - - The sale of teaching, hand-holding, and maintenance services could -also employ programmers. - - People with new ideas could distribute programs as freeware and ask -for donations from satisfied users or sell hand-holding services. I -have met people who are already working this way successfully. - - Users with related needs can form users' groups and pay dues. A -group would contract with programming companies to write programs that -the group's members would like to use. - - All sorts of development can be funded with a Software Tax: - - Suppose everyone who buys a computer has to pay a certain percent - of the price as a software tax. The government gives this to an - agency like the NSF to spend on software development. - - But if the computer buyer makes a donation to software development - himself, he can take a credit against the tax. He can donate to - the project of his own choosing--often, chosen because he hopes to - use the results when - - it is done. He can take a credit for any amount of donation up to - the total tax he had to pay. - - The total tax rate could be decided by a vote of the payers of the - tax, weighted according to the amount they will be taxed on. - - The consequences: - - * The computer-using community supports software development. - - * This community decides what level of support is needed. - - * Users who care which projects their share is spent on can - choose this for themselves. - - In the long run, making programs free is a step toward the -post-scarcity world, where nobody will have to work very hard just to -make a living. People will be free to devote themselves to activities -that are fun, such as programming, after spending the necessary ten -hours a week on required tasks such as legislation, family counseling, -robot repair, and asteroid prospecting. There will be no need to be -able to make a living from programming. - - We have already greatly reduced the amount of work that the whole -society must do for its actual productivity, but only a little of this -has translated itself into leisure for workers because much -nonproductive activity is required to accompany productive activity. -The main causes of this are bureaucracy and isometric struggles against -competition. Free software will greatly reduce these drains in the -area of software production. We must do this, in order for technical -gains in productivity to translate into less work for us. - - -File: xemacs.info, Node: Key Index, Next: Command Index, Prev: Manifesto, Up: Top - -Key (Character) Index -********************* - -* Menu: - -* ! (query-replace): Query Replace. -* " (TeX mode): TeX Editing. -* , (query-replace): Query Replace. -* . (Calendar mode): Specified Dates. -* . (query-replace): Query Replace. -* ? (Calendar mode): General Calendar. -* ^ (query-replace): Query Replace. -* a (Calendar mode): Holidays. -* BS: Inserting Text. -* button1: Intro to Keystrokes. -* button1up: Intro to Keystrokes. -* button2: Intro to Keystrokes. -* button2up: Intro to Keystrokes. -* button3: Intro to Keystrokes. -* button3up: Intro to Keystrokes. -* C-<: Setting Mark. -* C->: Setting Mark. -* C-@ (Calendar mode): Mark and Region. -* C-\: Select Input Method. -* C-] <1>: Quitting. -* C-]: Recursive Edit. -* C-_: Undo. -* C-a: Moving Point. -* C-a (Calendar mode): Move to Beginning or End. -* C-b: Moving Point. -* C-b (Calendar mode): Calendar Unit Motion. -* C-c: Key Sequences. -* C-c ' (Picture mode): Insert in Picture. -* C-c . (Picture mode): Insert in Picture. -* C-c / (Picture mode): Insert in Picture. -* C-c ; (Fortran mode): Fortran Comments. -* C-c < (Picture mode): Insert in Picture. -* C-c > (Picture mode): Insert in Picture. -* C-c \ (Picture mode): Insert in Picture. -* C-c ^ (Picture mode): Insert in Picture. -* C-c ` (Picture mode): Insert in Picture. -* C-c C-\ (Shell mode): Shell Mode. -* C-c C-b (Outline mode): Outline Motion. -* C-c C-b (Picture mode): Insert in Picture. -* C-c C-b (TeX mode): TeX Print. -* C-c C-c (Edit Abbrevs): Editing Abbrevs. -* C-c C-c (Edit Tab Stops): Tab Stops. -* C-c C-c (Mail mode): Mail Mode. -* C-c C-c (Occur mode): Other Repeating Search. -* C-c C-c (Shell mode): Shell Mode. -* C-c C-d (Picture mode): Basic Picture. -* C-c C-d (Shell mode): Shell Mode. -* C-c C-f (LaTeX mode): TeX Editing. -* C-c C-f (Outline mode): Outline Motion. -* C-c C-f (Picture mode): Insert in Picture. -* C-c C-f C-c (Mail mode): Mail Mode. -* C-c C-f C-s (Mail mode): Mail Mode. -* C-c C-f C-t (Mail mode): Mail Mode. -* C-c C-h (Outline mode): Outline Visibility. -* C-c C-i (Outline mode): Outline Visibility. -* C-c C-j (Term mode): Term Mode. -* C-c C-k (Picture mode): Rectangles in Picture. -* C-c C-k (Term mode): Term Mode. -* C-c C-k (TeX mode): TeX Print. -* C-c C-l (Calendar mode): General Calendar. -* C-c C-l (TeX mode): TeX Print. -* C-c C-n (Fortran mode): Fortran Motion. -* C-c C-n (Outline mode): Outline Motion. -* C-c C-o (Shell mode): Shell Mode. -* C-c C-p (Fortran mode): Fortran Motion. -* C-c C-p (Outline mode): Outline Motion. -* C-c C-p (TeX mode): TeX Print. -* C-c C-q (Mail mode): Mail Mode. -* C-c C-q (Term mode): Paging in Term. -* C-c C-q (TeX mode): TeX Print. -* C-c C-r (Fortran mode): Fortran Columns. -* C-c C-r (Shell mode): Shell Mode. -* C-c C-r (TeX mode): TeX Print. -* C-c C-s (Mail mode): Mail Mode. -* C-c C-s (Outline mode): Outline Visibility. -* C-c C-u (Outline mode): Outline Motion. -* C-c C-u (Shell mode): Shell Mode. -* C-c C-w (Fortran mode): Fortran Columns. -* C-c C-w (Mail mode): Mail Mode. -* C-c C-w (Picture mode): Rectangles in Picture. -* C-c C-w (Shell mode): Shell Mode. -* C-c C-x (Picture mode): Rectangles in Picture. -* C-c C-y (Mail mode): Mail Mode. -* C-c C-y (Picture mode): Rectangles in Picture. -* C-c C-y (Shell mode): Shell Mode. -* C-c C-z (Shell mode): Shell Mode. -* C-c TAB (Picture mode): Tabs in Picture. -* C-c { (TeX mode): TeX Editing. -* C-c } (TeX mode): TeX Editing. -* C-d: Killing. -* C-d (Shell mode): Shell Mode. -* C-e: Moving Point. -* C-e (Calendar mode): Move to Beginning or End. -* C-END: Moving Point. -* C-f: Moving Point. -* C-f (Calendar mode): Calendar Unit Motion. -* C-g <1>: Quitting. -* C-g: Minibuffer. -* C-g (isearch-mode): Incremental Search. -* C-h <1>: Help. -* C-h: Key Sequences. -* C-h A: Apropos. -* C-h b: Misc Help. -* C-h C: Coding Systems. -* C-h c: Key Help. -* C-h C-\: Select Input Method. -* C-h C-c: Misc Help. -* C-h C-d: Misc Help. -* C-h C-f: Misc Help. -* C-h C-h: Help. -* C-h C-k: Misc Help. -* C-h C-w: Misc Help. -* C-h f: Documentation. -* C-h F: Misc Help. -* C-h f: Name Help. -* C-h h: Mule Intro. -* C-h I: Select Input Method. -* C-h i: Misc Help. -* C-h k: Key Help. -* C-h L: Language Environments. -* C-h l: Misc Help. -* C-h m: Misc Help. -* C-h n: Misc Help. -* C-h p: Library Keywords. -* C-h s: Syntax Change. -* C-h t <1>: Misc Help. -* C-h t: Basic. -* C-h v <1>: Examining. -* C-h v <2>: Documentation. -* C-h v: Name Help. -* C-h w: Name Help. -* C-HOME: Moving Point. -* C-k: Killing. -* C-l <1>: Scrolling. -* C-l: Moving Point. -* C-l (query-replace): Query Replace. -* C-LEFT: Moving Point. -* C-M-@ <1>: Lists. -* C-M-@: Marking Objects. -* C-M-\ <1>: Multi-line Indent. -* C-M-\: Indentation Commands. -* C-M-a: Defuns. -* C-M-a (Fortran mode): Fortran Motion. -* C-M-b: Lists. -* C-M-c: Recursive Edit. -* C-M-d: Lists. -* C-M-e: Defuns. -* C-M-e (Fortran mode): Fortran Motion. -* C-M-f: Lists. -* C-M-h <1>: Defuns. -* C-M-h: Marking Objects. -* C-M-h (Fortran mode): Fortran Motion. -* C-M-k <1>: Lists. -* C-M-k: Killing. -* C-M-n: Lists. -* C-M-o: Indentation Commands. -* C-M-p: Lists. -* C-M-q: Multi-line Indent. -* C-M-q (Fortran mode): ForIndent Commands. -* C-M-t <1>: Lists. -* C-M-t: Transpose. -* C-M-u: Lists. -* C-M-v <1>: Other Window. -* C-M-v: Minibuffer Edit. -* C-M-w: Appending Kills. -* C-M-x <1>: External Lisp. -* C-M-x: Lisp Eval. -* C-n: Moving Point. -* C-n (Calendar mode): Calendar Unit Motion. -* C-o: Blank Lines. -* C-p: Moving Point. -* C-p (Calendar mode): Calendar Unit Motion. -* C-q: Inserting Text. -* C-q (isearch-mode): Incremental Search. -* C-r: Incremental Search. -* C-r (isearch-mode): Incremental Search. -* C-r (query-replace): Query Replace. -* C-RIGHT: Moving Point. -* C-s: Incremental Search. -* C-s (isearch-mode): Incremental Search. -* C-SPC: Setting Mark. -* C-SPC (Calendar mode): Mark and Region. -* C-t <1>: Transpose. -* C-t: Moving Point. -* C-u: Arguments. -* C-u - C-x ;: Comments. -* C-u C-@: Mark Ring. -* C-u C-SPC: Mark Ring. -* C-u C-x v v: Editing with VC. -* C-u TAB: Multi-line Indent. -* C-v <1>: Scrolling. -* C-v: Moving Point. -* C-v (Calendar mode): Scroll Calendar. -* C-w: Killing. -* C-w (isearch-mode): Incremental Search. -* C-w (query-replace): Query Replace. -* C-x: Key Sequences. -* C-x $: Selective Display. -* C-x (: Basic Kbd Macro. -* C-x ): Basic Kbd Macro. -* C-x .: Fill Prefix. -* C-x 0: Change Window. -* C-x 1: Change Window. -* C-x 2: Split Window. -* C-x 3: Split Window. -* C-x 4: Pop Up Window. -* C-x 4 .: Find Tag. -* C-x 4 b: Select Buffer. -* C-x 4 d: Dired Enter. -* C-x 4 f: Visiting. -* C-x 4 m: Sending Mail. -* C-x 5 b: Select Buffer. -* C-x 5 C-f: Visiting. -* C-x ;: Comments. -* C-x <: Horizontal Scrolling. -* C-x < (Calendar mode): Scroll Calendar. -* C-x =: Position Info. -* C-x >: Horizontal Scrolling. -* C-x > (Calendar mode): Scroll Calendar. -* C-x [: Pages. -* C-x [ (Calendar mode): Calendar Unit Motion. -* C-x ]: Pages. -* C-x ] (Calendar mode): Calendar Unit Motion. -* C-x ^: Change Window. -* C-x `: Compilation. -* C-x a g: Defining Abbrevs. -* C-x a i g: Defining Abbrevs. -* C-x a i l: Defining Abbrevs. -* C-x a l: Defining Abbrevs. -* C-x b: Select Buffer. -* C-x C-b: List Buffers. -* C-x C-c: Exiting. -* C-x C-d: ListDir. -* C-x C-e: Lisp Eval. -* C-x C-l: Case. -* C-x C-o <1>: Killing. -* C-x C-o: Blank Lines. -* C-x C-p <1>: Pages. -* C-x C-p: Marking Objects. -* C-x C-q: Misc Buffer. -* C-x C-q (version control): Editing with VC. -* C-x C-s: Saving. -* C-x C-t: Transpose. -* C-x C-u: Case. -* C-x C-v: Visiting. -* C-x C-w: Saving. -* C-x C-x: Setting Mark. -* C-x C-x (Calendar mode): Mark and Region. -* C-x d: Dired Enter. -* C-x DEL <1>: Sentences. -* C-x DEL <2>: Kill Errors. -* C-x DEL: Killing. -* C-x e: Basic Kbd Macro. -* C-x ESC ESC: Repetition. -* C-x f: Fill Commands. -* C-x h: Marking Objects. -* C-x k: Kill Buffer. -* C-x l: Pages. -* C-x m: Sending Mail. -* C-x n n: Narrowing. -* C-x n w: Narrowing. -* C-x o: Other Window. -* C-x q: Kbd Macro Query. -* C-x r +: RegNumbers. -* C-x r b: Bookmarks. -* C-x r g: RegText. -* C-x r i: RegText. -* C-x r j: RegPos. -* C-x r l: Bookmarks. -* C-x r m: Bookmarks. -* C-x r n: RegNumbers. -* C-x r r: RegRect. -* C-x r s: RegText. -* C-x r SPC: RegPos. -* C-x r w: RegConfig. -* C-x RET: Mule Intro. -* C-x RET c: Specify Coding. -* C-x RET C-\: Select Input Method. -* C-x RET f: Specify Coding. -* C-x RET k: Specify Coding. -* C-x RET p: Specify Coding. -* C-x RET t: Specify Coding. -* C-x s: Saving. -* C-x TAB: Indentation Commands. -* C-x u: Undo. -* C-x v =: Old Versions. -* C-x v a: Change Logs and VC. -* C-x v c: Editing with VC. -* C-x v d: VC Status. -* C-x v h: Version Headers. -* C-x v i: Editing with VC. -* C-x v l: VC Status. -* C-x v r: Making Snapshots. -* C-x v s: Making Snapshots. -* C-x v u: Editing with VC. -* C-x v ~: Old Versions. -* C-x }: Change Window. -* C-y: Kill Ring. -* C-y (isearch-mode): Incremental Search. -* C-z: Exiting. -* control key: Intro to Keystrokes. -* d (Calendar mode): Diary Commands. -* DEL <1>: Program Modes. -* DEL <2>: Major Modes. -* DEL <3>: Kill Errors. -* DEL: Killing. -* DEL (isearch-mode): Incremental Search. -* DEL (query-replace): Query Replace. -* DOWN: Moving Point. -* END: Moving Point. -* ESC <1>: Meta Key. -* ESC: Key Sequences. -* ESC (query-replace): Query Replace. -* F1: Help. -* g CHAR (Calendar mode): From Other Calendar. -* g d (Calendar mode): Specified Dates. -* g m l (Calendar mode): Mayan Calendar. -* h (Calendar mode): Holidays. -* Help: Help. -* HOME: Moving Point. -* hyper key <1>: Super and Hyper Keys. -* hyper key <2>: Representing Keystrokes. -* hyper key: Intro to Keystrokes. -* i a (Calendar mode): Special Diary Entries. -* i b (Calendar mode): Special Diary Entries. -* i c (Calendar mode): Special Diary Entries. -* i d (Calendar mode): Adding to Diary. -* i m (Calendar mode): Adding to Diary. -* i w (Calendar mode): Adding to Diary. -* i y (Calendar mode): Adding to Diary. -* LEFT: Moving Point. -* LFD <1>: Basic Indent. -* LFD <2>: Major Modes. -* LFD: String Key Sequences. -* LFD (TeX mode): TeX Editing. -* m (Calendar mode): Diary Commands. -* M (Calendar mode): Lunar Phases. -* M-!: Single Shell. -* M-$: Spelling. -* M-%: Query Replace. -* M-': Expanding Abbrevs. -* M-(: Balanced Editing. -* M-): Balanced Editing. -* M-,: Tags Search. -* M--: Arguments. -* M-- M-c: Fixing Case. -* M-- M-l: Fixing Case. -* M-- M-u: Fixing Case. -* M-.: Find Tag. -* M-/: Dynamic Abbrevs. -* M-1: Arguments. -* M-;: Comments. -* M-<: Moving Point. -* M-< (Calendar mode): Move to Beginning or End. -* M-=: Position Info. -* M-= (Calendar mode): Mark and Region. -* M->: Moving Point. -* M-> (Calendar mode): Move to Beginning or End. -* M-?: Nroff Mode. -* M-@ <1>: Words. -* M-@: Marking Objects. -* M-[: Paragraphs. -* M-\ <1>: Indentation Commands. -* M-\: Killing. -* M-]: Paragraphs. -* M-^ <1>: Indentation Commands. -* M-^: Killing. -* M-a: Sentences. -* M-a (Calendar mode): Move to Beginning or End. -* M-b: Words. -* M-c: Case. -* M-C-r: Regexp Search. -* M-C-s: Regexp Search. -* M-d <1>: Words. -* M-d: Killing. -* M-DEL <1>: Words. -* M-DEL <2>: Kill Errors. -* M-DEL: Killing. -* M-e: Sentences. -* M-e (Calendar mode): Move to Beginning or End. -* M-ESC: Lisp Eval. -* M-f: Words. -* M-g: Fill Commands. -* M-h <1>: Paragraphs. -* M-h: Marking Objects. -* M-i: Tab Stops. -* M-k <1>: Sentences. -* M-k: Killing. -* M-l: Case. -* M-LFD: Comments. -* M-LFD (Fortran mode): ForIndent Commands. -* M-m: Indentation Commands. -* M-n <1>: Nroff Mode. -* M-n: Repetition. -* M-n (isearch-mode): Incremental Search. -* M-n (minibuffer history): Minibuffer History. -* M-n (Shell mode): Shell Mode. -* M-p <1>: Nroff Mode. -* M-p: Repetition. -* M-p (isearch-mode): Incremental Search. -* M-p (minibuffer history): Minibuffer History. -* M-p (Shell mode): Shell Mode. -* M-q: Fill Commands. -* M-r: Moving Point. -* M-r (minibuffer history): Minibuffer History. -* M-s: Fill Commands. -* M-s (minibuffer history): Minibuffer History. -* M-SPC: Killing. -* M-t <1>: Words. -* M-t: Transpose. -* M-TAB <1>: Tabs in Picture. -* M-TAB: Lisp Completion. -* M-TAB (customization buffer): Changing an Option. -* M-TAB (isearch-mode): Incremental Search. -* M-u: Case. -* M-v <1>: Scrolling. -* M-v: Moving Point. -* M-v (Calendar mode): Scroll Calendar. -* M-w: Kill Ring. -* M-x: M-x. -* M-y: Earlier Kills. -* M-z: Killing. -* M-{ (Calendar mode): Calendar Unit Motion. -* M-|: Single Shell. -* M-} (Calendar mode): Calendar Unit Motion. -* M-~: Saving. -* META: Meta Key. -* meta key: Intro to Keystrokes. -* next: Scrolling. -* o (Calendar mode): Specified Dates. -* p (Calendar mode): To Other Calendar. -* p d (Calendar mode): General Calendar. -* pgdn: Scrolling. -* PGDN: Moving Point. -* pgup: Scrolling. -* PGUP: Moving Point. -* prior: Scrolling. -* q (Calendar mode): General Calendar. -* RET: Inserting Text. -* RET (isearch-mode): Incremental Search. -* RET (Shell mode): Shell Mode. -* RIGHT: Moving Point. -* s (Calendar mode): Diary Commands. -* S (Calendar mode): Sunrise/Sunset. -* S-TAB (customization buffer): Changing an Option. -* shift key: Intro to Keystrokes. -* SPC: Completion Commands. -* SPC (Calendar mode): General Calendar. -* SPC (query-replace): Query Replace. -* super key <1>: Super and Hyper Keys. -* super key <2>: Representing Keystrokes. -* super key: Intro to Keystrokes. -* t (Calendar mode): LaTeX Calendar. -* TAB <1>: Basic Indent. -* TAB <2>: Text Mode. -* TAB <3>: Indentation. -* TAB <4>: Major Modes. -* TAB <5>: Completion Example. -* TAB: String Key Sequences. -* TAB (customization buffer): Changing an Option. -* TAB (Shell mode): Shell Mode. -* u (Calendar mode) <1>: Diary Commands. -* u (Calendar mode): Holidays. -* UP: Moving Point. -* x (Calendar mode): Holidays. +File: xemacs.info, Node: Glossary, Next: Manifesto, Prev: Intro, Up: Top + +Glossary +******** + +Abbrev + An abbrev is a text string which expands into a different text + string when present in the buffer. For example, you might define + a short word as an abbrev for a long phrase that you want to insert + frequently. *Note Abbrevs::. + +Aborting + Aborting means getting out of a recursive edit (q.v.). You can use + the commands `C-]' and `M-x top-level' for this. *Note Quitting::. + +Auto Fill mode + Auto Fill mode is a minor mode in which text you insert is + automatically broken into lines of fixed width. *Note Filling::. + +Auto Saving + Auto saving means that Emacs automatically stores the contents of + an Emacs buffer in a specially-named file so the information will + not be lost if the buffer is lost due to a system error or user + error. *Note Auto Save::. + +Backup File + A backup file records the contents that a file had before the + current editing session. Emacs creates backup files automatically + to help you track down or cancel changes you later regret. *Note + Backup::. + +Balance Parentheses + Emacs can balance parentheses manually or automatically. Manual + balancing is done by the commands to move over balanced expressions + (*note Lists::). Automatic balancing is done by blinking the + parenthesis that matches one just inserted (*note Matching Parens: + Matching.). + +Bind + To bind a key is to change its binding (q.v.). *Note Rebinding::. + +Binding + A key gets its meaning in Emacs by having a binding which is a + command (q.v.), a Lisp function that is run when the key is typed. + *Note Binding: Commands. Customization often involves rebinding a + character to a different command function. The bindings of all + keys are recorded in the keymaps (q.v.). *Note Keymaps::. + +Blank Lines + Blank lines are lines that contain only whitespace. Emacs has + several commands for operating on the blank lines in a buffer. + +Buffer + The buffer is the basic editing unit; one buffer corresponds to one + piece of text being edited. You can have several buffers, but at + any time you are editing only one, the `selected' buffer, though + several buffers can be visible when you are using multiple + windows. *Note Buffers::. + +Buffer Selection History + Emacs keeps a buffer selection history which records how recently + each Emacs buffer was selected. Emacs uses this list when + choosing a buffer to select. *Note Buffers::. + +C- + `C' in the name of a character is an abbreviation for Control. + *Note C-: Keystrokes. + +C-M- + `C-M-' in the name of a character is an abbreviation for + Control-Meta. *Note C-M-: Keystrokes. + +Case Conversion + Case conversion means changing text from upper case to lower case + or vice versa. *Note Case::, for the commands for case conversion. + +Characters + Characters form the contents of an Emacs buffer; also, Emacs + commands are invoked by keys (q.v.), which are sequences of one or + more characters. *Note Keystrokes::. + +Command + A command is a Lisp function specially defined to be able to serve + as a key binding in Emacs. When you type a key (q.v.), Emacs + looks up its binding (q.v.) in the relevant keymaps (q.v.) to find + the command to run. *Note Commands::. + +Command Name + A command name is the name of a Lisp symbol which is a command + (*note Commands::). You can invoke any command by its name using + `M-x' (*note M-x::). + +Comments + A comment is text in a program which is intended only for the + people reading the program, and is marked specially so that it + will be ignored when the program is loaded or compiled. Emacs + offers special commands for creating, aligning, and killing + comments. *Note Comments::. + +Compilation + Compilation is the process of creating an executable program from + source code. Emacs has commands for compiling files of Emacs Lisp + code (*note Lisp Libraries::) and programs in C and other languages + (*note Compilation::). + +Complete Key + A complete key is a character or sequence of characters which, + when typed by the user, fully specifies one action to be performed + by Emacs. For example, `X' and `Control-f' and `Control-x m' are + keys. Keys derive their meanings from being bound (q.v.) to + commands (q.v.). Thus, `X' is conventionally bound to a command + to insert `X' in the buffer; `C-x m' is conventionally bound to a + command to begin composing a mail message. *Note Keystrokes::. + +Completion + When Emacs automatically fills an abbreviation for a name into the + entire name, that process is called completion. Completion is + done for minibuffer (q.v.) arguments when the set of possible + valid inputs is known; for example, on command names, buffer + names, and file names. Completion occurs when you type , + , or . *Note Completion::. + +Continuation Line + When a line of text is longer than the width of the frame, it + takes up more than one screen line when displayed. We say that the + text line is continued, and all screen lines used for it after the + first are called continuation lines. *Note Continuation: Basic. + +Control-Character + ASCII characters with octal codes 0 through 037, and also code + 0177, do not have graphic images assigned to them. These are the + control characters. Any control character can be typed by holding + down the key and typing some other character; some have + special keys on the keyboard. , , , , and + are all control characters. *Note Keystrokes::. + +Copyleft + A copyleft is a notice giving the public legal permission to + redistribute a program or other work of art. Copylefts are used + by leftists to enrich the public just as copyrights are used by + rightists to gain power over the public. + +Current Buffer + The current buffer in Emacs is the Emacs buffer on which most + editing commands operate. You can select any Emacs buffer as the + current one. *Note Buffers::. + +Current Line + The line point is on (*note Point::). + +Current Paragraph + The paragraph that point is in. If point is between paragraphs, + the current paragraph is the one that follows point. *Note + Paragraphs::. + +Current Defun + The defun (q.v.) that point is in. If point is between defuns, the + current defun is the one that follows point. *Note Defuns::. + +Cursor + The cursor is the rectangle on the screen which indicates the + position called point (q.v.) at which insertion and deletion takes + place. The cursor is on or under the character that follows + point. Often people speak of `the cursor' when, strictly + speaking, they mean `point'. *Note Cursor: Basic. + +Customization + Customization is making minor changes in the way Emacs works. It + is often done by setting variables (*note Variables::) or by + rebinding keys (*note Keymaps::). + +Default Argument + The default for an argument is the value that is used if you do not + specify one. When Emacs prompts you in the minibuffer for an + argument, the default argument is used if you just type . + *Note Minibuffer::. + +Default Directory + When you specify a file name that does not start with `/' or `~', + it is interpreted relative to the current buffer's default + directory. *Note Default Directory: Minibuffer File. + +Defun + A defun is a list at the top level of parenthesis or bracket + structure in a program. It is so named because most such lists in + Lisp programs are calls to the Lisp function `defun'. *Note + Defuns::. + + + The character runs the command that deletes one character of + text. *Note DEL: Basic. + +Deletion + Deleting text means erasing it without saving it. Emacs deletes + text only when it is expected not to be worth saving (all + whitespace, or only one character). The alternative is killing + (q.v.). *Note Deletion: Killing. + +Deletion of Files + Deleting a file means removing it from the file system. *Note + Misc File Ops::. + +Deletion of Messages + Deleting a message means flagging it to be eliminated from your + mail file. Until the mail file is expunged, you can undo this by + undeleting the message. + +Deletion of Frames + When working under the multi-frame X-based version of XEmacs, you + can delete individual frames using the Close menu item from the + File menu. + +Deletion of Windows + When you delete a subwindow of an Emacs frame, you eliminate it + from the frame. Other windows expand to use up the space. The + deleted window can never come back, but no actual text is lost. + *Note Windows::. + +Directory + Files in the Unix file system are grouped into file directories. + *Note Directories: ListDir. + +Dired + Dired is the Emacs facility that displays the contents of a file + directory and allows you to "edit the directory", performing + operations on the files in the directory. *Note Dired::. + +Disabled Command + A disabled command is one that you may not run without special + confirmation. Commands are usually disabled because they are + confusing for beginning users. *Note Disabling::. + +Dribble File + A file into which Emacs writes all the characters that the user + types on the keyboard. Dribble files are used to make a record for + debugging Emacs bugs. Emacs does not make a dribble file unless + you tell it to. *Note Bugs::. + +Echo Area + The area at the bottom of the Emacs frame which is used for + echoing the arguments to commands, for asking questions, and for + printing brief messages (including error messages). *Note Echo + Area::. + +Echoing + Echoing refers to acknowledging the receipt of commands by + displaying them (in the echo area). Emacs never echoes + single-character keys; longer keys echo only if you pause while + typing them. + +Error + An error occurs when an Emacs command cannot execute in the current + circumstances. When an error occurs, execution of the command + stops (unless the command has been programmed to do otherwise) and + Emacs reports the error by printing an error message (q.v.). + Type-ahead is discarded. Then Emacs is ready to read another + editing command. + +Error Messages + Error messages are single lines of output printed by Emacs when the + user asks for something impossible to do (such as killing text + forward when point is at the end of the buffer). They appear in + the echo area, accompanied by a beep. + + + is a character used as a prefix for typing Meta characters on + keyboards lacking a key. Unlike the key (which, + like the key, is held down while another character is + typed), the key is pressed and released, and applies to the + next character typed. + +Fill Prefix + The fill prefix is a string that Emacs enters at the beginning of + each line when it performs filling. It is not regarded as part of + the text to be filled. *Note Filling::. + +Filling + Filling text means moving text from line to line so that all the + lines are approximately the same length. *Note Filling::. + +Frame + When running Emacs on a TTY terminal, "frame" means the terminal's + screen. When running Emacs under X, you can have multiple frames, + each corresponding to a top-level X window and each looking like + the screen on a TTY. Each frame contains one or more + non-overlapping Emacs windows (possibly with associated + scrollbars, under X), an echo area, and (under X) possibly a + menubar, toolbar, and/or gutter. + +Global + Global means `independent of the current environment; in effect + throughout Emacs'. It is the opposite of local (q.v.). Examples + of the use of `global' appear below. + +Global Abbrev + A global definition of an abbrev (q.v.) is effective in all major + modes that do not have local (q.v.) definitions for the same + abbrev. *Note Abbrevs::. + +Global Keymap + The global keymap (q.v.) contains key bindings that are in effect + unless local key bindings in a major mode's local keymap (q.v.) + override them.*Note Keymaps::. + +Global Substitution + Global substitution means replacing each occurrence of one string + by another string through a large amount of text. *Note Replace::. + +Global Variable + The global value of a variable (q.v.) takes effect in all buffers + that do not have their own local (q.v.) values for the variable. + *Note Variables::. + +Graphic Character + Graphic characters are those assigned pictorial images rather than + just names. All the non-Meta (q.v.) characters except for the + Control (q.v.) character are graphic characters. These include + letters, digits, punctuation, and spaces; they do not include + or . In Emacs, typing a graphic character inserts that + character (in ordinary editing modes). *Note Basic Editing: Basic. + +Grinding + Grinding means adjusting the indentation in a program to fit the + nesting structure. *Note Grinding: Indentation. + +Hardcopy + Hardcopy means printed output. Emacs has commands for making + printed listings of text in Emacs buffers. *Note Hardcopy::. + + + You can type at any time to ask what options you have, or + to ask what any command does. is really `Control-h'. + *Note Help::. + +Inbox + An inbox is a file in which mail is delivered by the operating + system. Some mail handlers transfers mail from inboxes to mail + files (q.v.) in which the mail is then stored permanently or until + explicitly deleted. + +Indentation + Indentation means blank space at the beginning of a line. Most + programming languages have conventions for using indentation to + illuminate the structure of the program, and Emacs has special + features to help you set up the correct indentation. *Note + Indentation::. + +Insertion + Insertion means copying text into the buffer, either from the + keyboard or from some other place in Emacs. + +Justification + Justification means adding extra spaces to lines of text to make + them come exactly to a specified width. *Note Justification: + Filling. + +Keyboard Macros + Keyboard macros are a way of defining new Emacs commands from + sequences of existing ones, with no need to write a Lisp program. + *Note Keyboard Macros::. + +Key + A key is a sequence of characters that, when input to Emacs, + specify or begin to specify a single action for Emacs to perform. + That is, the sequence is considered a single unit. If the key is + enough to specify one action, it is a complete key (q.v.); if it + is less than enough, it is a prefix key (q.v.). *Note + Keystrokes::. + +Keymap + The keymap is the data structure that records the bindings (q.v.) + of keys to the commands that they run. For example, the keymap + binds the character `C-n' to the command function `next-line'. + *Note Keymaps::. + +Kill Ring + The kill ring is the place where all text you have killed recently + is saved. You can re-insert any of the killed text still in the + ring; this is called yanking (q.v.). *Note Yanking::. + +Killing + Killing means erasing text and saving it on the kill ring so it + can be yanked (q.v.) later. Some other systems call this + "cutting." Most Emacs commands to erase text do killing, as + opposed to deletion (q.v.). *Note Killing::. + +Killing Jobs + Killing a job (such as, an invocation of Emacs) means making it + cease to exist. Any data within it, if not saved in a file, is + lost. *Note Exiting::. + +List + A list is, approximately, a text string beginning with an open + parenthesis and ending with the matching close parenthesis. In C + mode and other non-Lisp modes, groupings surrounded by other kinds + of matched delimiters appropriate to the language, such as braces, + are also considered lists. Emacs has special commands for many + operations on lists. *Note Lists::. + +Local + Local means `in effect only in a particular context'; the relevant + kind of context is a particular function execution, a particular + buffer, or a particular major mode. Local is the opposite of + `global' (q.v.). Specific uses of `local' in Emacs terminology + appear below. + +Local Abbrev + A local abbrev definition is effective only if a particular major + mode is selected. In that major mode, it overrides any global + definition for the same abbrev. *Note Abbrevs::. + +Local Keymap + A local keymap is used in a particular major mode; the key bindings + (q.v.) in the current local keymap override global bindings of the + same keys. *Note Keymaps::. + +Local Variable + A local value of a variable (q.v.) applies to only one buffer. + *Note Locals::. + +M- + `M-' in the name of a character is an abbreviation for , one + of the modifier keys that can accompany any character. *Note + Keystrokes::. + +M-C- + `M-C-' in the name of a character is an abbreviation for + Control-Meta; it means the same thing as `C-M-'. If your terminal + lacks a real key, you type a Control-Meta character by + typing and then typing the corresponding Control character. + *Note C-M-: Keystrokes. + +M-x + `M-x' is the key which is used to call an Emacs command by name. + You use it to call commands that are not bound to keys. *Note + M-x::. + +Mail + Mail means messages sent from one user to another through the + computer system, to be read at the recipient's convenience. Emacs + has commands for composing and sending mail, and for reading and + editing the mail you have received. *Note Sending Mail::. + +Major Mode + The major modes are a mutually exclusive set of options each of + which configures Emacs for editing a certain sort of text. + Ideally, each programming language has its own major mode. *Note + Major Modes::. + +Mark + The mark points to a position in the text. It specifies one end + of the region (q.v.), point being the other end. Many commands + operate on the whole region, that is, all the text from point to + the mark. *Note Mark::. + +Mark Ring + The mark ring is used to hold several recent previous locations of + the mark, just in case you want to move back to them. *Note Mark + Ring::. + +Message + See `mail'. + +Meta + Meta is the name of a modifier bit which a command character may + have. It is present in a character if the character is typed with + the key held down. Such characters are given names that + start with `Meta-'. For example, `Meta-<' is typed by holding down + and at the same time typing `<' (which itself is done, on + most terminals, by holding down and typing `,'). *Note + Meta: Keystrokes. + +Meta Character + A Meta character is one whose character code includes the Meta bit. + +Minibuffer + The minibuffer is the window that Emacs displays inside the echo + area (q.v.) when it prompts you for arguments to commands. *Note + Minibuffer::. + +Minor Mode + A minor mode is an optional feature of Emacs which can be switched + on or off independent of the major mode. Each minor mode has a + command to turn it on or off. *Note Minor Modes::. + +Mode Line + The mode line is the line at the bottom of each text window (q.v.), + which gives status information on the buffer displayed in that + window. *Note Mode Line::. + +Modified Buffer + A buffer (q.v.) is modified if its text has been changed since the + last time the buffer was saved (or since it was created, if it has + never been saved). *Note Saving::. + +Moving Text + Moving text means erasing it from one place and inserting it in + another. This is done by killing (q.v.) and then yanking (q.v.). + *Note Killing::. + +Named Mark + A named mark is a register (q.v.) in its role of recording a + location in text so that you can move point to that location. + *Note Registers::. + +Narrowing + Narrowing means creating a restriction (q.v.) that limits editing + in the current buffer to only a part of the text in the buffer. + Text outside that part is inaccessible to the user until the + boundaries are widened again, but it is still there, and saving + the file saves the invisible text. *Note Narrowing::. + +Newline + characters in the buffer terminate lines of text and are + called newlines. *Note Newline: Keystrokes. + +Numeric Argument + A numeric argument is a number, specified before a command, to + change the effect of the command. Often the numeric argument + serves as a repeat count. *Note Arguments::. + +Option + An option is a variable (q.v.) that allows you to customize Emacs + by giving it a new value. *Note Variables::. + +Overwrite Mode + Overwrite mode is a minor mode. When it is enabled, ordinary text + characters replace the existing text after point rather than + pushing it to the right. *Note Minor Modes::. + +Page + A page is a unit of text, delimited by formfeed characters (ASCII + Control-L, code 014) coming at the beginning of a line. Some Emacs + commands are provided for moving over and operating on pages. + *Note Pages::. + +Paragraphs + Paragraphs are the medium-size unit of English text. There are + special Emacs commands for moving over and operating on paragraphs. + *Note Paragraphs::. + +Parsing + We say that Emacs parses words or expressions in the text being + edited. Really, all it knows how to do is find the other end of a + word or expression. *Note Syntax::. + +Point + Point is the place in the buffer at which insertion and deletion + occur. Point is considered to be between two characters, not at + one character. The terminal's cursor (q.v.) indicates the + location of point. *Note Point: Basic. + +Prefix Key + A prefix key is a key (q.v.) whose sole function is to introduce a + set of multi-character keys. `Control-x' is an example of a prefix + key; any two-character sequence starting with `C-x' is also a + legitimate key. *Note Keystrokes::. + +Prompt + A prompt is text printed to ask the user for input. Printing a + prompt is called prompting. Emacs prompts always appear in the + echo area (q.v.). One kind of prompting happens when the + minibuffer is used to read an argument (*note Minibuffer::); the + echoing which happens when you pause in the middle of typing a + multi-character key is also a kind of prompting (*note Echo + Area::). + +Quitting + Quitting means cancelling a partially typed command or a running + command, using `C-g'. *Note Quitting::. + +Quoting + Quoting means depriving a character of its usual special + significance. In Emacs this is usually done with `Control-q'. + What constitutes special significance depends on the context and + on convention. For example, an "ordinary" character as an Emacs + command inserts itself; so in this context, a special character is + any character that does not normally insert itself (such as , + for example), and quoting it makes it insert itself as if it were + not special. Not all contexts allow quoting. *Note Quoting: + Basic. + +Read-only Buffer + A read-only buffer is one whose text you are not allowed to change. + Normally Emacs makes buffers read-only when they contain text which + has a special significance to Emacs, such as Dired buffers. + Visiting a file that is write-protected also makes a read-only + buffer. *Note Buffers::. + +Recursive Editing Level + A recursive editing level is a state in which part of the + execution of a command involves asking the user to edit some text. + This text may or may not be the same as the text to which the + command was applied. The mode line indicates recursive editing + levels with square brackets (`[' and `]'). *Note Recursive Edit::. + +Redisplay + Redisplay is the process of correcting the image on the screen to + correspond to changes that have been made in the text being edited. + *Note Redisplay: Frame. + +Regexp + See `regular expression'. + +Region + The region is the text between point (q.v.) and the mark (q.v.). + Many commands operate on the text of the region. *Note Region: + Mark. + +Registers + Registers are named slots in which text or buffer positions or + rectangles can be saved for later use. *Note Registers::. + +Regular Expression + A regular expression is a pattern that can match various text + strings; for example, `l[0-9]+' matches `l' followed by one or more + digits. *Note Regexps::. + +Replacement + See `global substitution'. + +Restriction + A buffer's restriction is the amount of text, at the beginning or + the end of the buffer, that is temporarily invisible and + inaccessible. Giving a buffer a nonzero amount of restriction is + called narrowing (q.v.). *Note Narrowing::. + + + is the character than runs the command to insert a newline + into the text. It is also used to terminate most arguments read + in the minibuffer (q.v.). *Note Return: Keystrokes. + +Saving + Saving a buffer means copying its text into the file that was + visited (q.v.) in that buffer. To actually change a file you have + edited in Emacs, you have to save it. *Note Saving::. + +Scrolling + Scrolling means shifting the text in the Emacs window to make a + different part of the buffer visible. *Note Scrolling: Display. + +Searching + Searching means moving point to the next occurrence of a specified + string. *Note Search::. + +Selecting + Selecting a buffer means making it the current (q.v.) buffer. + *Note Selecting: Buffers. + +Self-documentation + Self-documentation is the feature of Emacs which can tell you what + any command does, or can give you a list of all commands related + to a topic you specify. You ask for self-documentation with the + help character, `C-h'. *Note Help::. + +Sentences + Emacs has commands for moving by or killing by sentences. *Note + Sentences::. + +Sexp + An sexp (short for `s-expression,' itself short for `symbolic + expression') is the basic syntactic unit of Lisp in its textual + form: either a list, or Lisp atom. Many Emacs commands operate on + sexps. The term `sexp' is generalized to languages other than + Lisp to mean a syntactically recognizable expression. *Note + Sexps: Lists. + +Simultaneous Editing + Simultaneous editing means two users modifying the same file at + once. If simultaneous editing is not detected, you may lose your + work. Emacs detects all cases of simultaneous editing and warns + the user to investigate them. *Note Simultaneous Editing: + Interlocking. + +String + A string is a kind of Lisp data object which contains a sequence of + characters. Many Emacs variables are intended to have strings as + values. The Lisp syntax for a string consists of the characters in + the string with a `"' before and another `"' after. Write a `"' + that is part of the string as `\"' and a `\' that is part of the + string as `\\'. You can include all other characters, including + newline, just by writing them inside the string. You can also + include escape sequences as in C, such as `\n' for newline or + `\241' using an octal character code. + +String Substitution + See `global substitution'. + +Syntax Table + The syntax table tells Emacs which characters are part of a word, + which characters balance each other like parentheses, etc. *Note + Syntax::. + +Tag Table + A tag table is a file that serves as an index to the function + definitions in one or more other files. *Note Tags::. + +Termscript File + A termscript file contains a record of all characters Emacs sent to + the terminal. It is used for tracking down bugs in Emacs + redisplay. Emacs does not make a termscript file unless + explicitly instructed to do so. *Note Bugs::. + +Text + Text has two meanings (*note Text::): + + * Data consisting of a sequence of characters, as opposed to + binary numbers, images, graphics commands, executable + programs, and the like. The contents of an Emacs buffer are + always text in this sense. + + * Data consisting of written human language, as opposed to + programs, or something that follows the stylistic conventions + of human language. + +Top Level + Top level is the normal state of Emacs, in which you are editing + the text of the file you have visited. You are at top level + whenever you are not in a recursive editing level (q.v.) or the + minibuffer (q.v.), and not in the middle of a command. You can + get back to top level by aborting (q.v.) and quitting (q.v.). + *Note Quitting::. + +Transposition + Transposing two units of text means putting each one into the place + formerly occupied by the other. There are Emacs commands to + transpose two adjacent characters, words, sexps (q.v.), or lines + (*note Transpose::). + +Truncation + Truncating text lines in the display means leaving out any text on + a line that does not fit within the right margin of the window + displaying it. See also `continuation line'. *Note Truncation: + Basic. + +Undoing + Undoing means making your previous editing go in reverse, bringing + back the text that existed earlier in the editing session. *Note + Undo::. + +Variable + A variable is Lisp object that can store an arbitrary value. + Emacs uses some variables for internal purposes, and has others + (known as `options' (q.v.)) you can set to control the behavior of + Emacs. The variables used in Emacs that you are likely to be + interested in are listed in the Variables Index of this manual. + *Note Variables::, for information on variables. + +Visiting + Visiting a file means loading its contents into a buffer (q.v.) + where they can be edited. *Note Visiting::. + +Whitespace + Whitespace is any run of consecutive formatting characters (spaces, + tabs, newlines, and backspaces). + +Widening + Widening is removing any restriction (q.v.) on the current buffer; + it is the opposite of narrowing (q.v.). *Note Narrowing::. + +Window + Emacs divides the frame into one or more windows, each of which can + display the contents of one buffer (q.v.) at any time. *Note + Frame::, for basic information on how Emacs uses the frame. *Note + Windows::, for commands to control the use of windows. Note that if + you are running Emacs under X, terminology can be confusing: Each + Emacs frame occupies a separate X window and can, in turn, be + divided into different subwindows. + +Word Abbrev + Synonymous with `abbrev'. + +Word Search + Word search is searching for a sequence of words, considering the + punctuation between them as insignificant. *Note Word Search::. + +Yanking + Yanking means reinserting text previously killed. It can be used + to undo a mistaken kill, or for copying or moving text. Some other + systems call this "pasting". *Note Yanking::.