
Copyright © 2000, 2001 Seth Rothberg
Copyright © 2002, 2003, 2005 Anders Lund
Copyright © 2005, 2009 Dominik Haumann
Copyright © 2011, 2012, 2013, 2014 T.C. Hollingsworth
Kate is a programmer's text editor by KDE.
This handbook documents Kate Version 18.08
Table of Contents
- 1. Introduction
- 2. The Fundamentals
- 3. Working with the Kate Editor
- 4. Working with Plugins
- Kate Application Plugins
- Backtrace Browser Plugin
- Build Plugin
- Close Except/Like Plugin
- CTags Plugin
- Document Preview Plugin
- Document Switcher Plugin
- Filesystem Browser
- The Documents List
- GDB Plugin
- Lumen Plugin
- Open Header Plugin
- Project Plugin
- Rust code completion Plugin
- Search & Replace
- Kate Snippets
- SQL Plugin
- Symbol Viewer Plugin
- Terminal Tool View Plugin
- Text Filter Plugin
- XML Validation
- XML Completion
- 5. Advanced Editing Tools
- 6. Extending Kate
- 7. The VI Input Mode
- 8. The Menu Entries
- 9. Configuring Kate
- 10. Credits and License
- A. Regular Expressions
- B. Installation
List of Tables
List of Examples
- 4.1. Some Example Queries
- 4.2. Example SELECT Query

Welcome to Kate, a programmer's text editor by KDE. Some of Kate's many features include configurable syntax highlighting for languages ranging from C and C++ to HTML to bash scripts, the ability to create and maintain projects, a multiple document interface (MDI), and a self-contained terminal emulator.
But Kate is more than a programmer's editor. Its ability to open several files at once makes it ideal for editing UNIX®'s many configuration files. This document was written in Kate.

Editing this manual...

If you have ever used a text editor, you will have no problem using Kate. In the next two sections, Starting Kate and in Working with Kate, we will show you everything you need to get up and running quickly.
You can start Kate from the application launcher or from the command line.
Open the KDE program menu by clicking on the application launcher icon on the toolbar at the bottom left of your screen. This will raise a menu. Move your cursor up the menu to the → → menu item.
You can start Kate by typing its name on the command line. If you give it a file name, as in the example below, it will open or create that file.
%
kate
myfile.txt
If you have an active connection, and permission, you can take advantage of KDE's network transparency to open files on the internet.
%
kate
ftp://ftp.kde.org/pub/kde/README
To change the directory for temporary files, which defaults to /tmp
set the TMPDIR
environment variable before starting Kate, e.g.
%
mkdir /tmp/kate -p && export TMPDIR=/tmp/kate && kate
Kate accepts following command line options:
kate
--help
This lists the options available at the command line.
kate
-s
--start
name
Starts kate with the session
name
. The session is created if it does not exist already. If a Kate instance running the specified session exists, the specified files are loaded in that instance.kate
-p
--pid
PID
Only reuses an instance with the specified PID (Process ID).
kate
-e
--encoding
encoding
URL
Uses the specified encoding for the document.
kate
-l
--line
line
URL
Navigates to the specified line after opening the document.
kate
-c
--column
column
URL
Navigates to the specified column after opening the document.
kate
-i
--stdin
Reads the document content from STDIN. This is similar to the common option
-
used in many command line programs, and allows you to pipe command output into Kate.kate
--startanon
Start Kate with a new anonymous session, implies
-n
.kate
-n
--new
Force start of a new Kate instance (is ignored if
start
is used and another Kate instance already has the given session opened), forced if no parameters and no URLs are given at all.kate
-b
--block
If using an already running Kate instance, block until it exits, if URLs given to open.
You can use Kate with this option as editor for typing in commit messages for version control systems like Git or Subversion. These systems expect to block the editor till you have entered your message, because they then open the temporary file, which would be empty if kate immediately returned to the caller.
This option is also needed with KIO (KDE Input/Output), if you open a remote file (which has been downloaded to a temporary) and should be reuploaded, after you saved it.
kate
--tempfile
When used, the specified files are treated as temporary files and deleted (if they are local files and you have sufficient permissions) when closed, unless they were modified since they were opened.
kate
--desktopfile
filename
The base file name of the desktop entry for this application.
This is in particular useful for wrapper applications and applications having in general multiple desktop files. Thus each desktop file can have its own command line for the
Exec
entry.kate
--author
Lists Kate's authors in the terminal window.
kate
-v
--version
Lists version information for Kate.
kate
--license
Shows license information.

Quick Start will show you how to toggle four simple options that will let you configure some of Kate's more powerful features right away. Shortcuts lays out some of the default keystroke shortcuts for those who can't or don't want to use a mouse.
This section will describe some of the items on the menu so that you can quickly configure Kate to work the way you want it.
When you start Kate for the first time you will see two windows with white backgrounds. Above the two windows is a toolbar with the usual labeled icons. And above that, a menubar.
The left-hand window is a side bar. It combines the Documents and Filesystem Browser windows. Switch between the two by clicking on the tabs to the left of the window.
If you've started Kate with a file, the right-hand window will show the file you are editing and the Documents on the side bar will show the name of the file. Use the Filesystem Browser window to open files.
You can toggle all sidebar windows on and off in → menu or use Ctrl+Alt+Shift+F. This menu offers you your first glimpse into Kate's power and flexibility.
In you have a list of all enabled plugins. Click the checkbox in front of each item or click with the mouse button on the tool buttons in the sidebar to toggle this tool view on and off.
Many of Kate's keystroke commands (shortcuts) are configurable by way of the Settings menu. By default Kate honors the following key bindings.
F1 | Help |
Shift+F1 | |
Ctrl+N | New document |
Ctrl+L | Save All |
Ctrl+O | |
Ctrl+Alt+O | Quick Open |
Ctrl+Shift+F | Full Screen Mode |
Ctrl+Shift+, | Configure Kate |
Ctrl+W / Ctrl+Esc | |
Ctrl+Q | Quit - close active copy of editor |
Ctrl+Alt+Shift+F | Show Sidebars |
Ctrl+Shift+T | Split Horizontal |
Ctrl+Shift+L | Split Vertical |
F8 | Next Split View |
Shift+F8 / Ctrl+Esc | Previous Split View |
Ctrl+Shift+R | Close Current View |
Alt+Right | Next Tab |
Alt+Left | Previous Tab |
Additionally you can use the shortcuts provided by the KatePart component and by all activated Kate plugins.

Window, View, Document, Frame, Editor... What are they all in the terminology of Kate, and how do you get the most out of it? This chapter will explain all of that, and even more.
The Kate Main Window is a standard KDE application window, with the addition of side bars containing tool views. It has a menubar with all the common menus, and some more, and a toolbar providing access to commonly used commands.
The most important part of the window is the editing area, by default displaying a single text editor component, in which you can work with your documents.
The docking capabilities of the window is used for the tool windows of any plugin enabled in the settings dialog.
Tool views can be positioned in any sidebar, to move a tool right click its sidebar button and select from the
mouse button menuA tool view can be marked as persistent in the mouse button menu for its sidebar button. The sidebar can contain more tools at one time so that when a tool is persistent other tools can be shown simultaneously.
If a plugin has configuration options you can use the first item in the context menu to open the corresponding page in Kate's settings dialog.
Kate is capable of having more than one document open at the same time, and also of splitting the editing area into any number of frames, similar to how for example Konqueror or the popular emacs text editor works. This way you can view several documents at the same time, or more instances of the same document, handy for example if your document contains definitions in the top that you want to see often for reference. Or you could view a program source header in one frame, while editing the implementation file in another.
When a document is available in more than one editor, changes made in one editor will immediately be reflected in the others as well. This includes changing the text as well as selecting text. Search operations or cursor movement is only reflected in the current editor.
It is currently not possible to have more instances of the same document open in the sense that one instance will be edited while the other will not.
When splitting an editor into two frames, it is divided into two equally sized frames, both displaying the current document of that editor. The new frame will be at the bottom (in the case of a horizontal split) or at the right (for a vertical split). The new frame gets the focus, which is visualized by the blinking cursor bar in the focused frame.

Sessions is how Kate lets you keep more than one list of files and GUI configuration around. You can have as many named sessions as you want, and you can use unnamed or anonymous sessions for files you want to use only once. Currently Kate can save the list of open files, and the general window configuration in the session; future versions of Kate may add more features that can be saved in sessions. With the introduction of sessions, Kate also allows you to open any number of instances of the application instead of just one as it used to do as the default behavior.
Sessions are supported in three areas:
Command line options that lets you select and start sessions when launching kate from the command line.
The Sessions menu that lets you switch, save, start and manage your sessions.
Configuration options that lets you decide how sessions generally should behave.
When starting a new session, the GUI configuration of Default Session is loaded. To save window configuration in the default session, you need to enable saving window configuration in the sessions configuration page of the configuration dialog and then load the default session, set up the window as desired and save the session again.
When a named session is loaded, Kate will display the session name at
the start of the window title, which then has the form
"Session Name
: Document name or
URL
- Kate"
When opening files on the command line with --start
or if a session is selected using the
session chooser, the specified session is loaded prior to the files specified
on the command line. To open files from the command line in a new, unnamed
session, configure kate to start a new session as default in the session page of
the configuration dialog or use name
--start
with an empty string:
''
.
Since Kate 2.5.1 the PID of the current instance is
exported to the environment variable KATE_PID
. When opening files
from the built in terminal Kate will automatically select the current instance
if nothing else is indicated on the command line.

- This manual
Offers detailed documentation on all menu commands, configuration options, tools, dialogs, plugins etc. as well as descriptions of the Kate window, the editor and various concepts used in the application.
Press F1 or use the → menu topic to view this manual.
- What's This Help
What's This help offers immediate help with single elements of graphical windows, such as buttons or other window areas.
We strive to provide What's This help for any elements for which it makes sense. It is available throughout the configuration dialog, and in many other dialogs as well.
To employ What's This help, press Shift+F1 or use the → menu item to enable What's This mode. The cursor will turn into an arrow with a question mark, and you can now click any element in the window to read the What's This help for that element, if it is available.
- Help Buttons in Dialogs
Some dialogs have a Button. Pressing it will start the KHelpCenter and open the relevant documentation.
Kate does not (yet!) provide any means for reading document related documentation. Depending on the file you are editing, you may find the Built in Terminal Emulator helpful for viewing related UNIX® manual pages or info documentation, or you can use Konqueror.
Kate's homepage provides some Articles and Howtos with further information beyond the scope of this handbook.

For information about the basics of working with the editor component underlying Kate, see the Working with the KatePart Editor chapter of the KatePart Handbook.

Kate offers several plugins. There are two types of these plugins: some are written in native C++, while others are written in the Python programming language. There are subtle differences in these, described below.
You can enable any type of plugin in the configuration dialog, which also provides access to additional configuration options for plugins that require it.
Kate plugins are additional functions for the Kate editor. They can add extra menus and shortcuts, and extend Kate's features. You can install as many or as few as you like, from within Kate. Open Kate's configuration dialog with → Select → to choose the wanted plugins.
The available application plugins are:
Backtrace Browser - Backtrace navigation tool view
Build Plugin - Compile or Make and parse error messages
Close Except/Like - Close group of documents based on a common path or file extension
CTags - Look up definitions/declarations with CTags
Document preview - Preview the document in the target format.
Document switcher - Quick document switching with Alt+Tab behavior
File system browser - File system browser tool view
Documents - Displays the open files in a file tree
GDB - Provides a simple GDB frontend
Lumen - Lumen is a Autocompletion Plugin for D, using the DCD autocompletion server
Open Header - Opens the corresponding .h/[.cpp|.c] file
Project Plugin - Project plugin for kate
Replicode
Rust code completion - Code completion for Rust source code
Search & Replace - Search or replace patterns in opened documents or in files on disk
Snippets tool view - Tool view embedding the snippets management
SQL Plugin - Execute query on SQL databases
Symbol Viewer - Extract and show reference symbols from source
Terminal tool view - Tool view embedding a terminal widget
Text Filter - Easy text filtering
XMLCompletetion - Lists XML elements, attributes, attribute values and entities allowed by DTD
XML Validation- Validates XML files using xmllint

This plugin is meant for developers and probably of little use for users.
It shows a backtrace delivered by gdb in a listview in a Kate toolview.
Clicking on an item opens the selected file and jumps to the correct line number.
It works for backtraces generated on your own machine, but it will also work for
backtraces from other people, i.e. with /home/dummy/qt-copy/…/qwidget.cpp
will still be found on other machines. For that to work, you have to index the
directories where the source code is located.
Sometimes there are several files with the same name, e.g.
kdegraphics/okular/generators/dvi/config.h |
kdepim-runtime/resources/gmail/saslplugin/config.h |
To pick the right choice, the plugin picks the last two parts of the url, in this case this would be
dvi/config.h |
saslplugin/config.h |
And then usually the plugin finds the correct one.
Indexing master and a branches of course will lead to a clash.
On the configuration page add the directories containing the source code.
Clicking will start indexing. When indexing is finished, open the toolview Backtrace Browser.
Now you can load a backtrace from the clipboard (e.g., when you clicked in DrKonqi) or from a file.

The Build plugin adds a Build Output tool view at the bottom and a menu on the menubar. The tool view can be used to configure build target settings, while the menu can be used to perform build, clean and compile actions.
The Build Output tool view has two tabs:
Target Settings
Output
The target settings tab can be used to configure various build targets and define targets sets.
To change the names or commands double click on the entries in the table and use the dropdown box to select the active target set. Use the checkbox in front of each target to define a default.
A new target set contains several configuration options:
- Working Directory
You can set the path to the project here. Leave this empty to use the directory the current document is located in.
- Build
This option lets you define the build command. It is set to make by default.
- Clean
The option lets you define the clean command. It is set to make clean by default.
- Config
This option lets you define the config command. It is set to cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local ../ by default.
On the top this plugin has a toolbar with the following buttons :
![]() |
![]() |
![]() |
![]() |
![]() |
The Output tab shows the console output generated by the last command.
Use the slider at the top to show or hide categories of output:
Full Output, Parsed Output, Errors and Warnings or Only Errors
Each line contains a message and the file name and line number if available. Clicking on the error or warning takes you to the appropriate file and places the cursor on the corresponding line number.
To navigate to the previous error, press Alt+Shift+Left. To navigate to the next error, press Alt+Shift+Right.
- →
Select from a list of targets configured by the user.
- →
Builds the target defined as default in the active target set.
- →
Switch to the previous target configured by the user.
- →
Stop building a target.
- → (Ctrl+Alt+Left)
Moves the cursor to the location of the previous error in the document.
- → (Ctrl+Alt+Right)
Moves the cursor to the location of the next error in the document.

Assumed you have these documents opened in Kate:
/tmp/subfolder/test.h |
/tmp/test.cpp |
/tmp/test.txt |
Then you have the following options to close documents as displayed in the screenshot:
Use the checkbox in the last item of the list to enable or disable a confirmation dialog. The selected option will be applied to both close actions.

CTags generates an index (or tag) file of language objects found in source files that allows these items to be quickly and easily located using this plugin in Kate.
A tag signifies a language object for which an index entry is available (or, alternatively, the index entry created for that object).
Tag generation is supported for these programming languages.
The CTags plugin uses two different database files for the index.
On the CTags settings page in Kate's configuration you can add or remove directories containing the source code and regenerate the common CTags database.
At the bottom of the settings page you can adapt the CTags command.
For more information about all available options please read the CTags man page. This man page is available in KHelpCenter and you can also enter the URL man/:ctags directly into Konqueror
Clicking will start indexing. When indexing is finished, close the dialog.
To configure the session index open the CTags view.
You place the mouse cursor on the language object like function, symbol etc. that you are interested in and then select one of the actions in the menu to jump to the line and file where the object is defined or declared.
By default the actions in the menu have no shortcuts assigned. Use the keyboard shortcut editor to configure your own shortcuts.
Alternatively use the search field on the Lookup tab of the CTags view.
Entering characters into the search field will start the search and display matching names of language objects like functions, classes, symbols etc. together with type and filename.
Select an item in the list to jump to the corresponding line in the source file.
- →
Navigate back in the history to the last visited tag.
- →
Opens the Lookup tab of the CTags view and displays all language objects matching the current text selection in the list.
- →
If the cursor is in a definition object this will open the document containing the corresponding declaration if needed, activate its view and place the cursor at the start of the declaration.
- →
If the cursor is in a declaration object this will open the document containing the corresponding definition if needed, activate its view and place the cursor at the start of the definition.

The plugin enables a live preview of the currently edited text document in the final format in the sidebar. So when editing e.g. a Markdown text or an SVG image, the result is instantly visible next to the source text.
For the display the plugin uses that KParts plugin which is currently selected as the preferred one for the MIME type of the document. If there is no KParts plugin for that type, no preview is possible.
To change the preferred plugin open the File Associations module in the System Settings and edit the Services Preference Order on the Embedding tab.
Table 4.1. Some available KParts plugins
MIME type | KParts plugin |
Markdown text | KMarkdownWebViewPart or OkularPart |
SVG image | SVGPart |
Qt™ UI files | KUIViewerPart |
Dot graph files | KGraphviewerPart |
The buttons at the top of the preview window provide these actions:
Lock the preview to a given document. Selecting this option ensures that if switching the focus to the view of another document in the same Kate window, the preview will not follow to that document, but keep previewing this document.
Enable or disable updates of the preview of the current document content
Manually update the preview of the current document content
A dropdown menu with actions from the KParts plugin

- → (Ctrl+Tab), → (Ctrl+Shift+Tab)
Opens a list with the last viewed documents:
Keep the Ctrl key pressed and use the Tab key to cycle forward through the list. Additionally press the Shift key to reverse the direction.
Keep the shortcut Ctrl+Tab pressed and can use the Up, Down, Home or End keys to navigate in the list. Pressing a char key consecutively will cycle through all items with the first matching in the list. If you release the shortcut keys the view will switch to the selected document in the list.

The Filesystem Browser is a folder viewer, allowing you to open files from a displayed folder in the current frame.
From the top down, the Filesystem Browser consists of the following elements:
- A Toolbar
This contains standard navigations tool buttons:
Back
Causes the folder view to cd to the previously displayed folder in the history. This button is disabled, if there is no previous item.
Forward
Causes the folder view to cd to the next folder in the history. This button is disabled, if there is no next folder.
Bookmarks
Opens a submenu to edit or add bookmarks and to add a new bookmark folder.
Current Document Folder
This button will cause the folder view to cd to the folder of the currently active document if possible. This button is disabled, if the active document is a new, unsaved file, or the folder in which it resides can not be decided.
Options
Displays only the filenames.
Displays Name, Date and Size of the files.
Like Short View, but folders can be expanded to view their contents.
This also allows folders to be expanded, but displays the additional columns available in Detailed View.
Displays files normally hidden by your operating system.
When this option is enabled the filesystem browser will automatically cd to the folder of the document currently open in the editing area every time it changes.
- A Location Entry
This displays a breadcrumb navigation to the currently open folder, similarly to Dolphin. You can click on a any folder to browse to it, or click on one of the arrows to the left of a folder to select any folders beneath it. You may also select from your list of Places by clicking the leftmost icon in the breadcrumb navigation, which displays an icon that represents your current Place.
You can also click to the right of the breadcrumbs to change them to a text box where you can type the path of a folder to browse. The URL entry maintains a list of previously typed paths. To choose one, use the arrow button to the right of the entry.
Tip
The URL entry has folder auto-completion. The completion method can be set using the
mouse button menu of the text entry.- A Folder View
This is a standard KDE folder view.
- A Filter Entry
The Filter entry allows you to enter a filter for the files displayed in the folder view. The filter uses standard globs; patterns must be separated by white space. Example:
*.cpp *.h *.moc
To display all files, enter a single asterisk
*
.The filter entry saves the last 10 filters entered between sessions. To use one, press the arrow button on the right of the entry and select the desired filter string. You can disable the filter by pressing the button to the left of the autocompletion arrow button.
This plugin can be configured on the Filesystem Browser page of Kate's configuration.
- Toolbar
Configure the buttons on the Filesystem Browser toolbar by moving the ones you want enabled to the Selected Actions list, and order them using the arrow buttons at the side of the list.

The documents list displays a list of all documents currently open in Kate. Modified files will have a small floppy disk icon on their left to indicate that state.
On the top the Documents list has a toolbar with the following buttons:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
By default, the Documents list appears in , which displays the folder structure surrounding all currently open documents. Also available is , which displays a simple list of all open documents. You can switch modes by right-clicking on the list and selecting from the menu.
If two or more files with the same name (located in different folders) are open in , the names of the second will be prepended “(2)” and so on. The tool-tip for the file will display its full name including the path, allowing you to choose the desired one.
To display a document in the currently active frame, click the document name in the list.
The context menu has some common actions from the menu.
Additionally there are filemanager actions to rename or delete the file. With you can copy the full path of the document to the clipboard.
You can sort the list in a few different ways by right clicking the list and selecting from the menu. The options are:
Lists the documents alphabetically by their name.
Lists the documents alphabetically by the path to them.
Lists the documents in the order of opening.
The document list will per default visualize your history by shading the entries for the most recent documents with a background color. If the document was edited, an extra color is blended in. The most recent document has the strongest color, so that you can easily find the documents you are working on. This feature can be disabled in the Documents page of the configuration dialog.
The default location of the document list in the Kate window is to the left of the editing area.
- Background Shading
This section allows you to enable or disable the background shading visualization of your recent activity, and choose which colors to use if enabled.
- Sort By
Set how you want the document list sorted. This can be set from the
mouse button menu in the document list as well.- View Mode
This provides two options that effect the display of the Documents tool view. The Tree View option will display the documents in a tree underneath the folders they are in, while the List View option will display a flat list of documents.
- Show Full Path
When Tree View and this option are enabled, the folder entries displayed in the Documents tool view will display the full filesystem path to the folder in addition to the name of the folder. It has no effect in List View.

Kate's GDB plugin provides a simple frontend to the popular GNU Project Debugger.
Important
Previous experience with GDB is strongly recommended. For more information on using GDB, visit the GDB website.
You can enable the GDB plugin in the Plugins section of Kate's configuration.
For the plugin to work properly, you must have a source file (of any type supported by GDB) and an executable.
Tip
If you compile using gcc/g++ you might want to use
the -ggdb
command line argument.
After these preparations are made, open the source file in Kate, enter the path to the executable in the Settings tab of the Debug View tool view, and select → from the menu to get started.
All of these options are available in Kate's menus, and many are available on the Debug toolbar as well.
- → →
Shows a tool view containing GDB output, the GDB command line used, and other settings.
- → →
Shows a list of all currently loaded variables and their values and a GDB backtrace.
- →
A submenu containing a list of targets (executables).
- →
Starts GDB with a target.
- →
Stops GDB.
- →
Restarts GDB.
- →
Set a breakpoint at the current cursor position.
- →
Execute the present statement (function call will be debugged).
- →
Execute the present statement (function call will not be debugged).
- →
Resumes execution until the program that is executing terminates.
- →
Move program counter (next execution).
- →
Runs the program until it reaches current cursor position.
- →
Ignores any breakpoints and executes program until it terminates (successfully or not).
- →
Prints the value of the variable that the cursor is currently pointing to.
- → →
Display the debugging toolbar.
The Debug View tool view consists of several tabs:
- GDB Output
Contains output from GDB and a GDB command line.
- Settings
- Executable
Path to the target (executable) for debugging.
- Working Directory
The current working directory provided to the target.
- Arguments
Arguments passed to the program.
- Keep focus
Keeps focus on the GDB command line.
- Redirect IO
Opens a new IO tab in the Debug View where you can view output and provide input to the running program.
- IO
Contains an area that displays output from the running program and a command line where you may provide input to it.
The Call Stack tool view contains a list of the formatted backtrace returned from GDB.
The Locals tool view contains a list of all currently loaded variables from the program and their corresponding values.

Lumen is a plugin providing code-completion for the D programming language. It is just a connection between the editor and the D Completion Daemon (a server providing all the information) called DCD. The plugin currently supports all major features of the completion server: feeding the server with import files, displaying documentation and several types of completion:
Imports:
Basic Completion:
Completion (overloaded Function):
Calltips:
To make Lumen work you have to install DCD, using the information provided by the D community.
After installing DCD edit ~/.config/dcd/dcd.conf
(create if it does not exist already)
and add a path to your D include/import files e.g. /usr/include/dlang/dmd
or /usr/include/d
.
Furthermore Lumen will try to read a .lumenconfig
in every parent folder
of the currently opened D source file and add every line in this file as include path to the
DCD server. Add all dependencies of your current project to this file.
Now start the completion server with dcd-server, enable the Lumen plugin in your settings and you will have code completion for the D programming language in Kate

When editing C or C++ code, this command will switch between a header file and its corresponding C/C++ file or vice versa.
For example, if you are editing myclass.cpp
, this action will change
to myclass.h
if this file is available in the same folder.
Pairs of the following filename extensions will work:
Header files: h, H, hh, hpp |
Source files: c, cpp, cc, cp, cxx |

The basic idea of the Project plugin is to have a structured list of files belonging to the project with the following properties:
Provide a structured view of the files
Make it easy and very fast to open and switch projects
Support search and replace for a project
Provide simple auto completion
Make it simple to quickly open files in the project
Support for building the project
Once the Project plugin is loaded in the Kate configuration page, open a file in a project and a sidebar appears that lists all projects as well as the project files as follows:
As you can see, the currently active project is “Kate”, and its contents is
listed in the tree view. Clicking on files in the tree view opens the file in the
editor. Further, a context menu is provided with which you can open files with
other applications, such as a .ui
file with Qt Designer.
You can filter the items by typing parts of the file name you are looking for into the search bar at the bottom of the list.
The idea is that you never have to open a project manually, this is even not
supported at all. Hence, what happens if you open a file, the Project plugin quickly
scans the folder and its parent folders for a .kateproject
file. If found, the project
is automatically loaded.
Furthermore, if you open another document in Kate, that belongs to another project, the Project plugin automatically switches the current project. So intuitively, always the correct project is active. Of course, you can also switch the currently active project using the combo box.
Kate has a Search and Replace plugin that shows up in the bottom sidebar. If a project is loaded, open the Search and Replace sidebar, and switch to the mode to search and replace in the current project:
With the knowledge of all files belonging to a project, the Project plugin provides
simple auto completion facilities based on CTags. If a project is initially opened, CTags
parses all project files in a background thread and saves the CTags information to
/tmp
. This file then is used to populate the auto
completion popup in Kate.
In contrast, without this auto completion, Kate is only capable of showing auto completion items based on the words in the current file. So the auto completion provided by the Project plugin is much more powerful.
If CTags is missing, a passive popup warns you about this issue. It is also noteworthy,
that the CTags file in /tmp
is cleaned up when Kate
exits, so the plugin does not pollute any folder with unwanted files.
As clicking on files in the tree view is not the fastest way to open a file, Kate provides a built-in quick open mechanism you can activate with Ctrl+Alt+O. What you the get is a list like this:
You can filter by typing parts of the file name you are looking for, and you can also navigate with the arrow keys and page up/down through the list. Hitting Enter activates the selected file, while Esc hides the quick open view again.
Further, the quick open remembers the previous file. So when you change to the quick open view the previously activated file is automatically selected and you just need to hit Enter, which comes very handy at times.
Another feature is to have support for the Build Plugin, so that it automatically is configured correctly.
The Project plugin has an auto-loading feature. You can read the file list from the version control system. To this end, auto-loading for the respective version control system needs to be enabled in the settings (enabled by default):
You just have to create a .kateproject
file in the root folder of the project.
For instance, the “Kate” .kateproject
file looks like this:
{ "name": "Kate" , "files": [ { "git": 1 } ] }
The file content is written in JSON syntax. The project name is “Kate”, and the files contained in should be read from git.
Also supported instead of git
is subversion through svn
and
mercurial through hg
.
If you do not want to read from a version control system, you can tell it to recursively
load files from directories as follows:
{ "name": "Kate" , "files": [ { "directory": "kate", "filters": ["*.cpp", "*.h", "*.ui", "CMakeLists.txt", "Find*.cmake"], "recursive": 1 } ] }
Here, subfolders and filters define what’s part of the project. You can also mix version control and files based on filters.
If you want to add support for the Build plugin, you could write a
.kateproject
like this:
{ "name": "Kate" , "files": [ { "git": 1 } ] , "build": { "directory": "build" , "build": "make all" , "clean": "make clean" , "install": "make install" } }
Using → (Alt+1) you can open the Current Project view at the bottom of the editor window with four tabs:
A Terminal emulator starting in the root folder of the project.
Entering characters into the search bar will start the search and display matching names of functions, classes, symbols etc. together with kind, filename and line number.
Select an item in the list to jump to the corresponding line in the source file.
Click Start Analysis to run a static code analysis for the C and C++ using cppcheck and to generate a report showing filename, line number, severity (style, warning etc.) and the issue found.
Select an item in the list to jump to the corresponding line in the source file.
Text entered in this tab will be saved in the file
.projectname
.kateproject.notes

This plugin provides code completion for the Rust programming language.
Once you have enabled the Rust code completion item in the plugin page, a new page will appear in your Kate configuration dialog.
Edit the command to run Racer, an utility intended to provide Rust code completion for editors.
You also need the Rust source code and have to provide the path to the source tree.
While typing code a popup list appears with items for completion:
In addition to code completion popups, the plugin also installs a action in the menu and in the context menu. You can configure a keyboard shortcut for it as well.
This action will open the document containing the definition if needed, activate its view and place the cursor at the start of the definition.

Kate's Search & Replace plugin allows you to search for text or regular expressions in many different files at once. You can search all open files, all the files in one directory and optionally its subdirectories, or in the active file. You can even filter by filename, for instance searching only files that end with a particular file extension.
The following options are always displayed at the top of the Search in Files tool view:
You can have as many searches as you want open at the same time. Simply click the new tab button at the top-left corner of the Search tool view and a new results tab will open permitting you to perform another search.
The button in the top right-corner of the Search in Files tool view will toggle the bottom half of the tool view between displaying additional options for the Search in Folder mode and the results of your search.
- Find
This is where you type in what you want to find. You may enter standard text, or a regular expression if enabled.
- Replace (text box)
Replacement text that will be added to file(s) in place of the text in the Find text box.
When you've finished configuring everything, just press the button to perform your search. You may also press Enter in the Find text box to do the same.
When you've finished configuring everything, just press the button to replace the text entered in the Find text box with that of the Replace text box. You may also press Enter in the Replace text box to do the same.
Go to the next match of your search query, switching files if necessary.
The same as , but will only perform replacements in files that are checked in the pane below.
These options are displayed below the aforementioned query options. If search
results are being displayed instead, press the
button to display them.
- Search in
This has three options. Select Open Files to search all files currently open in Kate. Select Folder to search inside a folder and optionally its subfolders. Select Current File to search only in the active file.
If the Projects plugin is loaded, you can also search in the Current Project or in All Open Projects.
- Match case
Restricts search results to only those that have the exact same combination of upper and lower case letters as your search query.
- Regular expressions
Permits you to use regular expressions instead of simple text as your search query.
- Expand results
Display all the results found in each file, instead of just a list of files that contain the search query.
- Folder
You may enter the path of the folder you wish to search. For instance, you might enter
~/development/kde/kate/
if you wished to search the Kate source code. This option is only available when using in Folder mode.- Open file dialog
Press this button to locate the folder in your desktop's folder browser. This button only works when using Folder mode.
Press this button to change Folder to the parent of the currently selected folder. This button only works when using Folder mode.
This button will set the Folder entry to the folder in which the currently open document is located. This button only works when using Folder mode.
- Filter
This permits you to only search filenames that match a particular pattern. For instance, to only search files written in C++, change it to
*.cpp
. To search only files beginning withkate
, change it tokate*
. You can enter multiple filters separated with a comma (,
). This option is not available when using Open files mode.- Exclude
The opposite of Filter, this prevents Kate from searching files that match the specified patterns. As with Filter, you can enter multiple patterns separated with a comma (
,
). This option is not available when using Open files mode.- Recursive
If this option is enabled, Kate will also search in all subfolders of the selected folder. This option is only available when using Folder mode.
- Include hidden
If this option is enabled, Kate will also search in files or folders that are typically hidden by your operating system. This option is only available when using Folder mode.
- Follow symbolic links
The Search in Files plugin typically does not follow symbolic links. When this option is enabled, the plugin will follow them instead and search inside the files or folders they reference. This option is only available when using Folder mode.
Warning
It's possible for symbolic links to reference a folder that is the parent of the folder currently being searched, or other folders that contain symbolic links to their parent. If there is such a link in the folder being searched and this option is enabled, Kate will repeatedly follow the link and search the folder, and the search will never complete.
- Include binary files
If enabled, Kate will also search in files that do not appear to be text files.
The results of your search are displayed below the query options. If
options for Search in Folder mode are displayed, simply press the
button to display them. They will also
automatically be displayed as soon as a search is performed.
The search results display a list of files that contains text that matches your search query, followed by the number of matches found in that file.
To see a list of matches in that file, simply click the expansion arrow to the left of the file name. (If you selected the Expand results option, this will already be done for you.) The line number each match is found on will be displayed, followed by the contents of that line, with your search query indicated in bold text.
To open the file your result was found in, simply double-click it. Kate will open the file if needed. You can also move the cursor to the location of a particular match by double-clicking on its listing instead of the file name.

Kate Snippets is a plugin used to save you some time by adding support for so-called “snippets” (re-usable source code, machine code or text). The plugin also supports code completion and JavaScript.
In the panel you should see a list of snippet repositories, along with options to create your own, get them from the Internet or load them from a local file. Each repository has a checkbox that can be used to activate or deactivate it. There are also buttons to edit and delete existing repositories.
You can download snippet repositories from the Internet. Just click and a window with a list of snippet repositories will open. After downloading the desired snippet, make sure that you have activated it.
To create a new snippet repository, click . You should now see a dialog that asks for the name of the snippet file, license and author. After choosing the desired options, click .
The snippet repository editor contains the following options:
- Name
Appears in the list of snippets in the tool view and is also searched when using the code completion feature.
- Namespace
Prefix used while using code completion.
- License
Select the license for you snippet repository.
- Authors
Enter the name(s) of the author(s) of the snippet file.
- File types
Select the file type(s) you want the snippet repository to apply to. It is set to “” by default, so the repository applies to all files. You can change it to something like
C++
for instance, or select from a list by clicking on the items. You can specify more than one file type pressing the Shift while adding types.
- Name
The name will be shown in the completion list.
- Shortcut
Pressing this shortcut will insert the snippet into the document.
- Snippets
The text your snippet will insert into the document.
A snippet can contain editable fields. They can be cycled by pressing Tab. The following expressions can be used in the template text to create fields:
${
creates a simple, editable field. All subsequent occurrences of the samefield_name
}field_name
create fields which mirror the contents of the first during editing.${
can be used to specify a default value for the field.field_name=default
}default
can be any JavaScript expression.Use
${
to specify a fixed string as default value.field_name
=text
}${func(
can be used to create a field which evaluates a JavaScript function on each edit and contains its contents. See the Scripts tab for more information.other_field1
,other_field2
, ...)}${cursor}
can be used to mark the end position of the cursor after everything else was filled in.- Scripts
JavaScript helper functions to use in your snippets.
All JavaScript functions should return the contents you want to place in a template field as a string.
Functions are called in a scope which contains the contents of all editable template fields as local variables. For example in a snippet containing
${
, a variable calledfield
}field
will be present which contains the up-to-date contents of the template field. Those variables can either be used in the function statically or passed as arguments, by using the${func(field)}
or${
syntax in the snippet string.field2=func(field)
}You can use the Kate scripting API to get the selected text, full text, file name and more by using the appropriate methods of the
document
andview
objects. Refer to the scripting API documentation for more information
You can call snippets in two ways:
By choosing the snippet from the tool view.
While writing, you can press Ctrl+Space, which will display all the snippets in a convenient window from which you can choose. This key combination provides functionality similar to code completion.
If the snippet contains variables (besides ${cursor}
)
the cursor will automatically go to the first occurrence of a variable and will
wait for you to write something. When you are done, you can press Tab to move
to the next variable, and so on.

The Structured Query Language (SQL) is a specialized language for updating, deleting, and requesting information from databases.
The Kate SQL Plugin allows you to:
Create a database
Connect to existing databases
Insert and delete data in the database
Execute queries
Display results in a table
Select from the menu or toolbar, and then select the Qt database driver you want to use (including QSQLITE, QMYSQL3, QMYSQL, QODBC3, QODBC, QPSQL7, and QPSQL). If you can't see the desired driver, you need to install it. Then, press .
If the database you selected uses a file, simply indicate the database's location and press the button. If it requires connecting to a server, you must enter the hostname of the server, your username and password, and any other information that particular driver may require. Then press .
Finally, give a name to your connection, and press .
You can insert, delete, and update data using the SQL plugin just as you would from the command line or from within a program. Simply enter a query and press the button in the toolbar or use → (Ctrl+E).
Example 4.1. Some Example Queries
- INSERT
INSERT INTO
table_name
("feature1
", "feature2
", "feature3
", "feature4
", "feature5
") VALUES ("value1
", "value2
", "value3
", "value4
", "value5
" )- DELETE
DELETE FROM
table_name
WHERE name = "text
"- UPDATE
UPDATE
table_name
SET "feature1
" = "text
", "feature2
" = "text
", "feature3
" = "text
", "feature4
" = "text
", "feature5
" = "text
"
After running a SELECT query, you can view the results as a table that will appear in the SQL Data Output tool view at the bottom of Kate, or as text in the SQL Text Output. If there is an error, you can see it in the text output.
In the SQL Data Output tool view, there are several buttons:
Changes the size of columns to fit their contents.
Changes the size of rows to fit their contents.
Selects all of the table contents and copies it to the clipboard buffer.
Exports all of the table contents to a file, the clipboard, or the current document in the Comma Separated Values format.
Removes everything from the table view
You can now change the colors displayed in the table in the SQL section of → .
You can browse your database using the Database schema browser tool view on the left. The information displayed varies depending on which database driver you are using.
To refresh this list, right-click anywhere in the tool view and select . To generate a query on any entry in the list, right-click on an entry, select , and select the query type (, , , or ) from the submenu that appears.
- →
Adds a new connection using any database driver.
- →
Removes the selected connection.
- →
Edits the current connection's settings.
- Connections
All database connections you have created are listed between the and menu items. Select one to run queries or make modifications to it.
- → (Ctrl+E)
Runs your query.

It allows developers to view symbols (functions, macros and structures) from source code.
By clicking the parsed information you can easily browse the code.
At the moment the following languages are supported:
C/C++, Java, Perl, PHP, Python, Ruby, XSLT, Tcl/Tk, Fortran
Feature list:
List/Tree mode |
Enable/disable sorting |
Hide/Show Functions Parameters |
Expand/collapse tree mode |
Auto-update on document change |
Code parsing is based on the Syntax-Highlighting framework from KDE Frameworks |

The built in Terminal Emulator is a copy of the KDE Konsole terminal application, for your convenience. It is available from the → → menu item and will get the focus whenever displayed. Additionally, if the Automatically synchronize the terminal with the current document when possible option is enabled, it will change to the directory of the current document if possible when it is displayed, or when the current document changes.
The default location in the Kate window is at the bottom, below the editing area.
You can configure the Konsole using its mouse button menu, for more information, see the Konsole manual.
The built-in terminal emulator is provided by the Terminal Tool View plugin.
- → →
Toggles the display of the built-in terminal emulator.
When activated for the first time, the terminal will be created.
When the terminal emulator is displayed, it will get the focus, so that you can start typing in commands immediately. If the Automatically synchronize the terminal with the current document when possible option is enabled in the Terminal page of the Main configuration dialog the shell session will change to the directory of the active document, if it is a local file.
- →
Feed the currently selected text into the built-in terminal emulator. No newline is added after the text.
- →
This will cause the built-in Terminal to cd into the directory of the active document.
Alternatively, you can configure Kate to always keep the terminal in sync with the current document. See the section called “Configuration” for more information.
- →
Switch the focus from the current document to the terminal and vice versa.
You can configure the Terminal Tool View plugin on the Terminal page of the configuration dialog.
The following options are available:
- Automatically synchronize the terminal with the current document when possible
This will cause the built-in terminal to cd into the directory of the active document when launched and when a new document gets the focus. If not enabled, you have to do all your navigation in the terminal on your own.
- Set EDITOR environment variable to 'kate -b'
This sets the
EDITOR
environment variable so programs run in the built-in terminal that automatically open a file in an editor will open them in Kate instead of the default editor configured in your shell. You will not be able to continue using the terminal until you have closed the file in Kate, so the calling program is aware you have finished editing the file.

You can use this plugin to execute shell commands. A selection will be used as argument for the shell command, the output will either replace the selection or copied to the clipboard.
Examples:
less /etc/fstab - paste the contents of this file or copy it to the clipboard
wc - count lines, words and characters of the selection and paste this into the document or copy it to the clipboard
sort - sort lines of the selection and paste the result into the document or copy it to the clipboard
- → (Ctrl+\)
Opens the Text Filter dialog:
Enter the shell command into the combobox or select a previous command from the history.
- Copy the result instead of pasting it
Copy the result to clipboard leaving a document unchanged.
- Merge STDOUT and STDERR
If checked, an output from STDOUT and STDERR will be merged and no errors will be reported. Otherwise, STDERR will be displayed as a passive message.

This plugin checks XML files for validity and being well-formed.
This plugin checks the current file. A list of warnings and errors
will appear at the bottom of Kate's main window. You can click on an error message
to jump to the corresponding place in the file. If the file has a “DOCTYPE”
the DTD given with this doctype will be used to check the file for validity. The
DTD is expected at a position relative to the current file, e.g. if the doctype
refers to “DTD/xhtml1-transitional.dtd” and the file is /home/peter/test.xml
the DTD is expected to be located at /home/peter/DTD/xhtml1-transitional.dtd
.
However, remote DTDs specified via http are supported.
If the file has no doctype it will be checked for being well-formed.
To learn more about XML check out the official W3C XML pages.
Internally this plugin calls the external command xmllint, which is part of libxml2. If this command is not correctly installed on your system, the plugin will not work.
To load this plugin open Kate's configuration dialog under → . Then select XML Validation which will appear in the Application / Plugins section and close the dialog.

This plugin gives hints about what is allowed at a certain position in an XML file, according to the file's DTD. It will list possible elements, attributes, attribute values or entities, depending on the cursor position (e.g. all entities are listed if the character on the left of the cursor is “&”). It's also possible to close the nearest open tag on the left.
The DTD must exist in XML format, as produced by the Perl program
dtdparse. We will call a DTD in this format “meta DTD”.
Some meta DTDs are supplied. They are installed in
katexmltools/
in
qtpaths
,
which is also the default folder when you choose
.
To produce your own meta DTDs, get dtdparse from
http://dtdparse.sourceforge.net.--paths GenericDataLocation
Start Kate and open the configuration dialog under → . Then select XML Completion which will appear in the → page and close the dialog. After that, select → . If your document contains no “DOCTYPE” or the doctype is unknown, you will have to select a meta DTD from the file system. Otherwise the meta DTD that matches the current document's DOCTYPE will be loaded automatically.
You can now use the plugin while typing your text:
- < (less than key)
This will trigger a list of possible elements unless the cursor is inside a tag already. Note that you currently cannot use this to insert the top level element (e.g. “<html>”).
- </(less than key + slash)
Entering these characters will offer to close the current element (nearest open one to the left of the cursor). Press Enter to accept the suggestion. Unlike the menu item, this works only with a DTD assigned.
- " (quote key)
The quote key will trigger a list of possible attribute values (if there are any) if you are inside a tag.
- (space key)
This key will trigger a list of possible attributes for the current element if you are inside a tag.
- & (ampersand key)
This key will trigger a list of named entities.
You can test all functions and limitations by loading
katexmltools/testcases.xml
in
qtpaths
into Kate and following the instructions.--paths GenericDataLocation
- → (Ctrl+Enter)
This will open a dialog that lets you insert an XML element. The <, > characters and the closing tag will be inserted automatically. If you have selected text when this menu item is selected, the selected text will be surrounded by the opening and the closing tag. The dialog also offers completion of all elements that may be inserted at the current cursor position if you have assigned a meta DTD by using .
- → (Ctrl+<)
This will search your text for a tag that is not yet closed and will close it by inserting the corresponding closing tag. The search starts at the cursor position and goes left. If it cannot find an open tag nothing will happen.
- →
This will tell the plugin which meta DTD to use for the current document. Note that this assignment will not be saved. You will have to repeat it when you start Kate the next time.

For information about the advanced editing tools included with Kate, see the Advanced Editing Tools chapter of the KatePart Handbook.

Like any advanced text editor, Kate offers a variety of ways to extend its functionality. You can write simple scripts to add functionality with JavaScript or add even more functionality to the editor itself with Kate Application Plugins written in C++. Finally, once you have extended Kate, you are welcome to join us and share your enhancements with the world!

For information about adding or modifying syntax highlighting definitions, see the Working with Syntax Highlighting section of the Development chapter of the KatePart Handbook.

For information about scripting with JavaScript, see the Scripting with JavaScript section of the Development chapter of the KatePart Handbook.

Kate Application Plugins extend the functionality of the Kate editor itself in any way you can imagine, using the same programming language Kate is written in, C++.
To get started, see the Writing a Kate Plugin tutorial on the Kate website.

For information about Kate's VI input mode, see the VI Input Mode chapter of the KatePart Handbook.

- → (Ctrl+N)
This command starts a new document in the editing window. In the list on the left the new file is named Untitled.
- → (Ctrl+O)
Displays a standard KDE Open File dialog. Use the file view to select the file you want to open, and click on to open it.
- →
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 this application - if the file still resides at the same location.
- →
This submenu presents a list of applications known to handle the mime type of your current document. Activating an entry will open the current document with that application.
In addition, an entry launches the open with dialog box that allows you to select another application to open the active file. Your file will still be open in Kate.
- → (Ctrl+S)
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.
- → (Ctrl+Shift+S)
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 Open section of this help file.
- →
Save a document with a new file name in a different encoding.
- →
Save a copy of the document with a new file name and continue editing the original document.
- → (Ctrl+L)
This command saves all modified open files.
- → (F5)
Reloads the active file from disk. This command is useful if another program or process has changed the file while you have it open in this application.
- →
Reloads all opened files..
- → (Ctrl+P)
Opens a simple print dialog allowing the user to specify what, where, and how to print.
- →
Save the currently open document as an HTML file, which will be formatted using the current syntax highlighting and color scheme settings.
- → (Ctrl+W)
Close the active file with this command. If you have made unsaved changes, you will be prompted to save the file before Kate closes it.
- →
Close other open documents.
- →
This command closes all the files you have open in Kate.
- →
Close all documents in the file list, which could not be reopened during startup, because they are not accessible anymore.
- → (Ctrl+Q)
This command closes Kate and any files you were editing. If you have made unsaved changes to any of the files you were editing, you will be prompted to save them.

- → (Ctrl+Z)
Undo the last editing command (typing, copying, cutting etc.)
Note
This may undo several editing commands of the same type, like typing in characters.
- → (Ctrl+Shift+Z)
This will reverse the most recent change (if any) made using Undo
- → (Ctrl+X)
This command deletes the current selection and places it on the clipboard. The clipboard works invisibly and provides a way to transfer data between applications.
- → (Ctrl+C)
This copies the currently selected text to the clipboard so that it may be pasted elsewhere. The clipboard works invisibly and provides a way to transfer data between applications.
- → (Ctrl+V)
This will insert the first item in the clipboard at the cursor position. The clipboard works invisibly and provides a way to transfer data between applications.
Note
If Overwrite Selection is enabled, the pasted text will overwrite the selection, if any.
- →
This submenu will display the beginning of portions of text recently copied to the clipboard. Select an item from this menu to paste it in the currently open file.
- →
Copy the selection as HTML, formatted using the current syntax highlighting and color scheme settings.
- → (Ctrl+A)
This will select the entire document. This could be very useful for copying the entire file to another application.
- → (Ctrl+Shift+A)
Deselects the selected text in the editor if any.
- → (Ctrl+Shift+B)
Toggles Selection Mode. When the Selection Mode is BLOCK, the status bar contains the string [BLOCK] and you can make vertical selections, e.g. select column 5 to 10 in lines 9 to 15.
- →
Switch between a normal and a vi-like, modal editing mode. The vi input mode supports the most used commands and motions from vim's normal and visual mode and has an optional vi mode statusbar. This status bar shows commands while they are being entered, output from commands and the current mode. The behavior of this mode can be configured in the Vi Input Mode section of the Editing page in this application's settings dialog.
- → (Ins)
Toggles the Insert/Overwrite modes. When the mode is INS, you insert characters where the cursor is. When the mode is OVR, writing characters will replace the current characters if your cursor is positioned before any character. The status bar shows the current state of the Overwrite Mode, either INS or OVR.
- → (Ctrl+F)
This opens the incremental search bar at the bottom of the editor window. On the left side of the bar is a button with an icon to close the bar, followed by a small text box for entering the search pattern.
When you start entering characters of your search pattern, the search starts immediately. If there is a match in the text this is highlighted and the background color of the entry field changes to light green. If the search pattern does not match any string in the text, this is indicated by a light red background color of the entry field.
Use the
or
button to jump to the next or previous match in the document.
Matches in the document are highlighted even when you close the search bar. To clear this highlighting, press the Esc key.
You can choose whether the search should be case sensitive. Selecting
will limit finds to entries that match the case (upper or lower) of each of the characters in the search pattern.
Click on the
button at the right side of the incremental search bar to switch to the power search and replace bar.
- → → (F3)
This repeats the last find operation, if any, without calling the incremental search bar, and searching forwards through the document starting from the cursor position.
- → → (Shift+F3)
This repeats the last find operation, if any, without calling the incremental search bar, and searching backwards instead of forwards through the document.
- → → (Ctrl+H)
Finds next occurrence of selected text.
- → → (Ctrl+Shift+H)
Finds previous occurrence of selected text.
- → (Ctrl+R)
This command opens the power search and replace bar. On the upper left side of the bar is a button with an icon to close the bar, followed by a small text box for entering the search pattern.
You can control the search mode by selecting Plain text, Whole words, Escape sequences or Regular expression from the drop down box.
If Escape sequences or Regular expression are selected, the menuitem at the bottom of the context menu of the text boxes will be enabled and allows you to add escape sequences or regular expression items to the search or replace pattern from predefined lists.
Use the
or
button to jump to the next or previous match in the document.
Enter the text to replace with in the text box labeled Replace and click the button to replace only the highlighted text or the button to replace the search text in the whole document.
You can modify the search and replace behavior by selecting different options at the bottom of the bar. Selecting
will limit finds to entries that match the case (upper or lower) of each of the characters in the search pattern.
will search and replace within the current selection only. The Find All button highlights all matches in the document and shows the number of found matches in a small popup.
Click on the
button at the right side of the power search and replace bar to switch to the incremental search bar.
- → → (Ctrl+6)
Move the cursor to the associated opening or closing bracket.
- → → (Ctrl+Shift+6)
Selects the text between associated opening and closing brackets.
- → →
Lines that were changed since opening the file are called modified lines. This action jumps the previous modified line.
- → →
Lines that were changed since opening the file are called modified lines. This action jumps the next modified line.
- → → (Ctrl+G)
This opens the goto line bar at the bottom of the window 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. Close the bar with a click on the button with an icon on the left side of the bar.

- →
Opens another instance of Kate. The new instance will be identical to your previous instance.
- → (Alt+Right)
Activates the next tab in the tabbar.
- → (Alt+Left)
Activates the previous tab in the tabbar.
- → (Ctrl+Alt+O)
Show a search field and a list of opened files in the editor area. While entering text in the search field the document names and document URLs are searched for matching text. While entering text in the search field you can use the cursor keys Up and Down to navigate in the list view. Pressing the Enter key or double clicking on an item in the list switches the view to the document selected in the list view. This makes switching between documents easier, if there are a lot of them open.
This action is available also using the
icon at the top right of the editor window.
- → → (Shift+F8)
Focus the previous document view, if you have split the editor area in more views.
- → → (F8)
Focus the next document view, if you have split the editor area in more views.
- → → (Ctrl+Shift+L)
This will split the frame (which may be the main editing area) in two equally sized frames, the new one to the left of the current one. The new frame gets the focus, and will display the same document as the old one.
See also Working with the Kate MDI
- → → (Ctrl+Shift+T)
Splits the current frame (which may be the main editing area) in two equally sized frames, the new one below the current one. The new frame gets the focus, and displays the same document as the old one.
See also Working with the Kate MDI
- → →
Switch between horizontal and vertical split.
- → → (Ctrl+Shift+R)
Closes the active frame, which can be identified as the one displaying a blinking cursor. This is disabled, if there is only one frame (the main editing area).
No documents get closed by closing a frame – they will still be available in the Menu as well as in the File List.
See also Working with the Kate MDI
- → →
Closes all frames except the active frame (the one with a blinking cursor). This is disabled, if there is only one frame (the main editing area).
No documents get closed by closing a frame – they will still be available in the Menu as well as in the File List.
- → →
This hides all split views except the currently active one.
- → →
When Split View is enabled, this will move the border between two vertically split documents further left.
- → →
When Split View is enabled, this will move the border between two vertically split documents further right.
- → →
When Split View is enabled, this will move the border between two horizontally split documents further up.
- → →
When Split View is enabled, this will move the border between two horizontally split documents further down.
Note
Some common actions in the menu are available using the
button at the top right corner of the editor window
- →
- → → (Ctrl+Alt+Shift+F)
Toggles the display of the sidebar button rows. This command does not affect the display of the sidebar content widgets, any sidebar that is visible will stay visible, and if you assigned shortcuts to the commands below those will of course continue to work.
- → →
A list of all enabled plugins. Use the checkbox in front of each item to toggle the display of the tool view.
- → (F7)
This command will toggle the display of the built-in command line.
- → (Ctrl++)
This increases the display font size.
- → (Ctrl+-)
This decreases the display font size.
- →
This menu lists the available color schemes. You can change the schema for the current view here, to change the default schema you need to use the Fonts & Colors page of the config dialog.
- → → (F10)
Toggles dynamic word wrap in the current view. Dynamic word wrap makes all the text in a view visible without the need for horizontal scrolling by rendering one actual line on more visual lines as needed.
- → →
Choose when and how the dynamic word wrap indicators should be displayed. This is only available if the Dynamic Word Wrap option is checked.
- → →
Toggles the display of a vertical line indicating the position of the wrap width as configured in the config dialog. This feature requires that you use a true fixed-width font.
- → → (F6)
This is a toggle item. Setting it on checked will make the Icon Border visible in the left side of the active editor, and vice versa. The Icon Border indicates the positions of the marked lines in the editor.
- → → (F11)
This is a toggle Item. Setting it on checked will make a pane displaying the line numbers of the document visible in the left border of the active editor, and vice versa.
- → →
Toggles the visualization of bookmarks (and other marks) on the vertical scrollbar. When enabled, a mark is represented by a thin line in the mark color at the scrollbar, clicking the
mouse button on the line will scroll the view to a position near the mark.- → →
This will replace the scrollbar with a visualization of the current document. For more information on the scrollbar minimap, see the Scrollbar Minimap section of the KatePart Handbook.
- →
These options pertain to code folding:
- (F9)
Toggles the display of the folding marker pane in the left side of the view.
Collapse the region that contains the cursor.
Expand the region that contains the cursor.
- (Ctrl+Shift+-)
Collapse all toplevel regions in the document. Click on the right pointing triangle to expand all toplevel regions.
- (Ctrl+Shift++)
Expand all toplevel regions in the document.
Show/hide bounding box around non-printable spaces.

Below the entries described here, one entry for each bookmark in the active document will be available. The text will be the first few words of the marked line. Choose an item to move the cursor to the start of that line. The editor will scroll as necessary to make that line visible.
- → (Ctrl+B)
Sets or removes a bookmark in the current line of the active document. (If it's there, it is removed, otherwise one is set.)
- →
This command will remove all the markers from the document as well as the list of markers which is appended at the bottom of this menu item.
- → (Alt+PgUp)
This will move the cursor to beginning of the first above line with a bookmark. The menuitem text will include the line number and the first piece of text on the line. This item is only available when there is a bookmark in a line above the cursor.
- → (Alt+PgDown)
This will move the cursor to beginning of the next line with a bookmark. The menuitem text will include the line number and the first piece of text on the line. This item is only available when there is a bookmark in a line below the cursor.

This menu contains entries for using and managing Kate sessions. For more information, read Using Sessions.
- →
Creates a new empty session. All currently open files will be closed.
- →
Open an existing session. The Session Chooser dialog is displayed to let you choose one.
- →
This submenu lets you open an existing session.
- →
Save the current session. If the session is anonymous, you will be prompted for a session name.
- →
Save the current session under a new name. You are prompted for a name to use.
- →
Displays the Session Manager dialog which allows you to rename and delete sessions.

- →
Set the current document to Read Only mode. This prevents any text addition and any changes in the document formatting.
- →
Choose the filetype scheme you prefer for the active document. This overwrites the global filetype mode set in → in the Filetypes tab for your current document only.
- →
Choose the Highlighting scheme you prefer for the active document. This overwrites the global highlighting mode set in → for your current document only.
- →
Choose the style of indentation you want for your active document. This overwrites the global indentation mode set in → for your current document only.
- →
You can overwrite the default encoding set in → in the Open/Save page to set a different encoding for your current document. The encoding you set here will be only valid for your current document.
- →
Choose your preferred end of line mode for your active document. This overwrites the global end of line mode set in → for your current document only.
- →
Checking this action you can explicitly add a byte order mark for unicode encoded documents. The byte order mark (BOM) is a Unicode character used to signal the endianness (byte order) of a text file or stream, for more information see Byte Order Mark.
- →
This submenu contains a list of all scripted actions. The list can easily be modified by writing your own scripts. This way, Kate can be extended with user-defined tools.
There is a complete list of scripts in the KatePart documentation.
- → (Ctrl+Space)
Manually invoke command completion, usually by using a shortcut bound to this action.
- →
(Ctrl+9) and (Ctrl+8) complete the currently typed text by searching for similar words backward or forward from the current cursor position. pops up a completion box with matching entries.
- → → (Ctrl+Shift+O)
When is enabled, wrongly spelled text is underlined in the document on-the-fly.
- → →
This initiates the spellchecking program - a program designed to help the user catch and correct any spelling errors.
For more information on how to use the KDE spellchecking program, see the Check Spelling section of the KDE Fundamentals documentation.
- → →
This initiates the spellchecking program but it starts where your cursor is instead of at the beginning of the document.
- → →
Spellchecks the current selection.
- → →
Displays a drop down box with all available dictionaries for spellchecking at the bottom of the editor window. This allows easy switching of the spellcheck dictionary e.g. for automatic spellcheck of text in different languages.
- →
This cleans the indentation for the current selection or for the line the cursor is currently in. Cleaning the indentation ensures that all your selected text follows the indentation mode you choose.
- →
Causes a realign of the current line or selected lines using the indentation mode and indentation settings in the document.
- → (Ctrl+D)
This adds one space to the beginning of the line where the text cursor is located or to the beginning of any selected lines.
- → (Ctrl+Shift+D)
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.
- → (Ctrl+U)
Put the selected text or the letter after the cursor in uppercase.
- → (Ctrl+Shift+U)
Put the selected text or the letter after the cursor in lowercase.
- → (Ctrl+Alt+U)
Capitalize the selected text or the current word.
- → (Ctrl+J)
Joins the selected lines, or the current line and the line below with one white space character as a separator. Leading/trailing white space on joined lines is removed in the affected ends.
- →
Apply static word wrapping on all the document. That means that a new line of text will automatically start when the current line exceeds the length specified by the Wrap words at option in the Editing tab in →

Kate has the common KDE and menu items, for more information read the sections about the Settings Menu and Help Menu of the KDE Fundamentals with two additional entries:
- →
Tabs are moveable using the
mouse button and have actions in the context menu to close documents, copy the path to the clipboard or open the folder of the document in the filemanager. Using thebutton makes switching between documents easy. Click the
button with the mouse button to open a menu with actions from the menu.
- →
If enabled the full path of the active document is displayed, otherwise only the filename. This is useful if you edit several files with the same filename to distinguish them.

Kate offers several means of tweaking the application to behave as desired. The most important ones are:
- The Configuration Dialog
The main configuration tool, allowing you to configure the Kate application, the editor component and the usage of plugins.
- The Menu
Allows you to change often used settings, and to launch the configuration dialogs.
- The Menu
Allows you to split the current frame, as well as to display the icons and line numbers pane for the currently edited document.
The embedded terminal uses the configuration defined in the System Settings, and may also be configured by clicking the mouse button to display a context menu.


The Kate configuration dialog displays a tree of topics on the left, and a configuration page corresponding to the selected topic on the right.
The configuration is divided into two groups, namely

This group contains pages to configure the main Kate application
This section contains a few global options for Kate
- Behavior
- Warn about files modified by foreign processes
When enabled, Kate will notify you about files modified from outside the application whenever the main window receives input focus. You will be able to deal with several modified files at once, you can reload, save or discard changed files in groups.
If not enabled, Kate will prompt you for action when an externally modified file receives focus within the application.
- Meta Information
- Keep meta-information past sessions
When enabled, Kate will store meta data such as bookmarks and session configuration even when you close your documents. The data will be used if the document is unchanged when reopened.
- Delete unused meta information after
Set the maximum number of days to keep meta information for previously opened files. This helps keeping the database of meta information reasonably sized.
This section contains options related to using sessions.
- Session Elements
- Include window configuration
If enabled, Kate will save the window configuration with each session.
- Behavior on Application Startup
Select how you want Kate to behave at startup. This setting can be overridden by specifying what to do on the command line.
- Start new session
With this option, Kate will start a new, unnamed session when you start the application.
- Load last-used session
Kate will use the most recently opened session at startup. This is good if you want to use the same session always or switch rarely.
- Manually choose a session
Kate will display a small dialog that lets you choose your preferred session, or load the default session if none have been saved. This is the default behavior. Nice if you use a lot of different sessions frequently.
Any changes to the session data (opened files and, if enabled, window configuration) will always be saved.
This page provides a list of installed plugins for the Kate application. Each plugin is represented with its name and a short description. You can check the checkbox with an item to enable the plugin it represents.
If a plugin provides configuration options, a section to access those will appear as a child of this page.
For more information about the available plugins, see Chapter 4, Working with Plugins.
For information about this section of the configuration dialog, see the Editor Component Configuration section of the KatePart Handbook.
For information about using document variables with Kate, see the Configuring with Document Variables section of the KatePart Handbook.

Kate. Program copyright 2000, 2001, 2002 - 2005 by the Kate developer team.
The Kate team:
- Christoph Cullmann
(cullmann AT kde.org)
Project Manager & Core Developer
- Anders Lund
(anders AT alweb.dk)
Core Developer, Perl syntax highlighting, documentation
- Joseph Wenninger
(kde AT jowenn.at)
Core Developer, syntax highlighting
- Michael Bartl
(michael.bartl1 AT chello.at)
Core Developer
- Phlip
(phlip_cpp AT my-deja.com)
The project compiler
- Waldo Bastian
(bastian AT kde.org)
The cool buffer system
- Matt Newell
(newellm AT proaxis.com)
Testing...
- Michael McCallum
(gholam AT xtra.co.nz)
Core Developer
- Jochen Wilhemly
(digisnap AT cs.tu-berlin.de)
KWrite Author
- Michael Koch
(koch AT kde.org)
KWrite port to KParts
- Christian Gebauer
(gebauer AT bigfoot.com)
Unspecified
- Simon Hausmann
(hausmann AT kde.org)
Unspecified
- Glen Parker
(glenebob AT nwlink.com)
KWrite Undo History, KSpell integration
- Scott Manson
(sdmanson AT alltel.net)
KWrite XML syntax highlighting support
- John Firebaugh
(jfirebaugh AT kde.org)
Various Patches
- Dominik Haumann
(dhdev AT gmx.de)
Developer, Highlight wizard
Many other people have contributed:
- Matteo Merli
(merlim AT libero.it)
Highlighting for RPM Spec-Files, Diff and more
- Rocky Scaletta
(rocky AT purdue.edu)
Highlighting for VHDL
- Yury Lebedev
Highlighting for SQL
- Chris Ross
Highlighting for Ferite
- Nick Roux
Highlighting for ILERPG
- John Firebaugh
Highlighting for Java™, and much more
- Carsten Niehaus
Highlighting for LaTeX
- Per Wigren
Highlighting for Makefiles, Python
- Jan Fritz
Highlighting for Python
- Daniel Naber
Small bugfixes, XML plugin
Documentation copyright 2000,2001 Seth Rothberg
(sethmr AT bellatlantic.org)
Documentation copyright 2002, 2003, 2005 Anders Lund
(anders AT alweb.dk)
This documentation is licensed under the terms of the GNU Free Documentation License.
This program is licensed under the terms of the GNU General Public License.

For information about using regular expressions in Kate, see the Regular Expressions appendix to the KatePart Handbook.

To learn how to install Kate and other KDE applications on your system, see the Installing chapter of the KDE Fundamentals documentation.