<?xml version="1.0" encoding="UTF-8"?>
<chapter id="files">
    <title>Working With Files</title>

    <!-- jEdit buffer-local properties: -->
    <!-- :tabSize=2:indentSize=2:noTabs=true:wrap=soft:maxLineLen=90: -->
    <!-- :xml.root=users-guide.xml: -->

    <section id="creating">
        <title>Creating New Files</title>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>New</guimenuitem>
        (shortcut: <keycap>C+n</keycap>) opens a new, empty, buffer. Another way
        to create a new file is to specify a non-existent file name when
        starting jEdit on the command line. A new file will be created on disk
        when the buffer is saved for the first time.</para>
    </section>

    <section id="opening">
        <title>Opening Files</title>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Open</guimenuitem>
        (shortcut: <keycap>C+o</keycap>) displays a file system browser dialog
        box and loads the specified file into a new buffer.</para>

        <para>Multiple files can be opened at once by holding down
        <keycap>Control</keycap> while clicking on them in the file system
        browser. The file system browser supports auto-completion; typing the
        first few characters of a listed file name will select the file.</para>

        <para>More advanced features of the file system browser are described in
        <xref linkend="vfs-browser" />.</para>

        <para>The <guimenu>File</guimenu>&gt;<guimenuitem>Recent
        Files</guimenuitem> menu lists recently viewed files. When a recent file
        is opened, the caret is automatically moved to its previous location in
        that file. The number of recent files to remember can be changed and
        caret position saving can be disabled in the
        <guibutton>General</guibutton> pane of the
        <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
        dialog box; see <xref
        linkend="general-pane" />.</para>

        <para>The <guimenu>Utilities</guimenu>&gt;<guimenuitem>Current
        Directory</guimenuitem> menu lists all files and directories in the
        current buffer's directory. Selecting a file opens it in a buffer for
        editing; selecting a directory opens it in the file system browser (see
        <xref linkend="vfs-browser" />).</para>

        <note>
            <para>Files that you do not have write access to are opened in
            read-only mode, where editing is not permitted.</para>
        </note>

        <tip>
            <para>jEdit supports transparent editing of GZipped files; if a file
            begins with the GZip <quote>magic number</quote>, it is
            automatically decompressed before loading and compressed when
            saving. To compress an existing file, you need to change a setting
            in the <guimenu>Utilities</guimenu>&gt;<guimenuitem>Buffer
            Options</guimenuitem> dialog box; see <xref linkend="buffer-opts" />
            for details.</para>
        </tip>
    </section>

    <section id="saving">
        <title>Saving Files</title>

        <para>Changed made in a buffer do not affect the file on disk until the
        buffer is <firstterm>saved</firstterm>.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Save</guimenuitem>
        (shortcut: <keycap>C+s</keycap>) saves the current buffer to
        disk.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Save As</guimenuitem>
        renames the buffer and saves it in a new location. Note that using this
        command to save over another open buffer will close the other buffer, to
        stop two buffers from being able to share the same path name.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Save a Copy
        As</guimenuitem> saves the buffer to a different location but does not
        rename the buffer, and does not clear the
        <quote>modified</quote> flag. Note that using this command to save over
        another open buffer will automatically reload the other buffer.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Save All</guimenuitem>
        (shortcut: <keycap>C+e C+s</keycap>) saves all open buffers to disk,
        asking for confirmation first. The confirmation dialog can be disabled
        in the <guilabel>General</guilabel> pane of the
        <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
        dialog box.</para>

        <section>
            <title>Two-Stage Save</title>

            <para>To prevent data loss in the unlikely case that jEdit should
            crash in the middle of saving a file, files are first saved to a
            temporary file in the same directory named
            <filename>#<replaceable>filename</replaceable>#save#</filename>. If
            this operation is successful, the original file is replaced with the
            temporary file.</para>

            <para>However, in some situations, this behavior is undesirable. For
            example, on Unix this creates a new i-node so while jEdit retains
            file permissions, the owner and group of the file are reset, and if
            it is a hard link the link is broken. The <quote>two-stage
            save</quote> feature can be disabled in the
            <guibutton>General</guibutton> pane of the
            <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
            dialog box; see <xref
            linkend="general-pane" />.</para>
        </section>

        <section id="autosave">
            <title>Autosave and Crash Recovery</title>

            <para>The autosave feature protects your work from computer crashes
            and such. Every 30 seconds, all buffers with unsaved changes are
            written out to the same directory with their respective file names,
            enclosed in hash (<quote>#</quote>) characters. For example,
            <filename>/home/user/project/program.c</filename> will be autosaved to
            <filename>/home/user/project/#program.c#</filename>.</para>

            <para>Saving a buffer using one of the commands in the previous
            section automatically deletes the autosave file, so they will only
            ever be visible in the unlikely event of a jEdit (or operating
            system) crash.</para>

            <para>If an autosave file is found while a buffer is being loaded,
            jEdit will offer to recover the autosaved data.</para>

            <para>The autosave interval can be changed in the
            <guibutton>Autosave and Backup</guibutton> pane of the
            <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
            dialog box; see <xref
            linkend="saving-backup-pane" />.</para>
        </section>

        <section id="backups">
            <title>Backups</title>

            <para>The backup feature can be used to roll back to the previous
            version of a file after changes were made. When a buffer is saved
            for the first time after being opened, its original contents are
            <quote>backed up</quote> under a different file name.</para>

            <para>The behavior of the backup feature is specified in the
            <guibutton>Autosave and Backup</guibutton> pane of the
            <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
            dialog box; see <xref
            linkend="saving-backup-pane" />.</para>

            <para>The default behavior is to back up the original contents to
            the buffer's file name suffixed with a tilde (<quote>~</quote>). For
            example, a file named <filename>paper.tex</filename> is backed up to
            <filename>paper.tex~</filename>.</para>

            <itemizedlist>
                <listitem>
                    <para>The <guilabel>Max number of backups</guilabel> setting
                    determines the number of backups to save. Setting this to
                    zero disables the backup feature. Settings this to more than
                    one adds numbered suffixes to file names. By default only
                    one backup is saved.</para>
                </listitem>

                <listitem>
                    <para>If the <guilabel>Backup directory</guilabel> setting
                    is non-empty, backups are saved in that location (with the
                    full path to the original file under it). Otherwise,
                    they are saved in the same directory as the original file.
                    The latter is the default behavior.</para>
                </listitem>

                <listitem>
                    <para>The <guilabel>Backup filename prefix</guilabel>
                    setting is the prefix that is added to the backed-up file
                    name. This is empty by default.</para>
                </listitem>

                <listitem>
                    <para>The <guilabel>Backup filename suffix</guilabel>
                    setting is the suffix that is added to the backed-up file
                    name. This is <quote>~</quote> by default.</para>
                </listitem>

                <listitem>
                    <para>Backups can optionally be saved in a specified backup
                    directory, instead of the directory of the original file.
                    This can reduce clutter.</para>
                </listitem>

                <listitem>
                    <para>The <guilabel>Backup on every save</guilabel> option
                    is off by default, which results in a backup only being
                    created the first time a buffer is saved in an editing
                    session. If switched on, backups are created every time a
                    buffer is saved.</para>
                </listitem>
            </itemizedlist>
        </section>
    </section>

    <section id="line-separators">
        <title>Line Separators</title>

        <para>Unix systems use newlines (<literal>\n</literal>) to mark line
        endings in text files. The MacOS uses carriage-returns
        (<literal>\r</literal>). Windows uses a carriage-return followed by a
        newline (<literal>\r\n</literal>). jEdit can read and write files in all
        three formats.</para>

        <para>The line separator used by the in-memory representation of file
        contents is always the newline character. When a file is being loaded,
        the line separator used in the file on disk is stored in a per-buffer
        property, and all line-endings are converted to newline characters for
        the in-memory representation. When the buffer is consequently saved, the
        value of the property replaces newline characters when the buffer is
        saved to disk.</para>

        <para>There are several ways to change a buffer's line separator:</para>

        <itemizedlist>
            <listitem>
                <para>In the <guimenu>Utilities</guimenu>&gt;<guimenuitem>Buffer
                Options</guimenuitem> dialog box. See <xref
                linkend="buffer-opts" />.</para>
            </listitem>

            <listitem>
                <para>By clicking the line separator indicator in the status
                bar. See <xref linkend="status-bar" />.</para>
            </listitem>

            <listitem>
                <para>From the keyboard, if a keyboard shortcut has been
                assigned to the <guimenuitem>Toggle Line Separator</guimenuitem>
                command in the <guibutton>Shortcuts</guibutton> pane of the
                <guimenu>Utilities</guimenu>&gt;
                <guimenuitem>Options</guimenuitem>
                dialog box. By default, this command does
                not have a keyboard shortcut.</para>
            </listitem>
        </itemizedlist>

        <para>By default, new files are saved with your operating system's
        native line separator. This can be changed in the
        <guibutton>Encodings</guibutton> pane of the
        <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
        dialog box; see <xref linkend="encodings-pane" />.
        Note that changing this setting has no effect on existing files.</para>
    </section>

    <section id="encodings">
        <title>Character Encodings</title>

        <para>A character encoding is a mapping from a set of characters to
        their on-disk representation. jEdit can use any encoding supported by
        the Java platform.</para>

        <para>Buffers in memory are always stored in <literal>UTF-16</literal>
        encoding, which means each character is mapped to an integer between 0
        and 65535. <literal>UTF-16</literal> is the native encoding supported by
        Java, and has a large enough range of characters to support most modern
        languages.</para>

        <para>When a buffer is loaded, it is converted from its on-disk
        representation to <literal>UTF-16</literal> using a specified
        encoding.</para>

        <para>The default encoding, used to load files for which no other
        encoding is specified, can be set in the
        <guibutton>Encodings</guibutton> pane of the
        <guimenu>Utilities</guimenu>&gt;
        <guimenuitem>Options</guimenuitem>
        dialog box; see <xref linkend="encodings-pane" />.
        Unless you change this setting, it will be your operating system's
        native encoding, for example <literal>MacRoman</literal> on the MacOS,
        <literal>windows-1252</literal> on Windows, and
        <literal>ISO-8859-1</literal> on Unix.</para>

        <para>An encoding can be explicitly set when opening a file in the file
        system browser's
        <guimenu>Commands</guimenu>&gt;<guisubmenu>Encoding</guisubmenu>
        menu.</para>

        <para>Note that there is no general way to auto-detect the encoding used
        by a file, however jEdit supports "encoding detectors", of which there
        are some provided in the core, and others may be provided by plugins
        through the services api. From the encodings option pane
        <xref linkend="encodings-pane"/>, you can customize which
        ones are used, and the order they are tried. Here are some of the
        encoding detectors recognized by jEdit: </para>

        <itemizedlist>
            <listitem>
                <para> <emphasis role="bold">BOM</emphasis>:       <literal>UTF-16</literal> and <literal>UTF-8Y</literal>
                files are auto-detected, because they begin with a certain fixed
                character sequence. Note that plain UTF-8 does not mandate a
                specific header, and thus cannot be auto-detected, unless the
                file in question is an XML file.</para>
            </listitem>

            <listitem>
             <para> <emphasis role="bold">XML-PI</emphasis>:
                Encodings used in XML files with an XML PI like the
                following are auto-detected:</para>

                <programlisting>&lt;?xml version="1.0" encoding="UTF-8"&gt;</programlisting>
            </listitem>

            <listitem>
             <para> <emphasis role="bold">html</emphasis>:
                Encodings specified in HTML files with a <literal>content=</literal> attribute in a <literal>meta</literal> element may be auto-detected:</para>
                <programlisting>&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt; </programlisting>
            </listitem>
            <listitem> <para> <emphasis role="bold">python</emphasis>:
                Python has its own way of specifying encoding at the top of
                a file.</para>
                <programlisting># -*- coding: utf-8 -*-                </programlisting>
            </listitem>
            <listitem> <para> <emphasis role="bold">buffer-local-property</emphasis>:
                Enable buffer-local properties' syntax
                (see <xref linkend="buffer-local" />)
                at the top of the file to specify encoding. </para>
                <programlisting>#  :encoding=ISO-8859-1:
                </programlisting>
            </listitem>

        </itemizedlist>

        <para>The encoding that will be used to save the current buffer is shown
        in the status bar, and can be changed in the
        <guimenu>Utilities</guimenu>&gt;<guimenuitem>Buffer
        Options</guimenuitem> dialog box. Note that changing this setting has no
        effect on the buffer's contents; if you opened a file with the wrong
        encoding and got garbage, you will need to reload it.
        <guimenu>File</guimenu>&gt;<guimenuitem>Reload with
        Encoding</guimenuitem> is an easy way.</para>

        <para>If a file is opened without an explicit encoding specified and it
        appears in the recent file list, jEdit will use the encoding last used
        when working with that file; otherwise the default encoding will be
        used.</para>

        <section>
            <title>Commonly Used Encodings</title>

            <para>While the world is slowly converging on UTF-8 and UTF-16
            encodings for storing text, a wide range of older encodings are
            still in widespread use and Java supports most of them.</para>

            <para>The simplest character encoding still in use is ASCII, or
            <quote>American Standard Code for Information Interchange</quote>.
            ASCII encodes Latin letters used in English, in addition to numbers
            and a range of punctuation characters. Each ASCII character consists
            of 7 bits, there is a limit of 128 distinct characters, which makes
            it unsuitable for anything other than English text. jEdit will load
            and save files as ASCII if the <literal>US-ASCII</literal> encoding
            is used.</para>

            <para>Because ASCII is unsuitable for international use, most
            operating systems use an 8-bit extension of ASCII, with the first
            128 values mapped to the ASCII characters, and the rest used to
            encode accents, umlauts, and various more esoteric used
            typographical marks. The three major operating systems all extend
            ASCII in a different way. Files written by Macintosh programs can be
            read using the <literal>MacRoman</literal> encoding; Windows text
            files are usually stored as <literal>windows-1252</literal>. In the
            Unix world, the <literal>8859_1</literal> character encoding has
            found widespread usage.</para>

            <para>On Windows, various other encodings, referred to as
            <firstterm>code pages</firstterm> and identified by number, are used
            to store non-English text. The corresponding Java encoding name is
            <literal>windows-</literal> followed by the code page number, for
            example <literal>windows-850</literal>.</para>

            <para>Many common cross-platform international character sets are
            also supported; <literal>KOI8_R</literal> for Russian text,
            <literal>Big5</literal> and <literal>GBK</literal> for Chinese, and
            <literal>SJIS</literal> for Japanese.</para>
        </section>
    </section>

    <section id="vfs-browser">
        <title>The File System Browser (FSB)</title>

        <para><guimenu>Utilities</guimenu>&gt;<guimenuitem>File System
        Browser</guimenuitem> displays the file system browser. By default, the
        file system browser is shown in a floating window. This window can be
        docked using the commands in its top-left corner popup menu; see <xref
        linkend="docking" />.</para>

        <para>The FSB can be customized in the
        <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
        dialog box; see <xref
        linkend="vfs-browser-pane" />.</para>

        <section>
            <title>Navigating the File System</title>

            <para>The directory to browse is specified in the
            <guibutton>Path</guibutton> text field. Clicking the mouse in the
            text field automatically selects its contents allowing a new path to
            be quickly typed in. If a relative path is entered, it will be
            resolved relative to the current path. This text field remembers
            previously entered strings; see <xref linkend="history" />. The same
            list of previously browsed directories is also listed in the
            <guimenu>Utilities</guimenu>&gt;<guisubmenu>Recent
            Directories</guisubmenu> menu; selecting one opens it in the file
            system browser.</para>

            <para>To browse a listed directory, double-click it (or if you have
            a three-button mouse, you can click the middle mouse button as
            well). Alternatively, click the disclosure widget next to a
            directory to list its contents in place. To browse higher up in the
            directory hierarchy, double-click one of the parent directories in
            the parent directory list.</para>

            <para>Files and directories in the file list are shown in different
            colors depending on what glob patterns their names match. The
            patterns and colors can be customized in the <guibutton>File System
            Browser</guibutton>&gt;<guibutton>Colors</guibutton> pane of the
            <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
            dialog box.</para>

            <para>The <guibutton>Path:</guibutton> Text Box can be used to
            navigate to a specific directory. Environment variables are expanded
            here, allowing for both <literal>$VARNAME</literal> or
            <literal>%VARNAME%</literal> syntax. </para>

            <para> <literal>A+Up</literal> is a keyboard shortcut that brings
            you to the parent directory. </para>

            <para> <literal>A+Left</literal> and <literal>A+Right</literal> navigate back and forward through the visited directory stacks, in a
            Netscape/Konqueror/IE like fashion. </para>

            <para>To see a specific set of files only (for example, those whose
            names end with <filename>.java</filename>), enter a glob pattern in
            the <guibutton>Filter</guibutton> text field. This text fields
            remembers previously entered strings. See <xref linkend="globs" />
            for information about glob patterns.</para>

            <para>Unopened files can be opened by double-clicking (or by
            clicking the middle mouse button). Open files have their names
            underlined, and can be selected by single-clicking. Holding down
            <keycap>Shift</keycap> while opening a file will open it in a new
            view.</para>

            <para>Clicking a file or directory with the right mouse button
            displays a popup menu containing various commands.
            <!-- Note that attempting to delete a directory containing files will give an error; only empty directories can be deleted. -->
            </para>

            <tip>
                <para>The file list sorting algorithm used in jEdit handles
                numbers in file names in an intelligent manner. For example, a
                file named <filename>section10.xml</filename> will be placed
                after a file named <filename>section5.xml</filename>. A
                conventional letter-by-letter sort would have placed these two
                files in the wrong order.</para>
            </tip>
        </section>

        <section>
            <title>The Tool Bar</title>

            <para>The file system browser has a tool bar containing a number of
            buttons. Each item in the <guibutton>Commands</guibutton> menu
            (described below) except <guimenuitem>Show Hidden
            Files</guimenuitem> and <guisubmenu>Encoding</guisubmenu> has a
            corresponding tool bar button.</para>
        </section>

        <section>
            <title>The Commands Menu</title>

            <para>Clicking the <guibutton>Commands</guibutton> button displays a
            menu containing the following items:</para>

            <itemizedlist>
                <listitem>
                    <para><guimenuitem>Parent Directory</guimenuitem> - moves up
                    in the directory hierarchy. The Alt+Left arrow keyboard shortcut achieves the same thing. </para>
                </listitem>

                <listitem>
                    <para><guimenuitem>Reload Directory</guimenuitem> - reloads
                    the file list from disk. F5 does this also. </para>
                </listitem>

                <listitem>
                    <para><guimenuitem>Root Directory</guimenuitem> - on Unix,
                    goes to the root directory (<filename>/</filename>). On
                    Windows and MacOS X, lists all mounted drives and network
                    shares. The forward slash (/) achieves this too. </para>
                </listitem>

                <listitem>
                    <para><guimenuitem>Home Directory</guimenuitem> - displays
                    your home directory. Keyboard shortcut: ~ </para>
                </listitem>

                <listitem>
                    <para><guimenuitem>Directory of Current Buffer</guimenuitem>
                    - displays the directory containing the currently active
                    buffer. Shortcut: - </para>
                </listitem>

                <listitem>
                    <para><guimenuitem>New File</guimenuitem> (Ctrl+N) - opens new, empty, buffer in the current directory. The file will not actually be created on disk until the buffer is
                    saved.</para>
                </listitem>

                <listitem>
                    <para><guimenuitem>New Directory</guimenuitem> - creates a
                    new directory after prompting for the desired name.</para>
                </listitem>

                <listitem>
                    <para><guimenuitem>Search in Directory</guimenuitem> -
                    displays the search and replace dialog box set to search all
                    files in the current directory. If a file is selected when
                    this command is invoked, its extension becomes the file name
                    filter for the search; otherwise, the file name filter
                    entered in the browser is used. See <xref
                    linkend="search-replace" /> for details.</para>
                </listitem>

                <listitem>
                    <para><guimenuitem>Show Hidden Files</guimenuitem> - toggles
                    if hidden files are to be shown in the file list.</para>
                </listitem>

                <listitem>
                    <para><guisubmenu>Encoding</guisubmenu> - a menu for
                    selecting the character encoding to use when opening files.
                    See <xref linkend="encodings" />.</para>
                </listitem>
            </itemizedlist>
        </section>

        <section>
            <title>The Plugins Menu</title>

            <para>Clicking the <guibutton>Plugins</guibutton> button displays a
            menu containing plugin commands. For information about plugins, see
            <xref linkend="using-plugins" />.</para>
        </section>

        <section>
            <title>The Favorites Menu</title>

            <para>Clicking the <guibutton>Favorites</guibutton> button displays
            a menu showing all files and directories in the favorites list. The
            <guimenuitem>Add to Favorites</guimenuitem> item adds the currently
            selected file to the favorites list. If nothing is selected, the
            current directory is added. To remove a file from the favorites,
            invoke <guimenuitem>Edit Favorites</guimenuitem>, which will show
            the favorites list in the file system view, then select
            <guimenuitem>Delete</guimenuitem> from the right-click menu of the
            entry you want to remove.</para>
        </section>

        <section>
            <title>Keyboard Shortcuts</title>

            <para>Completion behaves differently in file dialogs than in the
            stand-alone file system browser window.</para>

            <para>In the file dialog, keyboard input goes in the file name field
            by default. Pressing <keycap>Enter</keycap> opens the file or
            directory path that is either fully or partially entered in the file
            name field. Typing the first few characters of a file's name selects
            that file. If the file name field is empty and nothing is selected,
            <keycap>/</keycap> lists the root directory on Unix and the list of
            drives on Windows. There are two handy abbreviations that may be
            used in file paths: <keycap>~</keycap> expands to the home
            directory, and <keycap>-</keycap> expands to the current buffer's
            directory.</para>

            <para>For example, to open a file
            <filename>/home/slava/jEdit/doc/TODO.txt</filename>, you might enter
            <filename>~/j/d/to</filename>.</para>

            <para>In the stand-alone file system browser, keyboard input is
            handled slightly differently. There is no file name field, instead
            shortcuts are active when the file tree has keyboard focus.
            Additionally, pressing <keycap>/</keycap>, <keycap>~</keycap> or
            <keycap>-</keycap> always immediately goes to the root, home and
            current buffer's directory, respectively.</para>
        </section>
    </section>

    <section id="reloading">
        <title>Reloading From Disk</title>

        <para>When a view is brought to the foreground, jEdit checks if any open
        buffers were modified on disk by another application. All affected
        buffers are listed in a dialog box. By default, buffers without unsaved
        changes are automatically reloaded. This feature can be disabled, or
        changed to prompt if files should be reloaded first, in the
        <guibutton>General</guibutton> pane of the
        <guimenu>Utilities</guimenu>&gt;<guimenuitem>Options</guimenuitem>
        dialog box; see <xref
        linkend="global-opts" />.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Reload</guimenuitem> can
        be used to reload the current buffer from disk at any other time; a
        confirmation dialog box will be displayed first if the buffer has
        unsaved changes.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Reload All</guimenuitem>
        discards unsaved changes in all open buffers and reload them from disk,
        asking for confirmation first.</para>
    </section>

    <section id="task-monitor">
        <title>Task Monitor, and background I/O tasks</title>

        <para>To improve responsiveness and perceived performance, jEdit
        executes all buffer input/output tasks asynchronously. Plugins should
        do the same.
        When a task such as this is in progress, the status bar should display the number of running tasks and an icon that spins. If you do not see this, you can add the widget from the <xref linkend="status-bar-pane"/>.  </para>

        <para>The
        <guimenu>Utilities</guimenu>&gt;<guisubmenu>Troubleshooting</guisubmenu>&gt;
        <guimenuitem>Task Monitor</guimenuitem> command displays a window with more
        detailed status information and progress meters for each task. By default, the
        <guimenuitem>Task Monitor</guimenuitem> is shown in a floating
        window. This window can be docked using the commands in its top-left
        corner popup menu; see <xref linkend="docking" />. Tasks can be aborted in this window, however note that aborting a buffer save can result in data loss.</para>

    </section>

    <section id="printing">
        <title>Printing</title>

        <para>jEdit printing is much like you'd expect from any text editor application, you can select the printer, specify specific pages to print, the number of copies, and a number of printer and page options that are supported by the printer such as color printing, duplex printing, and so on. The specific options available are determined by the chosen printer. Print preview is also available, as are several jEdit specific settings such as printing a header and/or footer, line numbers, etc.
        </para>

        <para>The printer dialog is accessed by <guimenu>File</guimenu>&gt;<guimenuitem>Print</guimenuitem>
        (shortcut: <keycap>C+p</keycap>) which prints the current buffer. All printing options are set in this dialog. At this time, there is no option to print multiple buffers at once.</para>

        <para>The print output can be customized in the printer dialog.
        In addition to the standard printing options, the following jEdit-specific printing settings can be changed:</para>

        <itemizedlist>
            <listitem>
                <para>The font to use when printing.</para>
            </listitem>

            <listitem>
                <para>If a header with the file name should be printed on each
                page.</para>
            </listitem>

            <listitem>
                <para>If a footer with the page number and current date should
                be printed on each page.</para>
            </listitem>

            <listitem>
                <para>If line numbers should be printed.</para>
            </listitem>

            <listitem>
                <para>The tab size to use when printing - this will usually be
                less than the text area tab size, to conserve space in the
                printed output.</para>
            </listitem>

            <listitem>
                <para>If folded regions should be printed.</para>
            </listitem>

        </itemizedlist>

        <para>
          In the Utilities - Global Options - Text Area settings, there is an option to show page break markers. If selected, horizontal lines will be displayed in the text area to indicate where page breaks will be when printing.</para>

        <para>
          There is also an action available in the View menu, to toggle the the page break markers on and off. Page break markers are just what they sound like, they show where page breaks would be for printing. Note that jEdit is not a word processor, so the page breaks are calculated based on printer settings and print font size. It is not possible to set a page break at a specific point in a file.
        </para>
    </section>

    <section id="closing-exiting">
        <title>Closing Files and Exiting jEdit</title>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Close</guimenuitem>
        (shortcut: <keycap>C+w</keycap>) closes the current buffer. If it has
        unsaved changes, jEdit will ask if they should be saved first.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Close Others</guimenuitem>
        closes all buffers except the current buffer. If any have
        unsaved changes, jEdit will ask if they should be saved first.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Close All</guimenuitem>
        closes all buffers in the current View. If any buffers
        have unsaved changes, they will be listed in a dialog box where they can
        be saved or discarded. In the dialog box, multiple buffers to operate on
        at once can be selected by clicking on them in the list while holding
        down <keycap>Control</keycap>. After all buffers have been closed, a new
        untitled buffer is opened.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Close (Global)</guimenuitem>
        closes the current buffer in all Views. If it has
        unsaved changes, jEdit will ask if they should be saved first.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Close All (Global)</guimenuitem>
        (shortcut: <keycap>C+e C+w</keycap>) closes all buffers in all Views. If any
        buffers have unsaved changes, they will be listed in a dialog box where they can
        be saved or discarded. In the dialog box, multiple buffers to operate on
        at once can be selected by clicking on them in the list while holding
        down <keycap>Control</keycap>. After all buffers have been closed, a new
        untitled buffer is opened.</para>

        <para><guimenuitem>Close Others</guimenuitem>, <guimenuitem>Close All</guimenuitem>, and <guimenuitem>Close All (Global)</guimenuitem> can ask for confirmation before closing. The confirmation dialog can be shown by checking the '"Close All" asks for confirmation' box in Utilities - Global Options - General.</para>

        <para><guimenu>File</guimenu>&gt;<guimenuitem>Exit</guimenuitem>
        (shortcut: <keycap>C+q</keycap>) will completely exit jEdit, prompting
        if unsaved buffers should be saved first.</para>
    </section>
</chapter>
