<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" 
"dtd/kdex.dtd" [
  <!ENTITY kappname "&kwrite;">  
  <!ENTITY package "kdebase">
  <!ENTITY % addindex "IGNORE"> 
  <!ENTITY % English "INCLUDE" > <!-- change language only here -->   
]>  
  
<book lang="&language;">  

<bookinfo>  
<title>The &kwrite; Handbook</title>  
<authorgroup>  
<author>  
<firstname>Thad</firstname><surname>McGinnis</surname>  
<affiliation><address><email>ctmcginnis@compuserve.com</email></address>
</affiliation>
</author>

<othercredit role="developer">
<firstname>Christoph</firstname>
<surname>Cullmann</surname>
<affiliation>
<address><email>cullmann@kde.org</email></address>
</affiliation>
<contrib>Core Developer and Maintainer</contrib>
</othercredit>

<othercredit role="reviewer">
<firstname>Lauri</firstname><surname>Watts</surname>
<contrib>Reviewer</contrib>
<affiliation><address><email>lauri@kde.org</email></address></affiliation>
</othercredit>

<!-- TRANS:ROLES_OF_TRANSLATORS -->

</authorgroup>

<copyright>
<year>2000</year><year>2001</year>
<holder>Thad McGinnis</holder>
</copyright>
<legalnotice>&FDLNotice;</legalnotice>

<date>2001-06-13</date>
<releaseinfo>2.00.00</releaseinfo>

<abstract>
<para>&kwrite; is a text editor for &kde;</para>
</abstract>

<keywordset>
<keyword>KDE</keyword>
<keyword>KWrite</keyword>
<keyword>text</keyword>
<keyword>editor</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction">
<title>Introduction</title>

<para>
&kwrite; is more than a text editor for the &kde; Desktop. It is meant
to be a programmer's editor, and could be considered as at least a
partial alternative to more powerful editors.  It may be best used in
conjunction with &konqueror; for source file browsing for different
languages. &kwrite; also works very well as a simple text editor.  One
of &kwrite;'s main features is the colorized syntax, customized for many
different programming languages such as: C/C++, &Java;, Python, Perl,
Bash, Modula 2, <acronym>HTML</acronym>, and Ada.
</para>

</chapter>

<chapter id="on-screen-fundamentals">  
<title>Some Fundamentals</title>  
  
<para>
&kwrite; is very simple to use. Anyone that has used a text editor
should have no problems.
</para>
  
<sect1 id="drag-and-drop">  
<title>Drag and Drop</title>  
  
<para>
&kwrite; uses the &kde; Drag and Drop protocol. Files may be dragged and
dropped onto &kwrite; from the Desktop, &konqueror; or some remote &FTP;
site opened in one of &konqueror;'s windows.
</para>
</sect1>
  
<sect1 id="command-line-options">  
<title>Command Line Options</title>  
  
<para>
Though &kwrite; may most often be started from the KDE program menu, or
a desktop icon, it can also be opened at the command line prompt of a
terminal window.  There are a few useful options that are available when
doing this.  
</para>
  
<sect2 id="specify-a-file">  
<title>Specify a File</title>  
  
<para>By specifying the path and name of a particular file the user can  
have &kwrite; open (or create) that file immediately upon startup.  This
option might look something like the following:</para>

<informalexample><screen>
<prompt>%</prompt> <userinput><command>kwrite</command> 
<option><replaceable>/home/myhome/docs/myfile.txt</replaceable></option></userinput>
</screen>
</informalexample>
</sect2>
<sect2 id="editing-files-on-the-internet">
<title>Specify a file on the internet</title>

<para>The above-mentioned method could even be used to open files on the
internet (if the user has an active connection at the time.)  An example of
this might look like the following:</para>

<informalexample><screen>
<prompt>%</prompt> <userinput><command>kwrite</command> 
<option><replaceable>ftp://ftp.kde.org/pub/kde/Welcome.msg</replaceable></option></userinput>
</screen>
</informalexample>

</sect2>

<sect2 id="other-command-line-options">
<title>Other Command Line Options</title>

<para>The following command line help options are available</para>

<variablelist>
<varlistentry>  
<term><userinput><command>kwrite</command> 
<option>--help</option></userinput></term>  
<listitem><para>This lists the most basic options available at the command  
line.</para></listitem>  
</varlistentry>  
<varlistentry>  
<term><userinput><command>kwrite</command> 
<option>--help-qt</option></userinput></term>
<listitem><para>This lists the options available for changing the way  
&kwrite; interacts with &Qt;.</para></listitem>  
</varlistentry>  
<varlistentry>  
<term><userinput><command>kwrite</command> 
<option>--help-kde</option></userinput></term>
<listitem><para>This lists the options available for changing the way  
&kwrite; interacts with &kde;.</para></listitem>  
</varlistentry>  
<varlistentry>  
<term><userinput><command>kwrite</command> 
<option>--help-all</option></userinput></term>
<listitem><para>This lists all of the command line options.</para></listitem>  
</varlistentry>  
<varlistentry>  
<term><userinput><command>kwrite</command> 
<option>--author</option></userinput></term>
<listitem><para>Lists &kwrite;'s authors in the terminal 
window</para></listitem>  
</varlistentry>  
<varlistentry>  
<term><userinput><command>kwrite</command> 
<option>--version</option></userinput></term>
<listitem><para>Lists version information for &Qt;, &kde;, and &kwrite;. Also 
available through <userinput><command>kwrite</command> 
<option>-V</option></userinput> </para></listitem>
</varlistentry>  
</variablelist>  
</sect2>
</sect1>  
  
<sect1 id="keybindings">  
<title>Key Bindings</title>  
  
<para>Many of the key bindings (shortcuts) are configurable by way of the <link  


linkend="settings">Settings</link> menu.  By default &kwrite; honors the  
following key bindings.</para>  
  
<informaltable>  
<tgroup cols="2">  
<tbody>  
  
<row><entry><para><keycombo 
action="simul"><keycap>Insert</keycap></keycombo></para></entry>  
<entry><para> Toggle between Insert and Overwrite mode. When in insert mode the
editor will add any typed characters to the text while pushing along any data to
the right of the text cursor. Overwrite mode causes the entry of each character
to eliminate the character immediately to the right of the text
cursor.</para></entry>
</row>  
<row>  
<entry><para><keycombo action="simul"><keycap>Left 
Arrow</keycap></keycombo></para></entry>  
<entry><para>Move the cursor one character to the left </para></entry>  
</row>  
<row>  
<entry><para><keycombo action="simul"><keycap>Right 
Arrow</keycap></keycombo></para></entry>  
<entry><para> Move the cursor one character to the right </para></entry>  
</row>  
<row>  
<entry><para><keycombo action="simul"><keycap>Up 
Arrow</keycap></keycombo></para></entry>  
<entry><para> Move the cursor up one line  </para></entry>  
</row>  
<row>  
<entry><para><keycombo action="simul"><keycap>Down 
Arrow</keycap></keycombo></para></entry>  
<entry><para> Move the cursor down one line </para></entry>  
</row>  
<row>  
<entry><para><keycombo action="simul"><keycap>Page 
Up</keycap></keycombo></para></entry>  
<entry><para> Move the cursor up one page  </para></entry>  
</row>
<row>  
<entry><para><keycombo action="simul"><keycap>Page 
Down</keycap></keycombo></para></entry>  
<entry><para>Move the cursor down one page  </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul"><keycap>Backspace</keycap></keycombo></para></entry>  
<entry><para> Delete the character to the left of the cursor </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul"><keycap>Home</keycap></keycombo></para></entry>  
<entry><para> Move the cursor to the beginning of the line </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul"><keycap>End</keycap></keycombo></para></entry>  
<entry><para> Move the cursor to the end of the line </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul"><keycap>Delete</keycap></keycombo></para></entry>  
<entry><para>Delete the character to the right of the cursor (or any selected  
text)</para></entry>  
</row>  
<row>  
<entry><para><keycombo action="simul">&Shift;<keycap>Left 
Arrow</keycap></keycombo></para></entry>  
<entry><para> Mark text one character to the left </para></entry>  
</row>  
<row>  
<entry><para><keycombo action="simul">&Shift;<keycap>Right 
Arrow</keycap></keycombo></para></entry>  
<entry><para> Mark text one character to the right </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul"><keycap>F1</keycap></keycombo></para></entry>  
<entry><para> Help</para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Shift;<keycap>F1</keycap></keycombo></para></entry>
<entry><para>What's this?</para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>F</keycap></keycombo></para></entry>  
<entry><para><link linkend="find"> Find</link></para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul"><keycap>F3</keycap></keycombo></para></entry>  
<entry><para><link linkend="find-again"> Find again</link></para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>C</keycap></keycombo></para></entry>  
<entry><para> Copy the marked text to the clipboard. </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>M</keycap></keycombo></para></entry>  
<entry><para>Set a Bookmark</para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>N</keycap></keycombo></para></entry>  
<entry><para> <link linkend="new">New</link> document</para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>P</keycap></keycombo></para></entry>  
<entry><para><link linkend="print">Print</link> </para></entry>  
</row>  
<row>
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>Q</keycap></keycombo></para></entry>
<entry><para>Quit - close active copy of editor </para></entry>
</row>
<row>
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>R</keycap></keycombo></para></entry>
<entry><para><link linkend="replace"> Replace</link></para></entry>
</row>
<row>
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>S</keycap></keycombo></para></entry>
<entry><para>Invokes the <link
linkend="save"><guilabel>Save</guilabel></link> command.</para></entry>
</row>
<row>
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>V</keycap></keycombo></para></entry>
<entry><para> Paste the clipboard text into line edit. </para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>X</keycap></keycombo></para></entry>  
<entry><para>Delete the marked text and copy it to the clipboard. 
</para></entry>
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;<keycap>Z</keycap></keycombo></para></entry>  
<entry><para><link linkend="undo">Undo</link></para></entry>  
</row>  
<row>  
<entry><para><keycombo 
action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo></para></entry>  
<entry><para><link linkend="redo">Redo</link></para></entry>  
</row>  
</tbody>  
</tgroup>  
</informaltable>  
</sect1>  
</chapter>  
  
<chapter id="the-menu-entries">  
<title>The Menu Entries</title>  
  
<sect1 id="file">  
<title>The <guimenu>File</guimenu> Menu</title>  
  
<variablelist>  
  
<varlistentry>  
<term id="new">
<menuchoice>  
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>N</keycap></keycombo>
</shortcut>  
<guimenu>File</guimenu>
<guimenuitem>New</guimenuitem></menuchoice></term>  
<listitem>
<para>
This starts a new Document in the editor. If there is a current  
document with unsaved changes the user is given a chance to save it.
</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="open">
<menuchoice>  
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>O</keycap></keycombo>
</shortcut>  
<guimenu>File</guimenu>
<guimenuitem>0pen...</guimenuitem>
</menuchoice>
</term>  

<listitem>
<para>
This command opens a file.  It does this by means of a dialog box which
allows the user to navigate the file system.  The dialog operates like a
small file manager. Clicking on directories displayed in the central
window directs the dialog to enter that directory - displaying its
contents.  There is an entry/dropdown box which can be used to type in
directly the location and name of the file or by clicking the arrow at
the side choose from a dropdown list of recently used locations. Below
this is a filter which similarly may have data entered directly or
chosen from a dropdown list of recent filter types.  The filter facility
lets only files that meet its specifications be displayed in the central
window. If the filter contained text such as <literal
role="extension">*.txt</literal> then only files with the <literal
role="extension">txt</literal> extension would be visible in the
selection window. Below the filter is a status bar giving information
about the number of files and subdirectories within the current
directory.
</para>

<para>
The toolbar, which is located at the top of the dialog, has left and
right arrow buttons that let the user move back and forth through
previously selected directories as well as an up arrow button for moving
up the directory tree. The button with the little house takes the user
to his or her home directory and the one with the two arrows curved in
on each other updates the view of the current directory. The flag button
lets the user set a new bookmark at the current directory or go to one
that was previously set. 
</para>

<para>
The last button on the toolbar allows you to create a new directory, and
even change some basic settings for the dialog box, and finally there is
dropdown box with a list of some commonly frequented directories.
</para>
</listitem>
</varlistentry>  
  
<varlistentry>  
<term id="open-recent">
<menuchoice>  
<guimenu>File</guimenu>
<guisubmenu>Open Recent</guisubmenu>
</menuchoice>
</term> 
<listitem>
<para>
This is a shortcut to open recently saved documents. Clicking on this
item opens a list to the side of the menu with several of the most
recently saved files. Clicking on a specific file will open it in
&kwrite; - if the file still resides at the same
location. 
</para>
</listitem>
</varlistentry>
  
<varlistentry>  
<term id="save">
<menuchoice>  
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>S</keycap></keycombo>
</shortcut>  
<guimenu>File</guimenu>
<guimenuitem>Save</guimenuitem>
</menuchoice>
</term>  
<listitem>
<para>
This saves the current document.  If there has already been a save of
the document then this will overwrite the previously saved file without
asking for the user's consent.  If it is the first save of a new
document the save as dialog (described below) will be invoked.
</para>
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="save-as">
<menuchoice>
<guimenu>File</guimenu>
<guimenuitem>Save As...</guimenuitem>
</menuchoice>
</term>  
<listitem>
<para>
This allows a document to be saved with a new file name. This is done by
means of the file dialog box described above in the <link
linkend="open">Open</link> section of this help file.  
</para>
</listitem>
</varlistentry>
  
<varlistentry>  
<term id="print">
<menuchoice>  
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>P</keycap></keycombo>
</shortcut>  
<guimenu>File</guimenu>
<guimenuitem>Print...</guimenuitem>
</menuchoice>
</term>  
<listitem>  
<para>
Opens a simple print dialog allowing the user to specify what, where,
and how to print
</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="new-view">
<menuchoice>  
<guimenu>File</guimenu>
<guimenuitem>New View</guimenuitem>
</menuchoice>
</term>  
<listitem>  
<para>
This creates a new view of the current document, &ie;, a new instance of
&kwrite; (as explained in the previous entry) but containing the same
document.
</para>
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="close">
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>Q</keycap></keycombo>
</shortcut>  
<guimenu>File</guimenu>
<guimenuitem>Quit</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>
This will close the editor window, if you have more than one instance of
&kwrite; running, through the <guimenuitem>New View</guimenuitem> or
<guimenuitem>New Window</guimenuitem> menu items, those instances will
not be closed.
</para>
</listitem>
</varlistentry>  
  
</variablelist>  
  
</sect1>  
  
<sect1 id="edit">  
<title>The <guimenu>Edit</guimenu> Menu</title>  
  
<variablelist>  
<varlistentry>
<term id="undo"><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>Z</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu>
<guimenuitem>Undo</guimenuitem></menuchoice></term>
<listitem>  
<para>This is used to eliminate or reverse the most recent user action
or operation. Just what constitutes such an action may be better
understood by referring to the <link linkend="group-undos">Group
Undos</link> portion of this help file.</para>   
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="redo"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;&Shift;<keycap>Z</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu><guimenuitem>Redo</guimenuitem></menuchoice></term>  
<listitem>  
<para>This will reverse the most recent change (if any) made using Undo</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="undohistory"/><menuchoice>  
<guimenu>Edit</guimenu><guimenuitem>Undo/Redo 
History</guimenuitem></menuchoice></term>  
<listitem>  
<para>This will call a display box showing a list of the most recent actions on  


the left and another list of actions which have been 'undone' on the right.  
There are also three buttons at the right of the box labeled  
<guibutton>Undo</guibutton>, <guibutton>Redo</guibutton>, and  
<guibutton>Close</guibutton>.  Clicking on the <guibutton>Undo</guibutton>  
button will cause the action at the top of the Undo list to be reversed which  
will place that particular action at the top of the Redo list. Likewise,  
clicking on the <guibutton>Redo</guibutton> button will reinstate the reversed  
action and move it back to the top of the Undo list.  Clicking on an item below  


the top item in either list will select all the items from the top down to that  


point.  A subsequent click on the corresponding button will cause all the  
selected actions to be undone or redone accordingly.  This would be particularly 

 
useful when the user knows precisely the point to which she or he would like to  


proceed - making it unnecessary to go through a series of single undo or redo  
actions.</para>   
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="cut"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>X</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu><guimenuitem>Cut</guimenuitem></menuchoice></term>  
<listitem>  
<para>This command deletes the current selection and places it on the clipboard. 

 The  
clipboard is a feature of KDE that works invisibly to provide a way to transfer 
data between  
applications.</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="copy"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>C</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu><guimenuitem>Copy</guimenuitem></menuchoice></term>  
<listitem>  
<para>This copies the currently selected text to the clipboard so that it may be 

 
pasted elsewhere.  The clipboard is a feature of KDE that works invisibly to  
provide a way to transfer data between applications.</para>   
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="paste"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>V</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice></term>  
<listitem>  
<para>This will insert the contents of the clipboard at the cursor position. The 

 
clipboard is feature of KDE that works invisibly to provide a way to transfer  
data between applications.</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="select-all"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>A</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu><guimenuitem>Select All</guimenuitem></menuchoice></term>
<listitem>  
<para>This will select the entire document. This could be very useful for  
copying the entire file to another application.</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="invert-the-selection"/><menuchoice>  
<guimenu>Edit</guimenu><guimenuitem>Invert 
Selection</guimenuitem></menuchoice></term>  
<listitem>  
<para>This selects any unselected text while unselecting any selected text -  
effectively reversing the current state of selection.</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="go-to-line">
<menuchoice>  
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>G</keycap></keycombo>
</shortcut>
<guimenu>Find</guimenu>
<guimenuitem>Go to line</guimenuitem></menuchoice></term>  
<listitem>  
<para>
This opens the goto line dialog box which is used to have the cursor
jump to a particular line (specified by number) in the document.  The
line number may be entered directly into the text box or graphically by
clicking on the up or down arrow spin controls at the side of the text
box. The little up arrow will increase the line number and the down
arrow decrease it.  There is also a slide control to the right of the
text box which allows the user to move the goto point in the document in
an analog manner.
</para> 
</listitem> 
</varlistentry>
        
<varlistentry>  
<term><anchor id="find"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>F</keycap></keycombo></shortcut>
<guimenu>Edit</guimenu><guimenuitem>Find</guimenuitem></menuchoice></term>
<listitem>  
<para>This opens the find dialog which is used to specify the <guilabel>Text to  


Find</guilabel> in the document. There is small text box for entering the search 

 
pattern which also doubles as a dropdown box. Clicking on the dropdown arrow at  


the side of the box makes available other recent search patterns. Other  
parameters are included to make the search more efficient. Selecting  
<guilabel>Case Sensitive</guilabel> will limit finds to entries that match the  
case (upper or lower) of each of the characters in the search  
pattern. <guilabel>Find Backwards</guilabel> directs the search to proceed in an 

 
upwardly direction. The <guilabel>Selected Text</guilabel> option keeps the  
search within currently selected text. Checking <guilabel>Whole Words
Only</guilabel> prevents the search from stopping on words that contain the
searched for pattern. The <guilabel>Search from Cursor</guilabel> option begins  


the search from the current position of the cursor within the document rather  
than from the beginning.</para>   
</listitem>  
</varlistentry>  

<varlistentry>  
<term><anchor id="find-again"/><menuchoice>  
<shortcut><keycombo action="simul"><keycap>F3</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu><guimenuitem>Find Next</guimenuitem></menuchoice></term>  


<listitem>  
<para>This repeats the last find operation, if any, without calling the find  
dialog box.</para> </listitem>  
</varlistentry>  
  
<varlistentry>
<term id="find-previous">
<menuchoice>
<shortcut>
<keycombo action="simul">&Shift;<keycap>F3</keycap></keycombo>
</shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Find Previous</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>
This repeats the last find operation, if any, without calling the find  
dialog box, and searching backwards instead of forwards through the
document.
</para>
</listitem>
</varlistentry>

<varlistentry>  
<term><anchor id="replace"/><menuchoice>  
<shortcut><keycombo 
action="simul">&Ctrl;<keycap>R</keycap></keycombo></shortcut>  
<guimenu>Edit</guimenu><guimenuitem>Replace</guimenuitem></menuchoice></term>
<listitem>  
<para>This command opens the replace dialog box.  The replace dialog is  
almost identical to the above-mentioned find dialog.  In addition to the features in
the find dialog it contains a <guilabel>Replace With:</guilabel> text
entry/dropdown box.  Using this dialog the user can specify both the text to be found
and text with which to replace it.  The additional <guilabel>Prompt
On Replace</guilabel> option allows the user to have &kwrite; ask for
confirmation before each replacement.</para> </listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>M</keycap></keycombo>
</shortcut>
<guimenu>Edit</guimenu>
<guimenuitem>Editing Command</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>  
  
<sect1 id="go">  
<title>The <guimenu>Bookmarks</guimenu> Menu</title>  

<variablelist>  
<varlistentry>
<term id="toggle-bookmarks">
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>B</keycap></keycombo>
</shortcut>
<guimenu>Bookmarks</guimenu>
<guimenuitem>Toggle Bookmark</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term id="clear-bookmarks">
<menuchoice>  
<guimenu>Bookmarks</guimenu>
<guimenuitem>Clear Markers</guimenuitem>
</menuchoice>
</term>  
<listitem>  
<para>
This command will remove all the markers from the docucument as well as
the list of markers which is appended at the bottom of this menu
item.
</para> 
</listitem> 
</varlistentry> 
</variablelist>
  
<para>
At the bottom of this menu, a list of markers appears if any markers are
available for this window.
</para>

</sect1>  
  
<sect1 id="tools">  
<title>The <guimenu>Tools</guimenu> Menu</title>  
  
<variablelist>
<varlistentry>
<term><anchor id="Spelling..."/><menuchoice>
<guimenu>Tools</guimenu><guimenuitem>Spelling...</guimenuitem></menuchoice></term>

<listitem><para><action>This initiates the spell checking program - a program
designed to help the user catch and correct any spelling errors.</action>
Clicking on this entry will start the checker and bring up the speller dialog
box through which the user can control the process.  There are three text boxes
lined up vertically in the center of the dialog with their corresponding labels
just to the left.  Starting at the top they are:</para>

<variablelist>
<varlistentry>
<term><guilabel>Misspelled Word:</guilabel></term>
<listitem><para>Here, the spell checker indicates the word currently under
consideration.  This happens when the checker encounters a word not in its
dictionary - a file containing a list of correctly spelled words against which
it compares each word in the editor.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Replacement:</guilabel></term>
<listitem><para> If the checker has any similar words in its dictionary the
first one will be listed here.  The user can accept the suggestion, type in his
or her own correction, or choose a different suggestion from the next
box.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Suggestions:</guilabel></term>
<listitem><para> The checker may list here a number of possible replacements for
the word under consideration.  Clicking on any one of the suggestions will cause
that word to be entered in the <guilabel>Replacement:</guilabel> box,
above.</para></listitem>
</varlistentry>
</variablelist>

<para>On the right side of the dialog box are 6 buttons that allow the user to
control the spell check process.  They are:</para>

<variablelist>
<varlistentry>
<term><guibutton>Replace</guibutton></term>
<listitem><para> This button has the checker replace the word under
consideration in the document with the word in the
<guilabel>Replacement:</guilabel> box.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Replace All</guibutton></term>
<listitem><para> This button causes the checker to replace not only the current
<guilabel>Misspelled Word:</guilabel> but to automatically make the same
substitution for any other occurences of this <guilabel>Misspelled
Word:</guilabel> in the document.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Ignore</guibutton></term>
<listitem><para>Activating this button will have the checker move on without
making any changes.</para></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Ignore All</guibutton></term>
<listitem><para> This button tells the checker to do nothing with the current
<guilabel>Misspelled Word:</guilabel> and to pass over any other instances of
the same word.</para> <note><para>This only applies to the current spell check
run.  If the checker is run again later it will stop on this same
word.</para></note></listitem>
</varlistentry>
<varlistentry>
<term><guibutton>Add</guibutton></term>
<listitem><para>Pressing this button adds the word in the <guilabel>Misspelled
Word:</guilabel> box to the checker's dictionary. This means that in the future
the checker will always consider this word to be correctly
spelled.</para></listitem>
</varlistentry>

<varlistentry>
<term><guibutton>Stop</guibutton></term>
<listitem><para> This button stops the spell check process.</para></listitem>
</varlistentry>

</variablelist>

<para>Located horizontally along the bottom of the spell check dialog is a
progress bar.  As the checking process proceeds the bar will fill from left to
right providing a graphical representation of how far along in the document the
process has reached.  In addition, the progress is displayed numerically in
the center of the progress bar.</para>

<note><para>A numerical display of the spell check
process is simultaneously displayed in the status bar of the editor.  The <link
linkend="show-statusbar">status bar</link> is the horizontal strip at the bottom
of the editor just outside of the text entry area.</para></note>

<para>Two more buttons are located below the progress bar.  They are:</para>

<variablelist>
<varlistentry>
<term><guibutton>Help</guibutton></term>
<listitem><para> This invokes the KDE help system starting at the &kwrite; help
pages (this document).</para></listitem>
</varlistentry>

<varlistentry>
<term><guibutton>Cancel</guibutton></term>
<listitem><para> This button cancels the spell check process.</para></listitem>
</varlistentry>

<varlistentry>  
<term><anchor id="indent"/><menuchoice>  
<guimenu>Tools</guimenu><guimenuitem>Indent</guimenuitem></menuchoice></term>  
<listitem>  
<para>This increases the paragraph's indentation by one step. The size of the
step depends on the <link linkend="pref-indent"> indentation  
settings</link>.</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="unindent"/><menuchoice>  
<guimenu>Tools</guimenu><guimenuitem>Unindent</guimenuitem></menuchoice></term>  
<listitem>  
<para>This reduces the paragraph's indentation by one step. The size of the step  
depends on the <link linkend="pref-indent"> indentation settings</link>.</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="cleanindent"/><menuchoice>
<guimenu>Tools</guimenu><guimenuitem>Clean
Indentation</guimenuitem></menuchoice></term>  <listitem>  
<para>Not yet implemented</para>
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><menuchoice>
<guimenu>Tools</guimenu><guimenuitem>Comment</guimenuitem></menuchoice></term>
<listitem><para>This adds one space to the beginning of the line
where the text cursor is located or to the beginning of any
selected lines.</para>
</listitem>
</varlistentry>

<varlistentry>
<term><menuchoice>
<guimenu>Tools</guimenu><guimenuitem>Uncomment</guimenuitem></menuchoice></term>
<listitem><para>This removes one space (if any exist) from the beginning of the line
where the text cursor is located or from the beginning of any
selected lines.</para></listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>I</keycap></keycombo>
</shortcut>
<guimenu>Tools</guimenu>
<guimenuitem>Indent</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>U</keycap></keycombo>
</shortcut>
<guimenu>Tools</guimenu>
<guimenuitem>Unindent</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<guimenu>Tools</guimenu>
<guimenuitem>Clean Indentation</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;<keycap>#</keycap></keycombo>
</shortcut>
<guimenu>Tools</guimenu>
<guimenuitem>Comment</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>

<varlistentry>
<term>
<menuchoice>
<shortcut>
<keycombo action="simul">&Ctrl;&Shift;<keycap>#</keycap></keycombo>
</shortcut>
<guimenu>Tools</guimenu>
<guimenuitem>Uncomment</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>

</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="settings">
<title>The <guimenu>Settings</guimenu> Menu</title>

<variablelist>
<varlistentry>
<term><anchor id="show-toolbar"/><menuchoice>  
<guimenu>Settings</guimenu>
<guimenuitem>Show Toolbar</guimenuitem>
</menuchoice>
</term>  
<listitem>  
<para>
When checked, this displays a movable toolbar containing buttons used to
initiate frequently used commands. When unchecked the toolbar is hidden.
</para> 
</listitem> 
</varlistentry>
  
<varlistentry>  
<term><anchor id="show-statusbar"/><menuchoice>  
<guimenu>Settings</guimenu><guimenuitem>Show Statusbar</guimenuitem></menuchoice></term>  
<listitem>  
<para>When checked, this displays a small bar at the bottom of the editor  
containing information about the status of the current document.  When unchecked  
the statusbar is hidden.</para>     
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="show-path"/><menuchoice>  
<guimenu>Settings</guimenu><guimenuitem>Show Path</guimenuitem></menuchoice></term>
<listitem>  
<para>When selected, this displays in the title bar the path (its location in the
file system) of the current document.  When unchecked the path is hidden.</para>
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="configure-keybindings"/><menuchoice>  
<guimenu>Settings</guimenu><guimenuitem>Configure Key Bindings</guimenuitem></menuchoice></term>  
<listitem>  
<para>This command opens a dialog box whereby the <link  
linkend="keybindings">key bindings</link> may be changed.  A display window at
the top of the dialog box shows the list of commands (actions) that can have
keyboard shortcuts.  Below the display are three radio buttons.  The user may choose
between No Key, Default Key, and Custom Key.  (Note that a set of radio buttons only
allows the selection of one of the offered items - in the way that buttons on a car
radio only offer the selection of one preset station.  Also, the Default Key
selection  is only available for those commands that actually have a 'default'
shortcut.)  Selecting the Custom Key option activates the three check boxes and key
button at the bottom of the dialog. The user may then select a key
combination for the command in question by means of the check boxes and key
button. For example, with the About KDE command selected in the display window,  
the user could select &Ctrl; and <keycap>Alt</keycap>, click on  
the key button, and then press the <keycap>K</keycap> key on the keyboard.  This  
would mean that anytime he or she held down the &Ctrl; and  
<keycap>Alt</keycap> buttons and pressed <keycap>K</keycap> (while using  
&kwrite;) the About KDE display box would be called. </para>   
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="configure-toolbars"/><menuchoice>  
<guimenu>Settings</guimenu><guimenuitem>Configure Toolbars</guimenuitem></menuchoice></term>  
<listitem><para>This will open the dialog whereby the toolbar configuration may
be changed.   The user can choose which shortcut buttons should appear on the  
toolbar. A display window on the left lists the commands available to placed
on the toolbar.  A display on the right lists those commands already on the  
toolbar.  A set of four arrow buttons between the two displays manipulates the  
selections.  The right pointing arrow places any command selected in the left  
pane onto the right pane, <abbrev>i.e.</abbrev>, it is added to the toolbar.  
The left arrow does just the opposite, removing any action selected in the right  
window from the toolbar.  The up and down pointing arrows change the position of  
an action selected in the right window which changes the position of its button  
in the toolbar.</para> </listitem>   
</varlistentry>  
  
<varlistentry>  
<term><anchor id="preferences"/><menuchoice>  
<guimenu>Settings</guimenu>
<guimenuitem>Configure Editor</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>
This menu item opens a dialog whereby several different <link
linkend="pref-dialog">settings</link> may be adjusted.  
</para>
</listitem> 
</varlistentry>
  
<!-- 
<varlistentry>  
<term>
<menuchoice><guimenu>>Settings</guimenu><guimenuitem>Configure
Highlighting</guimenuitem></menuchoice></term>  
<listitem><para>Opens a dialog box allowing configuration of the syntax  
highlighting.  The dialog is described in <xref  
linkend="pref-highlighting"/>.</para></listitem>  
</varlistentry>  -->
  
<varlistentry>
<term>
<menuchoice>
<shortcut>
<keycombo action="simul"><keycap>F6</keycap></keycombo>
</shortcut>
<guimenu>Settings</guimenu>
<guimenuitem>Show Icon Border</guimenuitem>
</menuchoice>
</term>
<listitem>
<para>
Toggle the display of a border on the left of the editing window, where
bookmarks are displayed next to the line they apply to.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term id="vertical-selection">
<menuchoice>
<shortcut>
<keycombo action="simul"><keycap>F4</keycap></keycombo>
</shortcut>
<guimenu>Settings</guimenu>
<guimenuitem>Vertical Selection</guimenuitem>
</menuchoice>
</term>  
<listitem>  
<para>
This is used to turn on or off the vertical selection feature.  Vertical  
selection allows text to be selected by column as well as by row.  In other  
words with this feature the user is able to select text contained in only  
particular contiguous columns and rows.  In affect the user can select a  
rectangular area of text anywhere in the document.
</para>  
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="set-highlight">
<menuchoice>  
<guimenu>Settings</guimenu>
<guisubmenu>Highlight Mode</guisubmenu>
</menuchoice>
</term>
<listitem>  
<para>
This allows the user to choose the style of color highlighting which the
editor uses to display the text. The styles are selected by programming
language. The font/color information is not stored with the document.
</para>
</listitem>  
</varlistentry>  
  
<varlistentry>  
<term><anchor id="end-of-line"/>
<menuchoice>  
<guimenu>Settings</guimenu><guisubmenu>End of Line</guisubmenu></menuchoice></term>  
<listitem>  
<para>This opens a sub-menu from which the user can select the type of <quote>end of  
line</quote> code for &kwrite; to use, <abbrev>i.e.</abbrev>, the accepted standard  
used by &UNIX;, &Mac; or MSDOS/&Windows; systems.</para>
</listitem>  
</varlistentry>  
  
</variablelist>  
</sect1>  
  
<sect1 id="help">  
<title>The <guimenuitem>Help</guimenuitem> Menu</title>  
  
&help.menu.documentation;

</sect1>  
</chapter>
  
<chapter id="pref-dialog">  
<title>Configure &kwrite;</title>

<para>
Selecting <menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
Editor</guimenuitem></menuchoice> from the menu brings up the
<guilabel>Configure Editor</guilabel> dialog box.  This dialog can be
used to alter a number of different settings.  The settings available
for change vary according to which category the user chooses from a
vertical list on the left side of the dialog.  By means of three buttons
along the bottom of the box the user can control the process.
</para>

<para>
She or he may invoke the <guilabel>Help</guilabel> system, accept the
current settings and close the dialog by means of the
<guibutton>OK</guibutton> button, or <guibutton>Cancel</guibutton> the
process. The categories <guilabel>Colors</guilabel>,
<guilabel>Fonts</guilabel> <guilabel>Indent</guilabel>,
<guilabel>Select</guilabel>, <guilabel>Edit</guilabel>,
<guilabel>Spelling</guilabel> and <guilabel>Highlighting</guilabel> are
detailed below.  
</para>

<sect1 id="prefcolors">
<title>Colors</title>
  
<para>This section provides access to <link  
linkend="pref-color-settings">two different color settings</link>,  
described below.  Each of these settings may be changed by clicking on its  
corresponding button.  These are special wide buttons that are the color of  
the current setting.  Clicking on one of the buttons calls a special color  
dialog box used to change the setting.</para>  
  
<para>The color dialog box provides a convenient and graphical way to
select a color.  In the upper left of the box is a rectangular display of a  
spectrum of colors. To the immediate right of this, is vertical bar  
displaying a range of intensity from the most dark at the bottom to the  
most light at the top.  The user may select and adjust a color by clicking  
in these two boxes. Clicking in the rectangular display selects a  
particular mix of red, green, and blue colors and in the vertical bar  
selects a level of intensity (value).  The various color attributes are displayed  
in numerical form in small text boxes located directly below the spectral  
rectangle and the user can see them change as the color is adjusted.  These  
attributes include the mix of the basic color components (red, green, and  
blue) as well as hue and saturation levels.  Alternatively the user can  
enter figures directly in these boxes.  There is also a square at the  
bottom center of the dialog box which displays the color which is under  
consideration at any time.  To the right of this display is another text  
box labeled <guilabel>HTML:</guilabel> This shows the user the color code  
that would be used to specify the particular displayed color in  
<acronym>HTML</acronym> code which is widely used for web pages.</para>  
  
<para>In addition to the above, the color dialog allows the capture of any  
color currently displayed on the desktop or in another program.  Clicking  
on the button with the dropper icon (located on the right side of the  
dialog box,) changes the shape of the mouse cursor to a set of crosshairs.  
Clicking again will pick up the color attributes of whatever color is  
displayed under the cross hairs.</para>  
  
<para>Furthermore the user has the option of adding any color to a
personal palette of <quote>Custom Colors</quote> by clicking on the wide
button labeled <guibutton>Add to Custom Colors</guibutton> (which is
located directly above the display square.)  This adds the current color
to the custom color palette.  This palette and any other available
palettes can be displayed using the drop down selection box located
directly above the palette display at the top right of the dialog box.
Besides the custom colors, the user can access a number of pre-prepared
palettes.</para>
  
<variablelist>  
  
<varlistentry id="pref-color-settings">  
<term><guilabel>Background</guilabel></term>  
<listitem><para>Here the user can specify a color for the general
background of &kwrite;.</para></listitem>   
</varlistentry>  

<varlistentry>  
<term><guilabel>Selected</guilabel></term>  
<listitem><para>This allows the user to select a color to be used for indicating  
selected (or highlighted) portions of the document.</para></listitem> </varlistentry>  
</variablelist>  
</sect1>  

<sect1 id="pref-fonts">
<title>Fonts</title>

<para>
Here you can choose the default font for &kwrite;.  You can choose from
any font available on your system, and set a default size and encoding.
A sample text displays at the bottom of the dialog, so you can see the
effect of your choices.
</para>

</sect1>
  
<sect1 id="pref-indent">  
<title>Indent</title>  
<variablelist>  
  
<varlistentry>  
<term><guilabel>Auto Indent</guilabel></term> <listitem><para>This causes  
new lines to begin with the same indentation level as the previous  
line.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Indent With Spaces</guilabel></term> <listitem><para>This  
replaces tabs with the number of spaces selected in the Tab Width window in  
the <link linkend="pref-edit">Edit</link> section of the preferences  
dialog.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Backspace Key Indents</guilabel></term>  
<listitem><para>This allows the  
<keycombo action="simul"><keycap>backspace</keycap></keycombo> key to be used to  
indent.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Tab Key Indents</guilabel></term> <listitem><para>This  
allows the <keycombo action="simul"><keycap>tab</keycap></keycombo> key to be used to  
indent.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Keep Extra Spaces</guilabel></term>  
<listitem><para>Indentations of more than the selected number of spaces  
will not be shortened.</para></listitem>  
</varlistentry>  
  
</variablelist>  
</sect1>  
  
<sect1 id="pref-select">  
<title>Select</title>  
<variablelist>  
  
<varlistentry>  
<term><guilabel>Persistent Selections</guilabel></term>  
<listitem><para>This prevents key input or cursor movement by way of the  
arrow keys from causing the elimination of text  
selection. </para><note><para>(Note: If the Overwrite Selections option is  
activated then any typed character input or paste operation will replace  
the selected text.)</para></note></listitem> </varlistentry>  
  
<varlistentry> <term><guilabel>Overwrite Selections</guilabel></term>  
<listitem><para>Any keyed character input or paste operation will replace  
the selected text.  </para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Mouse Autocopy</guilabel></term> <listitem><para>Any text  
selected with the mouse will be automatically copied to the  
clipboard.</para></listitem>  
</varlistentry>  

<varlistentry>  
<term><guilabel>X11-like Single Selection</guilabel></term>  
<listitem><para>Not implemented yet.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Vertical Selections</guilabel></term> <listitem><para>This  
activates the <link linkend="vertical-selection">Vertical Selection</link>  
option.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term>Toggle Old</term> <listitem><para>Not yet implemented</para></listitem>  
</varlistentry>  
  
</variablelist>  
</sect1>  
  
<sect1 id="pref-edit">  
<title>Edit</title>  
<variablelist>  
<varlistentry>  
<term id="pref-word-wrap"><guilabel>Word Wrap</guilabel></term>  
<listitem><para>Word wrap is a feature that causes the editor to
automatically start a new line of text and move (wrap) the cursor to the
beginning of that new line.  &kwrite; will automatically start a new line of text
when  the current line reaches the length specified by the <link
linkend="pref-wrap-words-at">Wrap Words At:</link>  
option.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="pref-wrap-words-at"><guilabel>Wrap Words  
At:</guilabel></term><listitem><para>If the <link  
linkend="pref-word-wrap">Word Wrap</link> option is selected this entry  
determines the length (in characters) at which the editor will
automatically start a new line.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="pref-replace-tabs-by-spaces"><guilabel>Replace Tabs By  
Spaces</guilabel></term> <listitem><para>&kwrite; will replace any tabs  
with the number of spaces indicated in the <link  
linkend="pref-tab-width">Tab Width:</link> entry.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term id="pref-tab-width">Tab Width</term> <listitem><para>If the <link  
linkend="pref-word-wrap"><guilabel>Replace Tabs By Spaces</guilabel></link>  
option is selected this entry determines the number of spaces with which
the editor will automatically replace tabs.</para></listitem>  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Remove Trailing Spaces</guilabel></term>  
<listitem><para>&kwrite; will automatically eliminate extra spaces at the  
ends of lines of text.</para></listitem> </varlistentry>  
  
<varlistentry>  
<term><guilabel>Auto Brackets</guilabel></term> <listitem><para>When the
user types a left bracket ([, (, or {) &kwrite; automatically
enters the right bracket (}, ), or ]) to the right of the
cursor.</para></listitem>
</varlistentry>

<varlistentry>
<term id="group-undos"><guilabel>Group Undos</guilabel></term>
<listitem><para>Groups of similar actions are to be considered a single
<link linkend="undo">Undo</link> step by &kwrite;. In other words, a series
of regular character keystrokes (words or expressions) would be considered
one step and therefore be removed by a single undo operation.  If the
series of character entries were interrupted by a non-character entry
operation (such as a backspace), invoking undo would only remove the
entries made since that operation. The next undo would then reverse that
operation and so on.</para>
<para> When this option is not selected &kwrite; considers
each keystroke to be a single step.  So if the user (with this option
active) were to type several words or even sentences without having to make
corrections or cut or paste or some other non-character entry operation
then a click of the undo button would eliminate all that had been typed
since the last non-entry operation.  A second click would eliminate that
operation and a third any operation or series of entries that occurred
before the operation and so on.  When not selected three clicks of the undo
button would only remove the last three letters typed, or the last three
operations.</para></listitem>  
</varlistentry>  
  
<varlistentry> <term><guilabel>Show Tabs</guilabel></term>  
<listitem><para>The editor will display a symbol to indicate the presence  
of a tab in the text.</para></listitem>  
</varlistentry>  

<varlistentry>
<term><guilabel>Smart Home</guilabel></term>
<listitem><para>Not yet implemented</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Page Up/Down Moves Cursor</guilabel></term>
<listitem><para>This option changes the behavior of the cursor when
the user presses the <keycap>Page Up</keycap> or <keycap>Page Down</keycap> key. If
unselected the text cursor will maintain its relative position within the visible
text in &kwrite; as new text becomes visible as a result of the operation.  So if
the cursor is in the middle of the visible text when the operation occurs it will
remain there (except when one reaches the beginning or end.)  With this
option selected, the first key press will cause the cursor to move to either the top
or bottom of the visible text as a new page of text is displayed.
</para></listitem>
</varlistentry>

<varlistentry>
<term>Wrap Cursor</term> 
<listitem><para>When this option is chosen, moving
the cursor with the arrow keys off the end of a line (to the right) causes
it to jump down to the beginning of the next line.  Likewise when the
cursor is moved past the beginning of a line (to the left) it jumps up to
the end of the preceding line. When this option is not selected, moving the
cursor right past the end of a line merely causes it to continue
horizontally in the same line and trying to move it left past the beginning
does nothing.</para>
<para>
When this option is chosen, clicking with the mouse past the end of a
line of text will place the insert cursor <emphasis>at the end of the
text</emphasis>, and not in the place you clicked.  This avoids
accidentally adding an empty space in the middle of text, and is the
default behavior of most editors.
</para>
</listitem>
</varlistentry>

<varlistentry>
<term><link linkend="undo">Undo</link> steps:</term> <listitem><para>Here
the user may specify the number of steps &kwrite; will retain in memory for
purposes of undoing entries and actions.  This means that the higher the
number of steps set the more memory &kwrite; will use for this.  Setting
this entry to 10 would mean that the user would be be able reverse the last
ten operations, <abbrev>i.e.</abbrev> click the <guibutton>undo</guibutton>
button 10 times and obtain results.</para></listitem> </varlistentry>

<varlistentry>
<term>Encoding</term>
<listitem>
<para>
This sets the character encoding for your file.
</para>
</listitem>
</varlistentry>
</variablelist>

</sect1>

<sect1 id="prefspellchecker">
<title>Spelling</title> <para>A spell checker is a program designed to
help the user catch and correct any spelling errors.  This section of the
preferences dialog allows certain important settings to be adjusted in this
regard.</para>
<variablelist>

<varlistentry>
<term><guilabel>Create root/affix combinations not in
dictionary</guilabel></term> <listitem><para>Selecting this option allows
the spell checker to register as 'correct' combinations of root words with
suffixes or prefixes even if the particular combination is not listed in
its dictionary data base of words.</para></listitem>

</varlistentry>

<varlistentry>
<term><guilabel>Consider run-together words as spelling
errors</guilabel></term> <listitem><para>Selecting this will cause the
spell checker to register as 'misspelled' two or more correctly spelled
words that are 'run-together', <abbrev>i.e.</abbrev>, that do not have spaces
separating them.</para></listitem>

</varlistentry>

<varlistentry>
<term><guilabel>Dictionary:</guilabel></term> <listitem><para>Depending on
the user's installation one or more different language spelling
dictionaries may be available.  This drop down box allows the user to
choose which language the spell checker should use.</para></listitem>
  
</varlistentry>  
  
<varlistentry>  
<term><guilabel>Encoding:</guilabel></term> <listitem><para>There are  
different coding systems used to associate particular codes with particular  
characters and symbols.  If the user knows which code he or she is using  
this drop down box allows this code to be specified so that the spell
checker can do its job correctly. </para></listitem> </varlistentry>

<varlistentry>
<term><guilabel>Client:</guilabel></term> <listitem><para>Since &kwrite;
does not contain its own spell checker, an external one must be chosen.
This is where the user may specify which spell check program to
use.</para></listitem> </varlistentry>

</variablelist>
</sect1>
</chapter>

<chapter id="pref-highlighting">
<title>Highlighting</title>

<para>The <guilabel>Configure Highlighting</guilabel> dialog consists of two
pages, <guilabel>Defaults</guilabel> and <guilabel>Highlighting
Modes</guilabel>.  The user can select which page to view by clicking on the
appropriate tab at the top of the dialog</para>

<para>Items available on the <guilabel>Defaults</guilabel> page are as
follows:</para>

<variablelist>
<varlistentry>
<term><guilabel>Default Item Styles</guilabel></term>
<listitem>
<para>
The user can configure the default appearance for particular items.
This would allow a programmer to more easily identify different items
(types of entries) in his or her code.
</para>

<variablelist>
<varlistentry>
<term><guilabel>Item</guilabel></term>
<listitem><para>This drop down list offers a variety of items that the user
might want to highlight.  They include <guilabel>Normal</guilabel> for
text does not fit in any of the other categories, <guilabel>Comment</guilabel>,
<guilabel>String</guilabel>, <guilabel>Keyword</guilabel> and many more.  Not
all of these entries will need to be configured for every language and so may be
selected as needed.  The options in the rest of this section apply
to the entry selected in this box.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Normal</guilabel></term>
<listitem><para>This allows the user to choose the item's normal
(unselected) color.  This is done by means of a color selection
dialog box, a further explanation of which may be found in the <link
linkend="prefcolors">Colors</link> section of <link
linkend="pref-dialog">Configure KWrite</link>.</para>

</listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Bold</guilabel></term>
<listitem><para>This option determines whether or not the item should be displayed in
bold text.</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Italic</guilabel></term>
<listitem><para>This option determines whether or not the item should be displayed in italic
text.</para></listitem>
</varlistentry>

<varlistentry>
<term><guilabel>Selected</guilabel></term>
<listitem><para>This allows the user to choose the item's color
when selected.  This is done by means of a color selection
dialog box, a further explanation of which may be found in the <link
linkend="prefcolors">Colors</link> section of <link
linkend="pref-dialog">Configure KWrite</link>.</para>

</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
</variablelist>  
  
<para>Items on the <guilabel>Highlight Modes</guilabel> tab allow the user to define
more specific highlighting depending on the language style.</para>
  
<para>One need not set every available option, items not configured
specifically will use the default configuration specified on the previous  
(<guilabel>Defaults</guilabel> tab.</para>  
  
<variablelist>  
<varlistentry>  
<term><guilabel>Config Select</guilabel></term>  
<listitem><para>This group of options is used to customize the highlighting styles
for each programming language type.  Any changes you made in
other areas of this dialog apply only to this type.</para>

<variablelist>
<varlistentry>
<term><guilabel>Highlight</guilabel></term>
<listitem><para>This is used to choose the language type to
configure</para></listitem>  
</varlistentry>
<varlistentry>  
<term><guilabel>Item</guilabel></term>  
<listitem><para>This is to choose the syntax item to configure.  Remember
this  only configures <emphasis>this</emphasis> item for <emphasis>this</emphasis>
language.</para></listitem>
</varlistentry>
</variablelist>

<para>As an example, if the user wished to configure the appearance of
<quote>comments</quote> while writing C++, she or he could choose C++ in the
<guilabel>Highlight</guilabel> drop down list, and then choose Comment in the
<guilabel>Item</guilabel> drop down list. To have <quote>comments</quote> look
the same across all languages, the user would need to configure this in the
<guilabel>Defaults</guilabel> page of this dialog box while leaving
<quote>comments</quote> unconfigured within the more specific
<guilabel>Highlight Modes</guilabel> page.</para> </listitem> </varlistentry>

<varlistentry>
<term><guilabel>Item Style</guilabel></term>
<listitem><para>Here the user can configure the general appearance of the above
selected item.  Checking the <guilabel>Default</guilabel> checkbox causes the default
style as configured on the previous tab to be set, or the
appearance can be configured directly.  The available options are the same as on the
<guilabel>Defaults</guilabel> tab: <guilabel>Normal</guilabel>,
<guilabel>Selected</guilabel>, <guilabel>Bold</guilabel> and
<guilabel>Italic</guilabel>.</para></listitem> </varlistentry>

<varlistentry>
<term><guilabel>Highlight Auto Select</guilabel></term>  
<listitem><para>&kwrite; can apply syntax highlighting automatically, depending  
on the file extension or mime-type of the opened file.  The defaults are fairly
comprehensive, but users that regularly edit files with non-standard extensions
can add them here.  Wildcards are allowed in the <guilabel>File
Extensions</guilabel> text box.  For example, the default entry for the C++
language is <userinput>*.cpp;*.cc;*.C;*.h</userinput>.  Opening a file called
<filename>foo.h</filename> would automatically apply the C++ style to it.
</para></listitem>
</varlistentry>
<varlistentry>
<term><guilabel>Item Font</guilabel></term>
<listitem><para>Here the user can choose the font for the selected item.</para>
<para>The default style can be applied by checking the
<guilabel>Default</guilabel> checkbox or the user can choose a specific font
<guilabel>Family</guilabel>, <guilabel>Size</guilabel> and
<guilabel>Charset</guilabel>.  The available options are the same as those on
the <guilabel>Defaults</guilabel> tab.</para></listitem>
</varlistentry>
</variablelist>
</chapter>  
  
<chapter id="credits">  
<title>Credits and Licenses</title>  
  
<para>&kwrite; Copyright 2001 by the &kate; team.</para>

<para>
Based on the original &kwrite;, which was Copyright 2000 by Jochen Wilhelmy  
<email>digisnap@cs.tu-berlin.de</email>
</para>

<para>Contributions:</para>  

<itemizedlist>
<listitem>
<para>Christoph Cullmann <email>cullmann@kde.org</email></para>
</listitem>

<listitem>
<para>Michael Bartl <email>michael.bartl1@chello.at</email></para>
</listitem>

<listitem>
<para>Phlip <email>phlip_cpp@my-deja.com</email></para>
</listitem>

<listitem>
<para>Anders Lund <email>anders@alweb.dk</email></para>
</listitem>

<listitem>
<para>Matt Newell <email>newellm@proaxis.com</email></para>
</listitem>

<listitem>
<para>Joseph Wenninger <email>jowenn@bigfoot.com</email></para>
</listitem>

<listitem>
<para>Jochen Wilhely <email>digisnap@cs.tu-berlin.de</email></para>
</listitem>

<listitem>
<para>Michael Koch <email>koch@kde.org</email></para>
</listitem>

<listitem>
<para>Christian Gebauer <email>gebauer@bigfoot.com</email></para>
</listitem>

<listitem>
<para>Simon Hausmann <email>hausmann@kde.org</email></para>
</listitem>

<listitem>
<para>Glen Parker <email>glenebob@nwlink.com</email></para>
</listitem>

<listitem>
<para>Scott Manson <email>sdmanson@altel.net</email></para>
</listitem>

<listitem>
<para>John Firebaugh <email>jfire@uclink.berkeley.edu</email></para>
</listitem>
</itemizedlist>
     
<para>
Original documentation by Thad McGinnis
<email>ctmcginnis@compuserve.com</email>
</para>

<para>
This version of the &kwrite; Handbook is based on the original by
Cristian Tibirna <email>tibirna@kde.org</email>
</para>

<para>
Converted to docbook/proofreading by Lauri Watts
<email>lauri@kde.org</email> 
</para>

<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
 
&underFDL;
&underGPL;
</chapter> 

<appendix id="installation">
<title>Installation</title>

&install.intro.documentation;
&install.compile.documentation;

</appendix>  
  
&documentation.index;   
</book>  
<!--  
Local Variables:  
mode: sgml  
sgml-namecase-general: t  
sgml-namecase-entity: nil  
sgml-general-insert-case: lower  
sgml-minimize-attributes: nil  
sgml-omittag: nil  
End:  
-->  

