https://wikemacs.org/api.php?action=feedcontributions&user=PhilHudson&feedformat=atomWikEmacs - User contributions [en]2024-03-19T06:52:41ZUser contributionsMediaWiki 1.35.14https://wikemacs.org/index.php?title=Talk:List_of_Emacs_plugins_for_Web_browsers&diff=1852Talk:List of Emacs plugins for Web browsers2012-03-30T15:52:22Z<p>PhilHudson: moved Talk:List of Emacs plugins for Web browsers to Talk:Emacs as a web browser's external editor: There are two kinds of browser extensions of interest to Emacs users: ones that make browsers work like Emacs, and (this page) ones that let Ema...</p>
<hr />
<div>#REDIRECT [[Talk:Emacs as a web browser's external editor]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Talk:Emacs_as_a_web_browser%27s_external_editor&diff=1851Talk:Emacs as a web browser's external editor2012-03-30T15:52:22Z<p>PhilHudson: moved Talk:List of Emacs plugins for Web browsers to Talk:Emacs as a web browser's external editor: There are two kinds of browser extensions of interest to Emacs users: ones that make browsers work like Emacs, and (this page) ones that let Ema...</p>
<hr />
<div>== TODO Add links to extensions ==<br />
<br />
* It's All Text<br />
* Edit With Emacs</div>PhilHudsonhttps://wikemacs.org/index.php?title=List_of_Emacs_plugins_for_Web_browsers&diff=1850List of Emacs plugins for Web browsers2012-03-30T15:52:22Z<p>PhilHudson: moved List of Emacs plugins for Web browsers to Emacs as a web browser's external editor: There are two kinds of browser extensions of interest to Emacs users: ones that make browsers work like Emacs, and (this page) ones that let Emacs do the ...</p>
<hr />
<div>#REDIRECT [[Emacs as a web browser's external editor]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs_as_a_web_browser%27s_external_editor&diff=1849Emacs as a web browser's external editor2012-03-30T15:52:22Z<p>PhilHudson: moved List of Emacs plugins for Web browsers to Emacs as a web browser's external editor: There are two kinds of browser extensions of interest to Emacs users: ones that make browsers work like Emacs, and (this page) ones that let Emacs do the ...</p>
<hr />
<div>Since text editing in Emacs is better, extensions are developed for all<br />
major web browsers to use Emacs as their external<br />
editor. Mostly these extensions make use of [[Emacs daemon]].<br />
<br />
== Firefox Family ==<br />
Iceweasel, Conkeror etc.<br />
<br />
:* [[It's All Text!]].<br />
<br />
[http://www.conkeror.org Conkeror] comes with a small C program that enables external editing of form fields and page source in Emacs. Thus, no third-party extension/plugin is required.<br />
<br />
== Webkit family ==<br />
Safari, Chrome etc.<br />
:* [[Edit with Emacs]].<br />
<br />
== Internet Explorer ==<br />
<br />
== Opera ==</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs_as_a_web_browser%27s_external_editor&diff=1848Emacs as a web browser's external editor2012-03-30T15:47:47Z<p>PhilHudson: </p>
<hr />
<div>Since text editing in Emacs is better, extensions are developed for all<br />
major web browsers to use Emacs as their external<br />
editor. Mostly these extensions make use of [[Emacs daemon]].<br />
<br />
== Firefox Family ==<br />
Iceweasel, Conkeror etc.<br />
<br />
:* [[It's All Text!]].<br />
<br />
[http://www.conkeror.org Conkeror] comes with a small C program that enables external editing of form fields and page source in Emacs. Thus, no third-party extension/plugin is required.<br />
<br />
== Webkit family ==<br />
Safari, Chrome etc.<br />
:* [[Edit with Emacs]].<br />
<br />
== Internet Explorer ==<br />
<br />
== Opera ==</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs_as_a_web_browser%27s_external_editor&diff=1847Emacs as a web browser's external editor2012-03-30T15:45:14Z<p>PhilHudson: Conkeror</p>
<hr />
<div>Since text editing in Emacs is better, Plugins are developed for all<br />
major web browsers to use Emacs as their external<br />
editor. Mostly these plugins make use of [[Emacs daemon]].<br />
<br />
== Firefox Family ==<br />
Iceweasel, Conkeror etc.<br />
<br />
:* [[It's All Text!]].<br />
<br />
Note that [http://www.conkeror.org Conkeror] comes with a small C program that enables external editing of form fields and page source in Emacs. Thus, no third-party extension/plugin is required.<br />
<br />
== Webkit family ==<br />
Safari, Chrome etc.<br />
:* [[Edit with Emacs]].<br />
<br />
== Internet Explorer ==<br />
<br />
== Opera ==</div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:EnvironmentVariable&diff=1844Template:EnvironmentVariable2012-03-30T15:39:10Z<p>PhilHudson: Created page with "<tt>{{{1}}}</tt>"</p>
<hr />
<div><tt>{{{1}}}</tt></div>PhilHudsonhttps://wikemacs.org/index.php?title=Info&diff=1843Info2012-03-30T15:38:33Z<p>PhilHudson: Added and corrected details of Info functionality and naming. Lots of style and English corrections. Removed dubious humor, sorry. :-/</p>
<hr />
<div>'''Info''' is the hypertext help/reference browser in [[GNU Emacs]]. You invoke its top level with {{CommandKeys|C-h i|info}}.<br />
<br />
; {{Command|info-apropos}}<br />
: Don't know where to go in Info? Try this command. For example, try {{Command|info-apropos RET compile RET}} to get some overview of compilation support in Emacs.<br />
<br />
; {{CommandKeys|C-h r| info-emacs-manual}}<br />
: Learn how to use [[GNU Emacs]]. Very detailed.<br />
<br />
; {{CommandKeys|C-h i| info}}<br />
: See the Info manuals of all packages that come with your [[GNU Emacs]], and of any third-party packages and external programs whose info files Info finds in its search path.<br />
<br />
; {{Keys|i}}<br />
: While in an Info buffer, jump to some topic of interest. To learn about [[regular expression]]s try {{Keys|C-h r}} and {{Keys|i regular TAB}}.<br />
<br />
; {{Keys|I}}<br />
: Same as {{Keys|i}} but gives you a list of links.<br />
<br />
; {{Keys|L}}<br />
: Try this if you are lost and overwhelmed by the amount of information available and you want to reflect on where all you went and how you got lost.<br />
<br />
; {{Keys|C-u C-h i}}<br />
: You have installed a [[:Category:Third Party Package|Third party package]]. It includes (or you have created with {{UnixCommand|makeinfo}}) an {{File|info}} file. This command allows you to browse this info file. To make the info file's contents permanently available in Info's top level, you can add the info file's containing directory to Info's search path using {{CustomizeVariable|Info-directory-list}}, or by editing the {{EnvironmentVariable|INFOPATH}} environment variable and re-starting Emacs.<br />
<br />
[[Category:Self Help]][[Category:Beginner]][[Category:Intermediate]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs-mode&diff=1834Emacs-mode2012-03-30T15:15:14Z<p>PhilHudson: /* Features */</p>
<hr />
<div>'''Emacs-mode''' is a Chrome browser extension (not to be confused with an<br />
[[Elisp Package]]). It adds "Emacs bindings and quick navigation<br />
without using the mouse". Typing a "?" in a web page will launch a<br />
list of key bindings.<br />
<br />
== Features ==<br />
Emacs-mode does not mimic Emacs navigation perfectly: {{Keys|C-n}} still launches a new Chrome frame. It at least allows {{CommandKeys|C-x k|kill-buffer}} to close a browser tab, which is useful for those of us who have the command burned into our ROMs.<br />
<br />
==External Links==<br />
*[https://chrome.google.com/webstore/detail/miojjimhedbpnnjpneobbfhdicckhhkd Emacs-mode]<br />
<br />
[[Category:Browser Plugin]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs-mode&diff=1833Emacs-mode2012-03-30T15:14:33Z<p>PhilHudson: Improved English</p>
<hr />
<div>'''Emacs-mode''' is a Chrome browser extension (not to be confused with an<br />
[[Elisp Package]]). It adds "Emacs bindings and quick navigation<br />
without using the mouse". Typing a "?" in a web page will launch a<br />
list of key bindings.<br />
<br />
== Features ==<br />
Emacs-mode does not mimic Emacs navigation perfectly: C-n still launches a new Chrome frame. It at least allows {{CommandKeys|C-x k|kill-buffer}} to close a browser tab, which is useful for those of us who have the command burned into our ROMs.<br />
<br />
==External Links==<br />
*[https://chrome.google.com/webstore/detail/miojjimhedbpnnjpneobbfhdicckhhkd Emacs-mode]<br />
<br />
[[Category:Browser Plugin]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Package&diff=1832Package2012-03-30T15:11:13Z<p>PhilHudson: </p>
<hr />
<div>A '''package''' is a bundle of [[Emacs Lisp]] code which would enhance Emacs' functionality. A package may contain one file or a collection of files. Also known as an ''extension'' or (inaccurately) a ''plugin''.</div>PhilHudsonhttps://wikemacs.org/index.php?title=Package&diff=1831Package2012-03-30T15:10:18Z<p>PhilHudson: Style</p>
<hr />
<div>A '''package''' is a bundle of code which would enhance Emacs' functionality. A package may contain one file or a collection of files. Also known as an ''extension'' or (inaccurately) a ''plugin''.</div>PhilHudsonhttps://wikemacs.org/index.php?title=Package&diff=1830Package2012-03-30T15:09:43Z<p>PhilHudson: AKAs for "package"</p>
<hr />
<div>A '''package''' is a bundle of code which would enhance Emacs' functionality. A package may contain one file or a collection of files. Also known as an extension or (inaccurately) a plugin.</div>PhilHudsonhttps://wikemacs.org/index.php?title=Package&diff=1829Package2012-03-30T15:08:43Z<p>PhilHudson: Improved English</p>
<hr />
<div>A '''package''' is a bundle of code which would enhance Emacs' functionality. A package may contain one file or a collection of files.</div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1654Key Bindings2012-03-29T21:55:05Z<p>PhilHudson: /* Editing key bindings */</p>
<hr />
<div>In Emacs, almost any keystroke, optionally combined with one or more [[#modifierKeys|modifier keys]], or any sequence of such keystrokes, can be "bound" to any [[command]].<br />
<br />
== <span id="modifierKeys">Modifier keys naming convention</span> ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Modifier key<br />
! Abbr.<br />
! Remarks<br />
! Example<br />
! Action<br />
|-<br />
| Alt<br />
| A<br />
| Relatively seldom used in Emacs, because Meta is often "logically" mapped to the "physical" <tt>Alt</tt> key.<br />
| A-x<br />
| Type "x" while holding down the (non-Meta) Alt key<br />
|-<br />
| Control<br />
| C<br />
| <br />
| C-x C-f<br />
| While holding down Ctrl, type first "x" then "f". (This runs the command <tt>find-file</tt>).<br />
|-<br />
| Hyper<br />
| h<br />
| Often not mapped to any key (by default).<br />
| h-x<br />
| Type "x" while holding down hyper<br />
|-<br />
| Meta<br />
| M<br />
| Often mapped to <tt>Alt</tt> on your keyboard<br />
| M-x find-file RET<br />
| Either:<br />
* type "x" while holding down Meta, or<br />
* type "Esc" then "x"<br />
(M-x activates the [[minibuffer]])<br />
<br />
Then type "find-file" in the minibuffer, then Return.<br />
|-<br />
| Shift<br />
| S<br />
| <br />
| S-x<br />
| Type "x" while holding down Shift<br />
|-<br />
| Super<br />
| s<br />
| Often not mapped to any key by default, or to <tt>Window</tt> or <tt>Menu</tt> if present<br />
| s-x<br />
| Type "x" while holding down super<br />
|-<br />
|}<br />
<br />
By convention, when multiple modifiers are specified, they go in alphabetical order: {{Keys|C-M-x}} not {{Keys|M-C-x}}.<br />
<br />
== Printable cheat sheet for popular modes ==<br />
Emacs ships with cheat sheets of common and useful key bindings.<br />
The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
== Editing key bindings ==<br />
You can add, remove and change key bindings for any command. You can make your changes interactively (and only for the current session) using {{Command|global-set-key}} or {{Command|local-set-key}}. To make the change permanent, you can write some simple [[Emacs Lisp]] code that calls either or both of those same functions in your {{EmacsConfigFile}}, which is loaded when Emacs first starts up.<br />
<br />
== External Links ==<br />
<br />
* [http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ Mastering Keybindings in Emacs]<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1653Key Bindings2012-03-29T21:35:23Z<p>PhilHudson: /* Modifier keys naming convention */</p>
<hr />
<div>In Emacs, almost any keystroke, optionally combined with one or more [[#modifierKeys|modifier keys]], or any sequence of such keystrokes, can be "bound" to any [[command]].<br />
<br />
== <span id="modifierKeys">Modifier keys naming convention</span> ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Modifier key<br />
! Abbr.<br />
! Remarks<br />
! Example<br />
! Action<br />
|-<br />
| Alt<br />
| A<br />
| Relatively seldom used in Emacs, because Meta is often "logically" mapped to the "physical" <tt>Alt</tt> key.<br />
| A-x<br />
| Type "x" while holding down the (non-Meta) Alt key<br />
|-<br />
| Control<br />
| C<br />
| <br />
| C-x C-f<br />
| While holding down Ctrl, type first "x" then "f". (This runs the command <tt>find-file</tt>).<br />
|-<br />
| Hyper<br />
| h<br />
| Often not mapped to any key (by default).<br />
| h-x<br />
| Type "x" while holding down hyper<br />
|-<br />
| Meta<br />
| M<br />
| Often mapped to <tt>Alt</tt> on your keyboard<br />
| M-x find-file RET<br />
| Either:<br />
* type "x" while holding down Meta, or<br />
* type "Esc" then "x"<br />
(M-x activates the [[minibuffer]])<br />
<br />
Then type "find-file" in the minibuffer, then Return.<br />
|-<br />
| Shift<br />
| S<br />
| <br />
| S-x<br />
| Type "x" while holding down Shift<br />
|-<br />
| Super<br />
| s<br />
| Often not mapped to any key by default, or to <tt>Window</tt> or <tt>Menu</tt> if present<br />
| s-x<br />
| Type "x" while holding down super<br />
|-<br />
|}<br />
<br />
By convention, when multiple modifiers are specified, they go in alphabetical order: {{Keys|C-M-x}} not {{Keys|M-C-x}}.<br />
<br />
== Printable cheat sheet for popular modes ==<br />
Emacs ships with cheat sheets of common and useful key bindings.<br />
The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
== Editing key bindings ==<br />
You can add, remove and change key bindings for any command. You can make your changes interactively (and only for the current session) using {{Command|global-set-key}} or {{Command|local-set-key}}. To make the change permanent, you can write some simple [[Emacs Lisp]] code that calls the same functions in your {{EmacsConfigFile}}, which is loaded when Emacs first starts up.<br />
<br />
== External Links ==<br />
<br />
* [http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ Mastering Keybindings in Emacs]<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs_Terminology&diff=1652Emacs Terminology2012-03-29T21:28:30Z<p>PhilHudson: /* Case-fold */</p>
<hr />
<div>== Buffer ==<br />
<br />
When you use {{Keys|C-x C-f}} to invoke command find-file, Emacs opens the file you request, and puts its contents into<br />
a buffer with the same name as the file. Instead of thinking that you are editing a file, think that you are editing<br />
text in a buffer. When you save the buffer, the file is updated to reflect your edits.<br />
<br />
Buffers can also contain text that doesn't come from a file. When you use {{Keys|C-x C-b}} to get a list of buffers,<br />
that list is itself in a buffer, called <tt>*Buffer List*</tt>, and that buffer is not associated with any file.<br />
<br />
By convention, buffers whose names start with an asterisk ('''`*'''') are not associated with files (but that doesn't<br />
mean you can't save them in files). If they have unsaved changes when you exit Emacs, these buffers are killed without<br />
your being asking for confirmation.<br />
<br />
Buffers whose names start with a space are [[InvisibleBuffers|invisible]] to many operations. These are generally<br />
internal buffers that you don't want to see. Their names normally don't appear in the buffer list or as<br />
[[Completion|completion]] candidates when you switch buffers using {{Keys|C-x b}}.<br />
<br />
Buffers are shown in [[#Window|windows]]. You can have more than one window showing the same buffer. {{Keys|C-x 2}}<br />
splits the current window, creating two windows, both showing the same buffer.<br />
<br />
<br />
You can read more about windows in the Emacs manual:<br />
* {{Manual|emacs|Buffers|Buffers}}<br />
* {{Manual|emacs|Windows|Windows}}<br />
<br />
<br />
<br />
== Window ==<br />
<br />
In Emacs terminology, a "window" is a container in which a [[#Buffer|buffer]] is displayed. This may be confusing at first; if so, think "pane" whenever you see "window" in an Emacs context until you get used to it.<br />
<br />
A new Emacs [[#Frame|frame]] contains one window. This window can be split in to multiple windows using:<br />
* {{CommandKeys|C-x 2|split-window-below}} - Split the window horizontally to create two stacked windows<br />
* {{CommandKeys|C-x 3|split-window-right}} - Split the window vertically to create two side-by-side windows<br />
<br />
You can use multiple windows to view different [[#Buffer|buffers]] (or different portions of the same [[#Buffer|buffer]]) at once.<br />
<br />
You can read more about windows in the Emacs manual:<br />
* {{Manual|emacs|Screen|Screen}}<br />
* {{Manual|emacs|Windows|Windows}}<br />
<br />
== Frame ==<br />
<br />
In Emacs terminology, a "frame" is what most window managers (Windows, OSX, GNOME, KDE, etc.) would call a "window".<br />
<br />
It will typically have a title bar and some buttons to iconify (minimize), maximize / restore, and close the frame. To<br />
see an example, open up a second frame from your running Emacs instance with {{CommandKeys|C-x 5 2|make-frame-command}}. You can close frames with {{CommandKeys|C-x 5 0|delete-frame}}, though this<br />
will not close the last frame that is open.<br />
<br />
To be completely correct, frames can be created when Emacs is running in terminal mode too, not just in a windowing system. They don't provide the same visual cues but otherwise work the same.<br />
<br />
<br />
You can read more about frames in the Emacs manual:<br />
* {{Manual|emacs|Screen|Screen}}<br />
* {{Manual|emacs|Frames|Frames}}<br />
<br />
== Point ==<br />
<br />
The active cursor shows the location at which editing commands will<br />
take effect, which is called "point". Many Emacs commands move<br />
point to different places in the buffer; for example, you can place<br />
point by clicking mouse button 1 (normally the left button) at the<br />
desired location.<br />
<br />
If you use a block cursor, the cursor appears to be on a<br />
character, but you should think of point as between two characters;<br />
it points before the character that appears under the cursor. For<br />
example, if your text looks like `frob' with the cursor over the `b',<br />
then point is between the `o' and the `b'. If you insert the character<br />
`!' at that position, the result is `fro!b', with point between the `!'<br />
and the `b'. Thus, the cursor remains over the `b', as before.<br />
<br />
Sometimes people speak of "the cursor" when they mean "point," or<br />
speak of commands that move point as "cursor motion" commands.<br />
<br />
<br />
You can read more about the point in the Emacs manual:<br />
* {{Manual|emacs|Point|Point}}<br />
<br />
<br />
<br />
== The Mark and the Region ==<br />
<br />
Many Emacs commands operate on an arbitrary contiguous part of the<br />
current buffer. To specify the text for such a command to operate on,<br />
you set "the mark" at one end of it, and move point to the other end.<br />
The text between point and the mark is called "the region". The region<br />
always extends between point and the mark, no matter which one comes<br />
earlier in the text; each time you move point, the region changes.<br />
<br />
<br />
You can read more about the mark and the region in the Emacs manual:<br />
* {{Manual|emacs|Mark|Mark}}<br />
<br />
<br />
<br />
== Killing ==<br />
<br />
In Emacs, "killing" means erasing text and copying it into the "kill<br />
ring". "Yanking" means bringing text from the kill ring back into the<br />
buffer. (Some applications use the terms "cutting" and "pasting" for<br />
similar operations.) The kill ring is so-named because it can be<br />
visualized as a set of blocks of text arranged in a ring, which you can<br />
access in cyclic order.<br />
<br />
<br />
You can read more about killing in the Emacs manual:<br />
* {{Manual|emacs|Killing|Killing}}<br />
<br />
<br />
<br />
== Yanking ==<br />
<br />
"Yanking" means reinserting text previously killed. The usual way to<br />
move or copy text is to kill it and then yank it elsewhere one or more<br />
times.<br />
<br />
You can read more about Yanking in the Emacs manual:<br />
* {{Manual|emacs|Yanking|Yanking}}<br />
<br />
<br />
<br />
== Faces ==<br />
<br />
Emacs can display text in several different styles, which are called faces. Each face can specify various face attributes, such as the font, height, weight and slant, the foreground and background color, and underlining or overlining. A face does not have to specify all of these attributes; often it inherits most of them from another face.<br />
<br />
On a text-only terminal, not all face attributes are meaningful. Some text-only terminals support inverse video, bold, and underline attributes; some support colors. Text-only terminals generally do not support changing the height, width or font.<br />
<br />
Most major modes assign faces to the text automatically through the work of Font Lock mode. See Font Lock, for more information about Font Lock mode and syntactic highlighting. You can print the current buffer with the highlighting that appears on your screen using the command {{Command|ps-print-buffer-with-faces}}. <br />
<br />
<br />
You can read more about faces in the Emacs manual:<br />
* {{Manual|emacs|Faces|Faces}}<br />
<br />
<br />
<br />
== Major mode ==<br />
<br />
Emacs can adapt its behaviour to the specific type of text edited in a buffer. The set of specific Emacs customizations for a particular type of text is called a "major mode". Each buffer has one (no more, no less) major mode depending on its content type.<br />
<br />
Major modes can change the meaning of some keys, define syntax highlighing or indentation rules, and install new key bindings (usually beginning with {{Keys|C-c}}) for mode-specific commands. Emacs ships with a wide range of major modes, falling into three main categories:<br />
* support for text (e.g. [[:Category:Markup languages|markup languages]]),<br />
* support for [[:Category:Programming languages|programming languages]],<br />
* applications within emacs (e.g. [[dired]], [[gnus]], ...). Buffers using this last group of major modes are usually not associated to files, but rather serve as a user interface.<br />
<br />
<br />
You can read more about major modes in the Emacs manual:<br />
* {{Manual|emacs|Major-Modes|Major Modes}}<br />
<br />
== Minor mode ==<br />
<br />
Minor modes are optional features that can be turned on and off. Minor modes can be enabled for specific buffers (''buffer-local'' modes) or all buffers (''global'' modes). <br />
<br />
Emacs provides lots of minor modes. Just a few examples:<br />
<br />
* [[Auto Fill]] mode to automatically [[#Fill]] text as you type.<br />
* [[Flyspell]] mode to highlight spelling errors as you type.<br />
* [[Visual Line]] mode to wrap long lines to fit the screen. (See [[#Screen Lines]])<br />
* [[Transient Mark]] mode to highlight the current region.<br />
<br />
You can read more about minor modes in the Emacs manual:<br />
* {{Manual|emacs|Minor-Modes|Minor Modes}}<br />
<br />
== Fill ==<br />
<br />
In Emacs ''filling'' text means breaking it in to lines of a given maximum width. You can enable automatic filling with {{Command|auto-fill-mode}}, or fill a specific block of text using something like {{CommandKeys|M-q|fill-paragraph}}.<br />
<br />
Note that fill commands add hard line breaks to the text. This is different from what might be called "word wrap" (or "line wrap") in other tools, where the text is wrapped at the edge of the current display and re-flowed if the window is resized. Emacs provides this sort of wrapping as well, see [[#Screen Lines]]<br />
<br />
You can read about the various ways to fill text in the Emacs manual:<br />
* {{Manual|emacs|Filling|Filling}}<br />
<br />
== Screen Lines ==<br />
<br />
Emacs provides several ways to deal with text lines that extend horizontally beyond the size of the current window. These are display features: they change the ''screen lines'' shown in the window without modifying the ''logical lines'' of the actual text. <br />
<br />
* By default, Emacs wraps a long line of text at the edge of the window and shows the remaining text in ''continuation lines''.<br />
* [[Visual Line]] mode provides what is commonly called "word wrap": long lines are wrapped at the edge of the window without breaking in the middle of a word. Try {{Command|visual-line-mode}}.<br />
* ''Line truncation'' means that text beyond the edge of the display is simply not shown, i.e. the line is cut off. Try {{Command|toggle-truncate-lines}}.<br />
<br />
These display options can affect how some editing and movement commands work. Refer to the documentation for details. To reformat text with hard line breaks, see [[#Fill]]. <br />
<br />
You can read more about the various ways of visualizing long lines in the Emacs manual:<br />
* {{Manual|emacs|Continuation-Lines|Continuation Lines}}<br />
* {{Manual|emacs|Visual-Line-Mode|Visual Line Mode}}<br />
* {{Manual|emacs|Line-Truncation|Line Truncation}}<br />
<br />
<br />
== case-fold ==<br />
<br />
Case '''in'''sensitivity.<br />
<br />
== Narrow and widen ==<br />
<br />
Sometimes you want to work on just a portion of the current buffer and ignore the rest. Emacs provides commands to ''narrow'' the display so that it only shows the text you are interested in. Text outside of the current ''restriction'' is hidden from view and inaccessible to editing commands. <br />
<br />
Use {{CommandKeys|C-x n n|narrow-to-region}} to narrow the display to the current region. Use {{CommandKeys|C-x n w|widen}} to ''widen'' the display, making the entire buffer accessible again. <br />
<br />
Note that narrowing can be confusing to new users, so the command <tt>narrow-to-region</tt> is disabled by default. If you have not explicitly enabled this command before trying to use it, you will be prompted to do so.<br />
<br />
Narrowing can be considered an alternative to collapsing blocks of text (folding). Narrowing allows you to identify a block of text to edit, whereas folding allows you to identify a block of text to hide. Emacs has various ways to hide text (see [[#Selective Display]]). The key difference between hiding text and narrowing is that hidden text remains editable: you can still delete a block of text that has been collapsed from view. With a narrowing restriction, only the active text can be modified. <br />
<br />
You can read more about narrowing and other ways to hide text in the Emacs manual:<br />
* {{Manual|emacs|Narrowing|Narrowing}}<br />
<br />
== Selective Display ==<br />
<br />
Emacs provides a way to hide lines of text indented more than a given number of columns:<br />
{{Command|set-selective-display}}, bound to {{Keys|C-x $}} by default. <br />
<br />
This can be useful to hide "details" and get an overview of a file that uses indentation in some meaningful way (like most programming langauges). Note that the hidden text remains editable; see [[#Narrowing]] for a safer way to edit a specific portion of a buffer.<br />
<br />
There are a variety of other ways to hide text in an Emacs buffer, such as [[Outline]] and [[Hideshow]] modes.<br />
<br />
You can read more about selective display in the Emacs manual:<br />
* {{Manual|emacs|Selective-Display|Selective Display}}<br />
<br />
[[Category:Beginner]]<br />
<br />
== font-lock ==<br />
<br />
Syntax highlighting.</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs_Terminology&diff=1651Emacs Terminology2012-03-29T21:22:18Z<p>PhilHudson: Added font-lock</p>
<hr />
<div>== Buffer ==<br />
<br />
When you use {{Keys|C-x C-f}} to invoke command find-file, Emacs opens the file you request, and puts its contents into<br />
a buffer with the same name as the file. Instead of thinking that you are editing a file, think that you are editing<br />
text in a buffer. When you save the buffer, the file is updated to reflect your edits.<br />
<br />
Buffers can also contain text that doesn't come from a file. When you use {{Keys|C-x C-b}} to get a list of buffers,<br />
that list is itself in a buffer, called <tt>*Buffer List*</tt>, and that buffer is not associated with any file.<br />
<br />
By convention, buffers whose names start with an asterisk ('''`*'''') are not associated with files (but that doesn't<br />
mean you can't save them in files). If they have unsaved changes when you exit Emacs, these buffers are killed without<br />
your being asking for confirmation.<br />
<br />
Buffers whose names start with a space are [[InvisibleBuffers|invisible]] to many operations. These are generally<br />
internal buffers that you don't want to see. Their names normally don't appear in the buffer list or as<br />
[[Completion|completion]] candidates when you switch buffers using {{Keys|C-x b}}.<br />
<br />
Buffers are shown in [[#Window|windows]]. You can have more than one window showing the same buffer. {{Keys|C-x 2}}<br />
splits the current window, creating two windows, both showing the same buffer.<br />
<br />
<br />
You can read more about windows in the Emacs manual:<br />
* {{Manual|emacs|Buffers|Buffers}}<br />
* {{Manual|emacs|Windows|Windows}}<br />
<br />
<br />
<br />
== Window ==<br />
<br />
In Emacs terminology, a "window" is a container in which a [[#Buffer|buffer]] is displayed. This may be confusing at first; if so, think "pane" whenever you see "window" in an Emacs context until you get used to it.<br />
<br />
A new Emacs [[#Frame|frame]] contains one window. This window can be split in to multiple windows using:<br />
* {{CommandKeys|C-x 2|split-window-below}} - Split the window horizontally to create two stacked windows<br />
* {{CommandKeys|C-x 3|split-window-right}} - Split the window vertically to create two side-by-side windows<br />
<br />
You can use multiple windows to view different [[#Buffer|buffers]] (or different portions of the same [[#Buffer|buffer]]) at once.<br />
<br />
You can read more about windows in the Emacs manual:<br />
* {{Manual|emacs|Screen|Screen}}<br />
* {{Manual|emacs|Windows|Windows}}<br />
<br />
== Frame ==<br />
<br />
In Emacs terminology, a "frame" is what most window managers (Windows, OSX, GNOME, KDE, etc.) would call a "window".<br />
<br />
It will typically have a title bar and some buttons to iconify (minimize), maximize / restore, and close the frame. To<br />
see an example, open up a second frame from your running Emacs instance with {{CommandKeys|C-x 5 2|make-frame-command}}. You can close frames with {{CommandKeys|C-x 5 0|delete-frame}}, though this<br />
will not close the last frame that is open.<br />
<br />
To be completely correct, frames can be created when Emacs is running in terminal mode too, not just in a windowing system. They don't provide the same visual cues but otherwise work the same.<br />
<br />
<br />
You can read more about frames in the Emacs manual:<br />
* {{Manual|emacs|Screen|Screen}}<br />
* {{Manual|emacs|Frames|Frames}}<br />
<br />
== Point ==<br />
<br />
The active cursor shows the location at which editing commands will<br />
take effect, which is called "point". Many Emacs commands move<br />
point to different places in the buffer; for example, you can place<br />
point by clicking mouse button 1 (normally the left button) at the<br />
desired location.<br />
<br />
If you use a block cursor, the cursor appears to be on a<br />
character, but you should think of point as between two characters;<br />
it points before the character that appears under the cursor. For<br />
example, if your text looks like `frob' with the cursor over the `b',<br />
then point is between the `o' and the `b'. If you insert the character<br />
`!' at that position, the result is `fro!b', with point between the `!'<br />
and the `b'. Thus, the cursor remains over the `b', as before.<br />
<br />
Sometimes people speak of "the cursor" when they mean "point," or<br />
speak of commands that move point as "cursor motion" commands.<br />
<br />
<br />
You can read more about the point in the Emacs manual:<br />
* {{Manual|emacs|Point|Point}}<br />
<br />
<br />
<br />
== The Mark and the Region ==<br />
<br />
Many Emacs commands operate on an arbitrary contiguous part of the<br />
current buffer. To specify the text for such a command to operate on,<br />
you set "the mark" at one end of it, and move point to the other end.<br />
The text between point and the mark is called "the region". The region<br />
always extends between point and the mark, no matter which one comes<br />
earlier in the text; each time you move point, the region changes.<br />
<br />
<br />
You can read more about the mark and the region in the Emacs manual:<br />
* {{Manual|emacs|Mark|Mark}}<br />
<br />
<br />
<br />
== Killing ==<br />
<br />
In Emacs, "killing" means erasing text and copying it into the "kill<br />
ring". "Yanking" means bringing text from the kill ring back into the<br />
buffer. (Some applications use the terms "cutting" and "pasting" for<br />
similar operations.) The kill ring is so-named because it can be<br />
visualized as a set of blocks of text arranged in a ring, which you can<br />
access in cyclic order.<br />
<br />
<br />
You can read more about killing in the Emacs manual:<br />
* {{Manual|emacs|Killing|Killing}}<br />
<br />
<br />
<br />
== Yanking ==<br />
<br />
"Yanking" means reinserting text previously killed. The usual way to<br />
move or copy text is to kill it and then yank it elsewhere one or more<br />
times.<br />
<br />
You can read more about Yanking in the Emacs manual:<br />
* {{Manual|emacs|Yanking|Yanking}}<br />
<br />
<br />
<br />
== Faces ==<br />
<br />
Emacs can display text in several different styles, which are called faces. Each face can specify various face attributes, such as the font, height, weight and slant, the foreground and background color, and underlining or overlining. A face does not have to specify all of these attributes; often it inherits most of them from another face.<br />
<br />
On a text-only terminal, not all face attributes are meaningful. Some text-only terminals support inverse video, bold, and underline attributes; some support colors. Text-only terminals generally do not support changing the height, width or font.<br />
<br />
Most major modes assign faces to the text automatically through the work of Font Lock mode. See Font Lock, for more information about Font Lock mode and syntactic highlighting. You can print the current buffer with the highlighting that appears on your screen using the command {{Command|ps-print-buffer-with-faces}}. <br />
<br />
<br />
You can read more about faces in the Emacs manual:<br />
* {{Manual|emacs|Faces|Faces}}<br />
<br />
<br />
<br />
== Major mode ==<br />
<br />
Emacs can adapt its behaviour to the specific type of text edited in a buffer. The set of specific Emacs customizations for a particular type of text is called a "major mode". Each buffer has one (no more, no less) major mode depending on its content type.<br />
<br />
Major modes can change the meaning of some keys, define syntax highlighing or indentation rules, and install new key bindings (usually beginning with {{Keys|C-c}}) for mode-specific commands. Emacs ships with a wide range of major modes, falling into three main categories:<br />
* support for text (e.g. [[:Category:Markup languages|markup languages]]),<br />
* support for [[:Category:Programming languages|programming languages]],<br />
* applications within emacs (e.g. [[dired]], [[gnus]], ...). Buffers using this last group of major modes are usually not associated to files, but rather serve as a user interface.<br />
<br />
<br />
You can read more about major modes in the Emacs manual:<br />
* {{Manual|emacs|Major-Modes|Major Modes}}<br />
<br />
== Minor mode ==<br />
<br />
Minor modes are optional features that can be turned on and off. Minor modes can be enabled for specific buffers (''buffer-local'' modes) or all buffers (''global'' modes). <br />
<br />
Emacs provides lots of minor modes. Just a few examples:<br />
<br />
* [[Auto Fill]] mode to automatically [[#Fill]] text as you type.<br />
* [[Flyspell]] mode to highlight spelling errors as you type.<br />
* [[Visual Line]] mode to wrap long lines to fit the screen. (See [[#Screen Lines]])<br />
* [[Transient Mark]] mode to highlight the current region.<br />
<br />
You can read more about minor modes in the Emacs manual:<br />
* {{Manual|emacs|Minor-Modes|Minor Modes}}<br />
<br />
== Fill ==<br />
<br />
In Emacs ''filling'' text means breaking it in to lines of a given maximum width. You can enable automatic filling with {{Command|auto-fill-mode}}, or fill a specific block of text using something like {{CommandKeys|M-q|fill-paragraph}}.<br />
<br />
Note that fill commands add hard line breaks to the text. This is different from what might be called "word wrap" (or "line wrap") in other tools, where the text is wrapped at the edge of the current display and re-flowed if the window is resized. Emacs provides this sort of wrapping as well, see [[#Screen Lines]]<br />
<br />
You can read about the various ways to fill text in the Emacs manual:<br />
* {{Manual|emacs|Filling|Filling}}<br />
<br />
== Screen Lines ==<br />
<br />
Emacs provides several ways to deal with text lines that extend horizontally beyond the size of the current window. These are display features: they change the ''screen lines'' shown in the window without modifying the ''logical lines'' of the actual text. <br />
<br />
* By default, Emacs wraps a long line of text at the edge of the window and shows the remaining text in ''continuation lines''.<br />
* [[Visual Line]] mode provides what is commonly called "word wrap": long lines are wrapped at the edge of the window without breaking in the middle of a word. Try {{Command|visual-line-mode}}.<br />
* ''Line truncation'' means that text beyond the edge of the display is simply not shown, i.e. the line is cut off. Try {{Command|toggle-truncate-lines}}.<br />
<br />
These display options can affect how some editing and movement commands work. Refer to the documentation for details. To reformat text with hard line breaks, see [[#Fill]]. <br />
<br />
You can read more about the various ways of visualizing long lines in the Emacs manual:<br />
* {{Manual|emacs|Continuation-Lines|Continuation Lines}}<br />
* {{Manual|emacs|Visual-Line-Mode|Visual Line Mode}}<br />
* {{Manual|emacs|Line-Truncation|Line Truncation}}<br />
<br />
<br />
== Case-fold ==<br />
<br />
Emacs terminology for case '''in'''sensitivity.<br />
<br />
<br />
<br />
== Narrow and widen ==<br />
<br />
Sometimes you want to work on just a portion of the current buffer and ignore the rest. Emacs provides commands to ''narrow'' the display so that it only shows the text you are interested in. Text outside of the current ''restriction'' is hidden from view and inaccessible to editing commands. <br />
<br />
Use {{CommandKeys|C-x n n|narrow-to-region}} to narrow the display to the current region. Use {{CommandKeys|C-x n w|widen}} to ''widen'' the display, making the entire buffer accessible again. <br />
<br />
Note that narrowing can be confusing to new users, so the command <tt>narrow-to-region</tt> is disabled by default. If you have not explicitly enabled this command before trying to use it, you will be prompted to do so.<br />
<br />
Narrowing can be considered an alternative to collapsing blocks of text (folding). Narrowing allows you to identify a block of text to edit, whereas folding allows you to identify a block of text to hide. Emacs has various ways to hide text (see [[#Selective Display]]). The key difference between hiding text and narrowing is that hidden text remains editable: you can still delete a block of text that has been collapsed from view. With a narrowing restriction, only the active text can be modified. <br />
<br />
You can read more about narrowing and other ways to hide text in the Emacs manual:<br />
* {{Manual|emacs|Narrowing|Narrowing}}<br />
<br />
== Selective Display ==<br />
<br />
Emacs provides a way to hide lines of text indented more than a given number of columns:<br />
{{Command|set-selective-display}}, bound to {{Keys|C-x $}} by default. <br />
<br />
This can be useful to hide "details" and get an overview of a file that uses indentation in some meaningful way (like most programming langauges). Note that the hidden text remains editable; see [[#Narrowing]] for a safer way to edit a specific portion of a buffer.<br />
<br />
There are a variety of other ways to hide text in an Emacs buffer, such as [[Outline]] and [[Hideshow]] modes.<br />
<br />
You can read more about selective display in the Emacs manual:<br />
* {{Manual|emacs|Selective-Display|Selective Display}}<br />
<br />
[[Category:Beginner]]<br />
<br />
== font-lock ==<br />
<br />
Syntax highlighting.</div>PhilHudsonhttps://wikemacs.org/index.php?title=User%27s_Initialization_File&diff=1649User's Initialization File2012-03-29T21:13:10Z<p>PhilHudson: </p>
<hr />
<div>A file to store your configurations/customizations for Emacs written in [[Emacs Lisp]], located at either {{File|${HOME}/.emacs.d/init.el}} or (archaically) at {{File|${HOME}/.emacs}} or at {{File|%HOME%\_emacs}} on [[Windows]].</div>PhilHudsonhttps://wikemacs.org/index.php?title=User%27s_Initialization_File&diff=1648User's Initialization File2012-03-29T21:12:22Z<p>PhilHudson: Windows filename</p>
<hr />
<div>A file to store users' configurations/customizations for Emacs written in [[Emacs Lisp]], located at either {{File|${HOME}/.emacs.d/init.el}} or (archaically) at {{File|${HOME}/.emacs}} or at {{File|%HOME%\_emacs}} on [[Windows]].</div>PhilHudsonhttps://wikemacs.org/index.php?title=User%27s_Initialization_File&diff=1647User's Initialization File2012-03-29T21:11:07Z<p>PhilHudson: Added file names</p>
<hr />
<div>A file to store users' configurations/customizations for Emacs written in [[Emacs Lisp]], located at either {{File|${HOME}/.emacs.d/init.el}} or (archaically) at {{File|${HOME}/.emacs}}</div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:EmacsConfigFile&diff=1646Template:EmacsConfigFile2012-03-29T21:08:10Z<p>PhilHudson: Shorter, less confusing text</p>
<hr />
<div><includeonly>[[User's Initialization File|Emacs configuration file]]</includeonly><noinclude><br />
<br />
== Usage ==<br />
Show the default emacs file locations.<br />
<pre>{{EmacsConfigFile}}</pre> will be rendered as: {{EmacsConfigFile}}<br />
</noinclude></div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1645Key Bindings2012-03-29T21:05:13Z<p>PhilHudson: /* Editing key bindings */</p>
<hr />
<div>In Emacs, almost any keystroke, optionally combined with one or more [[#modifierKeys|modifier keys]], or any sequence of such keystrokes, can be "bound" to any [[command]].<br />
<br />
== Modifier keys naming convention ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Modifier key<br />
! Abbr.<br />
! Remarks<br />
! Example<br />
! Action<br />
|-<br />
| Alt<br />
| A<br />
| Relatively seldom used in Emacs, because Meta is often "logically" mapped to the "physical" <tt>Alt</tt> key.<br />
| A-x<br />
| Type "x" while holding down the (non-Meta) Alt key<br />
|-<br />
| Control<br />
| C<br />
| <br />
| C-x C-f<br />
| While holding down Ctrl, type first "x" then "f". (This runs the command <tt>find-file</tt>).<br />
|-<br />
| Hyper<br />
| h<br />
| Often not mapped to any key (by default).<br />
| h-x<br />
| Type "x" while holding down hyper<br />
|-<br />
| Meta<br />
| M<br />
| Often mapped to <tt>Alt</tt> on your keyboard<br />
| M-x find-file RET<br />
| Either:<br />
* type "x" while holding down Meta, or<br />
* type "Esc" then "x",<br />
which activates the [[minibuffer]], then type "find-file" in the minibuffer, then Return.<br />
|-<br />
| Shift<br />
| S<br />
| <br />
| S-x<br />
| Type "x" while holding down Shift<br />
|-<br />
| Super<br />
| s<br />
| Often not mapped to any key by default, or to <tt>Window</tt> or <tt>Menu</tt> if present<br />
| s-x<br />
| Type "x" while holding down super<br />
|-<br />
|}<br />
<br />
<br />
== Printable cheat sheet for popular modes ==<br />
Emacs ships with cheat sheets of common and useful key bindings.<br />
The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
== Editing key bindings ==<br />
You can add, remove and change key bindings for any command. You can make your changes interactively (and only for the current session) using {{Command|global-set-key}} or {{Command|local-set-key}}. To make the change permanent, you can write some simple [[Emacs Lisp]] code that calls the same functions in your {{EmacsConfigFile}}, which is loaded when Emacs first starts up.<br />
<br />
== External Links ==<br />
<br />
* [http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ Mastering Keybindings in Emacs]<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1644Key Bindings2012-03-29T20:59:40Z<p>PhilHudson: </p>
<hr />
<div>In Emacs, almost any keystroke, optionally combined with one or more [[#modifierKeys|modifier keys]], or any sequence of such keystrokes, can be "bound" to any [[command]].<br />
<br />
== Modifier keys naming convention ==<br />
<br />
{| class="wikitable"<br />
|-<br />
! Modifier key<br />
! Abbr.<br />
! Remarks<br />
! Example<br />
! Action<br />
|-<br />
| Alt<br />
| A<br />
| Relatively seldom used in Emacs, because Meta is often "logically" mapped to the "physical" <tt>Alt</tt> key.<br />
| A-x<br />
| Type "x" while holding down the (non-Meta) Alt key<br />
|-<br />
| Control<br />
| C<br />
| <br />
| C-x C-f<br />
| While holding down Ctrl, type first "x" then "f". (This runs the command <tt>find-file</tt>).<br />
|-<br />
| Hyper<br />
| h<br />
| Often not mapped to any key (by default).<br />
| h-x<br />
| Type "x" while holding down hyper<br />
|-<br />
| Meta<br />
| M<br />
| Often mapped to <tt>Alt</tt> on your keyboard<br />
| M-x find-file RET<br />
| Either:<br />
* type "x" while holding down Meta, or<br />
* type "Esc" then "x",<br />
which activates the [[minibuffer]], then type "find-file" in the minibuffer, then Return.<br />
|-<br />
| Shift<br />
| S<br />
| <br />
| S-x<br />
| Type "x" while holding down Shift<br />
|-<br />
| Super<br />
| s<br />
| Often not mapped to any key by default, or to <tt>Window</tt> or <tt>Menu</tt> if present<br />
| s-x<br />
| Type "x" while holding down super<br />
|-<br />
|}<br />
<br />
<br />
== Printable cheat sheet for popular modes ==<br />
Emacs ships with cheat sheets of common and useful key bindings.<br />
The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
== Editing key bindings ==<br />
You can add, remove and change key bindings for any command, either globally or locally to a mode, interactively (and only for the current session) via {{Command|global-set-key}} and {{Command|local-set-key}}, or persistently using simple [[Emacs Lisp]] code in your {{EmacsConfigFile}} which is loaded when Emacs first starts up.<br />
<br />
== External Links ==<br />
<br />
* [http://www.masteringemacs.org/articles/2011/02/08/mastering-key-bindings-emacs/ Mastering Keybindings in Emacs]<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1548Key Bindings2012-03-29T14:53:19Z<p>PhilHudson: /* Printable cheatsheet for popular modes */</p>
<hr />
<div>== Printable cheat sheet for popular modes ==<br />
Emacs ships with cheat sheets of common and useful key bindings.<br />
The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
== Editing key bindings ==<br />
You can add, remove and change key bindings for any command, either globally or locally to a mode, interactively (and only for the current session) via {{Command|global-set-key}} and {{Command|local-set-key}}, or persistently using simple [[Emacs Lisp]] code in your {{EmacsConfigFile}} which is loaded when Emacs first starts up.<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1545Key Bindings2012-03-29T14:52:37Z<p>PhilHudson: </p>
<hr />
<div>== Printable cheatsheet for popular modes ==<br />
The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
== Editing key bindings ==<br />
You can add, remove and change key bindings for any command, either globally or locally to a mode, interactively (and only for the current session) via {{Command|global-set-key}} and {{Command|local-set-key}}, or persistently using simple [[Emacs Lisp]] code in your {{EmacsConfigFile}} which is loaded when Emacs first starts up.<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=User%27s_Initialization_File&diff=1541User's Initialization File2012-03-29T14:50:27Z<p>PhilHudson: </p>
<hr />
<div>A file to store users' configurations/customisations for Emacs written in [[Emacs Lisp]].</div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:File&diff=1538Template:File2012-03-29T14:48:28Z<p>PhilHudson: </p>
<hr />
<div><includeonly><tt>{{{1}}}</tt></includeonly><noinclude><br />
== Usage ==<br />
Show a file name.<br />
<pre>{{File|.emacs}}</pre> will be rendered as: {{File|.emacs}}<br />
</noinclude></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Directory&diff=1535Template:Directory2012-03-29T14:47:42Z<p>PhilHudson: </p>
<hr />
<div><includeonly><tt>{{{1}}}/</tt></includeonly><noinclude><br />
== Usage ==<br />
Show a file system directory. <br />
<pre>{{Directory|~/.emacs.d}}</pre> will be rendered as: {{Directory|~/.emacs.d}}<br />
</noinclude></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Directory&diff=1509Template:Directory2012-03-29T13:50:03Z<p>PhilHudson: </p>
<hr />
<div><tt>{{{1}}}/</tt><noinclude><br />
== Usage ==<br />
Show a file system directory. <br />
<pre>{{Directory|~/.emacs.d}}</pre> will be rendered as: {{Directory|~/.emacs.d}}<br />
</noinclude></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:File&diff=1508Template:File2012-03-29T13:48:57Z<p>PhilHudson: </p>
<hr />
<div><tt>{{{1}}}</tt><noinclude><br />
== Usage ==<br />
Show a file name.<br />
<pre>{{File|.emacs}}</pre> will be rendered as: {{File|.emacs}}<br />
</noinclude></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:File&diff=1507Template:File2012-03-29T13:47:52Z<p>PhilHudson: </p>
<hr />
<div><includeonly><tt>{{{1}}}</tt></includeonly><br />
<noinclude><br />
== Usage ==<br />
Show a file name.<br />
<pre>{{File|.emacs}}</pre> will be rendered as: {{File|.emacs}}<br />
</noinclude></div>PhilHudsonhttps://wikemacs.org/index.php?title=Key_Bindings&diff=1506Key Bindings2012-03-29T13:46:48Z<p>PhilHudson: </p>
<hr />
<div>; Printable cheatsheet for popular modes<br />
: The {{File|pdf}} files are located in the {{Directory|refcards}} subdirectory of {{Variable|data-directory}}.<br />
<br />
You can add, remove and change key bindings for any command, either globally or locally to a mode, interactively (and only for the current session) via {{Command|global-set-key}} and {{Command|local-set-key}}, or persistently using simple [[Emacs Lisp]] code in your {{EmacsConfigFile}} which is loaded when Emacs first starts up.<br />
<br />
[[Category:Tweak Key Bindings]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Category:Programming&diff=1397Category:Programming2012-03-28T21:51:53Z<p>PhilHudson: Link to Text Editing page</p>
<hr />
<div>If you are a developer using Emacs as an {{Acronym|IDE|Integrated Development Environment}} then the following pages will be of interest to you. <br />
<br />
For Emacs' generic text manipulation capabilities, see [[Text Editing]]. <br />
<br />
See also [[Emacs Lisp]].<br />
<br />
[[Category:Workflow]]<br />
[[Category:User Role]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Org&diff=1396Org2012-03-28T21:38:23Z<p>PhilHudson: Excellent org site link</p>
<hr />
<div>== Org Mode ==<br />
<br />
Org is an Emacs mode for keeping notes, maintaining TODO lists, project planning, outlining, and authoring with a fast and effective plain-text system. Org Mode is simple enough to start using right away, but provides tons of advanced features to support a wide variety of tasks and workflows. <br />
<br />
Org-Mode is distributed with Emacs (since Emacs 22.2). This project is under active development and new releases are often available. <br />
<br />
=== Features ===<br />
<br />
* Simple plain text markup for hierarchical documents.<br />
* Built-in table editor: easily format tables and work with spreadsheets in plain text.<br />
* Extensible hyperlinking: create cross-references, link to external resources, and more.<br />
* Capture system: create templates to quickly capture and file notes and tasks. <br />
* Sequences of TODO-style keywords for task progress tracking.<br />
* Tags, priorities and properties to categorize, sort, filter, and search.<br />
* Custom project views using Org's Agenda.<br />
* Convenient date/time handling for timestamps, deadlines, and scheduling.<br />
* Clock support to track time spent on projects.<br />
* Export from plain-text to a varie-ty of formats (HTML, LaTeX, DocBook, etc).<br />
* Embedded source blocks: edit code blocks in-line with the appropriate mode. Execute code blocks to generate content. Org can even be used for [http://en.wikipedia.org/wiki/Literate_programming literate programming].<br />
* Mobile support providing a subset of Org capabilities on iOS and Android devices.<br />
<br />
== External Links ==<br />
The Org-Mode project maintains excellent documentation and has an active community.<br />
<br />
* [http://orgmode.org/ Org Project]<br />
* [http://orgmode.org/org-mode-download.html Downloads]<br />
* [http://orgmode.org/org-mode-documentation.html Documentation]<br />
* [http://orgmode.org/w/org-mode.git Source Repository (git)]<br />
* [http://orgmode.org/worg/ Worg, the Org Community!]<br />
* [http://doc.norang.ca/org-mode.html Organize your life in plain text!]<br />
<br />
[[Category:Organizer]][[Category:Document authoring]][[Category:Markup languages]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Acronym&diff=1349Template:Acronym2012-03-28T19:39:10Z<p>PhilHudson: Blanked the page</p>
<hr />
<div></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Acronym&diff=1348Template:Acronym2012-03-28T19:38:41Z<p>PhilHudson: </p>
<hr />
<div><label title="{{{2}}}">{{{1}}}</label></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Acronym&diff=1347Template:Acronym2012-03-28T19:28:41Z<p>PhilHudson: </p>
<hr />
<div><span title="{{{2}}}">{{{1}}}</span></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Acronym&diff=1346Template:Acronym2012-03-28T19:28:30Z<p>PhilHudson: </p>
<hr />
<div><span title="{{{2}}}">{{{1}}}</a></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Acronym&diff=1345Template:Acronym2012-03-28T19:27:22Z<p>PhilHudson: </p>
<hr />
<div><a title={{{2}}}>{{{1}}}</a></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:Acronym&diff=1344Template:Acronym2012-03-28T19:25:00Z<p>PhilHudson: Created page with "<span title={{{2}}}>{{{1}}}</span>"</p>
<hr />
<div><span title={{{2}}}>{{{1}}}</span></div>PhilHudsonhttps://wikemacs.org/index.php?title=Template:UnixCommand&diff=1343Template:UnixCommand2012-03-28T19:18:48Z<p>PhilHudson: Created page with "<tt>{{{1}}}</tt>"</p>
<hr />
<div><tt>{{{1}}}</tt></div>PhilHudsonhttps://wikemacs.org/index.php?title=W3m-el&diff=1342W3m-el2012-03-28T19:18:28Z<p>PhilHudson: </p>
<hr />
<div>The text-mode {{UnixCommand|w3m}} web browser hosted and enhanced within Emacs, with rudimentary inline image support but no JavaScript.<br />
<br />
[[Category:Browse]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=W3m-el&diff=1341W3m-el2012-03-28T19:18:00Z<p>PhilHudson: </p>
<hr />
<div>The text-mode '''w3m''' web browser hosted and enhanced within Emacs, with rudimentary inline image support but no JavaScript.<br />
<br />
[[Category:Browse]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=W3&diff=1340W32012-03-28T19:17:15Z<p>PhilHudson: </p>
<hr />
<div>A pure [[Emacs Lisp]] text-mode web browser.<br />
<br />
[[Category:Browse]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Main_Page&diff=1306Main Page2012-03-28T15:54:55Z<p>PhilHudson: Moved subsection to own page</p>
<hr />
<div>'''WikEmacs''' (pronounced wikimacs) collects useful resources for working with [[GNU Emacs]]. It is intended as a next generation alternative to the traditional [http://www.emacswiki.org/ EmacsWiki]. You can call it ''A Community Maintained Emacs Wiki''.<br />
----<br />
<br />
'''WikEmacs News'''<br />
<br />
We need more [[:Category:WikEmacs Contributor|WikEmacs Contributor]]s.<br />
<br />
'''Emacs News'''<br />
<br />
The latest stable release of Emacs is [[:Category:Emacs-23.4|Emacs-23.4]]. The next major release is [[:Category:Emacs-24.1|Emacs-24.1]] and is in ''Pretest'' stage.<br />
<br />
Emacs is available on all popular [[:Category:Operating System | Operating Systems]] including [[GNU/Linux]], [[OSX]] and [[Windows]]. It supports a variety of [[:Category:Programming languages|programming languages]].<br />
<br />
'''Explore this wiki''' using one of these trails.<br />
<br />
; What is your comfort level with Emacs?<br />
: [[:Category:Beginner|Beginner]]<br />
: [[:Category:Intermediate|Intermediate]]<br />
: [[:Category:Expert|Expert]]<br />
: [[:Category:Vim User|Vim User]]<br />
: [[:Category:User Level|Other]]<br />
<br />
; What do you want to accomplish now?<br />
: [[:Category:Install Or Upgrade|Install Or Upgrade]]<br />
: [[:Category:Customize Emacs|Customize Emacs]]<br />
: [[:Category:Tweak Key Bindings|Tweak Key Bindings]]<br />
: [[:Category:Tutorial|Learn more Emacs (Tutorials)]]<br />
<br />
; What do you use Emacs for?<br />
:[[:Category:Text Editing|Text Editing]]<br />
:[[:Category:Programming|Programming]]<br />
:[[:Category:Document authoring|Document authoring]]<br />
:[[:Category:Organizer|Getting Organized]]<br />
:[[:Category:Email|Emailing]]<br />
:[[:Category:Chat|Chatting]]<br />
:[[:Category:Blogging|Blogging]]<br />
:[[:Category:Browse|Browsing]] <br />
: [[:Category:Workflow|Other]]<br />
<br />
; How do you involve yourself with the community?<br />
: [[:Category:Emacs User]]<br />
: [[:Category:Emacs Contributor]]<br />
: [[:Category:WikEmacs Contributor]]<br />
: [[:Category:User Role|Other]]<br />
<br />
== Automation in Emacs ==<br />
<br />
* [[ Keyboard macros ]]<br />
* [[ Emacs Lisp ]]<br />
<br />
== Configuring Emacs ==<br />
<br />
* [[ Custom ]] for choosing and setting options.<br />
* Scripting your [[ init.el ]] file (formerly .emacs) using [[ Emacs Lisp ]].<br />
<br />
== Convenience ==<br />
<br />
* Completion and selection <br />
** [[Ido]]: '''I'''nteractively '''do''' things<br />
** [[Helm]]: incremental completion and selection (formerly [[Anything]])<br />
** [[Icicles]]<br />
** Abbrev and dabbrev<br />
** Auto-complete and hippie-expand<br />
** YaSnippet<br />
<br />
== Typesetting, Document Markup and Document Creation in Emacs ==<br />
<br />
Emacs supports a wide range of [[:Category:Markup languages|Markup languages]] to help you in your workflow of [[:Category:Workflow:Document authoring|document creation]].<br />
<br />
== Communication ==<br />
<br />
* [[ Blogging ]]<br />
* [[ Chat ]]<br />
* [[ Email ]]<br />
* [[ Feed reading ]]<br />
* [[ Microblogging ]]<br />
* [[ Usenet news ]]<br />
<br />
== Web browsing ==<br />
<br />
* Launching and interacting with an [[external browser]] from emacs<br />
* Using [[emacs as a browser's external editor]], either when entering text on web pages or when viewing a web page's source document or both.<br />
<br />
See also [[:Category:Workflow:Browsing|Workflow:Browsing]]<br />
<br />
== Shells and terminal emulation ==<br />
<br />
Within Emacs you can interact with various shells and other command-line/text-mode programs running as a sub-process within an Emacs terminal emulator:<br />
* [[ ansi-term ]]<br />
* [[ shell ]]<br />
* [[ term ]]<br />
* [[ multi-term ]]<br />
<br />
[[ eshell ]] is a shell (not a terminal emulator, nor a process hosted in one) written in pure [[ Emacs Lisp ]]. It is very powerful, flexible and customizable, but poorly documented at time of writing.<br />
<br />
Emacs itself is fully functional either in a terminal or a windowing system. Some keystrokes available under window systems may not work in a terminal and vice versa.<br />
<br />
== Accessibility ==<br />
<br />
* [http://emacspeak.sourceforge.net/ Emacspeak] for the visually impaired.<br />
<br />
== Security and cryptography ==<br />
<br />
* [[ Gnu Privacy Guard ]] (GPG) support and integration<br />
<br />
== Getting Involved ==<br />
* IRC Channel<br />
<br />
* [[ Mailing list archives ]]<br />
<br />
* [http://bzr.savannah.gnu.org/lh/emacs/trunk/files Browsable source repository]<br />
<br />
[[Contributing to Emacs]]<br />
<br />
== Niche Uses ==<br />
<br />
* [[ Media player ]]<br />
* [[ Presentations ]]<br />
* [[ Screencasts ]]<br />
* [[ Statistics ]]<br />
* [[ Binary files]]<br />
* [[ Docview ]]<br />
* [[ Pictures ]]<br />
** [[ Inline Images ]]<br />
** [[ Artist mode ]]<br />
<br />
== Popular Culture and Community ==<br />
<br />
; [http://imgs.xkcd.com/comics/real_programmers.png Real Programmers]<br />
: Try {{Command|butterfly}} on your Emacs right now and unleash it's powers.<br />
<br />
* Adding Emacs-style key bindings to other programs and operating systems.<br />
* St Ignucius and the Church of Emacs<br />
* Saving the world from <tt>vi</tt></div>PhilHudsonhttps://wikemacs.org/index.php?title=Text_Editing&diff=1305Text Editing2012-03-28T15:54:14Z<p>PhilHudson: Created page with "* Search and replace ** Incremental Search ** Regexp Search * Undo and redo * Spell check * International Users * Remote Editing via ..."</p>
<hr />
<div>* [[ Search and replace ]]<br />
** [[ Incremental Search ]]<br />
** [[ Regexp Search ]]<br />
* [[ Undo and redo ]]<br />
* [[ Spell check ]]<br />
* [[ International Users ]]<br />
* [[ Remote Editing ]] via FTP, ssh, etc.<br />
* [[ Emacs server ]] and emacsclient<br />
* [[ Registers ]]<br />
* [[ Bookmarks ]]<br />
* [[ Rectangles ]]<br />
<br />
[[Category:Text Editing]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=WikEmacs:Scratch_Buffer&diff=1304WikEmacs:Scratch Buffer2012-03-28T15:53:24Z<p>PhilHudson: </p>
<hr />
<div>[[Text Editing]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=WikEmacs:Scratch_Buffer&diff=1303WikEmacs:Scratch Buffer2012-03-28T15:53:01Z<p>PhilHudson: </p>
<hr />
<div>[[Editing Text]]</div>PhilHudsonhttps://wikemacs.org/index.php?title=Emacs_Lisp&diff=1299Emacs Lisp2012-03-28T15:38:27Z<p>PhilHudson: </p>
<hr />
<div>Emacs Lisp is a dialect of the [[Lisp]] programming language used by GNU Emacs. Most of the editing functionality built into Emacs is written in Emacs Lisp, with the remainder being written in C (as is the Lisp interpreter itself). Users of Emacs commonly write Emacs Lisp code to customize and extend Emacs.<br />
<br />
Emacs Lisp is also commonly referred to as "elisp" or "Elisp". Files containing Emacs Lisp code use the <tt>.el</tt> filename suffix; when [[byte-compile]]d, the same filename prefix is used but with the <tt>.elc</tt> filename suffix.<br />
<br />
Emacs Lisp is a [https://hornbeck.wordpress.com/2009/07/05/lisp-1-vs-lisp-2/ Lisp-2], which means that a single identifier (in Lisp terminology, "symbol") can simultaneously exist as ("be bound to") both a function and a variable.<br />
<br />
= Basic setup =<br />
<br />
You can customize the way Emacs edits and displays this and all other [[:Category:Lisp|lisp languages]] with {{CustomizeGroup|lisp}}.<br />
<br />
= Helpful keybindings =<br />
<br />
; {{Keys|M-<tab>}}<br />
: Complete at point<br />
<br />
; {{Keys|C-M-q}}<br />
: Indent the [[S-expression]] following [[point and mark|point]]<br />
<br />
;{{Keys|C-M-x}}<br />
: Evaluate the <code>defun</code> at [[point and mark|point]]<br />
<br />
= Common customizations =<br />
<br />
== Outlining ==<br />
<br />
For [[Org]]-style outlining, add the following snippet to your {{EmacsConfigFile}}.<br />
<br />
<source lang="lisp"><br />
;; Turn on outline minor mode<br />
(add-hook 'emacs-lisp-mode-hook 'outline-minor-mode)<br />
<br />
;; Add key bindings for Org-style outline cycling<br />
(add-hook 'outline-minor-mode-hook<br />
(lambda ()<br />
(define-key outline-minor-mode-map [(control tab)] 'org-cycle)<br />
(define-key outline-minor-mode-map [(shift tab)] 'org-global-cycle)))<br />
</source><br />
<br />
Now visit any elisp file (say {{Command|find-library RET outline}}) and keep pressing {{Keys|S-TAB}} and see what happens. Experiment similarly with {{Keys|C-TAB}}.<br />
<br />
== Indentation ==<br />
<br />
Add the following snippet to your {{EmacsConfigFile}}, so that you don't have to indent deliberately. See {{Command|reindent-then-newline-and-indent}}.<br />
<br />
<source lang="lisp"><br />
(add-hook 'emacs-lisp-mode-hook<br />
(lambda nil<br />
(local-set-key [(return)] 'reindent-then-newline-and-indent)))<br />
</source><br />
<br />
== Always keep parentheses balanced ==<br />
<br />
See [[Skeleton#Keep some chars always balanced]]<br />
<br />
== Scope ==<br />
By default elisp uses [[dynamic scope]]. Since Emacs 24 [[lexical scope]] has been added. <br/><br />
To use lexical binding, an Emacs-lisp source file must set a file-variable {{Variable|lexical-binding}} to <tt>t</tt> in the file header, e.g., by using a first line like: <br/><br />
<br />
;;; -*- lexical-binding: t -*-<br />
<br />
= External links =<br />
<br />
* [http://www.gnu.org/software/emacs/manual/html_node/elisp/index.html Emacs Lisp manual]<br />
<br />
[[Category:Emacs User]][[Category:Emacs Contributor]][[Category:Intermediate]][[Category:Lisp]]</div>PhilHudson