f091581c20
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3907 ea778897-0a13-0410-b9d1-a72fbfd435f5
4961 lines
220 KiB
HTML
4961 lines
220 KiB
HTML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
|
|
<title>Geany</title>
|
|
<meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" />
|
|
<meta name="date" content="2009-06-29" />
|
|
<style type="text/css">
|
|
|
|
/*
|
|
:Author: Enrico Troeger
|
|
:Contact: enrico(dot)troeger(at)uvena(dot)de
|
|
:Copyright: This stylesheet has been placed in the public domain.
|
|
|
|
Stylesheet for Geany's documentation based on a version of John Gabriele.
|
|
*/
|
|
|
|
@media screen {
|
|
|
|
body {
|
|
background-color: #f2f2f2;
|
|
color: #404040;
|
|
margin-left: 0.4em;
|
|
width: 60em;
|
|
font-size: 90%;
|
|
}
|
|
|
|
a {
|
|
color: #990000;
|
|
}
|
|
|
|
a:visited {
|
|
color: #7E558E;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: none;
|
|
}
|
|
|
|
h1 {
|
|
border-top: 1px dotted;
|
|
margin-top: 2em;
|
|
}
|
|
|
|
h1, h2, h3 {
|
|
font-family: sans-serif;
|
|
color: #5D0606;
|
|
}
|
|
|
|
h1.title {
|
|
text-align: left }
|
|
|
|
h2 {
|
|
margin-top: 30px;
|
|
}
|
|
|
|
h2.subtitle {
|
|
text-align: left }
|
|
|
|
h3 {
|
|
padding-left: 3px;
|
|
}
|
|
|
|
blockquote, pre {
|
|
border: 1px solid;
|
|
padding: 0.4em;
|
|
}
|
|
|
|
blockquote {
|
|
font-family: sans-serif;
|
|
background-color: #DBEDD5;
|
|
border: 1px dotted;
|
|
border-left: 4px solid;
|
|
border-color: #9FD98C;
|
|
}
|
|
|
|
pre {
|
|
background-color: #ECDFCE;
|
|
border: 1px dotted;
|
|
border-left: 4px solid;
|
|
border-color: #D9BE9A;
|
|
}
|
|
|
|
tt, pre, code {
|
|
color: #6D4212;
|
|
}
|
|
|
|
table {
|
|
border: 1px solid #D9BE9A;
|
|
}
|
|
|
|
th {
|
|
background-color: #ECDFCE;
|
|
border: 1px dotted #D9BE9A;
|
|
}
|
|
|
|
td {
|
|
border: 1px dotted #D9BE9A;
|
|
}
|
|
|
|
.docinfo-name {
|
|
color: #5D0606;
|
|
}
|
|
|
|
p.admonition-title {
|
|
color: #990000;
|
|
font-weight: bold;
|
|
}
|
|
|
|
div.note {
|
|
margin: 1em 3em;
|
|
padding: 0em;
|
|
}
|
|
|
|
dt {
|
|
font-style: italic;
|
|
}
|
|
|
|
}
|
|
|
|
@media print {
|
|
|
|
}
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="document" id="geany">
|
|
<h1 class="title">Geany</h1>
|
|
<h2 class="subtitle" id="a-fast-light-gtk-ide">A fast, light, GTK+ IDE</h2>
|
|
<table class="docinfo" frame="void" rules="none">
|
|
<col class="docinfo-name" />
|
|
<col class="docinfo-content" />
|
|
<tbody valign="top">
|
|
<tr><th class="docinfo-name">Authors:</th>
|
|
<td>Enrico Tröger
|
|
<br />Nick Treleaven
|
|
<br />Frank Lanitz</td></tr>
|
|
<tr><th class="docinfo-name">Date:</th>
|
|
<td>2009-06-29</td></tr>
|
|
<tr><th class="docinfo-name">Version:</th>
|
|
<td>0.18</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Copyright © 2005-2009</p>
|
|
<p>This document is distributed under the terms of the GNU General Public
|
|
License as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version. A copy of this
|
|
license can be found in the file COPYING included with the source code
|
|
of this program, and also in the chapter <a class="reference internal" href="#gnu-general-public-license">GNU General Public License</a>.</p>
|
|
<div class="contents topic" id="contents">
|
|
<p class="topic-title first">Contents</p>
|
|
<ul class="simple">
|
|
<li><a class="reference internal" href="#introduction" id="id11">Introduction</a><ul>
|
|
<li><a class="reference internal" href="#about-geany" id="id12">About Geany</a></li>
|
|
<li><a class="reference internal" href="#where-to-get-it" id="id13">Where to get it</a></li>
|
|
<li><a class="reference internal" href="#license" id="id14">License</a></li>
|
|
<li><a class="reference internal" href="#about-this-document" id="id15">About this document</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#installation" id="id16">Installation</a><ul>
|
|
<li><a class="reference internal" href="#requirements" id="id17">Requirements</a></li>
|
|
<li><a class="reference internal" href="#binary-packages" id="id18">Binary packages</a></li>
|
|
<li><a class="reference internal" href="#source-compilation" id="id19">Source compilation</a><ul>
|
|
<li><a class="reference internal" href="#autotools-based-build-system" id="id20">Autotools based build system</a></li>
|
|
<li><a class="reference internal" href="#waf-based-build-system" id="id21">Waf based build system</a><ul>
|
|
<li><a class="reference internal" href="#waf-cache" id="id22">Waf Cache</a><ul>
|
|
<li><a class="reference internal" href="#cleaning-the-cache" id="id23">Cleaning the Cache</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#custom-installation" id="id24">Custom installation</a></li>
|
|
<li><a class="reference internal" href="#dynamic-linking-loader-support" id="id25">Dynamic linking loader support</a></li>
|
|
<li><a class="reference internal" href="#build-problems" id="id26">Build problems</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#installation-prefix" id="id27">Installation prefix</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#usage" id="id28">Usage</a><ul>
|
|
<li><a class="reference internal" href="#getting-started" id="id29">Getting started</a></li>
|
|
<li><a class="reference internal" href="#command-line-options" id="id30">Command line options</a></li>
|
|
<li><a class="reference internal" href="#general" id="id31">General</a><ul>
|
|
<li><a class="reference internal" href="#startup" id="id32">Startup</a></li>
|
|
<li><a class="reference internal" href="#opening-files-from-the-command-line-in-a-running-instance" id="id33">Opening files from the command-line in a running instance</a></li>
|
|
<li><a class="reference internal" href="#virtual-terminal-emulator-widget-vte" id="id34">Virtual terminal emulator widget (VTE)</a></li>
|
|
<li><a class="reference internal" href="#defining-own-widget-styles-using-gtkrc-2-0" id="id35">Defining own widget styles using .gtkrc-2.0</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#documents" id="id36">Documents</a><ul>
|
|
<li><a class="reference internal" href="#switching-between-documents" id="id37">Switching between documents</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#character-sets-and-unicode-byte-order-mark-bom" id="id38">Character sets and Unicode Byte-Order-Mark (BOM)</a><ul>
|
|
<li><a class="reference internal" href="#using-character-sets" id="id39">Using character sets</a></li>
|
|
<li><a class="reference internal" href="#in-file-encoding-specification" id="id40">In-file encoding specification</a></li>
|
|
<li><a class="reference internal" href="#special-encoding-none" id="id41">Special encoding "None"</a></li>
|
|
<li><a class="reference internal" href="#unicode-byte-order-mark-bom" id="id42">Unicode Byte-Order-Mark (BOM)</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#editing" id="id43">Editing</a><ul>
|
|
<li><a class="reference internal" href="#folding" id="id44">Folding</a></li>
|
|
<li><a class="reference internal" href="#column-mode-editing-rectangular-selections" id="id45">Column mode editing (rectangular selections)</a></li>
|
|
<li><a class="reference internal" href="#drag-and-drop-of-text" id="id46">Drag and drop of text</a></li>
|
|
<li><a class="reference internal" href="#indentation" id="id47">Indentation</a></li>
|
|
<li><a class="reference internal" href="#auto-indentation" id="id48">Auto-indentation</a></li>
|
|
<li><a class="reference internal" href="#bookmarks" id="id49">Bookmarks</a></li>
|
|
<li><a class="reference internal" href="#code-navigation-history" id="id50">Code Navigation History</a></li>
|
|
<li><a class="reference internal" href="#send-text-through-definable-commands" id="id51">Send text through definable commands</a></li>
|
|
<li><a class="reference internal" href="#context-actions" id="id52">Context actions</a></li>
|
|
<li><a class="reference internal" href="#user-definable-snippets" id="id53">User-definable snippets</a></li>
|
|
<li><a class="reference internal" href="#inserting-unicode-characters" id="id54">Inserting Unicode characters</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#search-replace-and-go-to" id="id55">Search, replace and go to</a><ul>
|
|
<li><a class="reference internal" href="#find" id="id56">Find</a><ul>
|
|
<li><a class="reference internal" href="#matching-options" id="id57">Matching options</a></li>
|
|
<li><a class="reference internal" href="#find-all" id="id58">Find all</a></li>
|
|
<li><a class="reference internal" href="#change-font-in-search-dialog-text-fields" id="id59">Change font in search dialog text fields</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#find-usage" id="id60">Find usage</a></li>
|
|
<li><a class="reference internal" href="#find-in-files" id="id61">Find in files</a><ul>
|
|
<li><a class="reference internal" href="#filtering-out-version-control-files" id="id62">Filtering out version control files</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#replace" id="id63">Replace</a><ul>
|
|
<li><a class="reference internal" href="#replace-all" id="id64">Replace all</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#go-to-tag-definition" id="id65">Go to tag definition</a></li>
|
|
<li><a class="reference internal" href="#go-to-tag-declaration" id="id66">Go to tag declaration</a></li>
|
|
<li><a class="reference internal" href="#go-to-line" id="id67">Go to line</a></li>
|
|
<li><a class="reference internal" href="#regular-expressions" id="id68">Regular expressions</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#tags" id="id69">Tags</a><ul>
|
|
<li><a class="reference internal" href="#workspace-tags" id="id70">Workspace tags</a></li>
|
|
<li><a class="reference internal" href="#global-tags" id="id71">Global tags</a><ul>
|
|
<li><a class="reference internal" href="#default-global-tags-files" id="id72">Default global tags files</a></li>
|
|
<li><a class="reference internal" href="#global-tags-file-format" id="id73">Global tags file format</a></li>
|
|
<li><a class="reference internal" href="#generating-a-global-tags-file" id="id74">Generating a global tags file</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#ignore-tags" id="id75">Ignore tags</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#preferences" id="id76">Preferences</a><ul>
|
|
<li><a class="reference internal" href="#general-startup-tab-in-preferences-dialog" id="id77">General Startup tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#id1" id="id78">Startup</a></li>
|
|
<li><a class="reference internal" href="#shutdown" id="id79">Shutdown</a></li>
|
|
<li><a class="reference internal" href="#paths" id="id80">Paths</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#general-miscellaneous-tab-in-preferences-dialog" id="id81">General Miscellaneous tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#miscellaneous" id="id82">Miscellaneous</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#search" id="id83">Search</a><ul>
|
|
<li><a class="reference internal" href="#projects" id="id84">Projects</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#interface-tab-in-preferences-dialog" id="id85">Interface tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#sidebar" id="id86">Sidebar</a></li>
|
|
<li><a class="reference internal" href="#fonts" id="id87">Fonts</a></li>
|
|
<li><a class="reference internal" href="#editor-tabs" id="id88">Editor tabs</a></li>
|
|
<li><a class="reference internal" href="#tab-positions" id="id89">Tab positions</a></li>
|
|
<li><a class="reference internal" href="#id2" id="id90">Miscellaneous</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#toolbar-tab-in-preferences-dialog" id="id91">Toolbar tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#toolbar" id="id92">Toolbar</a></li>
|
|
<li><a class="reference internal" href="#appearance" id="id93">Appearance</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#editor-features-tab-in-preferences-dialog" id="id94">Editor Features tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#features" id="id95">Features</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#editor-indentation-tab-in-preferences-dialog" id="id96">Editor Indentation tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#indentation-group" id="id97">Indentation group</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#editor-completions-tab-in-preferences-dialog" id="id98">Editor Completions tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#completions" id="id99">Completions</a></li>
|
|
<li><a class="reference internal" href="#auto-close-quotes-and-brackets" id="id100">Auto-close quotes and brackets</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#editor-display-tab-in-preferences-dialog" id="id101">Editor Display tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#display" id="id102">Display</a></li>
|
|
<li><a class="reference internal" href="#long-line-marker" id="id103">Long line marker</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#files-tab-in-preferences-dialog" id="id104">Files tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#new-files" id="id105">New files</a></li>
|
|
<li><a class="reference internal" href="#saving-files" id="id106">Saving files</a></li>
|
|
<li><a class="reference internal" href="#id3" id="id107">Miscellaneous</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#tools-tab-in-preferences-dialog" id="id108">Tools tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#tool-paths" id="id109">Tool paths</a></li>
|
|
<li><a class="reference internal" href="#commands" id="id110">Commands</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#template-tab-in-preferences-dialog" id="id111">Template tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#template-data" id="id112">Template data</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#keybinding-tab-in-preferences-dialog" id="id113">Keybinding tab in preferences dialog</a></li>
|
|
<li><a class="reference internal" href="#printing-tab-in-preferences-dialog" id="id114">Printing tab in preferences dialog</a></li>
|
|
<li><a class="reference internal" href="#terminal-vte-tab-in-preferences-dialog" id="id115">Terminal (VTE) tab in preferences dialog</a><ul>
|
|
<li><a class="reference internal" href="#terminal-widget" id="id116">Terminal widget</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#project-management" id="id117">Project Management</a><ul>
|
|
<li><a class="reference internal" href="#new-project" id="id118">New Project</a></li>
|
|
<li><a class="reference internal" href="#project-properties" id="id119">Project Properties</a><ul>
|
|
<li><a class="reference internal" href="#make-in-base-path" id="id120">Make in base path</a></li>
|
|
<li><a class="reference internal" href="#run-command" id="id121">Run command</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#open-project" id="id122">Open Project</a></li>
|
|
<li><a class="reference internal" href="#close-project" id="id123">Close Project</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#build-system" id="id124">Build system</a><ul>
|
|
<li><a class="reference internal" href="#compile" id="id125">Compile</a></li>
|
|
<li><a class="reference internal" href="#build" id="id126">Build</a></li>
|
|
<li><a class="reference internal" href="#make-all" id="id127">Make all</a></li>
|
|
<li><a class="reference internal" href="#make-custom-target" id="id128">Make custom target</a></li>
|
|
<li><a class="reference internal" href="#make-object" id="id129">Make object</a></li>
|
|
<li><a class="reference internal" href="#execute" id="id130">Execute</a></li>
|
|
<li><a class="reference internal" href="#stopping-running-processes" id="id131">Stopping running processes</a><ul>
|
|
<li><a class="reference internal" href="#terminal-emulators" id="id132">Terminal emulators</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#set-includes-and-arguments" id="id133">Set Includes and Arguments</a><ul>
|
|
<li><a class="reference internal" href="#one-step-compilation" id="id134">One step compilation</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#indicators" id="id135">Indicators</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#printing-support" id="id136">Printing support</a></li>
|
|
<li><a class="reference internal" href="#plugins" id="id137">Plugins</a></li>
|
|
<li><a class="reference internal" href="#keybindings" id="id138">Keybindings</a><ul>
|
|
<li><a class="reference internal" href="#switching-documents" id="id139">Switching documents</a></li>
|
|
<li><a class="reference internal" href="#configurable-keybindings" id="id140">Configurable keybindings</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#configuration-files" id="id141">Configuration files</a><ul>
|
|
<li><a class="reference internal" href="#global-configuration-file" id="id142">Global configuration file</a></li>
|
|
<li><a class="reference internal" href="#filetype-definition-files" id="id143">Filetype definition files</a><ul>
|
|
<li><a class="reference internal" href="#format" id="id144">Format</a><ul>
|
|
<li><a class="reference internal" href="#styling-section" id="id145">[styling] Section</a><ul>
|
|
<li><a class="reference internal" href="#using-a-named-style" id="id146">Using a named style</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#keywords-section" id="id147">[keywords] Section</a></li>
|
|
<li><a class="reference internal" href="#settings-section" id="id148">[settings] Section</a></li>
|
|
<li><a class="reference internal" href="#build-settings-section" id="id149">[build_settings] Section</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#special-file-filetypes-common" id="id150">Special file filetypes.common</a><ul>
|
|
<li><a class="reference internal" href="#named-styles-section" id="id151">[named_styles] Section</a></li>
|
|
<li><a class="reference internal" href="#id4" id="id152">[styling] Section</a></li>
|
|
<li><a class="reference internal" href="#id5" id="id153">[settings] Section</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#filetype-extensions" id="id154">Filetype extensions</a></li>
|
|
<li><a class="reference internal" href="#templates" id="id155">Templates</a><ul>
|
|
<li><a class="reference internal" href="#template-meta-data" id="id156">Template meta data</a></li>
|
|
<li><a class="reference internal" href="#file-templates" id="id157">File templates</a><ul>
|
|
<li><a class="reference internal" href="#custom-file-templates" id="id158">Custom file templates</a></li>
|
|
<li><a class="reference internal" href="#filetype-templates" id="id159">Filetype templates</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#customizing-templates" id="id160">Customizing templates</a><ul>
|
|
<li><a class="reference internal" href="#template-wildcards" id="id161">Template wildcards</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#customizing-the-toolbar" id="id162">Customizing the toolbar</a><ul>
|
|
<li><a class="reference internal" href="#manually-editing-of-the-toolbar-layout" id="id163">Manually editing of the toolbar layout</a></li>
|
|
<li><a class="reference internal" href="#available-toolbar-elements" id="id164">Available toolbar elements</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#plugin-documentation" id="id165">Plugin documentation</a><ul>
|
|
<li><a class="reference internal" href="#instant-save" id="id166">Instant Save</a></li>
|
|
<li><a class="reference internal" href="#backup-copy" id="id167">Backup Copy</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#contributing-to-this-document" id="id168">Contributing to this document</a></li>
|
|
<li><a class="reference internal" href="#scintilla-keyboard-commands" id="id169">Scintilla keyboard commands</a><ul>
|
|
<li><a class="reference internal" href="#keyboard-commands" id="id170">Keyboard commands</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#tips-and-tricks" id="id171">Tips and tricks</a><ul>
|
|
<li><a class="reference internal" href="#document-notebook" id="id172">Document notebook</a></li>
|
|
<li><a class="reference internal" href="#editor" id="id173">Editor</a></li>
|
|
<li><a class="reference internal" href="#interface" id="id174">Interface</a></li>
|
|
<li><a class="reference internal" href="#gtk-related" id="id175">GTK-related</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#hidden-preferences" id="id176">Hidden preferences</a></li>
|
|
<li><a class="reference internal" href="#compile-time-options" id="id177">Compile-time options</a><ul>
|
|
<li><a class="reference internal" href="#src-geany-h" id="id178">src/geany.h</a></li>
|
|
<li><a class="reference internal" href="#project-h" id="id179">project.h</a></li>
|
|
<li><a class="reference internal" href="#editor-h" id="id180">editor.h</a></li>
|
|
<li><a class="reference internal" href="#keyfile-c" id="id181">keyfile.c</a></li>
|
|
<li><a class="reference internal" href="#build-h" id="id182">build.h</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference internal" href="#gnu-general-public-license" id="id183">GNU General Public License</a></li>
|
|
<li><a class="reference internal" href="#license-for-scintilla-and-scite" id="id184">License for Scintilla and SciTE</a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="introduction">
|
|
<h1><a class="toc-backref" href="#id11">Introduction</a></h1>
|
|
<div class="section" id="about-geany">
|
|
<h2><a class="toc-backref" href="#id12">About Geany</a></h2>
|
|
<p>Geany is a small and lightweight Integrated Development Environment. It
|
|
was developed to provide a small and fast IDE, which has only a few
|
|
dependencies from other packages. Another goal was to be as independent
|
|
as possible from a special Desktop Environment like KDE or GNOME -
|
|
Geany only requires the GTK2 runtime libraries.</p>
|
|
<p>Some basic features of Geany:</p>
|
|
<ul class="simple">
|
|
<li>Syntax highlighting</li>
|
|
<li>Code folding</li>
|
|
<li>Symbol name auto-completion</li>
|
|
<li>Construct completion/snippets</li>
|
|
<li>Auto-closing of XML and HTML tags</li>
|
|
<li>Call tips</li>
|
|
<li>Many supported filetypes including C, Java, PHP, HTML, Python, Perl,
|
|
Pascal, and others</li>
|
|
<li>Symbol lists</li>
|
|
<li>Code navigation</li>
|
|
<li>Build system to compile and execute your code</li>
|
|
<li>Simple project management</li>
|
|
<li>Plugin interface</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="where-to-get-it">
|
|
<h2><a class="toc-backref" href="#id13">Where to get it</a></h2>
|
|
<p>You can obtain Geany from <a class="reference external" href="http://www.geany.org/">http://www.geany.org/</a> or perhaps also from
|
|
your distributor. For a list of available packages, please see
|
|
<a class="reference external" href="http://www.geany.org/Download/ThirdPartyPackages">http://www.geany.org/Download/ThirdPartyPackages</a>.</p>
|
|
</div>
|
|
<div class="section" id="license">
|
|
<h2><a class="toc-backref" href="#id14">License</a></h2>
|
|
<p>Geany is distributed under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2 of
|
|
the License, or (at your option) any later version. A copy of this
|
|
license can be found in the file COPYING included with the source
|
|
code of this program and in the chapter, <a class="reference internal" href="#gnu-general-public-license">GNU General Public License</a>.</p>
|
|
<p>The included Scintilla library (found in the subdirectory
|
|
<tt class="docutils literal"><span class="pre">scintilla/</span></tt>) has its own license, which can be found in the chapter,
|
|
<a class="reference internal" href="#license-for-scintilla-and-scite">License for Scintilla and SciTE</a>.</p>
|
|
</div>
|
|
<div class="section" id="about-this-document">
|
|
<h2><a class="toc-backref" href="#id15">About this document</a></h2>
|
|
<p>This documentation is available in HTML and text formats.
|
|
The latest version can always be found at <a class="reference external" href="http://www.geany.org/">http://www.geany.org/</a>.</p>
|
|
<p>If you want to contribute to it, see <a class="reference internal" href="#contributing-to-this-document">Contributing to this document</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="installation">
|
|
<h1><a class="toc-backref" href="#id16">Installation</a></h1>
|
|
<div class="section" id="requirements">
|
|
<h2><a class="toc-backref" href="#id17">Requirements</a></h2>
|
|
<p>You will need the GTK (>= 2.8.0) libraries and their dependencies
|
|
(Pango, GLib and ATK). Your distro should provide packages for these,
|
|
usually installed by default. For Windows, you can download an installer
|
|
which bundles these libraries from the website.</p>
|
|
</div>
|
|
<div class="section" id="binary-packages">
|
|
<h2><a class="toc-backref" href="#id18">Binary packages</a></h2>
|
|
<p>There are many binary packages available. For an up-to-date but maybe
|
|
incomplete list see <a class="reference external" href="http://www.geany.org/Download/ThirdPartyPackages">http://www.geany.org/Download/ThirdPartyPackages</a>.</p>
|
|
</div>
|
|
<div class="section" id="source-compilation">
|
|
<h2><a class="toc-backref" href="#id19">Source compilation</a></h2>
|
|
<p>Compiling Geany is quite easy.
|
|
To do so, you need the GTK (>= 2.8.0) libraries and header files.
|
|
You also need the Pango, GLib and ATK libraries and header files.
|
|
All these files are available at <a class="reference external" href="http://www.gtk.org">http://www.gtk.org</a>, but very often
|
|
your distro will provide development packages to save the trouble of
|
|
building these yourself.</p>
|
|
<p>Furthermore you need, of course, a C and C++ compiler. The GNU versions
|
|
of these tools are recommended.</p>
|
|
<div class="section" id="autotools-based-build-system">
|
|
<h3><a class="toc-backref" href="#id20">Autotools based build system</a></h3>
|
|
<p>The Autotools based build system is very mature and has been well tested.
|
|
To use it, you just need the Make tool, preferably GNU Make.</p>
|
|
<p>Then run the following commands:</p>
|
|
<pre class="literal-block">
|
|
$ ./configure
|
|
$ make
|
|
</pre>
|
|
<p>Then as root:</p>
|
|
<pre class="literal-block">
|
|
% make install
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="waf-based-build-system">
|
|
<h3><a class="toc-backref" href="#id21">Waf based build system</a></h3>
|
|
<p>The Waf build system is still quite young and under heavy development but already in an
|
|
usable state. In contrary to the Autotools, Waf needs Python. So before using Waf, you need
|
|
to install Python on your system.
|
|
The advantage of the Waf build system over the Autotools based build system is that the whole
|
|
build process might be a bit faster. Especially when you use the Waf cache feature repetitive
|
|
builds (e.g. when changing only a few source files to test something) will become much faster
|
|
since Waf will cache and re-use the unchanged built files and only compile the changed code
|
|
again. See <a class="reference internal" href="#waf-cache">Waf Cache</a> for details.
|
|
To build Geany with Waf as usual run:</p>
|
|
<pre class="literal-block">
|
|
$ ./waf configure
|
|
$ ./waf build
|
|
</pre>
|
|
<p>Then as root:</p>
|
|
<pre class="literal-block">
|
|
% ./waf install
|
|
</pre>
|
|
<div class="section" id="waf-cache">
|
|
<h4><a class="toc-backref" href="#id22">Waf Cache</a></h4>
|
|
<p>The Waf build system has a nice and interesting feature which can help a lot to avoid
|
|
unnecessary rebuilding of unchanged code. This often happens when developing new features
|
|
or trying to debug something.
|
|
Waf is able to store and retrieve the object files from a cache. This cache is declared
|
|
using the environment variable <tt class="docutils literal"><span class="pre">WAFCACHE</span></tt>.
|
|
A possible location of the cache directory could be <tt class="docutils literal"><span class="pre">~/.cache/waf</span></tt>. In order to make use of
|
|
this, you first need to create this directory:</p>
|
|
<pre class="literal-block">
|
|
$ mkdir -p ~/.cache/waf
|
|
</pre>
|
|
<p>then add the environment variable to your shell configuration (the following example is for
|
|
Bash and should be adjusted to your used shell):</p>
|
|
<pre class="literal-block">
|
|
export WAFCACHE=/home/username/.cache/waf
|
|
</pre>
|
|
<p>Remember to replace <tt class="docutils literal"><span class="pre">username</span></tt> with your actual username.</p>
|
|
<p>More information about the Waf cache feature are available at
|
|
<a class="reference external" href="http://code.google.com/p/waf/wiki/CacheObjectFiles">http://code.google.com/p/waf/wiki/CacheObjectFiles</a>.</p>
|
|
<div class="section" id="cleaning-the-cache">
|
|
<h5><a class="toc-backref" href="#id23">Cleaning the Cache</a></h5>
|
|
<p>You should take care about the size of the cache directory as it may grow rapidly by time.
|
|
Waf doesn't do any cleaning or other house-keeping of the cache yet so you need to keep it
|
|
clean by yourself.
|
|
An easy way to keep it clean is to run the following command regularly to remove old
|
|
cached files:</p>
|
|
<pre class="literal-block">
|
|
$ find /home/username/.cache/waf -mtime +14 -exec rm {} \;
|
|
</pre>
|
|
<p>This will delete all files in the cache directory which are older than 14 days.</p>
|
|
<p>For details about the <tt class="docutils literal"><span class="pre">find</span></tt> command and its options, check its manual page.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="custom-installation">
|
|
<h3><a class="toc-backref" href="#id24">Custom installation</a></h3>
|
|
<p>The configure script supports several common options, for a detailed
|
|
list, type:</p>
|
|
<pre class="literal-block">
|
|
$ ./configure --help
|
|
</pre>
|
|
<dl class="docutils">
|
|
<dt>or::</dt>
|
|
<dd>$ ./waf --help</dd>
|
|
</dl>
|
|
<p>(depending on which build system you use).</p>
|
|
<p>You may also want to read the INSTALL file for advanced installation
|
|
options.</p>
|
|
<ul class="simple">
|
|
<li>See also <a class="reference internal" href="#compile-time-options">Compile-time options</a>.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="dynamic-linking-loader-support">
|
|
<h3><a class="toc-backref" href="#id25">Dynamic linking loader support</a></h3>
|
|
<p>In the case that your system lacks dynamic linking loader support, you
|
|
probably want to pass the option <tt class="docutils literal"><span class="pre">--disable-vte</span></tt> to the <tt class="docutils literal"><span class="pre">configure</span></tt>
|
|
script. This prevents compiling Geany with dynamic linking loader
|
|
support to automatically load <tt class="docutils literal"><span class="pre">libvte.so.4</span></tt> if available.</p>
|
|
</div>
|
|
<div class="section" id="build-problems">
|
|
<h3><a class="toc-backref" href="#id26">Build problems</a></h3>
|
|
<p>If there are any errors during compilation, check your build
|
|
environment and try to find the error, otherwise contact the mailing
|
|
list or one the authors. Sometimes you might need to ask for specific
|
|
help from your distro.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="installation-prefix">
|
|
<h2><a class="toc-backref" href="#id27">Installation prefix</a></h2>
|
|
<p>If you want to edit any of Geany's system configuration files after
|
|
installation you will need to know the installation prefix. Usually this
|
|
is not necessary as you can just use user configuration files.</p>
|
|
<p>Use the <tt class="docutils literal"><span class="pre">--print-prefix</span></tt> option to check - see <a class="reference internal" href="#command-line-options">Command line
|
|
options</a>. The first path is the prefix.</p>
|
|
<p>This is commonly <tt class="docutils literal"><span class="pre">/usr</span></tt> if you installed from a binary package, or
|
|
<tt class="docutils literal"><span class="pre">/usr/local</span></tt> if you build from source.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="usage">
|
|
<h1><a class="toc-backref" href="#id28">Usage</a></h1>
|
|
<div class="section" id="getting-started">
|
|
<h2><a class="toc-backref" href="#id29">Getting started</a></h2>
|
|
<p>You can start Geany in the following ways:</p>
|
|
<ul>
|
|
<li><p class="first">From the Desktop Environment menu:</p>
|
|
<p>Choose in your application menu of your used Desktop Environment:
|
|
Development --> Geany.</p>
|
|
</li>
|
|
<li><p class="first">From the command line:</p>
|
|
<p>To start Geany from a command line, type the following and press
|
|
Return:</p>
|
|
<pre class="literal-block">
|
|
% geany
|
|
</pre>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="command-line-options">
|
|
<h2><a class="toc-backref" href="#id30">Command line options</a></h2>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="13%" />
|
|
<col width="25%" />
|
|
<col width="62%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Short option</th>
|
|
<th class="head">Long option</th>
|
|
<th class="head">Function</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td><em>none</em></td>
|
|
<td>+number</td>
|
|
<td>Set initial line number for the first opened file
|
|
(same as --line, do not put a space between the + sign
|
|
and the number). E.g. "geany +7 foo.bar" will open the
|
|
file foo.bar and place the cursor in line 7.</td>
|
|
</tr>
|
|
<tr><td><em>none</em></td>
|
|
<td>--column</td>
|
|
<td>Set initial column number for the first opened file.</td>
|
|
</tr>
|
|
<tr><td>-c dir_name</td>
|
|
<td>--config=directory_name</td>
|
|
<td>Use an alternate configuration directory. Default
|
|
configuration directory is <tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt> and there
|
|
resides <tt class="docutils literal"><span class="pre">geany.conf</span></tt> and other configuration files.</td>
|
|
</tr>
|
|
<tr><td><em>none</em></td>
|
|
<td>--ft-names</td>
|
|
<td>Print a list of Geany's internal filetype names (useful
|
|
for snippets configuration).</td>
|
|
</tr>
|
|
<tr><td>-g</td>
|
|
<td>--generate-tags</td>
|
|
<td>Generate a global tags file (see
|
|
<a class="reference internal" href="#generating-a-global-tags-file">Generating a global tags file</a>).</td>
|
|
</tr>
|
|
<tr><td>-P</td>
|
|
<td>--no-preprocessing</td>
|
|
<td>Don't preprocess C/C++ files when generating tags.</td>
|
|
</tr>
|
|
<tr><td>-i</td>
|
|
<td>--new-instance</td>
|
|
<td>Do not open files in a running instance, force opening
|
|
a new instance. Only available if Geany was compiled
|
|
with support for Sockets.</td>
|
|
</tr>
|
|
<tr><td>-l</td>
|
|
<td>--line</td>
|
|
<td>Set initial line number for the first opened file.</td>
|
|
</tr>
|
|
<tr><td>-m</td>
|
|
<td>--no-msgwin</td>
|
|
<td>Do not show the message window. Use this option if you
|
|
do not need compiler messages or VTE support.</td>
|
|
</tr>
|
|
<tr><td>-n</td>
|
|
<td>--no-ctags</td>
|
|
<td>Do not load symbol completion and call tip data. Use this
|
|
option if you do not want to use them.</td>
|
|
</tr>
|
|
<tr><td>-p</td>
|
|
<td>--no-plugins</td>
|
|
<td>Do not load plugins or plugin support.</td>
|
|
</tr>
|
|
<tr><td><em>none</em></td>
|
|
<td>--print-prefix</td>
|
|
<td>Print installation prefix, the data directory, the lib
|
|
directory and the locale directory (in this order) to
|
|
stdout, each per line. This is mainly intended for plugin
|
|
authors to detect installation paths.</td>
|
|
</tr>
|
|
<tr><td>-s</td>
|
|
<td>--no-session</td>
|
|
<td>Do not load the previous session's files.</td>
|
|
</tr>
|
|
<tr><td>-t</td>
|
|
<td>--no-terminal</td>
|
|
<td>Do not load terminal support. Use this option if you do
|
|
not want to load the virtual terminal emulator widget
|
|
at startup. If you do not have <tt class="docutils literal"><span class="pre">libvte.so.4</span></tt> installed,
|
|
then terminal-support is automatically disabled. Only
|
|
available if Geany was compiled with support for VTE.</td>
|
|
</tr>
|
|
<tr><td><em>none</em></td>
|
|
<td>--vte-lib</td>
|
|
<td>Specify explicitly the path including filename or only
|
|
the filename to the VTE library, e.g.
|
|
<tt class="docutils literal"><span class="pre">/usr/lib/libvte.so</span></tt> or <tt class="docutils literal"><span class="pre">libvte.so</span></tt>. This option is
|
|
only needed when the auto detection does not work. Only
|
|
available if Geany was compiled with support for VTE.</td>
|
|
</tr>
|
|
<tr><td>-v</td>
|
|
<td>--verbose</td>
|
|
<td>Be verbose (print useful status messages).</td>
|
|
</tr>
|
|
<tr><td>-V</td>
|
|
<td>--version</td>
|
|
<td>Show version information and exit.</td>
|
|
</tr>
|
|
<tr><td>-?</td>
|
|
<td>--help</td>
|
|
<td>Show help information and exit.</td>
|
|
</tr>
|
|
<tr><td><em>none</em></td>
|
|
<td>[files ...]</td>
|
|
<td><p class="first">Open all given files at startup. This option causes
|
|
Geany to ignore loading stored files from the last
|
|
session (if enabled).
|
|
Geany also recognizes line and column information when
|
|
appended to the filename with colons, e.g.
|
|
"geany foo.bar:10:5" will open the file foo.bar and
|
|
place the cursor in line 10 at column 5.</p>
|
|
<p class="last">Projects can also be opened but a project file (*.geany)
|
|
must be the first non-option argument. All additionally
|
|
given files are ignored.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>You can also pass line number and column number information, e.g.:</p>
|
|
<pre class="literal-block">
|
|
geany some_file.foo:55:4
|
|
</pre>
|
|
<p>Geany supports all generic GTK options, a list is available on the
|
|
help screen.</p>
|
|
</div>
|
|
<div class="section" id="general">
|
|
<h2><a class="toc-backref" href="#id31">General</a></h2>
|
|
<div class="section" id="startup">
|
|
<h3><a class="toc-backref" href="#id32">Startup</a></h3>
|
|
<p>At startup, Geany loads all files from the last time Geany was
|
|
launched. You can disable this feature in the preferences dialog
|
|
(see <a class="reference internal" href="#general-startup-tab-in-preferences-dialog">General Startup tab in preferences dialog</a>). If you specify some
|
|
files on the command line, only these files will be opened, but you
|
|
can find the files from the last session in the file menu under the
|
|
"Recent files" item. By default this contains the last 10 recently
|
|
opened files. You can change the amount of recently opened files in
|
|
the preferences dialog.</p>
|
|
<p>You can start several instances of Geany, but only the first will
|
|
load files from the last session. To run a second instance of Geany,
|
|
do not specify any filenames on the command-line, or disable opening
|
|
files in a running instance using the appropriate command line option.</p>
|
|
</div>
|
|
<div class="section" id="opening-files-from-the-command-line-in-a-running-instance">
|
|
<h3><a class="toc-backref" href="#id33">Opening files from the command-line in a running instance</a></h3>
|
|
<p>Geany detects an already running instance of itself and opens files
|
|
from the command-line in the already running instance. So, Geany can
|
|
be used to view and edit files by opening them from other programs
|
|
such as a file manager.</p>
|
|
<p>You can also pass line number and column number information, e.g.:</p>
|
|
<pre class="literal-block">
|
|
geany some_file.foo:55:4
|
|
</pre>
|
|
<p>This would open the file <tt class="docutils literal"><span class="pre">some_file.foo</span></tt> with the cursor on line 55,
|
|
column 4.</p>
|
|
<p>If you do not like this for some reason, you can disable using the first
|
|
instance by using the appropriate command line option -- see the section
|
|
called <a class="reference internal" href="#command-line-options">Command line options</a>.</p>
|
|
</div>
|
|
<div class="section" id="virtual-terminal-emulator-widget-vte">
|
|
<h3><a class="toc-backref" href="#id34">Virtual terminal emulator widget (VTE)</a></h3>
|
|
<p>If you have installed <tt class="docutils literal"><span class="pre">libvte.so</span></tt> in your system, it is loaded
|
|
automatically by Geany, and you will have a terminal widget in the
|
|
notebook at the bottom.</p>
|
|
<p>If Geany cannot find any <tt class="docutils literal"><span class="pre">libvte.so</span></tt> at startup, the terminal widget
|
|
will not be loaded. So there is no need to install the package containing
|
|
this file in order to run Geany. Additionally, you can disable the use
|
|
of the terminal widget by command line option, for more information
|
|
see the section called <a class="reference internal" href="#command-line-options">Command line options</a>.</p>
|
|
<p>You can use this terminal (from now on called VTE) nearly as an usual
|
|
terminal program like xterm. There is basic clipboard support. You
|
|
can paste the contents of the clipboard by pressing the right mouse
|
|
button to open the popup menu and choosing Paste. To copy text from
|
|
the VTE, just select the desired text and then press the right mouse
|
|
button and choose Copy from the popup menu. On systems running the
|
|
X Window System you can paste the last selected text by pressing the
|
|
middle mouse button in the VTE (on 2-button mice, the middle button
|
|
can often be simulated by pressing both mouse buttons together).</p>
|
|
<p>In the preferences dialog you can specify a shell which should be
|
|
started in the VTE. To make the specified shell a login shell just
|
|
use the appropriate command line options for the shell. These options
|
|
should be found in the manual page of the shell. For zsh and bash
|
|
you can use the argument <tt class="docutils literal"><span class="pre">--login</span></tt>.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Geany tries to load <tt class="docutils literal"><span class="pre">libvte.so</span></tt>. If this fails, it tries to load
|
|
some other filenames. If this fails too, you should check whether you
|
|
installed libvte correctly. Again, Geany also runs without this
|
|
library.</p>
|
|
</div>
|
|
<p>It could be, that the library is called something else than
|
|
<tt class="docutils literal"><span class="pre">libvte.so</span></tt> (e.g. on FreeBSD 6.0 it is called <tt class="docutils literal"><span class="pre">libvte.so.8</span></tt>). So
|
|
please set a link to the correct file (as root):</p>
|
|
<pre class="literal-block">
|
|
# ln -s /usr/lib/libvte.so.X /usr/lib/libvte.so
|
|
</pre>
|
|
<p>Obviously, you have to adjust the paths and set X to the number of your
|
|
<tt class="docutils literal"><span class="pre">libvte.so</span></tt>.</p>
|
|
<p>You can also specify the filename of the VTE library to use on the command
|
|
line (see the section called <a class="reference internal" href="#command-line-options">Command line options</a>) or at compile time
|
|
by specifying the command line option <tt class="docutils literal"><span class="pre">--with-vte-module-path</span></tt> to
|
|
./configure.</p>
|
|
</div>
|
|
<div class="section" id="defining-own-widget-styles-using-gtkrc-2-0">
|
|
<h3><a class="toc-backref" href="#id35">Defining own widget styles using .gtkrc-2.0</a></h3>
|
|
<p>You can define your widget style for many of Geany's GUI parts. To
|
|
do this, just edit your <tt class="docutils literal"><span class="pre">.gtkrc-2.0</span></tt> (usually found in your home
|
|
directory on UNIX-like systems and in the etc subdirectory of your
|
|
Geany installation on Windows).</p>
|
|
<p>To get a defined style get noticed by Geany you must it assign to
|
|
one of Geany's widgets. To do so, use the following line:</p>
|
|
<pre class="literal-block">
|
|
widget "Geany*" style "geanyStyle"
|
|
</pre>
|
|
<p>This would assign your already defined style "geany_style" to all Geany
|
|
widgets. You can also assign styles only to specific widgets. At the
|
|
moment you can use the following widgets:</p>
|
|
<ul class="simple">
|
|
<li>GeanyMainWindow</li>
|
|
<li>GeanyEditMenu</li>
|
|
<li>GeanyToolbarMenu</li>
|
|
<li>GeanyDialog</li>
|
|
<li>GeanyDialogPrefs</li>
|
|
<li>GeanyDialogProject</li>
|
|
<li>GeanyDialogSearch</li>
|
|
<li>GeanyMenubar</li>
|
|
<li>GeanyToolbar</li>
|
|
</ul>
|
|
<p>Example of a simple <tt class="docutils literal"><span class="pre">.gtkrc-2.0</span></tt>:</p>
|
|
<pre class="literal-block">
|
|
style "geanyStyle"
|
|
{
|
|
font_name="Sans 12"
|
|
}
|
|
widget "GeanyMainWindow" style "geanyStyle"
|
|
|
|
style "geanyStyle"
|
|
{
|
|
font_name="Sans 10"
|
|
}
|
|
widget "GeanyPrefsDialog" style "geanyStyle"
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="documents">
|
|
<h2><a class="toc-backref" href="#id36">Documents</a></h2>
|
|
<div class="section" id="switching-between-documents">
|
|
<h3><a class="toc-backref" href="#id37">Switching between documents</a></h3>
|
|
<p>The documents list and the editor tabs are two different ways
|
|
to switch between documents using the mouse. When you hit the key
|
|
combination to move between tabs, the order is determined by the tab
|
|
order, not alphabetical as shown in the documents list (regardless
|
|
of whether or not editor tabs are visible).</p>
|
|
<p>See the <em>Notebook tabs</em> group in the <a class="reference internal" href="#keybindings">Keybindings</a> section for useful
|
|
shortcuts including for Most-Recently-Used document switching.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="character-sets-and-unicode-byte-order-mark-bom">
|
|
<h2><a class="toc-backref" href="#id38">Character sets and Unicode Byte-Order-Mark (BOM)</a></h2>
|
|
<div class="section" id="using-character-sets">
|
|
<h3><a class="toc-backref" href="#id39">Using character sets</a></h3>
|
|
<p>Geany provides support for detecting and converting character sets. So
|
|
you can open and save files in different character sets and even
|
|
can convert a file from a character set to another one. To do this,
|
|
Geany uses the character conversion capabilities of the GLib.</p>
|
|
<p>Only text files are supported, i.e. opening files which contain
|
|
NULL-bytes may fail. Geany will try to open the file anyway but it is
|
|
likely that the file will be truncated because it can only opened up
|
|
to the first occurrence of a NULL-byte. All characters after this
|
|
position are lost and are not written when you save the file.</p>
|
|
<p>Geany tries to detect the encoding of a file while opening it. It
|
|
might be that the encoding of a file cannot be detected correctly so
|
|
you have to set manually the encoding of the file in order to display
|
|
it correctly. You can this in the file open dialog by selecting
|
|
an encoding in the drop down box or by reloading the file with the
|
|
file menu item "Reload as". The auto-detection works well for most
|
|
encodings but there are also some encodings known where auto-detection
|
|
has its problems. Auto detecting the encoding of a file is not easy
|
|
and sometimes an encoding might be detected not correctly.</p>
|
|
<p>There are different ways to use different encodings in Geany:</p>
|
|
<ul>
|
|
<li><p class="first">Using the file open dialog</p>
|
|
<p>This opens the file with the encoding specified in the encoding drop
|
|
down box. If the encoding is set to "Detect from file" auto-detection
|
|
will be used. If the encoding is set to "Without encoding (None)" the
|
|
file will be opened without any character conversion and Geany will
|
|
not try to auto-detect the encoding (see below for more information).</p>
|
|
</li>
|
|
<li><p class="first">Using the "Reload as" menu item</p>
|
|
<p>This item reloads the current file with the specified encoding. It can
|
|
help if you opened a file and found out that a wrong encoding was used.</p>
|
|
</li>
|
|
<li><p class="first">Using the "Set encoding" menu item</p>
|
|
<p>In contrary to the above two options, this will not change or reload
|
|
the current file unless you save it. It is useful when you want to
|
|
change the encoding of the file.</p>
|
|
</li>
|
|
<li><p class="first">Specifying the encoding in the file itself</p>
|
|
<p>As mentioned above, auto-detecting the encoding of a file may fail on
|
|
some encodings. If you know that Geany doesn't open a certain file,
|
|
you can add a special line to the beginning of the file to force an
|
|
encoding when opening the file (for details see below).</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="in-file-encoding-specification">
|
|
<h3><a class="toc-backref" href="#id40">In-file encoding specification</a></h3>
|
|
<p>Geany detects meta tags of HTML files which contain charset information
|
|
like:</p>
|
|
<pre class="literal-block">
|
|
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15" />
|
|
</pre>
|
|
<p>and the found charset is used when opening the file. This is useful if the
|
|
encoding of the file cannot be detected properly.
|
|
For non-HTML files you can also define a line like:</p>
|
|
<pre class="literal-block">
|
|
/* geany_encoding=ISO-8859-15 */
|
|
</pre>
|
|
<p>or:</p>
|
|
<pre class="literal-block">
|
|
# geany_encoding=ISO-8859-15 #
|
|
</pre>
|
|
<p>to force an encoding to be used. The used #, /* and */ are only examples
|
|
for filetype-specific comment characters. It doesn't matter which
|
|
characters are around the string " geany_encoding=ISO-8859-15 " as long
|
|
as there is at least one whitespace character before and after this
|
|
string. Whitespace characters are in this case a space or tab character.
|
|
An example to use this could be you have a file with ISO-8859-15
|
|
encoding but Geany constantly detects the file encoding as ISO-8859-1.
|
|
Then you simply add such a line to the file and Geany will open it
|
|
correctly the next time.</p>
|
|
<p>Since Geany 0.15 you can also use lines like:</p>
|
|
<pre class="literal-block">
|
|
# encoding = ISO-8859-15
|
|
</pre>
|
|
<p>or:</p>
|
|
<pre class="literal-block">
|
|
# coding: ISO-8859-15
|
|
</pre>
|
|
<p>The used regular expression to find the encoding string is:
|
|
<tt class="docutils literal"><span class="pre">coding[\t</span> <span class="pre">]*[:=][\t</span> <span class="pre">]*([a-z0-9-]+)[\t</span> <span class="pre">]*</span></tt></p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">These specifications must be in the first 512 bytes of the file.
|
|
Anything after the first 512 bytes will not be recognized.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="special-encoding-none">
|
|
<h3><a class="toc-backref" href="#id41">Special encoding "None"</a></h3>
|
|
<p>There is a special encoding "None" which is actually no real
|
|
encoding. It is useful when you know that Geany cannot auto-detect
|
|
the encoding of a file and it is not displayed correctly. Especially
|
|
when the file contains NULL-bytes this can be useful to skip auto
|
|
detection and open the file properly at least until the occurrence
|
|
of the first NULL-byte. Using this encoding opens the file as it is
|
|
without any character conversion.</p>
|
|
</div>
|
|
<div class="section" id="unicode-byte-order-mark-bom">
|
|
<h3><a class="toc-backref" href="#id42">Unicode Byte-Order-Mark (BOM)</a></h3>
|
|
<p>Furthermore, Geany detects an Unicode Byte Order Mark (see
|
|
<a class="reference external" href="http://en.wikipedia.org/wiki/Byte_Order_Mark">http://en.wikipedia.org/wiki/Byte_Order_Mark</a> for details). Of course,
|
|
this feature is only available if the opened file is in an Unicode
|
|
encoding. The Byte Order Mark helps to detect the encoding of a file,
|
|
e.g. whether it is UTF-16LE or UTF-16BE and so on. On Unix-like systems
|
|
using a Byte Order Mark could cause some problems, e.g. the gcc stops
|
|
with stray errors, PHP does not parse a script containing a BOM and
|
|
script files starting with a she-bang maybe cannot be started. In the
|
|
status bar you can easily see whether the file starts with a BOM or
|
|
not. If you want to set a BOM for a file or if you want to remove it
|
|
from a file, just use the document menu and toggle the checkbox.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">If you are unsure what a BOM is or if you do not understand where
|
|
to use it, then it is probably not important for you and you can
|
|
safely ignore it.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="editing">
|
|
<h2><a class="toc-backref" href="#id43">Editing</a></h2>
|
|
<div class="section" id="folding">
|
|
<h3><a class="toc-backref" href="#id44">Folding</a></h3>
|
|
<p>Geany provides basic code folding support. Folding means the ability to
|
|
show and hide parts of the text in the current file. You can hide
|
|
unimportant code sections and concentrate on the parts you are working on
|
|
and later you can show these sections again. In the editor window there is
|
|
a small grey margin on the left side with some [+] and [-] symbols. By
|
|
clicking on these icons you can simply show and hide sections which are
|
|
marked by vertical lines within this margin. For many filetypes nested
|
|
folding is supported, so there may be several fold points within other
|
|
fold points.</p>
|
|
<p>If you don't like it or don't need it at all, you can simply disable
|
|
folding support completely in the preferences dialog.</p>
|
|
<p>The folding behaviour can be changed with the "Fold/Unfold all children of
|
|
a fold point" option in the preference dialog. If activated, Geany will
|
|
unfold all nested fold points below the current one if they are already
|
|
folded (when clicking on a [+] symbol).
|
|
When clicking on a [-] symbol, Geany will fold all nested fold points
|
|
below the current one if they are unfolded.</p>
|
|
<p>The usage of this option can be instantly inverted by pressing the Shift
|
|
key while clicking on a fold symbol. That means, if the "Fold/Unfold all
|
|
children of a fold point" option is enabled, pressing Shift will disable
|
|
it for this click and vice versa.</p>
|
|
</div>
|
|
<div class="section" id="column-mode-editing-rectangular-selections">
|
|
<h3><a class="toc-backref" href="#id45">Column mode editing (rectangular selections)</a></h3>
|
|
<p>There is basic support for column mode editing. To use it, create a
|
|
rectangular selection by holding down the Control and Shift keys
|
|
(or Control and Alt if it doesn't work) while
|
|
selecting some text. It is also possible to create a zero-column selection
|
|
but be careful because there is no visual indication of this selection.
|
|
Once a rectangular selection exists you can start editing the text within
|
|
this selection and the modifications will be done for every line in the
|
|
selection.</p>
|
|
</div>
|
|
<div class="section" id="drag-and-drop-of-text">
|
|
<h3><a class="toc-backref" href="#id46">Drag and drop of text</a></h3>
|
|
<p>If you drag selected text in the editor widget of Geany the text is
|
|
moved to the position where the mouse pointer is when releasing the
|
|
mouse button. Holding Control when releasing the mouse button will
|
|
copy the text instead. This behaviour was changed in Geany 0.11 -
|
|
before the selected text was copied to the new position.</p>
|
|
</div>
|
|
<div class="section" id="indentation">
|
|
<h3><a class="toc-backref" href="#id47">Indentation</a></h3>
|
|
<p>Geany allows each document to indent either with a tab character or
|
|
multiple spaces. The default indent mode is set in the <a class="reference internal" href="#editor-features-tab-in-preferences-dialog">Editor Features
|
|
tab in preferences dialog</a> (see the link for more information). But
|
|
this can be overridden using either the <em>Document->Indent Type</em> menu,
|
|
or by using the <em>Detect from file</em> indentation preference. When enabled,
|
|
this scans each file that is opened and sets the indent mode based on
|
|
how many lines start with a tab vs. 2 or more spaces.</p>
|
|
<p>The indent mode for the current document is shown on the status bar
|
|
as follows:</p>
|
|
<dl class="docutils">
|
|
<dt>TAB</dt>
|
|
<dd>Indent with Tab characters.</dd>
|
|
<dt>SP</dt>
|
|
<dd>Indent with spaces.</dd>
|
|
<dt>T/S</dt>
|
|
<dd>Indent with tabs and spaces, depending on how much indentation is
|
|
on a line.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="auto-indentation">
|
|
<h3><a class="toc-backref" href="#id48">Auto-indentation</a></h3>
|
|
<p>When enabled, auto-indentation happens when pressing <em>Enter</em> in the
|
|
Editor. It adds a certain amount of indentation to the new line so the
|
|
user doesn't always have to indent each line manually.</p>
|
|
<p>Geany knows four types of auto-indentation:</p>
|
|
<dl class="docutils">
|
|
<dt>None</dt>
|
|
<dd>Disables auto-indentation completely.</dd>
|
|
<dt>Basic</dt>
|
|
<dd>Adds the same amount of whitespace on a new line as on the last line.</dd>
|
|
<dt>Current chars</dt>
|
|
<dd>Does the same as <em>Basic</em> but also indents a new line after an opening
|
|
brace '{', and de-indents when typing a closing brace '}'. For Python,
|
|
a new line will be indented after typing ':' at the end of the
|
|
previous line.</dd>
|
|
<dt>Match braces</dt>
|
|
<dd>Similar to <em>Current chars</em> but the closing brace will be aligned to
|
|
match the indentation of the line with the opening brace.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="bookmarks">
|
|
<h3><a class="toc-backref" href="#id49">Bookmarks</a></h3>
|
|
<p>Geany provides a handy bookmarking feature that lets you mark one
|
|
or more lines in a document, and return the cursor to them using a
|
|
key combination.</p>
|
|
<p>To place a mark on a line, either left-mouse-click in the left margin
|
|
of the editor window, or else use Ctrl-m. Either way, this will
|
|
produce a small green plus symbol in the margin. You can have as many
|
|
marks in a document as you like. Click again (or use Ctrl-m again)
|
|
to remove the bookmark. To remove all the marks in a given document,
|
|
use "Remove Markers" in the Document menu.</p>
|
|
<p>To navigate down your document, jumping from one mark to the next,
|
|
use Ctrl-. (control period). To go in the opposite direction on
|
|
the page, use Ctrl-, (control comma). Using the bookmarking feature
|
|
together with the commands to switch from one editor tab to another
|
|
(Ctrl-PgUp/PgDn and Ctrl-Tab) provides a particularly fast way to
|
|
navigate around multiple files.</p>
|
|
</div>
|
|
<div class="section" id="code-navigation-history">
|
|
<h3><a class="toc-backref" href="#id50">Code Navigation History</a></h3>
|
|
<p>To ease navigation in source files and especially between
|
|
different files, Geany lets you jump between different navigation
|
|
points. Currently, this works for the following:</p>
|
|
<ul class="simple">
|
|
<li><a class="reference internal" href="#go-to-tag-declaration">Go to tag declaration</a></li>
|
|
<li><a class="reference internal" href="#go-to-tag-definition">Go to tag definition</a></li>
|
|
<li>Symbol list items</li>
|
|
<li>Build errors</li>
|
|
<li>Message items</li>
|
|
</ul>
|
|
<p>When using one of these actions, Geany remembers your current position
|
|
and jumps to the new one. If you decide to go back to your previous
|
|
position in the file, just use "Navigate back a location". To
|
|
get back to the new position again, just use "Navigate forward a
|
|
location". This makes it easier to navigate in e.g. foreign code
|
|
and between different files.</p>
|
|
</div>
|
|
<div class="section" id="send-text-through-definable-commands">
|
|
<h3><a class="toc-backref" href="#id51">Send text through definable commands</a></h3>
|
|
<p>You can define several custom commands in Geany and send the current
|
|
selection to one of these commands. The output of the command will be
|
|
used to replace the current selection. So, it is possible to use text
|
|
formatting tools with Geany in a general way. The selected text will
|
|
be sent to the standard input of the executed command, so the command
|
|
should be able to read from it and it should print all results to its
|
|
standard output which will be read by Geany. To help finding errors
|
|
in executing the command, the output of the program's standard error
|
|
will be printed on Geany's standard output.</p>
|
|
<p>To add a custom command, just go to the Set Custom Commands dialog
|
|
in the Format sub menu of the Edit and Popup menu. Then click on Add
|
|
to get a new text entry and type the command. You can also specify
|
|
some command line options. To delete a command, just clear the text
|
|
entry and press OK. It will be deleted automatically.</p>
|
|
</div>
|
|
<div class="section" id="context-actions">
|
|
<h3><a class="toc-backref" href="#id52">Context actions</a></h3>
|
|
<p>You can execute a specified command on the current word near the
|
|
cursor position or an available selection and this word is passed
|
|
as an argument to this command. It can be used for example to open
|
|
some API documentation in a browser window or open any other external
|
|
program. To do this, there is an menu entry in the popup menu of the
|
|
editor widget and also a keyboard shortcut(see the section called
|
|
<a class="reference internal" href="#keybindings">Keybindings</a>).</p>
|
|
<p>The command can be specified in the preferences dialog and additionally
|
|
for each filetype (see "context_action_cmd" in the section called
|
|
<a class="reference internal" href="#format">Format</a>). At executing, the filetype specific command is used if
|
|
available otherwise the command specified in the preferences dialog
|
|
is executed.</p>
|
|
<p>The passed word can be referred with the wildcard "%s" everywhere
|
|
in the command, before executing it will be replaced by the current
|
|
word. For example, the command to open the PHP API documentation
|
|
would be:</p>
|
|
<pre class="literal-block">
|
|
firefox "http://www.php.net/%s"
|
|
</pre>
|
|
<p>when executing the command, the %s is substituted by the word near
|
|
the cursor position or by the current selection. If the cursor is at
|
|
the word "echo", a browser window will open(assumed your browser is
|
|
called firefox) and it will open the address: <a class="reference external" href="http://www.php.net/echo">http://www.php.net/echo</a>.</p>
|
|
</div>
|
|
<div class="section" id="user-definable-snippets">
|
|
<h3><a class="toc-backref" href="#id53">User-definable snippets</a></h3>
|
|
<p>Snippets are small strings or code constructs which can be replaced or
|
|
completed to a more complex string. So you can save a lot of time by
|
|
not typing often used strings and letting Geany do the work for you.
|
|
To know what to complete or replace Geany reads a configuration file
|
|
called <tt class="docutils literal"><span class="pre">snippets.conf</span></tt> at startup.</p>
|
|
<p>The system-wide configuration file can be found in
|
|
<tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt>, where <tt class="docutils literal"><span class="pre">$prefix</span></tt> is the path where Geany is
|
|
installed (see <a class="reference internal" href="#installation-prefix">Installation prefix</a>). It is not recommended to edit the
|
|
system-wide file, because it will be overridden when Geany is updated.</p>
|
|
<p>To change the settings, copy the file from <tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt>
|
|
in your configuration directory (usually <tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt>).</p>
|
|
<p>For example:</p>
|
|
<pre class="literal-block">
|
|
% cp /usr/local/share/geany/snippets.conf /home/username/.config/geany/
|
|
</pre>
|
|
<p>Then you can edit the file and the changes are also available
|
|
after an update of Geany because the file resides in your
|
|
configuration directory. Alternatively, you can create a file
|
|
<tt class="docutils literal"><span class="pre">~/.config/geany/snippets.conf</span></tt> and add only these settings you want
|
|
to change. All missing settings will be read from the global snippets
|
|
file in <tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt>.</p>
|
|
<p>The file <tt class="docutils literal"><span class="pre">snippets.conf</span></tt> may contain several sections for each
|
|
filetype. It also contains two additional sections "Default" and
|
|
"Special". Default contains all snippets which are available
|
|
for every filetype. You may define another section for a certain
|
|
filetype(e.g. C++) containing the same snippets. Then when using
|
|
such a snippet in a C++ file the snippet defined in the C++ section will
|
|
be used. In any other file the snippet defined in the Default section will
|
|
be used unless a section for the current filetype exists and the used
|
|
snippet is defined in this section. The section "Special" contains special
|
|
snippets which can only be used in other snippets. So you can define often
|
|
used parts of snippets and just use the special snippet as a placeholder
|
|
(see the <tt class="docutils literal"><span class="pre">snippets.conf</span></tt> for details).</p>
|
|
<p>To define snippets you can use several special characters which
|
|
will be replaced when using the snippet:</p>
|
|
<p><strong>Wildcards for snippets</strong></p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="22%" />
|
|
<col width="78%" />
|
|
</colgroup>
|
|
<tbody valign="top">
|
|
<tr><td>\n or %newline%</td>
|
|
<td>Insert a new line (it will be replaced by the used EOL
|
|
char(s): LF, CR/LF, or CR).</td>
|
|
</tr>
|
|
<tr><td>\t or %ws%</td>
|
|
<td>Insert an indentation step, it will be replaced according
|
|
to the current document's indent mode.</td>
|
|
</tr>
|
|
<tr><td>\s</td>
|
|
<td>\s to force whitespace at beginning or end of a value
|
|
('key= value' won't work, use 'key=\svalue')</td>
|
|
</tr>
|
|
<tr><td>%cursor%</td>
|
|
<td>Place the cursor at this position after completion has
|
|
been done. You can define multiple %cursor% wildcards
|
|
and use the keybinding <tt class="docutils literal"><span class="pre">Move</span> <span class="pre">cursor</span> <span class="pre">in</span> <span class="pre">snippet</span></tt> to jump
|
|
to the next defined cursor position in the completed
|
|
snippet.</td>
|
|
</tr>
|
|
<tr><td>%...%</td>
|
|
<td>"..." means the name of a key in the "Special" section.
|
|
If you have defined a key "brace_open" in the "Special"
|
|
section you can use %brace_open" in any other snippet.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Snippet names must not contain spaces otherwise they won't
|
|
work correctly. But beside that you can define almost any
|
|
string as a snippet and use it later in Geany. It is not limited
|
|
to existing contructs of certain programming languages(like <tt class="docutils literal"><span class="pre">if</span></tt>,
|
|
<tt class="docutils literal"><span class="pre">for</span></tt>, <tt class="docutils literal"><span class="pre">switch</span></tt>). Define whatever you need.</p>
|
|
<p>Maybe you need to often type your name, so define a snippet like this:</p>
|
|
<pre class="literal-block">
|
|
[Default]
|
|
myname=Enrico Tröger
|
|
</pre>
|
|
<p>Every time you write <tt class="docutils literal"><span class="pre">myname</span></tt> <TAB> in Geany, it will replace "myname"
|
|
with "Enrico Tröger". The key to start auto completion can be changed
|
|
in the preferences dialog, by default it is TAB. The corresponding keybinding
|
|
is called <tt class="docutils literal"><span class="pre">Complete</span> <span class="pre">snippet</span></tt>.</p>
|
|
<p>Since Geany 0.15 you can also use most of the available templates wildcards
|
|
listed in <a class="reference internal" href="#template-wildcards">Template wildcards</a>. All wildcards which are listed as
|
|
<cite>available in snippets</cite> can be used. For instance to improve the above example:</p>
|
|
<pre class="literal-block">
|
|
[Default]
|
|
myname=My name is {developer}
|
|
</pre>
|
|
<p>this will replace <tt class="docutils literal"><span class="pre">myname</span></tt> with "My name is " and the value of the template
|
|
preference <tt class="docutils literal"><span class="pre">developer</span></tt>.</p>
|
|
<p>You may change the behaviour Geany recognizes the word to complete,
|
|
i.e. where define the start and end of a word. The section "Special" may
|
|
contain a key "wordchars" which lists all characters a string may contain
|
|
to be recognized as a word for completion. Leave it commented to use
|
|
default characters or define it to add or remove characters to fit your
|
|
needs.</p>
|
|
</div>
|
|
<div class="section" id="inserting-unicode-characters">
|
|
<h3><a class="toc-backref" href="#id54">Inserting Unicode characters</a></h3>
|
|
<p>With GTK 2.10 and above, you can hit Ctrl-Shift-u, then still holding
|
|
Ctrl-Shift, type some hex digits representing the code point for the
|
|
character you want, then let go of Ctrl-Shift and hit a key such as
|
|
the right arrow.</p>
|
|
<p>For this to work in Geany, you'll need to first unbind Ctrl-Shift-u
|
|
in the <a class="reference internal" href="#keybinding-tab-in-preferences-dialog">keybinding tab in preferences dialog</a>, then restart Geany.
|
|
Note that it works slightly differently from other GTK applications,
|
|
in that you'll need to continue to hold down the Ctrl and Shift keys
|
|
while typing the code point hex digits.</p>
|
|
<p>For GTK < 2.10, it is also possible, but typing the first Ctrl-Shift-u
|
|
is not necessary. One problem is that you may find the alphabetic
|
|
keys conflict with other Geany keybindings.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="search-replace-and-go-to">
|
|
<h2><a class="toc-backref" href="#id55">Search, replace and go to</a></h2>
|
|
<p>This section describes search-related commands from the Search menu
|
|
and the editor window's popup menu:</p>
|
|
<ul class="simple">
|
|
<li>Find</li>
|
|
<li>Find usage *</li>
|
|
<li>Find in files</li>
|
|
<li>Replace</li>
|
|
<li>Go to tag definition *</li>
|
|
<li>Go to tag declaration *</li>
|
|
<li>Go to line</li>
|
|
</ul>
|
|
<p>* These items are available from the editor window's popup menu, or by
|
|
using a keyboard shortcut (see the section called <a class="reference internal" href="#keybindings">Keybindings</a>).</p>
|
|
<div class="section" id="find">
|
|
<h3><a class="toc-backref" href="#id56">Find</a></h3>
|
|
<p>The Find dialog is used for finding text in one or more open documents.</p>
|
|
<img alt="./images/find_dialog.png" src="./images/find_dialog.png" />
|
|
<div class="section" id="matching-options">
|
|
<h4><a class="toc-backref" href="#id57">Matching options</a></h4>
|
|
<p>The syntax for the Use regular expressions option is shown in
|
|
<a class="reference internal" href="#regular-expressions">Regular expressions</a>.</p>
|
|
<p>The Use escape sequences option will transform any escaped characters
|
|
into their UTF-8 equivalent. For example, \t will be transformed into
|
|
a tab character. Other recognized symbols are: \\, \n, \r, \uXXXX
|
|
(Unicode characters).</p>
|
|
</div>
|
|
<div class="section" id="find-all">
|
|
<h4><a class="toc-backref" href="#id58">Find all</a></h4>
|
|
<p>To find all matches, click on the Find All expander. This will reveal
|
|
several options:</p>
|
|
<ul class="simple">
|
|
<li>In Document</li>
|
|
<li>In Session</li>
|
|
<li>Mark</li>
|
|
</ul>
|
|
<p>Find All In Document will show a list of matching lines in the
|
|
current document in the Messages tab of the Message Window. <em>Find All
|
|
In Session</em> does the same for all open documents.</p>
|
|
<p>Mark will highlight all matches in the current document with a
|
|
colored box. These markers can be removed by selecting the
|
|
Remove Markers command from the Document menu.</p>
|
|
</div>
|
|
<div class="section" id="change-font-in-search-dialog-text-fields">
|
|
<h4><a class="toc-backref" href="#id59">Change font in search dialog text fields</a></h4>
|
|
<p>All search related dialogs use a Monospace for the text input fields to
|
|
increase the readability of input text. This is useful when you are
|
|
typing e.g. regular expressions with spaces, periods and commas which
|
|
might it hard to read with a proportional font.</p>
|
|
<p>If you want to change the font for some reason, you can do this easily
|
|
by inserting the following style into your <tt class="docutils literal"><span class="pre">.gtkrc-2.0</span></tt>
|
|
(usually found in your home directory on UNIX-like systems and in the
|
|
etc subdirectory of your Geany installation on Windows):</p>
|
|
<pre class="literal-block">
|
|
style "search_style"
|
|
{
|
|
font_name="Monospace 8"
|
|
}
|
|
widget "GeanyDialogSearch.*.GtkEntry" style:highest "search_style"
|
|
</pre>
|
|
<p>Please note the addition ":highest" in the last line which sets the priority
|
|
of this style to the highest available. Otherwise, the style is ignored
|
|
for the search dialogs.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="find-usage">
|
|
<h3><a class="toc-backref" href="#id60">Find usage</a></h3>
|
|
<p>Find usage searches all open files. It is similar to the Find All In
|
|
Session Find dialog command.</p>
|
|
<p>If there is a selection, then it is used as the search text; otherwise
|
|
the current word is used. The current word is either taken from the
|
|
word nearest the edit cursor, or the word underneath the popup menu
|
|
click position when the popup menu is used. The search results are
|
|
shown in the Messages tab of the Message Window.</p>
|
|
</div>
|
|
<div class="section" id="find-in-files">
|
|
<h3><a class="toc-backref" href="#id61">Find in files</a></h3>
|
|
<p>Find in files is a more powerful version of Find usage that searches
|
|
all files in a certain directory using the Grep tool. The Grep tool
|
|
must be correctly set in Preferences to the path of the system's Grep
|
|
utility. GNU Grep is recommended.</p>
|
|
<img alt="./images/find_in_files_dialog.png" src="./images/find_in_files_dialog.png" />
|
|
<p>The Encoding combo box can be used to define the encoding of the files
|
|
to be searched. The chosen encoding is used to convert the entered search
|
|
text into and to convert the search results back to UTF-8.
|
|
The Extra options field is used to pass any additional arguments to
|
|
the grep tool.</p>
|
|
<div class="section" id="filtering-out-version-control-files">
|
|
<h4><a class="toc-backref" href="#id62">Filtering out version control files</a></h4>
|
|
<p>When using the <em>Recurse in subfolders</em> option with a directory that's
|
|
under version control, you can set the <em>Extra options</em> field to use
|
|
grep's <tt class="docutils literal"><span class="pre">--exclude</span></tt> flag to filter out filenames.</p>
|
|
<p>SVN Example: <tt class="docutils literal"><span class="pre">--exclude=*.svn-base</span></tt></p>
|
|
<p>The --exclude argument only matches the file name part, not the path. If
|
|
you have GNU Grep >= 2.5.2 you can use the <tt class="docutils literal"><span class="pre">--exclude-dir</span></tt> argument to
|
|
filter out CVS and hidden directories like <tt class="docutils literal"><span class="pre">.svn</span></tt>.</p>
|
|
<p>Example: <tt class="docutils literal"><span class="pre">--exclude-dir=.*</span> <span class="pre">--exclude-dir=CVS</span></tt></p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="replace">
|
|
<h3><a class="toc-backref" href="#id63">Replace</a></h3>
|
|
<p>The Replace dialog is used for replacing text in one or more open
|
|
documents.</p>
|
|
<img alt="./images/replace_dialog.png" src="./images/replace_dialog.png" />
|
|
<p>The Replace dialog has the same options for matching text as the Find
|
|
dialog. See the section called <a class="reference internal" href="#matching-options">Matching options</a>.</p>
|
|
<p>The <em>Use regular expressions</em> option applies both to the search string
|
|
and to the replacement text; for the latter back references can be
|
|
used -- see the entry for '\n' in <a class="reference internal" href="#regular-expressions">Regular expressions</a>.</p>
|
|
<div class="section" id="replace-all">
|
|
<h4><a class="toc-backref" href="#id64">Replace all</a></h4>
|
|
<p>To replace several matches, click on the <em>Replace All</em> expander. This
|
|
will reveal several options:</p>
|
|
<ul class="simple">
|
|
<li>In Document</li>
|
|
<li>In Session</li>
|
|
<li>In Selection</li>
|
|
</ul>
|
|
<p><em>Replace All In Document</em> will replace all matching text in the
|
|
current document. <em>Replace All In Session</em> does the same for all open
|
|
documents. <em>Replace All In Selection</em> will replace all matching text
|
|
in the current selection of the current document.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="go-to-tag-definition">
|
|
<h3><a class="toc-backref" href="#id65">Go to tag definition</a></h3>
|
|
<p>If the current word is the name of a tag definition (like a function
|
|
body) and the file containing the tag definition is open, this command
|
|
will switch to that file and go to the corresponding line number. The
|
|
current word is either taken from the word nearest the edit cursor,
|
|
or the word underneath the popup menu click position when the popup
|
|
menu is used.</p>
|
|
</div>
|
|
<div class="section" id="go-to-tag-declaration">
|
|
<h3><a class="toc-backref" href="#id66">Go to tag declaration</a></h3>
|
|
<p>Like Go to tag definition, but for a forward declaration such as a
|
|
function prototype or <tt class="docutils literal"><span class="pre">extern</span></tt> declaration instead of a function
|
|
body.</p>
|
|
</div>
|
|
<div class="section" id="go-to-line">
|
|
<h3><a class="toc-backref" href="#id67">Go to line</a></h3>
|
|
<p>Go to a particular line number in the current file.</p>
|
|
</div>
|
|
<div class="section" id="regular-expressions">
|
|
<h3><a class="toc-backref" href="#id68">Regular expressions</a></h3>
|
|
<p>You can use regular expressions in the Find and Replace dialogs
|
|
by selecting the Use regular expressions check box. The syntax is
|
|
POSIX-like, as described in the table below.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<ol class="last arabic simple">
|
|
<li>Searching backwards with regular expressions is not supported.</li>
|
|
<li>\r and \n are never matched because regular expression
|
|
searches are made line per line (stripped of end-of-line chars).</li>
|
|
<li>The POSIX '?' regular expression character for optional
|
|
matching is not supported.</li>
|
|
</ol>
|
|
</div>
|
|
<p><strong>In a regular expression, the following characters are interpreted:</strong></p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="8%" />
|
|
<col width="92%" />
|
|
</colgroup>
|
|
<tbody valign="top">
|
|
<tr><td>.</td>
|
|
<td>Matches any character.</td>
|
|
</tr>
|
|
<tr><td>(</td>
|
|
<td>This marks the start of a region for tagging a match.</td>
|
|
</tr>
|
|
<tr><td>)</td>
|
|
<td>This marks the end of a tagged region.</td>
|
|
</tr>
|
|
<tr><td>\n</td>
|
|
<td>Where n is 1 through 9 refers to the first through ninth tagged
|
|
region when replacing. For example, if the search string was
|
|
Fred([1-9])XXX and the replace string was Sam\1YYY, when applied
|
|
to Fred2XXX this would generate Sam2YYY.</td>
|
|
</tr>
|
|
<tr><td>\<</td>
|
|
<td>This matches the start of a word.</td>
|
|
</tr>
|
|
<tr><td>\></td>
|
|
<td>This matches the end of a word.</td>
|
|
</tr>
|
|
<tr><td>\c</td>
|
|
<td><p class="first">A backslash followed by d, D, s, S, w or W, becomes a
|
|
character class (both inside and outside sets []).</p>
|
|
<ul class="last simple">
|
|
<li>d: decimal digits</li>
|
|
<li>D: any char except decimal digits</li>
|
|
<li>s: whitespace (space, \t \n \r \f \v)</li>
|
|
<li>S: any char except whitespace (see above)</li>
|
|
<li>w: alphanumeric & underscore (changed by user setting)</li>
|
|
<li>W: any char except alphanumeric & underscore (see above)</li>
|
|
</ul>
|
|
</td>
|
|
</tr>
|
|
<tr><td>\x</td>
|
|
<td>This allows you to use a character x that would otherwise have
|
|
a special meaning. For example, \[ would be interpreted as [
|
|
and not as the start of a character set. Use \\ for a literal
|
|
backslash.</td>
|
|
</tr>
|
|
<tr><td>\xHH</td>
|
|
<td>A backslash followed by x and two hexa digits, becomes the
|
|
character whose Ascii code is equal to these digits. If not
|
|
followed by two digits, it is 'x' char itself.</td>
|
|
</tr>
|
|
<tr><td>[...]</td>
|
|
<td><p class="first">Matches one of the characters in the set. If the first
|
|
character in the set is ^, it matches the characters NOT in
|
|
the set, i.e. complements the set. A shorthand S-E (start
|
|
dash end) is used to specify a set of characters S up to E,
|
|
inclusive. The special characters ] and - have no special
|
|
meaning if they appear as the first chars in the set. To
|
|
include both, put - first: [-]A-Z] (or just backslash them).</p>
|
|
<p>Examples:</p>
|
|
<pre class="last literal-block">
|
|
[-]|] matches these 3 chars
|
|
[]-|] matches from ] to | chars
|
|
[a-z] any lowercase alpha
|
|
[^-]] any char except - and ]
|
|
[^A-Z] any char except uppercase alpha
|
|
[a-zA-Z] any alpha
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
<tr><td>^</td>
|
|
<td>This matches the start of a line (unless used inside a set, see
|
|
above).</td>
|
|
</tr>
|
|
<tr><td>$</td>
|
|
<td>This matches the end of a line.</td>
|
|
</tr>
|
|
<tr><td>*</td>
|
|
<td>This matches 0 or more times. For example, Sa*m matches Sm, Sam,
|
|
Saam, Saaam and so on.</td>
|
|
</tr>
|
|
<tr><td>+</td>
|
|
<td>This matches 1 or more times. For example, Sa+m matches Sam,
|
|
Saam, Saaam and so on.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">This table is adapted from Scintilla and SciTE documentation,
|
|
distributed under the <a class="reference internal" href="#license-for-scintilla-and-scite">License for Scintilla and SciTE</a>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="tags">
|
|
<h2><a class="toc-backref" href="#id69">Tags</a></h2>
|
|
<p>Geany has built-in functionality for generating tag information (aka
|
|
"workspace tags") for supported filetypes when you open a file. You
|
|
can also have Geany automatically load external tag files (aka "global
|
|
tags files") upon startup, or manually using <em>Tools --> Load Tags</em>.</p>
|
|
<p>Geany uses its own tag file format, similar to what <tt class="docutils literal"><span class="pre">ctags</span></tt> uses
|
|
(but is incompatible with ctags). You use Geany to generate global
|
|
tags files, as described below.</p>
|
|
<div class="section" id="workspace-tags">
|
|
<h3><a class="toc-backref" href="#id70">Workspace tags</a></h3>
|
|
<p>Tags for each document are parsed whenever a file is loaded or
|
|
saved. These are shown in the Symbol list in the Sidebar. These tags
|
|
are also used for auto completion of symbols and calltips for all documents
|
|
open in the current session that have the same filetype.</p>
|
|
<p>The <em>Go to Tag</em> commands can be used with all workspace tags. See
|
|
<a class="reference internal" href="#go-to-tag-definition">Go to tag definition</a>.</p>
|
|
</div>
|
|
<div class="section" id="global-tags">
|
|
<h3><a class="toc-backref" href="#id71">Global tags</a></h3>
|
|
<p>Global tags are used to provide auto completion of symbols and calltips
|
|
without having to open the corresponding source files. This is intended
|
|
for library APIs, as the tags file only has to be updated when you upgrade
|
|
the library.</p>
|
|
<p>You can load a custom global tags file in two ways:</p>
|
|
<ul class="simple">
|
|
<li>Using the <em>Load Tags</em> command in the Tools menu.</li>
|
|
<li>By creating a directory <tt class="docutils literal"><span class="pre">~/.config/geany/tags</span></tt>, and moving or symlinking
|
|
the tags files there before starting Geany.</li>
|
|
<li>By creating a directory <tt class="docutils literal"><span class="pre">$prefix/share/geany/tags</span></tt>, and moving
|
|
or symlinking the tags files there before starting Geany.
|
|
<tt class="docutils literal"><span class="pre">$prefix</span></tt> is the installation prefix (see <a class="reference internal" href="#installation-prefix">Installation prefix</a>).</li>
|
|
</ul>
|
|
<p>You can either download these files or generate your own. They have
|
|
the format:</p>
|
|
<pre class="literal-block">
|
|
name.lang_ext.tags
|
|
</pre>
|
|
<p><em>lang_ext</em> is one of the extensions set for the filetype associated
|
|
with the tags. See the section called <a class="reference internal" href="#filetype-extensions">Filetype extensions</a> for
|
|
more information.</p>
|
|
<div class="section" id="default-global-tags-files">
|
|
<h4><a class="toc-backref" href="#id72">Default global tags files</a></h4>
|
|
<p>For some languages, a list of global tags is loaded when the
|
|
corresponding filetype is first used. Currently these are for:</p>
|
|
<ul class="simple">
|
|
<li>C -- GTK+ and GLib</li>
|
|
<li>Pascal</li>
|
|
<li>PHP</li>
|
|
<li>HTML -- &symbol; completion, e.g. for ampersand, copyright, etc.</li>
|
|
<li>LaTeX</li>
|
|
<li>Python</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="global-tags-file-format">
|
|
<h4><a class="toc-backref" href="#id73">Global tags file format</a></h4>
|
|
<p>Global tags files can have two different formats:</p>
|
|
<ul class="simple">
|
|
<li>Tagmanager format</li>
|
|
<li>Pipe-separated format</li>
|
|
</ul>
|
|
<p>The first line of global tags files should be a comment, introduced
|
|
by <tt class="docutils literal"><span class="pre">#</span></tt> followed by a space and a string like <tt class="docutils literal"><span class="pre">format=pipe</span></tt>
|
|
respectively <tt class="docutils literal"><span class="pre">format=tagmanager</span></tt> (case-sensitive).
|
|
This helps Geany to read the file properly. If this line
|
|
is missing, Geany tries to auto-detect the used format but this
|
|
might fail.</p>
|
|
<p>The Tagmanager format is a bit more complex and is used for files
|
|
created by the <tt class="docutils literal"><span class="pre">geany</span> <span class="pre">-g</span></tt> command. There is one tag per line.
|
|
Different tag attributes like the return value or the argument list
|
|
are separated with different characters indicating the type of the
|
|
following argument.</p>
|
|
<p>The Pipe-separated format is easier to read and write.
|
|
There is one tag per line and different tag attributes are separated
|
|
by the pipe character (<tt class="docutils literal"><span class="pre">|</span></tt>). A line looks like:</p>
|
|
<pre class="literal-block">
|
|
basename|string|(string path [, string suffix])|
|
|
</pre>
|
|
<div class="line-block">
|
|
<div class="line">The first field is the tag name (usually a function name).</div>
|
|
<div class="line">The second field is the type of the return value.</div>
|
|
<div class="line">The third field is the argument list for this tag.</div>
|
|
<div class="line">The fourth field is the description for this tag but
|
|
currently unused and should be left empty.</div>
|
|
</div>
|
|
<p>Except for the first field (tag name), all other field can be left
|
|
empty but the pipe separator must appear for them.</p>
|
|
<p>You can easily write your own global tag files using this format.
|
|
Just save them in your tags directory, as described earlier in the
|
|
section <a class="reference internal" href="#global-tags">Global tags</a>.</p>
|
|
</div>
|
|
<div class="section" id="generating-a-global-tags-file">
|
|
<h4><a class="toc-backref" href="#id74">Generating a global tags file</a></h4>
|
|
<p>You can generate your own global tags files by parsing a list of
|
|
source files. The command is:</p>
|
|
<pre class="literal-block">
|
|
geany -g [-P] <Tag File> <File list>
|
|
</pre>
|
|
<ul class="simple">
|
|
<li>Tag File filename should be in the format described earlier --
|
|
see the section called <a class="reference internal" href="#global-tags">Global tags</a>.</li>
|
|
<li>File list is a list of filenames, each with a full path (unless
|
|
you are generating C/C++ tags and have set the CFLAGS environment
|
|
variable appropriately).</li>
|
|
<li><tt class="docutils literal"><span class="pre">-P</span></tt> or <tt class="docutils literal"><span class="pre">--no-preprocessing</span></tt> disables using the C pre-processor
|
|
to process <tt class="docutils literal"><span class="pre">#include</span></tt> directives for C/C++ source files. Use this
|
|
option if you want to specify each source file on the command-line
|
|
instead of using a 'master' header file. Also can be useful if you
|
|
don't want to specify the CFLAGS environment variable.</li>
|
|
</ul>
|
|
<p>Example for the wxD library for the D programming language:</p>
|
|
<pre class="literal-block">
|
|
geany -g wxd.d.tags /home/username/wxd/wx/*.d
|
|
</pre>
|
|
<p><em>Generating C/C++ tag files:</em></p>
|
|
<p>For C/C++ tag files, gcc and grep are required, so that header files
|
|
can be preprocessed to include any other headers they depend upon.</p>
|
|
<p>For C/C++ files, the environment variable CFLAGS should be set with
|
|
appropriate <tt class="docutils literal"><span class="pre">-I/path</span></tt> include paths. The following example works with
|
|
the bash shell, generating tags for the GnomeUI library:</p>
|
|
<pre class="literal-block">
|
|
CFLAGS=`pkg-config --cflags libgnomeui-2.0` geany -g gnomeui.c.tags \
|
|
/usr/include/libgnomeui-2.0/gnome.h
|
|
</pre>
|
|
<p>You can adapt this command to use CFLAGS and header files appropriate
|
|
for whichever libraries you want.</p>
|
|
<p><em>Replacing the default C/C++ tags file:</em></p>
|
|
<p>Geany currently uses a default global tags file c99.tags for
|
|
C and C++, commonly installed in /usr/share/geany. This file can
|
|
be replaced with one containing tags parsed from a different set
|
|
of header files. When Geany is next started, your custom tags file
|
|
will be loaded instead of the default c99.tags. You should keep a
|
|
copy of the generated tags file because it will get overwritten when
|
|
upgrading Geany.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="ignore-tags">
|
|
<h3><a class="toc-backref" href="#id75">Ignore tags</a></h3>
|
|
<p>You can also ignore certain tags if they would lead to wrong parsing of
|
|
the code. Simply create a file called "ignore.tags" in your Geany
|
|
configuration directory (usually <tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt>). Then list all tags
|
|
you want to ignore in this file, separated by spaces and/or newlines.</p>
|
|
<p>More detailed information about the usage from the Exuberant Ctags
|
|
manual page:</p>
|
|
<pre class="literal-block">
|
|
Specifies a list of identifiers which are to be specially handled
|
|
while parsing C and C++ source files. This option is specifically
|
|
provided to handle special cases arising through the use of
|
|
pre-processor macros. When the identifiers listed are simple identifiers,
|
|
these identifiers will be ignored during parsing of the source files.
|
|
If an identifier is suffixed with a '+' character, ctags will also
|
|
ignore any parenthesis-enclosed argument list which may immediately
|
|
follow the identifier in the source files.
|
|
If two identifiers are separated with the '=' character, the first
|
|
identifiers is replaced by the second identifiers for parsing purposes.
|
|
</pre>
|
|
<p>For even more detailed information please read the manual page of
|
|
Exuberant Ctags.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="preferences">
|
|
<h2><a class="toc-backref" href="#id76">Preferences</a></h2>
|
|
<p>You may adjust Geany's settings using the Edit --> Preferences
|
|
dialog. Any changes you make there can be applied by hitting either
|
|
the Apply or the OK button. These settings will persist between Geany
|
|
sessions. Note that most settings here have descriptive popup bubble
|
|
help -- just hover the mouse over the item in question to get help
|
|
on it.</p>
|
|
<p>You may also adjust some View settings (under the View menu) that
|
|
persist between Geany sessions. The settings under the Document menu,
|
|
however, are only for the current document and revert to defaults
|
|
when restarting Geany.</p>
|
|
<p>There are also some rarer <a class="reference internal" href="#hidden-preferences">Hidden preferences</a>.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">In the paragraphs that follow, the text describing a dialog tab
|
|
comes after the screenshot of that tab.</p>
|
|
</div>
|
|
<div class="section" id="general-startup-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id77">General Startup tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_gen_startup.png" src="./images/pref_dialog_gen_startup.png" />
|
|
<div class="section" id="id1">
|
|
<h4><a class="toc-backref" href="#id78">Startup</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Load files from the last session</dt>
|
|
<dd>On startup, load the same files you had open the last time you
|
|
used Geany.</dd>
|
|
<dt>Load virtual terminal support</dt>
|
|
<dd>Load the library for running a terminal in the message window area.</dd>
|
|
<dt>Enable plugin support</dt>
|
|
<dd>Allow plugins to be used in Geany.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="shutdown">
|
|
<h4><a class="toc-backref" href="#id79">Shutdown</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Save window position and geometry</dt>
|
|
<dd>Save the current position and size of the main window so next time
|
|
you open Geany it's in the same location.</dd>
|
|
<dt>Confirm Exit</dt>
|
|
<dd>Have a dialog pop up to confirm that you really want to quit Geany.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="paths">
|
|
<h4><a class="toc-backref" href="#id80">Paths</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Startup path</dt>
|
|
<dd>Path to start in when opening or saving files.
|
|
It must be an absolute path.
|
|
Leave it blank to use the current working directory.</dd>
|
|
<dt>Project files</dt>
|
|
<dd>Path to start in when opening project files.</dd>
|
|
<dt>Extra plugin path</dt>
|
|
<dd>Geany looks by default in the global installation path and in the
|
|
configuration directory. The path entered here will be searched additionally
|
|
for plugins. Usually you do not need to set an additional path to search for
|
|
plugins. It might be useful when Geany is installed on a multi-user machine
|
|
and additional plugins should be available in a custom location for all users.
|
|
Leave blank to not set an additional lookup path.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="general-miscellaneous-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id81">General Miscellaneous tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_gen_misc.png" src="./images/pref_dialog_gen_misc.png" />
|
|
<div class="section" id="miscellaneous">
|
|
<h4><a class="toc-backref" href="#id82">Miscellaneous</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Beep on errors when compilation has finished</dt>
|
|
<dd>Have the computer make a beeping sound when compilation of your program
|
|
has completed or any errors occurred.</dd>
|
|
<dt>Switch status message list at new message</dt>
|
|
<dd>Switch to the status message tab (in the notebook window at the bottom)
|
|
once a new status message arrives.</dd>
|
|
<dt>Suppress status messages in the status bar</dt>
|
|
<dd>Remove all messages from the status bar. The messages are still displayed
|
|
in the status messages window.</dd>
|
|
<dt>Auto focus widgets (focus follows mouse)</dt>
|
|
<dd>Give the focus automatically to widgets below the mouse cursor.
|
|
This works for the main editor widget, the scribble, the toolbar search field
|
|
goto line fields and the VTE.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="search">
|
|
<h3><a class="toc-backref" href="#id83">Search</a></h3>
|
|
<dl class="docutils">
|
|
<dt>Always wrap search and hide the Find dialog</dt>
|
|
<dd>Always wrap search around the document and hide the Find dialog after clicking
|
|
Find Next/Previous.</dd>
|
|
<dt>Use the current word under the cursor for Find dialogs</dt>
|
|
<dd>Use current word under the cursor when opening the Find, Find in Files or Replace dialog and
|
|
there is no selection. When this option is disabled, the search term of the last use of the
|
|
appropriate Find dialog is used.</dd>
|
|
<dt>Use the current file's directory for Find in Files</dt>
|
|
<dd>When opening the Find in Files dialog, set the directory to search to the directory of the current
|
|
active file. When this option is disabled, the directory of the last use of the Find in Files
|
|
dialog is used.</dd>
|
|
</dl>
|
|
<div class="section" id="projects">
|
|
<h4><a class="toc-backref" href="#id84">Projects</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Use project-based session files</dt>
|
|
<dd>Save your current session when closing projects. You will be able to
|
|
resume different project sessions, automatically opening the files
|
|
you had open previously.</dd>
|
|
<dt>Store project file inside the project base directory</dt>
|
|
<dd>When creating new projects, the default path for the project file contains
|
|
the project base path. Without this option enabled, the default project file
|
|
path is one level above the project base path.
|
|
In any case, you can easily set the final project file path in the
|
|
<em>New Project</em> dialog. This option is just for your convenience to get
|
|
a proper default path.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="interface-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id85">Interface tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_interface.png" src="./images/pref_dialog_interface.png" />
|
|
<div class="section" id="sidebar">
|
|
<h4><a class="toc-backref" href="#id86">Sidebar</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Show symbol list</dt>
|
|
<dd>Show the list of functions, variables, and other information in the
|
|
current document you are editing.</dd>
|
|
<dt>Show documents list</dt>
|
|
<dd>Show all the documents you have open currently. This can be used to
|
|
change between documents (see <a class="reference internal" href="#switching-between-documents">Switching between documents</a>) and
|
|
to perform some common operations such as saving, closing and reloading.</dd>
|
|
<dt>Show full path name in documents list</dt>
|
|
<dd>Show the full directory path of the files you are editing in the
|
|
<em>Documents</em> list.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="fonts">
|
|
<h4><a class="toc-backref" href="#id87">Fonts</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Editor</dt>
|
|
<dd>Change the font used to display documents.</dd>
|
|
<dt>Symbol list</dt>
|
|
<dd>Change the font used for the Symbols sidebar tab.</dd>
|
|
<dt>Message window</dt>
|
|
<dd>Change the font used for the message window area.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="editor-tabs">
|
|
<h4><a class="toc-backref" href="#id88">Editor tabs</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Show editor tabs</dt>
|
|
<dd>Show a notebook tab for all documents so you can switch between them
|
|
using the mouse (instead of using the Documents window).</dd>
|
|
<dt>Show close buttons</dt>
|
|
<dd>Make each tab show a close button so you can easily close open
|
|
documents.</dd>
|
|
<dt>Placement of new file tabs</dt>
|
|
<dd>Whether to create a document with its notebook tab to the left or
|
|
right of all existing tabs.</dd>
|
|
<dt>Double-clicking hides all additional widgets</dt>
|
|
<dd>Whether to call the View->Toggle All Additional Widgets command
|
|
when double-clicking on a notebook tab.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="tab-positions">
|
|
<h4><a class="toc-backref" href="#id89">Tab positions</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Editor</dt>
|
|
<dd>Set the positioning of the editor's notebook tabs to the right,
|
|
left, top, or bottom of the editing window.</dd>
|
|
<dt>Sidebar</dt>
|
|
<dd>Set the positioning of the sidebar's notebook tabs to the right,
|
|
left, top, or bottom of the sidebar window.</dd>
|
|
<dt>Message window</dt>
|
|
<dd>Set the positioning of the message window's notebook tabs to the
|
|
right, left, top, or bottom of the message window.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="id2">
|
|
<h4><a class="toc-backref" href="#id90">Miscellaneous</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Show status bar</dt>
|
|
<dd>Show the status bar at the bottom of the main window. It gives information about
|
|
the file you are editing like the line and column you are on, whether any
|
|
modifications were done, the file encoding, the filetype and other information.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="toolbar-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id91">Toolbar tab in preferences dialog</a></h3>
|
|
<p>Affects the main toolbar underneath the menu bar.</p>
|
|
<img alt="./images/pref_dialog_toolbar.png" src="./images/pref_dialog_toolbar.png" />
|
|
<div class="section" id="toolbar">
|
|
<h4><a class="toc-backref" href="#id92">Toolbar</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Show Toolbar</dt>
|
|
<dd>Whether to show the toolbar.</dd>
|
|
<dt>Append Toolbar to the Menu</dt>
|
|
<dd>Allows to append the toolbar to the main menu bar instead of placing it below.
|
|
This is useful to save vertical space.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="appearance">
|
|
<h4><a class="toc-backref" href="#id93">Appearance</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Icon Style</dt>
|
|
<dd>Select the toolbar icon style to use - either icons and text, just
|
|
icons or just text.</dd>
|
|
<dt>Icon size</dt>
|
|
<dd>Select the size of the icons you see (large, small or very small).</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="editor-features-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id94">Editor Features tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_edit_features.png" src="./images/pref_dialog_edit_features.png" />
|
|
<div class="section" id="features">
|
|
<h4><a class="toc-backref" href="#id95">Features</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Line wrapping</dt>
|
|
<dd>Show long lines wrapped around to new display lines.</dd>
|
|
<dt>Enable "smart" home key</dt>
|
|
<dd>Whether to move the cursor to the first non-whitespace character
|
|
on the line when you hit the home key on your keyboard. Pressing it
|
|
again will go to the very start of the line.</dd>
|
|
<dt>Disable Drag and Drop</dt>
|
|
<dd>Do not allow the dragging and dropping of selected text in documents.</dd>
|
|
<dt>Enable folding</dt>
|
|
<dd>Allow groups of lines in a document to be collapsed for easier
|
|
navigation/editing.</dd>
|
|
<dt>Fold/Unfold all children of a fold point</dt>
|
|
<dd>Whether to fold/unfold all child fold points when a parent line
|
|
is folded.</dd>
|
|
<dt>Use indicators to show compile errors</dt>
|
|
<dd>Underline lines with compile errors using red squiggles to indicate
|
|
them in the editor area.</dd>
|
|
<dt>Newline strip trailing spaces</dt>
|
|
<dd>Remove any white space at the end of the line when you hit the
|
|
Enter/Return key.</dd>
|
|
<dt>Line breaking column</dt>
|
|
<dd>The editor column number to insert a newline at when Line Breaking
|
|
is enabled for the current document.</dd>
|
|
<dt>Comment toggle marker</dt>
|
|
<dd>A string which is added when toggling a line comment in a source file.
|
|
It is used to mark the comment as toggled.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="editor-indentation-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id96">Editor Indentation tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_edit_indentation.png" src="./images/pref_dialog_edit_indentation.png" />
|
|
<div class="section" id="indentation-group">
|
|
<h4><a class="toc-backref" href="#id97">Indentation group</a></h4>
|
|
<p>See <a class="reference internal" href="#indentation">Indentation</a> for more information.</p>
|
|
<dl class="docutils">
|
|
<dt>Type</dt>
|
|
<dd><p class="first">When Geany inserts indentation, whether to use:</p>
|
|
<ul class="simple">
|
|
<li>Just Tabs</li>
|
|
<li>Just Spaces</li>
|
|
<li>Tabs and Spaces, depending on how much indentation is on a line</li>
|
|
</ul>
|
|
<p class="last">The <em>Tabs and Spaces</em> indent type is also known as <em>Soft tab
|
|
support</em> in some other editors.</p>
|
|
</dd>
|
|
<dt>Width</dt>
|
|
<dd>The width of a single indent size in spaces. By default the indent
|
|
size is equivalent to 4 spaces.</dd>
|
|
<dt>Hard tab width</dt>
|
|
<dd>When the <em>Tabs and Spaces</em> indent type is enabled, this is the
|
|
display size of a tab. Otherwise this is ignored. Although
|
|
configurable, this should usually be set to 8.</dd>
|
|
<dt>Detect from file</dt>
|
|
<dd>Try to detect and set the indent type based on file content, when
|
|
a file is opened.</dd>
|
|
<dt>Auto-indent mode</dt>
|
|
<dd><p class="first">The type of auto-indentation you wish to use after pressing Enter,
|
|
if any.</p>
|
|
<dl class="last docutils">
|
|
<dt>Basic</dt>
|
|
<dd>Just add the indentation of the previous line.</dd>
|
|
<dt>Current chars</dt>
|
|
<dd>Add indentation based on the current filetype and any characters at
|
|
the end of the line such as <tt class="docutils literal"><span class="pre">{</span></tt>, <tt class="docutils literal"><span class="pre">}</span></tt> for C, <tt class="docutils literal"><span class="pre">:</span></tt> for Python.</dd>
|
|
<dt>Match braces</dt>
|
|
<dd>Like <em>Current chars</em> but for C-like languages, make a closing
|
|
<tt class="docutils literal"><span class="pre">}</span></tt> brace line up with the matching opening brace.</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt>Tab key indents</dt>
|
|
<dd><p class="first">If set, pressing tab will indent the current line or selection, and
|
|
unindent when pressing Shift-tab. Otherwise, the tab key will
|
|
insert a tab character into the document (which can be different
|
|
from indentation, depending on the indent type).</p>
|
|
<div class="note last">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">There are also separate configurable keybindings for indent &
|
|
unindent, but this pref allows the tab key to have different
|
|
meanings in different contexts - e.g. for snippet completion.</p>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="editor-completions-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id98">Editor Completions tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_edit_completions.png" src="./images/pref_dialog_edit_completions.png" />
|
|
<div class="section" id="completions">
|
|
<h4><a class="toc-backref" href="#id99">Completions</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Snippet Completion</dt>
|
|
<dd>Whether to replace special keywords after typing Tab into a
|
|
pre-defined text snippet.
|
|
See <a class="reference internal" href="#user-definable-snippets">User-definable snippets</a>.</dd>
|
|
<dt>XML tag autocompletion</dt>
|
|
<dd>When you open an XML tag automatically generate its completion tag.</dd>
|
|
<dt>Automatic continuation multi-line comments</dt>
|
|
<dd><p class="first">Continue automatically multi-line comments in languages like C, C++
|
|
and Java when a new line is entered inside such a comment.
|
|
With this option enabled, Geany will insert a <tt class="docutils literal"><span class="pre">*</span></tt> on every new line
|
|
inside a multi-line comment, for example when you press return in the
|
|
following C code:</p>
|
|
<pre class="literal-block">
|
|
/*
|
|
* This is a C multi-line comment, press <Return>
|
|
</pre>
|
|
<p>then Geany would insert:</p>
|
|
<pre class="literal-block">
|
|
*
|
|
</pre>
|
|
<p class="last">on the next line with the correct indentation based on the previous line,
|
|
as long as the multi-line is not closed by <tt class="docutils literal"><span class="pre">*/</span></tt>.</p>
|
|
</dd>
|
|
<dt>Automatic symbol completion</dt>
|
|
<dd>When you start to type a symbol name, look for the full string to
|
|
allow it to be completed for you.</dd>
|
|
<dt>Characters to type for completion</dt>
|
|
<dd>Number of characters of a word to type before auto completion is
|
|
displayed.</dd>
|
|
<dt>Rows of symbol completion list</dt>
|
|
<dd>The maximum number of symbols to show in the auto completion window.</dd>
|
|
<dt>Max. symbol name suggestions</dt>
|
|
<dd>The maximum number of entries to display in the auto completion list.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="auto-close-quotes-and-brackets">
|
|
<h4><a class="toc-backref" href="#id100">Auto-close quotes and brackets</a></h4>
|
|
<p>Geany can automatically insert a closing bracket and quote characters when
|
|
you open them. For instance, you type a <tt class="docutils literal"><span class="pre">(</span></tt> and Geany will automatically
|
|
insert <tt class="docutils literal"><span class="pre">)</span></tt>. With the following options, you can define for which
|
|
characters this should work.</p>
|
|
<dl class="docutils">
|
|
<dt>Parenthesis ( )</dt>
|
|
<dd>Auto-close parenthesis when typing an opening one</dd>
|
|
<dt>Curly brackets { }</dt>
|
|
<dd>Auto-close parenthesis when typing an opening one</dd>
|
|
<dt>Square brackets [ ]</dt>
|
|
<dd>Auto-close parenthesis when typing an opening one</dd>
|
|
<dt>Single quotes ' '</dt>
|
|
<dd>Auto-close parenthesis when typing an opening one</dd>
|
|
<dt>Double quotes " "</dt>
|
|
<dd>Auto-close parenthesis when typing an opening one</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="editor-display-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id101">Editor Display tab in preferences dialog</a></h3>
|
|
<p>This is for visual elements displayed in the editor window.</p>
|
|
<img alt="./images/pref_dialog_edit_display.png" src="./images/pref_dialog_edit_display.png" />
|
|
<div class="section" id="display">
|
|
<h4><a class="toc-backref" href="#id102">Display</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Invert syntax highlighting colors</dt>
|
|
<dd><p class="first">Use white text on a black background and invert all colors.
|
|
If the <tt class="docutils literal"><span class="pre">invert_all</span></tt> setting in <tt class="docutils literal"><span class="pre">filetypes.common</span></tt> is set, this
|
|
option is always enabled. See <a class="reference internal" href="#special-file-filetypes-common">Special file filetypes.common</a>
|
|
for details.</p>
|
|
<p class="last">This option requires a restart of Geany. The value of this option</p>
|
|
</dd>
|
|
<dt>Show indendation guides</dt>
|
|
<dd>Show vertical lines to help show how much leading indentation there
|
|
is on each line.</dd>
|
|
<dt>Show whitespaces</dt>
|
|
<dd>Mark all tabs with an arrow "-->" symbol and spaces with dots to
|
|
show which kinds of whitespace are used.</dd>
|
|
<dt>Show line endings</dt>
|
|
<dd>Display a symbol everywhere that a carriage return or line feed
|
|
is present.</dd>
|
|
<dt>Show line numbers</dt>
|
|
<dd>Show or hide the Line Number margin.</dd>
|
|
<dt>Show markers margin</dt>
|
|
<dd>Show or hide the small margin right of the line numbers, which is used
|
|
to mark lines.</dd>
|
|
<dt>Stop scrolling at last line</dt>
|
|
<dd>When enabled Geany stops scrolling when at the last line of the document.
|
|
Otherwise you can scroll one more page even if there are no real lines.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="long-line-marker">
|
|
<h4><a class="toc-backref" href="#id103">Long line marker</a></h4>
|
|
<p>The long line marker helps to indicate overly-long lines, or as a hint
|
|
to the user for when to break the line.</p>
|
|
<dl class="docutils">
|
|
<dt>Type</dt>
|
|
<dd><dl class="first last docutils">
|
|
<dt>Line</dt>
|
|
<dd>Show a thin vertical line in the editor window at the given column
|
|
position.</dd>
|
|
<dt>Background</dt>
|
|
<dd>Change the background color of characters after the given column
|
|
position to the color set below. (This is recommended over the
|
|
<em>Line</em> setting if you use proportional fonts).</dd>
|
|
<dt>Disabled</dt>
|
|
<dd>Don't mark long lines at all.</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt>Long line marker</dt>
|
|
<dd>Set this value to a value greater than zero to specify the column
|
|
where it should appear.</dd>
|
|
<dt>Long line marker color</dt>
|
|
<dd>Set the color of the long line marker.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="files-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id104">Files tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_files.png" src="./images/pref_dialog_files.png" />
|
|
<div class="section" id="new-files">
|
|
<h4><a class="toc-backref" href="#id105">New files</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Open new documents from the command-line</dt>
|
|
<dd>Whether to create new documents when passing filenames that don't
|
|
exist from the command-line.</dd>
|
|
<dt>Default encoding (new files)</dt>
|
|
<dd>The type of file encoding you wish to use when creating files.</dd>
|
|
<dt>Used fixed encoding when opening files</dt>
|
|
<dd>Assume all files you are opening are using the type of encoding specified below.</dd>
|
|
<dt>Default encoding (existing files)</dt>
|
|
<dd>Opens all files with the specified encoding instead of auto-detecting it.
|
|
Use this option when it's not possible for Geany to detect the exact encoding.</dd>
|
|
<dt>Default end of line characters</dt>
|
|
<dd>The end of line characters to which should be used for new files.
|
|
On Windows systems, you generally want to use CR/LF which are the common
|
|
characters to mark line breaks.
|
|
On Unix-like systems, LF is default and CR is used on MAC systems.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="saving-files">
|
|
<h4><a class="toc-backref" href="#id106">Saving files</a></h4>
|
|
<p>Perform special formatting operations when a document is saved. These
|
|
can each be undone with the Undo command as usual.</p>
|
|
<dl class="docutils">
|
|
<dt>Ensure newline at file end</dt>
|
|
<dd>Add a newline at the end of the document if one is missing.</dd>
|
|
<dt>Strip trailing spaces</dt>
|
|
<dd>Remove the trailing spaces on each line of the document.</dd>
|
|
<dt>Replace tabs by space</dt>
|
|
<dd><p class="first">Replace all tabs in the document with the equivalent number of spaces.</p>
|
|
<div class="note last">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">It is better to use spaces to indent than use this preference - see
|
|
<a class="reference internal" href="#indentation">Indentation</a>.</p>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="id3">
|
|
<h4><a class="toc-backref" href="#id107">Miscellaneous</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Recent files list length</dt>
|
|
<dd>The number of files to remember in the recently used files list.</dd>
|
|
<dt>Disk check timeout</dt>
|
|
<dd><p class="first">The number of seconds to periodically check the current document's
|
|
file on disk in case it has changed. Setting it to 0 will disable
|
|
this feature.</p>
|
|
<div class="note last">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">These checks are only performed on local files. Remote files are
|
|
not checked for changes due to performance issues
|
|
(remote files are files in <tt class="docutils literal"><span class="pre">~/.gvfs/</span></tt>).</p>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="tools-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id108">Tools tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_tools.png" src="./images/pref_dialog_tools.png" />
|
|
<div class="section" id="tool-paths">
|
|
<h4><a class="toc-backref" href="#id109">Tool paths</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Make</dt>
|
|
<dd>The location of the make executable.</dd>
|
|
<dt>Terminal</dt>
|
|
<dd>The location of your terminal executable.</dd>
|
|
<dt>Browser</dt>
|
|
<dd>The location of your web browser executable.</dd>
|
|
<dt>Grep</dt>
|
|
<dd>The location of the grep executable.</dd>
|
|
</dl>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">For Windows users: at the time of writing it is recommended to use
|
|
the grep.exe from the UnxUtils project
|
|
(<a class="reference external" href="http://sourceforge.net/projects/unxutils">http://sourceforge.net/projects/unxutils</a>). The grep.exe from the
|
|
Mingw project for instance might not work with Geany at the moment.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="commands">
|
|
<h4><a class="toc-backref" href="#id110">Commands</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Context action</dt>
|
|
<dd>Set this to a command to execute on the current word.
|
|
You can use the "%s" wildcard to pass the current word below the cursor
|
|
to the specified command.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="template-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id111">Template tab in preferences dialog</a></h3>
|
|
<p>This data is used as meta data for various template text to insert into
|
|
a document, such as the file header. You only need to set fields that
|
|
you want to use in your template files.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">For changes made here to take effect a restart of geany is required.</p>
|
|
</div>
|
|
<img alt="./images/pref_dialog_templ.png" src="./images/pref_dialog_templ.png" />
|
|
<div class="section" id="template-data">
|
|
<h4><a class="toc-backref" href="#id112">Template data</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Developer</dt>
|
|
<dd>The name of the developer who will be creating files.</dd>
|
|
<dt>Initials</dt>
|
|
<dd>The initials of the developer.</dd>
|
|
<dt>Mail address</dt>
|
|
<dd><p class="first">The email address of the developer.</p>
|
|
<div class="note last">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">You may wish to add anti-spam markup, e.g. <tt class="docutils literal"><span class="pre">name<at>site<dot>ext</span></tt>.</p>
|
|
</div>
|
|
</dd>
|
|
<dt>Company</dt>
|
|
<dd>The company the developer is working for.</dd>
|
|
<dt>Initial version</dt>
|
|
<dd>The initial version of files you will be creating.</dd>
|
|
<dt>Year</dt>
|
|
<dd>Specify a format for the the {year} wildcard. You can use any conversion specifiers
|
|
which can be used with the ANSI C strftime function. For details please see
|
|
<a class="reference external" href="http://man.cx/strftime">http://man.cx/strftime</a>.</dd>
|
|
<dt>Date</dt>
|
|
<dd>Specify a format for the the {date} wildcard. You can use any conversion specifiers
|
|
which can be used with the ANSI C strftime function. For details please see
|
|
<a class="reference external" href="http://man.cx/strftime">http://man.cx/strftime</a>.</dd>
|
|
<dt>Date & Time</dt>
|
|
<dd>Specify a format for the the {datetime} wildcard. You can use any conversion specifiers
|
|
which can be used with the ANSI C strftime function. For details please see
|
|
<a class="reference external" href="http://man.cx/strftime">http://man.cx/strftime</a>.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="keybinding-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id113">Keybinding tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_keys.png" src="./images/pref_dialog_keys.png" />
|
|
<p>There are some handy commands in here that are not, by default,
|
|
bound to a key combination, and may not be available as a menu item.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">For more information see the section called <a class="reference internal" href="#keybindings">Keybindings</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="printing-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id114">Printing tab in preferences dialog</a></h3>
|
|
<img alt="./images/pref_dialog_printing.png" src="./images/pref_dialog_printing.png" />
|
|
<dl class="docutils">
|
|
<dt>Use external command for printing</dt>
|
|
<dd>Use a system command to print your file out.</dd>
|
|
<dt>Use native GTK printing</dt>
|
|
<dd>Let the GTK GUI toolkit handle your print request.</dd>
|
|
<dt>Print line numbers</dt>
|
|
<dd>Print the line numbers on the left of your paper.</dd>
|
|
<dt>Print page number</dt>
|
|
<dd>Print the page number on the bottom right of your paper.</dd>
|
|
<dt>Print page header</dt>
|
|
<dd>Print a header on every page that is sent to the printer.</dd>
|
|
<dt>Use base name of the printed file</dt>
|
|
<dd>Don't use the entire path for the header, only the filename.</dd>
|
|
<dt>Date format</dt>
|
|
<dd>How the date should be printed. You can use the same format
|
|
specifiers as in the ANSI C function strftime(). For details please
|
|
see <a class="reference external" href="http://man.cx/strftime">http://man.cx/strftime</a>.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="terminal-vte-tab-in-preferences-dialog">
|
|
<h3><a class="toc-backref" href="#id115">Terminal (VTE) tab in preferences dialog</a></h3>
|
|
<p>See also: <a class="reference internal" href="#virtual-terminal-emulator-widget-vte">Virtual terminal emulator widget (VTE)</a>.</p>
|
|
<img alt="./images/pref_dialog_vte.png" src="./images/pref_dialog_vte.png" />
|
|
<div class="section" id="terminal-widget">
|
|
<h4><a class="toc-backref" href="#id116">Terminal widget</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Terminal font</dt>
|
|
<dd>Select the font that will be used in the terminal emulation control.</dd>
|
|
<dt>Foreground color</dt>
|
|
<dd>Select the font color.</dd>
|
|
<dt>Background color</dt>
|
|
<dd>Select the background color of the terminal.</dd>
|
|
<dt>Scrollback lines</dt>
|
|
<dd>The number of lines buffered so that you can scroll though the history.</dd>
|
|
<dt>Shell</dt>
|
|
<dd>The location of the shell on your system.</dd>
|
|
<dt>Scroll on keystroke</dt>
|
|
<dd>Scroll the terminal to the prompt line when pressing a key.</dd>
|
|
<dt>Scroll on output</dt>
|
|
<dd>Scroll the output down.</dd>
|
|
<dt>Cursor blinks</dt>
|
|
<dd>Let the terminal cursor blink.</dd>
|
|
<dt>Override Geany keybindings</dt>
|
|
<dd>Allow the VTE to receive keyboard shortcuts (apart from focus commands).</dd>
|
|
<dt>Disable menu shortcut key (F10 by default)</dt>
|
|
<dd>Disable the menu shortcut when you are in the virtual terminal.</dd>
|
|
<dt>Follow path of the current file</dt>
|
|
<dd>Make the path of the terminal change according to the path of the
|
|
current file.</dd>
|
|
<dt>Execute programs in VTE</dt>
|
|
<dd>Execute programs in the virtual terminal instead of using the external
|
|
terminal tool.</dd>
|
|
<dt>Don't use run script</dt>
|
|
<dd>Don't use the simple run script which is usually used to display
|
|
the exit status of the executed program.
|
|
This can be useful if you already have a program running in the VTE
|
|
like a Python console (e.g. ipython). Use this with care.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="project-management">
|
|
<h2><a class="toc-backref" href="#id117">Project Management</a></h2>
|
|
<p>Project Management is optional in Geany. Currently it can be used for:</p>
|
|
<ul class="simple">
|
|
<li>Storing and opening session files on a project basis.</li>
|
|
<li>Running <em>Make</em> from the project's base directory.</li>
|
|
<li>Setting a custom <em>Run</em> command specific to the project.</li>
|
|
</ul>
|
|
<p>A list of session files can be stored and opened with the project
|
|
when the <em>Use project-based session files</em> preference is enabled,
|
|
in the <em>Project</em> group of the <a class="reference internal" href="#preferences">Preferences</a> dialog.</p>
|
|
<p>As long as a project is open, the Make and Run commands will use
|
|
the project's settings, instead of the defaults. These will be used
|
|
whichever document is currently displayed.</p>
|
|
<p>The current project's settings are saved when it is closed, or when
|
|
Geany is shutdown. When restarting Geany, the previously opened project
|
|
file that was in use at the end of the last session will be reopened.</p>
|
|
<p>Below are the commands used to create, modify, open and close projects.</p>
|
|
<div class="section" id="new-project">
|
|
<h3><a class="toc-backref" href="#id118">New Project</a></h3>
|
|
<p>To create a new project, fill in the <em>Name</em> field. By default this
|
|
will setup a new project file <tt class="docutils literal"><span class="pre">~/projects/name.geany</span></tt>. Usually it's
|
|
best to store all your project files in the same directory (they are
|
|
independent of any source directory trees).</p>
|
|
<p>The Base path text field is setup to use <tt class="docutils literal"><span class="pre">~/projects/name</span></tt>. This
|
|
can safely be set to any existing path -- it will not touch the file
|
|
structure contained in it.</p>
|
|
</div>
|
|
<div class="section" id="project-properties">
|
|
<h3><a class="toc-backref" href="#id119">Project Properties</a></h3>
|
|
<p>You can set an optional description for the project, but it is not
|
|
used elsewhere by Geany.</p>
|
|
<p>The <em>Base path</em> field is used as the directory to run the Make and Make
|
|
custom commands in. It is also used as working directory for the project
|
|
specific <em>Run command</em>.
|
|
The specified path can be an absolute path or relative to the project's
|
|
file name.</p>
|
|
<div class="section" id="make-in-base-path">
|
|
<h4><a class="toc-backref" href="#id120">Make in base path</a></h4>
|
|
<p>This setting makes the <em>Build->Make</em> command use the project's base
|
|
path. Uncheck this if you want to use the current file's directory
|
|
instead.</p>
|
|
</div>
|
|
<div class="section" id="run-command">
|
|
<h4><a class="toc-backref" href="#id121">Run command</a></h4>
|
|
<p>The <em>Run command</em> overrides the default run command. You can set this
|
|
to the executable or main script file for the project, and append
|
|
any command-line arguments.</p>
|
|
<p>The following variables can be used:</p>
|
|
<ul class="simple">
|
|
<li>%f -- complete filename without path</li>
|
|
<li>%e -- filename without path and without extension</li>
|
|
</ul>
|
|
<p>See <a class="reference internal" href="#build-settings-section">[build_settings] Section</a> for details.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="open-project">
|
|
<h3><a class="toc-backref" href="#id122">Open Project</a></h3>
|
|
<p>The Open command displays a standard file chooser, starting in
|
|
<tt class="docutils literal"><span class="pre">~/projects</span></tt>. Choose a project file named with the <tt class="docutils literal"><span class="pre">.geany</span></tt>
|
|
extension.</p>
|
|
<p>When project session support is enabled, Geany will close the currently
|
|
open files and open the session files associated with the project.</p>
|
|
</div>
|
|
<div class="section" id="close-project">
|
|
<h3><a class="toc-backref" href="#id123">Close Project</a></h3>
|
|
<p>Project file settings are saved when the project is closed.</p>
|
|
<p>When project session support is enabled, Geany will close the project
|
|
session files and open any previously closed default session files.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="build-system">
|
|
<h2><a class="toc-backref" href="#id124">Build system</a></h2>
|
|
<p>Geany has an integrated build system. Firstly this means that the
|
|
current source file will be saved before it is processed. This is
|
|
for convenience so that you don't need to keep saving small changes
|
|
to the current file before building.</p>
|
|
<p>Secondly the output for Compile, Build and Make actions will be captured
|
|
in the Compiler notebook tab of the messages window. If there are
|
|
any warnings or errors with line numbers shown in red in the Compiler
|
|
output tab, you can click on them and Geany will switch to the relevant
|
|
source file (or open it) and mark the line number so the problem can be
|
|
corrected. Geany will also set indicators for warnings or errors with
|
|
line numbers.</p>
|
|
<div class="tip">
|
|
<p class="first admonition-title">Tip</p>
|
|
<p class="last">If Geany's default error message parsing does not parse errors for
|
|
the tool you're using, you can set a custom regex. See <a class="reference internal" href="#filetype-definition-files">Filetype
|
|
definition files</a> and the <a class="reference internal" href="#build-settings-section">[build_settings] Section</a>.</p>
|
|
</div>
|
|
<p>Depending on the current file's filetype, the Build menu will contain
|
|
the following items:</p>
|
|
<ul class="simple">
|
|
<li>Compile</li>
|
|
<li>Build</li>
|
|
<li>Make All</li>
|
|
<li>Make Custom Target</li>
|
|
<li>Make Object</li>
|
|
<li>Execute</li>
|
|
<li>Set Includes and Arguments</li>
|
|
</ul>
|
|
<div class="section" id="compile">
|
|
<h3><a class="toc-backref" href="#id125">Compile</a></h3>
|
|
<p>The Compile command has different uses for different kinds of files.</p>
|
|
<p>For compilable languages such as C and C++, the Compile command is
|
|
setup to compile the current source file into a binary object file.</p>
|
|
<p>Java source files will be compiled to class file bytecode. Interpreted
|
|
languages such as Perl, Python, Ruby will compile to bytecode if the
|
|
language supports it, or will run a syntax check, or failing that
|
|
will run the file in its language interpreter.</p>
|
|
</div>
|
|
<div class="section" id="build">
|
|
<h3><a class="toc-backref" href="#id126">Build</a></h3>
|
|
<p>For compilable languages such as C and C++, the Build command will link
|
|
the current source file's equivalent object file into an executable. If
|
|
the object file does not exist, the source will be compiled and linked
|
|
in one step, producing just the executable binary.</p>
|
|
<p>Interpreted languages do not use the Build command.</p>
|
|
</div>
|
|
<div class="section" id="make-all">
|
|
<h3><a class="toc-backref" href="#id127">Make all</a></h3>
|
|
<p>This effectively runs "make all" in the same directory as the
|
|
current file.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">For each of the Make commands, The Make tool path must be correctly
|
|
set in the Tools tab of the Preferences dialog.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="make-custom-target">
|
|
<h3><a class="toc-backref" href="#id128">Make custom target</a></h3>
|
|
<p>This is similar to running 'Make all' but you will be prompted for
|
|
the make target name to be passed to the Make tool. For example,
|
|
typing 'clean' in the dialog prompt will run "make clean".</p>
|
|
</div>
|
|
<div class="section" id="make-object">
|
|
<h3><a class="toc-backref" href="#id129">Make object</a></h3>
|
|
<p>Make object will run "make current_file.o" in the same directory as
|
|
the current file, using its prefix for 'current_file'. It is useful
|
|
for compiling just the current file without building the whole project.</p>
|
|
</div>
|
|
<div class="section" id="execute">
|
|
<h3><a class="toc-backref" href="#id130">Execute</a></h3>
|
|
<p>Execute will run the corresponding executable file, shell script or
|
|
interpreted script in a terminal window. Note that the Terminal tool
|
|
path must be correctly set in the Tools tab of the Preferences dialog -
|
|
you can use any terminal program that runs a Bourne compatible shell
|
|
and accept the "-e" command line argument to start a command.</p>
|
|
<p>After your program or script has finished executing, you will be
|
|
prompted to press the return key. This allows you to review any text
|
|
output from the program before the terminal window is closed.</p>
|
|
</div>
|
|
<div class="section" id="stopping-running-processes">
|
|
<h3><a class="toc-backref" href="#id131">Stopping running processes</a></h3>
|
|
<p>When there is a running program, the Run button in the toolbar
|
|
becomes a stop button and you can stop the current action. This
|
|
works by sending a signal to the process (and its child process(es))
|
|
to stop the process. The used signal is SIGQUIT.</p>
|
|
<p>Depending on the process you started it might occur that the process
|
|
cannot be stopped. This can happen when the process creates more than
|
|
one child process.</p>
|
|
<div class="section" id="terminal-emulators">
|
|
<h4><a class="toc-backref" href="#id132">Terminal emulators</a></h4>
|
|
<p>Xterm is known to work properly. If you are using "Terminal"
|
|
(the terminal program of Xfce), you should add the command line
|
|
option <tt class="docutils literal"><span class="pre">--disable-server</span></tt> otherwise the started process cannot be
|
|
stopped. Just add this option in the preferences dialog on the Tools
|
|
tab in the terminal field.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="set-includes-and-arguments">
|
|
<h3><a class="toc-backref" href="#id133">Set Includes and Arguments</a></h3>
|
|
<p>By default the Compile and Build commands invoke the compiler and
|
|
linker with only the basic arguments needed by all programs. Using
|
|
Set Includes and Arguments you can add any include paths and compile
|
|
flags for the compiler, any library names and paths for the linker,
|
|
and any arguments you want to use when running Execute.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">If you need complex settings for your build system, or several
|
|
different settings, then writing a Makefile and using the Make
|
|
commands is recommended; this will also make it easier for users to
|
|
build your software.</p>
|
|
</div>
|
|
<p>These settings are saved automatically when Geany is shut down.</p>
|
|
<p>The following variables can be used:</p>
|
|
<ul class="simple">
|
|
<li>%f -- complete filename without path</li>
|
|
<li>%e -- filename without path and without extension</li>
|
|
</ul>
|
|
<p>See <a class="reference internal" href="#build-settings-section">[build_settings] Section</a> for details.</p>
|
|
<div class="section" id="one-step-compilation">
|
|
<h4><a class="toc-backref" href="#id134">One step compilation</a></h4>
|
|
<p>If you are using the Build command to compile and link in one step,
|
|
you will need to set both the compiler arguments and the linker
|
|
arguments in the linker command setting.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="indicators">
|
|
<h3><a class="toc-backref" href="#id135">Indicators</a></h3>
|
|
<p>Indicators are red squiggly underlines which are used to highlight
|
|
errors which occurred while compiling the current file. So you can
|
|
easily see where your code failed to compile. To remove the indicators,
|
|
just click on "Remove all indicators" in the document file menu.</p>
|
|
<p>If you do not like this feature, you can disable it in the preferences
|
|
dialog.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="printing-support">
|
|
<h2><a class="toc-backref" href="#id136">Printing support</a></h2>
|
|
<p>Since Geany 0.13 there is full printing support using GTK's printing API.
|
|
The printed page(s) will look nearly the same as on your screen in Geany.
|
|
Additionally, there are some options to modify the printed page(s). You
|
|
can define whether to print line numbers, page numbers at the bottom of
|
|
each page and whether to print a page header on each page. This header
|
|
contains the filename of the printed document, the current page number and
|
|
the date and time of printing. By default, the file name of the document
|
|
is added with full path information to the header. If you prefer to add
|
|
only the basename of the file(without any path information) you can set it
|
|
in the preferences dialog. You can also adjust the format of the date and
|
|
time added to the page header. The available conversion specifiers are the
|
|
same as the ones which can be used with the ANSI C strftime function.
|
|
All of these settings can also be changed in the print dialog just before
|
|
actual printing is done.
|
|
On Unix-like systems the provided print dialog offers a print preview. The
|
|
preview file is opened with a PDF viewer and by default GTK uses <tt class="docutils literal"><span class="pre">evince</span></tt>
|
|
for print preview. If you don't have installed evince or just want to use
|
|
another PDF viewer, you can change the program to use in the file
|
|
<tt class="docutils literal"><span class="pre">.gtkrc-2.0</span></tt> (usually found in your home directory). Simply add a line
|
|
like:</p>
|
|
<pre class="literal-block">
|
|
gtk-print-preview-command = "epdfview %f"
|
|
</pre>
|
|
<p>at the end of the file. Of course, you can also use xpdf, kpdf or whatever
|
|
as the print preview command.</p>
|
|
<p>Unfortunately, native GTK printing support is only available if Geany was
|
|
built against GTK 2.10 (or above) <strong>and</strong> is running with GTK 2.10 (or above).
|
|
If not, Geany provides basic printing support. This means you can print a
|
|
file by passing the filename of the current file to a command which
|
|
actually prints the file. However, the printed document contains no syntax
|
|
highlighting. You can adjust the command to which the filename is
|
|
passed in the preferences dialog. The default command is:</p>
|
|
<pre class="literal-block">
|
|
% lpr %f
|
|
</pre>
|
|
<p><tt class="docutils literal"><span class="pre">%f</span></tt> will be substituted by the filename of the current file. Geany
|
|
will not show errors from the command itself, so you should make
|
|
sure that it works before(e.g. by trying to execute it from the
|
|
command line).</p>
|
|
<p>A nicer example, which I prefer is:</p>
|
|
<pre class="literal-block">
|
|
% a2ps -1 --medium=A4 -o - %f | xfprint4
|
|
</pre>
|
|
<p>But this depends on a2ps and xfprint4. As a replacement for xfprint4,
|
|
gtklp or similar programs can be used.</p>
|
|
</div>
|
|
<div class="section" id="plugins">
|
|
<h2><a class="toc-backref" href="#id137">Plugins</a></h2>
|
|
<p>Plugins are loaded at startup, if the <em>Enable plugin support</em>
|
|
general preference is set. There is also a command-line option,
|
|
<tt class="docutils literal"><span class="pre">-p</span></tt>, which prevents plugins being loaded. Plugins are scanned in
|
|
the following directories:</p>
|
|
<ul class="simple">
|
|
<li><tt class="docutils literal"><span class="pre">$prefix/lib/geany</span></tt> (see <a class="reference internal" href="#installation-prefix">Installation prefix</a>)</li>
|
|
<li><tt class="docutils literal"><span class="pre">~/.config/geany/plugins</span></tt></li>
|
|
</ul>
|
|
<p>Most plugins add menu items to the <em>Tools</em> menu when they are loaded.</p>
|
|
<p>Since Geany 0.13, there is a Plugin Manager to let you choose which plugins
|
|
should be loaded at startup. You can also load and unload plugins on the
|
|
fly using this dialog. Once you click the checkbox for a specific plugin
|
|
in the dialog, it is loaded or unloaded according to its previous state.
|
|
By default, no plugins are loaded at startup until you select some.
|
|
You can also configure some plugin specific options when the plugin
|
|
provides some.</p>
|
|
<p>See also <a class="reference internal" href="#plugin-documentation">Plugin documentation</a> for information about single plugins
|
|
which are included in Geany.</p>
|
|
</div>
|
|
<div class="section" id="keybindings">
|
|
<h2><a class="toc-backref" href="#id138">Keybindings</a></h2>
|
|
<p>Geany supports the default keyboard shortcuts for the Scintilla
|
|
editing widget. For a list of these commands, see <a class="reference internal" href="#scintilla-keyboard-commands">Scintilla
|
|
keyboard commands</a>. The Scintilla keyboard shortcuts will be overridden
|
|
by any custom keybindings with the same keyboard shortcut.</p>
|
|
<div class="section" id="switching-documents">
|
|
<h3><a class="toc-backref" href="#id139">Switching documents</a></h3>
|
|
<p>There are a few non-configurable bindings to switch between documents,
|
|
listed below. These can also be overridden by custom keybindings.</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="31%" />
|
|
<col width="69%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Key</th>
|
|
<th class="head">Action</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>Alt-[1-9]</td>
|
|
<td>Select left-most tab, from 1 to 9.</td>
|
|
</tr>
|
|
<tr><td>Alt-0</td>
|
|
<td>Select right-most tab.</td>
|
|
</tr>
|
|
<tr><td>Ctrl-Shift-PgUp</td>
|
|
<td>Select left-most tab.</td>
|
|
</tr>
|
|
<tr><td>Ctrl-Shift-PgDn</td>
|
|
<td>Select right-most tab.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="configurable-keybindings">
|
|
<h3><a class="toc-backref" href="#id140">Configurable keybindings</a></h3>
|
|
<p>For all actions listed below you can define your own keybindings. Open
|
|
the Preferences dialog, select the desired action and click on
|
|
change. In the opening dialog you can press any key combination you
|
|
want and it will be saved when you press OK. You can define only one
|
|
key combination for one action.</p>
|
|
<p>Some of the default key combinations cannot be changed, e.g. menu_new
|
|
or menu_open. These are set by GTK and should be kept, but you can
|
|
still add other key combinations for these actions. For example to
|
|
execute menu_open by default <em>Ctrl-O</em> is set, but you can also define
|
|
<em>Alt-O</em>, so that the file open dialog is shown by pressing either
|
|
<em>Ctrl-O</em> or <em>Alt-O</em>.</p>
|
|
<p>The following table lists all customizable keyboard shortcuts.</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="28%" />
|
|
<col width="23%" />
|
|
<col width="49%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Action</th>
|
|
<th class="head">Default shortcut</th>
|
|
<th class="head">Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td><strong>File</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>New</td>
|
|
<td>Ctrl-N</td>
|
|
<td>Creates a new file.</td>
|
|
</tr>
|
|
<tr><td>Open</td>
|
|
<td>Ctrl-O</td>
|
|
<td>Opens a file.</td>
|
|
</tr>
|
|
<tr><td>Save</td>
|
|
<td>Ctrl-S</td>
|
|
<td>Saves the current file.</td>
|
|
</tr>
|
|
<tr><td>Save As</td>
|
|
<td> </td>
|
|
<td>Saves the current file under a new name.</td>
|
|
</tr>
|
|
<tr><td>Save all</td>
|
|
<td>Ctrl-Shift-S</td>
|
|
<td>Saves all open files.</td>
|
|
</tr>
|
|
<tr><td>Close all</td>
|
|
<td>Ctrl-Shift-W</td>
|
|
<td>Closes all open files.</td>
|
|
</tr>
|
|
<tr><td>Close</td>
|
|
<td>Ctrl-W</td>
|
|
<td>Closes the current file.</td>
|
|
</tr>
|
|
<tr><td>Reload file</td>
|
|
<td>Ctrl-R</td>
|
|
<td>Reloads the current file. All unsaved changes
|
|
will be lost.</td>
|
|
</tr>
|
|
<tr><td>Print</td>
|
|
<td>Ctrl-P</td>
|
|
<td>Prints the current file.</td>
|
|
</tr>
|
|
<tr><td><strong>Editor</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Undo</td>
|
|
<td>Ctrl-Z</td>
|
|
<td>Un-does the last action.</td>
|
|
</tr>
|
|
<tr><td>Redo</td>
|
|
<td>Ctrl-Y</td>
|
|
<td>Re-does the last action.</td>
|
|
</tr>
|
|
<tr><td>Delete current line(s)</td>
|
|
<td>Ctrl-K</td>
|
|
<td>Deletes the current line (and any lines with a
|
|
selection).</td>
|
|
</tr>
|
|
<tr><td>Delete to line end</td>
|
|
<td>Ctrl-Shift-Delete</td>
|
|
<td>Deletes from the current caret position to the
|
|
end of the current line.</td>
|
|
</tr>
|
|
<tr><td>Duplicate line or selection</td>
|
|
<td>Ctrl-D</td>
|
|
<td>Duplicates the current line or selection.</td>
|
|
</tr>
|
|
<tr><td>Transpose current line</td>
|
|
<td>Ctrl-T</td>
|
|
<td>Transposes the current line with the previous one.</td>
|
|
</tr>
|
|
<tr><td>Scroll to current line</td>
|
|
<td>Ctrl-Shift-L</td>
|
|
<td>Scrolls the current line into the centre of the
|
|
view. The cursor position and or an existing
|
|
selection will not be changed.</td>
|
|
</tr>
|
|
<tr><td>Scroll up by one line</td>
|
|
<td>Alt-Up</td>
|
|
<td>Scrolls the view.</td>
|
|
</tr>
|
|
<tr><td>Scroll down by one line</td>
|
|
<td>Alt-Down</td>
|
|
<td>Scrolls the view.</td>
|
|
</tr>
|
|
<tr><td>Complete word</td>
|
|
<td>Ctrl-Space</td>
|
|
<td>Shows auto completion list.</td>
|
|
</tr>
|
|
<tr><td>Show calltip</td>
|
|
<td>Ctrl-Shift-Space</td>
|
|
<td>Shows call tips for the current function or
|
|
method.</td>
|
|
</tr>
|
|
<tr><td>Show macro list</td>
|
|
<td>Ctrl-Return</td>
|
|
<td>Shows a list of available macros and variables in
|
|
the workspace.</td>
|
|
</tr>
|
|
<tr><td>Complete snippet</td>
|
|
<td>Tab</td>
|
|
<td>If you type a construct like if or for and press
|
|
this key, it will be completed with a matching
|
|
template.</td>
|
|
</tr>
|
|
<tr><td>Suppress snippet completion</td>
|
|
<td> </td>
|
|
<td>If you type a construct like if or for and press
|
|
this key, it will not be completed, and a space or
|
|
tab will be inserted, depending on what the
|
|
construct completion keybinding is set to. For
|
|
example, if you have set the construct completion
|
|
keybinding to space, then setting this to
|
|
Shift+space will prevent construct completion and
|
|
insert a space.</td>
|
|
</tr>
|
|
<tr><td>Context Action</td>
|
|
<td> </td>
|
|
<td>Executes a command and passes the current word
|
|
(near the cursor position) or selection as an
|
|
argument. See the section called <a class="reference internal" href="#context-actions">Context
|
|
actions</a>.</td>
|
|
</tr>
|
|
<tr><td>Move cursor in snippet</td>
|
|
<td> </td>
|
|
<td>Jumps to the next defined cursor positions in a
|
|
completed snippets if multiple cursor positions
|
|
where defined.</td>
|
|
</tr>
|
|
<tr><td><strong>Clipboard</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Cut</td>
|
|
<td>Ctrl-X</td>
|
|
<td>Cut the current selection to the clipboard.</td>
|
|
</tr>
|
|
<tr><td>Copy</td>
|
|
<td>Ctrl-C</td>
|
|
<td>Copy the current selection to the clipboard.</td>
|
|
</tr>
|
|
<tr><td>Paste</td>
|
|
<td>Ctrl-V</td>
|
|
<td>Paste the clipboard text into the current document.</td>
|
|
</tr>
|
|
<tr><td>Cut current line(s)</td>
|
|
<td>Ctrl-Shift-X</td>
|
|
<td>Cuts the current line (and any lines with a
|
|
selection) to the clipboard.</td>
|
|
</tr>
|
|
<tr><td>Copy current line(s)</td>
|
|
<td>Ctrl-Shift-C</td>
|
|
<td>Copies the current line (and any lines with a
|
|
selection) to the clipboard.</td>
|
|
</tr>
|
|
<tr><td><strong>Select</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Select all</td>
|
|
<td>Ctrl-A</td>
|
|
<td>Makes a selection of all text in the current
|
|
document.</td>
|
|
</tr>
|
|
<tr><td>Select current word</td>
|
|
<td>Alt-Shift-W</td>
|
|
<td>Selects the current word under the cursor.</td>
|
|
</tr>
|
|
<tr><td>Select current paragraph</td>
|
|
<td>Alt-Shift-P</td>
|
|
<td>Selects the current paragraph under the cursor
|
|
which is defined by two empty lines around it.</td>
|
|
</tr>
|
|
<tr><td>Select current line(s)</td>
|
|
<td>Alt-Shift-L</td>
|
|
<td>Selects the current line under the cursor (and any
|
|
partially selected lines).</td>
|
|
</tr>
|
|
<tr><td><strong>Insert</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Insert date</td>
|
|
<td>Shift-Alt-D</td>
|
|
<td>Inserts a customisable date.</td>
|
|
</tr>
|
|
<tr><td>Insert alternative whitespace</td>
|
|
<td> </td>
|
|
<td>Inserts a tab character when spaces should
|
|
be used for indentation and inserts space
|
|
characters of the amount of a tab width when
|
|
tabs should be used for indentation.</td>
|
|
</tr>
|
|
<tr><td><strong>Format</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Toggle case of selection</td>
|
|
<td>Ctrl-Alt-U</td>
|
|
<td>Changes the case of the selection. A lowercase
|
|
selection will be changed into uppercase and vice
|
|
versa. If the selection contains lower- and
|
|
uppercase characters, all will be converted to
|
|
lowercase.</td>
|
|
</tr>
|
|
<tr><td>Comment line</td>
|
|
<td> </td>
|
|
<td>Comments current line or selection.</td>
|
|
</tr>
|
|
<tr><td>Uncomment line</td>
|
|
<td> </td>
|
|
<td>Uncomments current line or selection.</td>
|
|
</tr>
|
|
<tr><td>Toggle line commentation</td>
|
|
<td>Ctrl-E</td>
|
|
<td>Comments a line if it is not commented or removes
|
|
a comment if the line is commented.</td>
|
|
</tr>
|
|
<tr><td>Increase indent</td>
|
|
<td>Ctrl-I</td>
|
|
<td>Indents the current line or selection by one tab
|
|
or by spaces in the amount of the tab width
|
|
setting.</td>
|
|
</tr>
|
|
<tr><td>Decrease indent</td>
|
|
<td>Ctrl-U</td>
|
|
<td>Removes one tab or the amount of spaces of
|
|
the tab width setting from the indentation of the
|
|
current line or selection.</td>
|
|
</tr>
|
|
<tr><td>Increase indent by one space</td>
|
|
<td> </td>
|
|
<td>Indents the current line or selection by one
|
|
space.</td>
|
|
</tr>
|
|
<tr><td>Decrease indent by one space</td>
|
|
<td> </td>
|
|
<td>Deindents the current line or selection by one
|
|
space.</td>
|
|
</tr>
|
|
<tr><td>Smart line indent</td>
|
|
<td> </td>
|
|
<td>Indents the current line or all selected lines
|
|
with the same indentation as the previous line.</td>
|
|
</tr>
|
|
<tr><td>Send to Custom Command 1 (2,3)</td>
|
|
<td>Ctrl-1 (2,3)</td>
|
|
<td>Passes the current selection to a configured
|
|
external command (available for the first
|
|
three configured commands, see
|
|
<a class="reference internal" href="#send-text-through-definable-commands">Send text through definable commands</a> for
|
|
details).</td>
|
|
</tr>
|
|
<tr><td>Send Selection to Terminal</td>
|
|
<td> </td>
|
|
<td>Sends the current selection or the current
|
|
line (if there is no selection) to the
|
|
embedded Terminal (VTE).</td>
|
|
</tr>
|
|
<tr><td><strong>Settings</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Preferences</td>
|
|
<td>Ctrl-Alt-P</td>
|
|
<td>Opens preferences dialog.</td>
|
|
</tr>
|
|
<tr><td><strong>Search</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Find</td>
|
|
<td>Ctrl-F</td>
|
|
<td>Opens the Find dialog.</td>
|
|
</tr>
|
|
<tr><td>Find Next</td>
|
|
<td>Ctrl-G</td>
|
|
<td>Finds next result.</td>
|
|
</tr>
|
|
<tr><td>Find Previous</td>
|
|
<td>Ctrl-Shift-G</td>
|
|
<td>Finds previous result.</td>
|
|
</tr>
|
|
<tr><td>Replace</td>
|
|
<td>Ctrl-H</td>
|
|
<td>Opens the Replace dialog.</td>
|
|
</tr>
|
|
<tr><td>Find in files</td>
|
|
<td>Ctrl-Shift-F</td>
|
|
<td>Opens the Find in files dialog.</td>
|
|
</tr>
|
|
<tr><td>Next message</td>
|
|
<td> </td>
|
|
<td>Jumps to the line with the next message in
|
|
the Messages window.</td>
|
|
</tr>
|
|
<tr><td>Previous message</td>
|
|
<td> </td>
|
|
<td>Jumps to the line with the previous message
|
|
in the Messages window.</td>
|
|
</tr>
|
|
<tr><td>Find Usage</td>
|
|
<td> </td>
|
|
<td>Finds all occurrences of the current word (near
|
|
the keyboard cursor) or selection in all open
|
|
documents and displays them in the messages
|
|
window.</td>
|
|
</tr>
|
|
<tr><td>Find Document Usage</td>
|
|
<td> </td>
|
|
<td>Finds all occurrences of the current word (near
|
|
the keyboard cursor) or selection in the current
|
|
document and displays them in the messages
|
|
window.</td>
|
|
</tr>
|
|
<tr><td><strong>Go to</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Navigate forward a location</td>
|
|
<td> </td>
|
|
<td>Switches to the next location in the navigation
|
|
history. See the section called <a class="reference internal" href="#code-navigation-history">Code Navigation
|
|
History</a>.</td>
|
|
</tr>
|
|
<tr><td>Navigate back a location</td>
|
|
<td> </td>
|
|
<td>Switches to the previous location in the
|
|
navigation history. See the section called
|
|
<a class="reference internal" href="#code-navigation-history">Code Navigation History</a>.</td>
|
|
</tr>
|
|
<tr><td>Go to line</td>
|
|
<td>Ctrl-L</td>
|
|
<td>Opens the Go to line dialog.</td>
|
|
</tr>
|
|
<tr><td>Goto matching brace</td>
|
|
<td>Ctrl-B</td>
|
|
<td>If the cursor is ahead or behind a brace, then it
|
|
is moved to the brace which belongs to the current
|
|
one. If this keyboard shortcut is pressed again,
|
|
the cursor is moved back to the first brace.</td>
|
|
</tr>
|
|
<tr><td>Toggle marker</td>
|
|
<td>Ctrl-M</td>
|
|
<td>Set a marker on the current line, or clear the
|
|
marker if there already is one.</td>
|
|
</tr>
|
|
<tr><td>Goto next marker</td>
|
|
<td>Ctrl-.</td>
|
|
<td>Goto the next marker in the current document.</td>
|
|
</tr>
|
|
<tr><td>Goto previous marker</td>
|
|
<td>Ctrl-,</td>
|
|
<td>Goto the previous marker in the current document.</td>
|
|
</tr>
|
|
<tr><td>Go to tag definition</td>
|
|
<td> </td>
|
|
<td>Jump to the definition of the current word (near
|
|
the keyboard cursor). If the definition cannot be
|
|
found (e.g. the relevant file is not open) Geany
|
|
will beep and do nothing. See the section called
|
|
<a class="reference internal" href="#go-to-tag-definition">Go to tag definition</a>.</td>
|
|
</tr>
|
|
<tr><td>Go to tag declaration</td>
|
|
<td> </td>
|
|
<td>Jump to the declaration of the current word (near
|
|
the keyboard cursor). If the declaration cannot be
|
|
found (e.g. the relevant file is not open) Geany
|
|
will beep and do nothing. See the section called
|
|
<a class="reference internal" href="#go-to-tag-declaration">Go to tag declaration</a>.</td>
|
|
</tr>
|
|
<tr><td>Go to Start of Line</td>
|
|
<td>Home</td>
|
|
<td>Move the caret to the end of the line indentation
|
|
unless it is already there, in which case it moves
|
|
it to the start of the line.</td>
|
|
</tr>
|
|
<tr><td>Go to End of Line</td>
|
|
<td>End</td>
|
|
<td>Move the caret to the end of the line.</td>
|
|
</tr>
|
|
<tr><td>Go to End of Display Line</td>
|
|
<td>Alt-End</td>
|
|
<td>Move the caret to the end of the display line.
|
|
This is useful when you use line wrapping and
|
|
want to jump to the end of the wrapped, virtual
|
|
line, not the real end of the whole line.
|
|
If the line is not wrapped, it behaves like
|
|
<cite>Go to End of Line</cite>, see above.</td>
|
|
</tr>
|
|
<tr><td>Go to Previous Word Part</td>
|
|
<td>Ctrl-/</td>
|
|
<td>Goto the previous part of the current word.</td>
|
|
</tr>
|
|
<tr><td>Go to Next Word Part</td>
|
|
<td>Ctrl-</td>
|
|
<td>Goto the next part of the current word.</td>
|
|
</tr>
|
|
<tr><td><strong>View</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Fullscreen</td>
|
|
<td>F11</td>
|
|
<td>Switches to fullscreen mode.</td>
|
|
</tr>
|
|
<tr><td>Toggle Messages Window</td>
|
|
<td> </td>
|
|
<td>Toggles the message window (status and compiler
|
|
messages) on and off.</td>
|
|
</tr>
|
|
<tr><td>Toggle Sidebar</td>
|
|
<td> </td>
|
|
<td>Shows or hides the sidebar.</td>
|
|
</tr>
|
|
<tr><td>Toggle all additional widgets</td>
|
|
<td> </td>
|
|
<td>Hide and show all additional widgets like the
|
|
notebook tabs, the toolbar, the messages window
|
|
and the statusbar.</td>
|
|
</tr>
|
|
<tr><td>Zoom In</td>
|
|
<td>Ctrl-+</td>
|
|
<td>Zooms in the text</td>
|
|
</tr>
|
|
<tr><td>Zoom Out</td>
|
|
<td>Ctrl--</td>
|
|
<td>Zooms out the text</td>
|
|
</tr>
|
|
<tr><td><strong>Focus</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Switch to Editor</td>
|
|
<td>F2</td>
|
|
<td>Switches to editor widget.</td>
|
|
</tr>
|
|
<tr><td>Switch to Scribble</td>
|
|
<td>F6</td>
|
|
<td>Switches to scribble widget.</td>
|
|
</tr>
|
|
<tr><td>Switch to VTE</td>
|
|
<td>F4</td>
|
|
<td>Switches to VTE widget.</td>
|
|
</tr>
|
|
<tr><td>Switch to Search Bar</td>
|
|
<td>F7</td>
|
|
<td>Switches to the search bar in the toolbar (if
|
|
visible).</td>
|
|
</tr>
|
|
<tr><td>Switch to Sidebar</td>
|
|
<td> </td>
|
|
<td>Focus the Sidebar.</td>
|
|
</tr>
|
|
<tr><td>Switch to Compiler</td>
|
|
<td> </td>
|
|
<td>Focus the Compiler message window tab.</td>
|
|
</tr>
|
|
<tr><td><strong>Notebook tabs</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Switch to left document</td>
|
|
<td>Ctrl-PageUp</td>
|
|
<td>Switches to the previous open document.</td>
|
|
</tr>
|
|
<tr><td>Switch to right document</td>
|
|
<td>Ctrl-PageDown</td>
|
|
<td>Switches to the next open document.</td>
|
|
</tr>
|
|
<tr><td>Switch to last used document</td>
|
|
<td>Ctrl-Tab</td>
|
|
<td>Switches to the previously shown document (if it's
|
|
still open).
|
|
Holding Ctrl (or another modifier if the keybinding
|
|
has been changed) will show a dialog, then repeated
|
|
presses of the keybinding will switch to the 2nd-last
|
|
used document, 3rd-last, etc. Also known as
|
|
Most-Recently-Used documents switching.</td>
|
|
</tr>
|
|
<tr><td>Move document left</td>
|
|
<td>Alt-PageUp</td>
|
|
<td>Changes the current document with the left hand
|
|
one.</td>
|
|
</tr>
|
|
<tr><td>Move document right</td>
|
|
<td>Alt-PageDown</td>
|
|
<td>Changes the current document with the right hand
|
|
one.</td>
|
|
</tr>
|
|
<tr><td>Move document first</td>
|
|
<td> </td>
|
|
<td>Moves the current document to the first position.</td>
|
|
</tr>
|
|
<tr><td>Move document last</td>
|
|
<td> </td>
|
|
<td>Moves the current document to the last position.</td>
|
|
</tr>
|
|
<tr><td><strong>Document</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Replace tabs by space</td>
|
|
<td> </td>
|
|
<td>Replaces all tabs with the right amount of spaces.</td>
|
|
</tr>
|
|
<tr><td>Replace spaces by tabs</td>
|
|
<td> </td>
|
|
<td>Replaces all spaces with tab characters.</td>
|
|
</tr>
|
|
<tr><td>Toggle current fold</td>
|
|
<td> </td>
|
|
<td>Toggles the folding state of the current code block.</td>
|
|
</tr>
|
|
<tr><td>Fold all</td>
|
|
<td> </td>
|
|
<td>Folds all contractible code blocks.</td>
|
|
</tr>
|
|
<tr><td>Unfold all</td>
|
|
<td> </td>
|
|
<td>Unfolds all contracted code blocks.</td>
|
|
</tr>
|
|
<tr><td>Reload symbol list</td>
|
|
<td>Ctrl-Shift-R</td>
|
|
<td>Reloads the tag/symbol list.</td>
|
|
</tr>
|
|
<tr><td>Toggle Line wrapping</td>
|
|
<td> </td>
|
|
<td>Enables or disables wrapping of long lines.</td>
|
|
</tr>
|
|
<tr><td>Toggle Line breaking</td>
|
|
<td> </td>
|
|
<td>Enables or disables automatic breaking of long
|
|
lines at a configurable column.</td>
|
|
</tr>
|
|
<tr><td><strong>Build</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Compile</td>
|
|
<td>F8</td>
|
|
<td>Compiles the current file.</td>
|
|
</tr>
|
|
<tr><td>Build</td>
|
|
<td>F9</td>
|
|
<td>Builds (compiles if necessary and links) the
|
|
current file.</td>
|
|
</tr>
|
|
<tr><td>Make all</td>
|
|
<td>Shift-F9</td>
|
|
<td>Builds the current file with the Make tool.</td>
|
|
</tr>
|
|
<tr><td>Make custom target</td>
|
|
<td>Ctrl-Shift-F9</td>
|
|
<td>Builds the current file with the Make tool and a
|
|
given target.</td>
|
|
</tr>
|
|
<tr><td>Make object</td>
|
|
<td> </td>
|
|
<td>Compiles the current file with the Make tool.</td>
|
|
</tr>
|
|
<tr><td>Next error</td>
|
|
<td> </td>
|
|
<td>Jumps to the line with the next error from the
|
|
last build process.</td>
|
|
</tr>
|
|
<tr><td>Previous error</td>
|
|
<td> </td>
|
|
<td>Jumps to the line with the previous error from
|
|
the last build process.</td>
|
|
</tr>
|
|
<tr><td>Run</td>
|
|
<td>F5</td>
|
|
<td>Executes the current file in a terminal emulation.</td>
|
|
</tr>
|
|
<tr><td>Run (alternative command)</td>
|
|
<td> </td>
|
|
<td>Executes the current file in a terminal emulation.</td>
|
|
</tr>
|
|
<tr><td>Build options</td>
|
|
<td> </td>
|
|
<td>Opens the build options dialog.</td>
|
|
</tr>
|
|
<tr><td><strong>Tools</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Show Color Chooser</td>
|
|
<td> </td>
|
|
<td>Opens the Color Chooser dialog.</td>
|
|
</tr>
|
|
<tr><td><strong>Help</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>Help</td>
|
|
<td>F1</td>
|
|
<td>Opens the manual.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="configuration-files">
|
|
<h1><a class="toc-backref" href="#id141">Configuration files</a></h1>
|
|
<div class="section" id="global-configuration-file">
|
|
<h2><a class="toc-backref" href="#id142">Global configuration file</a></h2>
|
|
<p>You can use a global configuration file for Geany which will be used if
|
|
the user starts Geany for the first time and an user's configuration
|
|
file was not yet created or in case an user deleted the configuration
|
|
file to use default values.</p>
|
|
<p>The global configuration file is read from
|
|
<tt class="docutils literal"><span class="pre">$prefix/share/geany/geany.conf</span></tt> (where <tt class="docutils literal"><span class="pre">$prefix</span></tt> is the path where
|
|
Geany is installed, see <a class="reference internal" href="#installation-prefix">Installation prefix</a>) when starting Geany and
|
|
an user configuration file does not exist. It can contain any settings
|
|
which are found in the usual configuration file created by Geany but
|
|
does not have to contain all settings.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">This feature is mainly intended for package maintainers or system
|
|
admins who want to set up Geany in a multi user environment and
|
|
set some sane default values for this environment. Usual users won't
|
|
need to do that.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="filetype-definition-files">
|
|
<h2><a class="toc-backref" href="#id143">Filetype definition files</a></h2>
|
|
<p>All color definitions and other filetype specific settings are
|
|
stored in the filetype definition files. Those settings are colors
|
|
for syntax highlighting, general settings like comment characters or
|
|
word delimiter characters as well as compiler and linker settings.</p>
|
|
<p>The system-wide configuration files can be found in
|
|
<tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt> and are called <tt class="docutils literal"><span class="pre">filetypes.$ext</span></tt>,
|
|
where <tt class="docutils literal"><span class="pre">$prefix</span></tt> is the path where Geany is installed (see
|
|
<a class="reference internal" href="#installation-prefix">Installation prefix</a>) and $ext is the name of the filetype. For every
|
|
filetype there is a corresponding definition file. There is one
|
|
exception: <tt class="docutils literal"><span class="pre">filetypes.common</span></tt> -- this file is for general settings,
|
|
which are not specific to a certain filetype.</p>
|
|
<div class="warning">
|
|
<p class="first admonition-title">Warning</p>
|
|
<p class="last">It is not recommended for users to edit the system-wide files,
|
|
because they will be overridden when Geany is updated.</p>
|
|
</div>
|
|
<p>To change the settings, copy a file from <tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt> to
|
|
the subdirectory filedefs in your configuration directory (usually
|
|
<tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt>).</p>
|
|
<p>For example:</p>
|
|
<pre class="literal-block">
|
|
% cp /usr/local/share/geany/filetypes.c /home/username/.config/geany/filedefs/
|
|
</pre>
|
|
<p>Then you can edit the file and the changes are also
|
|
available after an update of Geany because they reside in your
|
|
configuration directory. Alternatively, you can create a file
|
|
<tt class="docutils literal"><span class="pre">~/.config/geany/filedefs/filetypes.X</span></tt> and add only these settings you want
|
|
to change. All missing settings will be read from the corresponding
|
|
global definition file in <tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt>.</p>
|
|
<div class="section" id="format">
|
|
<h3><a class="toc-backref" href="#id144">Format</a></h3>
|
|
<div class="section" id="styling-section">
|
|
<h4><a class="toc-backref" href="#id145">[styling] Section</a></h4>
|
|
<p>In this section the colors for syntax highlighting are defined. The
|
|
manual format is:</p>
|
|
<ul class="simple">
|
|
<li><tt class="docutils literal"><span class="pre">key=foreground_color;background_color;bold_flag;italic_flag</span></tt></li>
|
|
</ul>
|
|
<p>Colors have to be specified as RGB hex values prefixed by
|
|
0x. For example red is 0xff0000, blue is 0x0000ff. The values are
|
|
case-insensitive, but it is a good idea to use small letters. Bold
|
|
and italic are flags and should only be "true" or "false". If their
|
|
value is something other than "true" or "false", "false" is assumed.</p>
|
|
<p>You can omit fields to use the <tt class="docutils literal"><span class="pre">"default"</span></tt> named style.</p>
|
|
<p>E.g. <tt class="docutils literal"><span class="pre">key=0xff0000;;true</span></tt></p>
|
|
<p>This makes the key style have red foreground text, default background
|
|
color text and bold emphasis.</p>
|
|
<div class="section" id="using-a-named-style">
|
|
<h5><a class="toc-backref" href="#id146">Using a named style</a></h5>
|
|
<p>The second format uses a <em>named style</em> name to reference a style
|
|
defined in filetypes.common.</p>
|
|
<ul class="simple">
|
|
<li><tt class="docutils literal"><span class="pre">key=named_style</span></tt></li>
|
|
<li><tt class="docutils literal"><span class="pre">key2=named_style2,bold,italic</span></tt></li>
|
|
</ul>
|
|
<p>The bold and italic parts are optional, and if present are used to
|
|
toggle the bold or italic flags to the opposite of the named style's
|
|
flags. In contrast to style definition booleans, they are a literal
|
|
",bold,italic" and commas are used instead of semi-colons.</p>
|
|
<p>E.g. <tt class="docutils literal"><span class="pre">key=comment,italic</span></tt></p>
|
|
<p>This makes the key style match the <tt class="docutils literal"><span class="pre">"comment"</span></tt> named style, but with
|
|
italic emphasis.</p>
|
|
<p>To define named styles, see the filetypes.common <a class="reference internal" href="#named-styles-section">[named_styles]
|
|
Section</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="keywords-section">
|
|
<h4><a class="toc-backref" href="#id147">[keywords] Section</a></h4>
|
|
<p>This section contains keys for different keyword lists specific to
|
|
the filetype. Some filetypes do not support keywords, so adding a
|
|
new key will not work. You can only add or remove keywords to/from
|
|
an existing list.</p>
|
|
<div class="important">
|
|
<p class="first admonition-title">Important</p>
|
|
<p class="last">The keywords list must be in one line without line ending characters.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="settings-section">
|
|
<h4><a class="toc-backref" href="#id148">[settings] Section</a></h4>
|
|
<dl class="docutils">
|
|
<dt>extension</dt>
|
|
<dd><p class="first">This is the default file extension used when saving files, not
|
|
including the period character (<tt class="docutils literal"><span class="pre">.</span></tt>). The extension used should
|
|
match one of the patterns associated with that filetype (see
|
|
<a class="reference internal" href="#filetype-extensions">Filetype extensions</a>).</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">extension=cxx</span></tt></p>
|
|
</dd>
|
|
<dt>wordchars</dt>
|
|
<dd><p class="first">These characters define word boundaries when making selections
|
|
and searching using word matching options.</p>
|
|
<p class="last"><em>Example:</em> (look at system filetypes.* files)</p>
|
|
</dd>
|
|
<dt>comment_open</dt>
|
|
<dd><p class="first">A character or string which is used to comment code. If you want to
|
|
use multiline comments, also set comment_close, otherwise leave it
|
|
empty.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">comment_open=/*</span></tt></p>
|
|
</dd>
|
|
<dt>comment_close</dt>
|
|
<dd><p class="first">If multiline comments are used, this is the character or string to
|
|
close the comment.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">comment_close=*/</span></tt></p>
|
|
</dd>
|
|
<dt>comment_use_indent</dt>
|
|
<dd><p class="first">Set this to false if a comment character or string should start at
|
|
column 0 of a line. If set to true it uses any indentation of the
|
|
line.</p>
|
|
<p>Note: Comment indentation</p>
|
|
<p><tt class="docutils literal"><span class="pre">comment_use_indent=true</span></tt> would generate this if a line is
|
|
commented (e.g. with Ctrl-D):</p>
|
|
<pre class="literal-block">
|
|
#command_example();
|
|
</pre>
|
|
<p><tt class="docutils literal"><span class="pre">comment_use_indent=false</span></tt> would generate this if a line is
|
|
commented (e.g. with Ctrl-D):</p>
|
|
<pre class="literal-block">
|
|
# command_example();
|
|
</pre>
|
|
<p>Note: This setting only works for single line comments (like '//',
|
|
'#' or ';').</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">comment_use_indent=true</span></tt></p>
|
|
</dd>
|
|
<dt>context_action_cmd</dt>
|
|
<dd><p class="first">A command which can be executed on a certain word or the current
|
|
selection. Example usage: Open the API documentation for the
|
|
current function call at the cursor position. The command can
|
|
be set for every filetype or if not set, a global command will
|
|
be used. The command itself can be specified without the full
|
|
path, then it is searched in $PATH. But for security reasons,
|
|
it is recommended to specify the full path to the command. The
|
|
wildcard %s will be replaced by the current word at the cursor
|
|
position or by the current selection.</p>
|
|
<p>Hint: for PHP files the following could be quite useful:
|
|
context_action_cmd=firefox "<a class="reference external" href="http://www.php.net/%s">http://www.php.net/%s</a>"</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">context_action_cmd=devhelp</span> <span class="pre">-s</span> <span class="pre">"%s"</span></tt></p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="build-settings-section">
|
|
<h4><a class="toc-backref" href="#id149">[build_settings] Section</a></h4>
|
|
<dl class="docutils">
|
|
<dt>error_regex</dt>
|
|
<dd><p class="first">This is a GNU-style extended regular expression to parse a filename
|
|
and line number from build output. If undefined, Geany will fall
|
|
back to its default error message parsing.</p>
|
|
<p>Only the first two matches will be read by Geany. Geany will look for
|
|
a match that is purely digits, and use this for the line number. The
|
|
remaining match will be used as the filename.</p>
|
|
<p><em>Example:</em> <tt class="docutils literal"><span class="pre">error_regex=(.+):([0-9]+):[0-9]+</span></tt></p>
|
|
<p class="last">This will parse a message such as:
|
|
<tt class="docutils literal"><span class="pre">test.py:7:24:</span> <span class="pre">E202</span> <span class="pre">whitespace</span> <span class="pre">before</span> <span class="pre">']'</span></tt></p>
|
|
</dd>
|
|
</dl>
|
|
<p><strong>Build commands</strong></p>
|
|
<p>The build commands are all configurable using the <a class="reference internal" href="#set-includes-and-arguments">Set Includes and
|
|
Arguments</a> dialog.</p>
|
|
<dl class="docutils">
|
|
<dt>compiler</dt>
|
|
<dd><p class="first">This item specifies the command to compile source code files. But
|
|
it is also possible to use it with interpreted languages like Perl
|
|
or Python. With these filetypes you can use this option as a kind of
|
|
syntax parser, which sends output to the compiler message window.</p>
|
|
<p>You should quote the filename to also support filenames with
|
|
spaces. The following wildcards for filenames are available:</p>
|
|
<ul class="simple">
|
|
<li>%f -- complete filename without path</li>
|
|
<li>%e -- filename without path and without extension</li>
|
|
</ul>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">compiler=gcc</span> <span class="pre">-Wall</span> <span class="pre">-c</span> <span class="pre">"%f"</span></tt></p>
|
|
</dd>
|
|
<dt>linker</dt>
|
|
<dd><p class="first">This item specifies the command to link the file. If the file is not
|
|
already compiled, it will be compiled while linking. The -o option
|
|
is automatically added by Geany. This item works well with GNU gcc,
|
|
but may be problematic with other compilers (esp. with the linker).</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">linker=gcc</span> <span class="pre">-Wall</span> <span class="pre">"%f"</span></tt></p>
|
|
</dd>
|
|
<dt>run_cmd</dt>
|
|
<dd><p class="first">Use this item to execute your file. It has to have been built
|
|
already. Use the %e wildcard to have only the name of the executable
|
|
(i.e. without extension) or use the %f wildcard if you need the
|
|
complete filename, e.g. for shell scripts.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">run_cmd="./%e"</span></tt></p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="special-file-filetypes-common">
|
|
<h3><a class="toc-backref" href="#id150">Special file filetypes.common</a></h3>
|
|
<p>There is a special filetype definition file called
|
|
filetypes.common. This file defines some general non-filetype-specific
|
|
settings.</p>
|
|
<p>See the <a class="reference internal" href="#format">Format</a> section for how to define styles.</p>
|
|
<div class="section" id="named-styles-section">
|
|
<h4><a class="toc-backref" href="#id151">[named_styles] Section</a></h4>
|
|
<p>Named styles declared here can be used in the [styling] section of any
|
|
filetypes.* file.</p>
|
|
<p>For example:</p>
|
|
<p><em>In filetypes.common</em>:</p>
|
|
<pre class="literal-block">
|
|
[named_styles]
|
|
foo=0xc00000;0xffffff;false;true
|
|
bar=foo
|
|
</pre>
|
|
<p><em>In filetypes.c</em>:</p>
|
|
<pre class="literal-block">
|
|
[styling]
|
|
comment=foo
|
|
</pre>
|
|
<p>This saves copying and pasting the whole style definition into several
|
|
different files.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">You can define aliases for named styles, as shown with the <tt class="docutils literal"><span class="pre">bar</span></tt>
|
|
entry in the above example, but they must be declared after the
|
|
original style.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="id4">
|
|
<h4><a class="toc-backref" href="#id152">[styling] Section</a></h4>
|
|
<dl class="docutils">
|
|
<dt>default</dt>
|
|
<dd><p class="first">This is the default style. It is used for styling files without a
|
|
filetype set.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">default=0x000000;0xffffff;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>selection</dt>
|
|
<dd><p class="first">The style for coloring selected text. The format is:</p>
|
|
<ul class="simple">
|
|
<li>Foreground color</li>
|
|
<li>Background color</li>
|
|
<li>Use foreground color</li>
|
|
<li>Use background color</li>
|
|
</ul>
|
|
<p>The colors are only set if the 3rd or 4th argument is true. When
|
|
the colors are not overridden, the default is a dark grey
|
|
background with syntax highlighted foreground text.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">selection=0xc0c0c0;0x00007F;true;true</span></tt></p>
|
|
</dd>
|
|
<dt>brace_good</dt>
|
|
<dd><p class="first">The style for brace highlighting when a matching brace was found.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">brace_good=0xff0000;0xFFFFFF;true;false</span></tt></p>
|
|
</dd>
|
|
<dt>brace_bad</dt>
|
|
<dd><p class="first">The style for brace highlighting when no matching brace was found.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">brace_bad=0x0000ff;0xFFFFFF;true;false</span></tt></p>
|
|
</dd>
|
|
<dt>caret</dt>
|
|
<dd><p class="first">The style for coloring the caret(the blinking cursor). Only first
|
|
and third argument is interpreted.
|
|
Set the third argument to true to change the caret into a block caret.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">caret=0x000000;0x0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>caret_width</dt>
|
|
<dd><p class="first">The width for the caret(the blinking cursor). Only the first
|
|
argument is interpreted. The width is specified in pixels with
|
|
a maximum of three pixel. Use the width 0 to make the caret
|
|
invisible.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">caret=1;0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>current_line</dt>
|
|
<dd><p class="first">The style for coloring the background of the current line. Only
|
|
the second and third arguments are interpreted. The second argument
|
|
is the background color. Use the third argument to enable or
|
|
disable background highlighting for the current line (has to be
|
|
true/false).</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">current_line=0x0;0xe5e5e5;true;false</span></tt></p>
|
|
</dd>
|
|
<dt>indent_guide</dt>
|
|
<dd><p class="first">The style for coloring the indentation guides. Only the first and
|
|
second arguments are interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">indent_guide=0xc0c0c0;0xffffff;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>white_space</dt>
|
|
<dd><p class="first">The style for coloring the white space if it is shown. The first
|
|
both arguments define the foreground and background colors, the
|
|
third argument sets whether to use the defined foreground color
|
|
or to use the color defined by each filetype for the white space.
|
|
The fourth argument defines whether to use the background color.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">white_space=0xc0c0c0;0xffffff;true;true</span></tt></p>
|
|
</dd>
|
|
<dt>folding_style</dt>
|
|
<dd><p class="first">The style of folding icons. Only first and second arguments are
|
|
used.</p>
|
|
<p>Valid values for the first argument are:</p>
|
|
<ul class="simple">
|
|
<li>1 -- for boxes</li>
|
|
<li>2 -- for circles</li>
|
|
</ul>
|
|
<p>Valid values for the second argument are:</p>
|
|
<ul class="simple">
|
|
<li>1 -- for straight lines</li>
|
|
<li>2 -- for curved lines</li>
|
|
</ul>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">folding_style=1;1;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>folding_horiz_line</dt>
|
|
<dd><p class="first">Draw a thin horizontal line at the line where text is folded. Only
|
|
first argument is used.</p>
|
|
<p>Valid values for the first argument are:</p>
|
|
<ul class="simple">
|
|
<li>0 -- disable, do not draw a line</li>
|
|
<li>1 -- draw the line above folded text</li>
|
|
<li>2 -- draw the line below folded text</li>
|
|
</ul>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">folding_horiz_line=0;0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>invert_all</dt>
|
|
<dd><p class="first">Whether to invert all defined colors. This is useful if you like a
|
|
dark background color(e.g. black) and do not want to change every
|
|
single line. Please note, at time of writing this was only tested
|
|
with the C syntax highlighting.</p>
|
|
<p>Only first argument is interpreted. Set it to 1 to invert all
|
|
colors.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">invert_all=0;0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>line_wrap_visuals</dt>
|
|
<dd><p class="first">First argument: drawing of visual flags to indicate a line is wrapped.
|
|
This is a bitmask of the values:</p>
|
|
<ul class="simple">
|
|
<li>0 -- No visual flags</li>
|
|
<li>1 -- Visual flag at end of subline of a wrapped line</li>
|
|
<li>2 -- Visual flag at begin of subline of a wrapped line. Subline is
|
|
indented by at least 1 to make room for the flag.</li>
|
|
</ul>
|
|
<p>Second argument: wether the visual flags to indicate a line is wrapped
|
|
are drawn near the border or near the text. This is a bitmask of the values:</p>
|
|
<ul class="simple">
|
|
<li>0 -- Visual flags drawn near border</li>
|
|
<li>1 -- Visual flag at end of subline drawn near text</li>
|
|
<li>2 -- Visual flag at begin of subline drawn near text</li>
|
|
</ul>
|
|
<p>Only first and second argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">line_wrap_visuals=3;0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>line_wrap_indent</dt>
|
|
<dd><p class="first">Sets the size of indentation of sublines for wrapped lines in terms
|
|
of the width of a space.</p>
|
|
<p>Only first argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">line_wrap_indent=0;0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>translucency</dt>
|
|
<dd><p class="first">Translucency for the current line (first argument) and the selection
|
|
(second argument). Values between 0 and 256 are accepted.</p>
|
|
<p>Note for Windows 95, 98 and ME users:
|
|
keep this value at 256 to disable translucency otherwise Geany might crash.</p>
|
|
<p>Only the first and second argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">translucency=256;256;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>marker_line</dt>
|
|
<dd><p class="first">The style for a highlighted line (e.g when using Goto line or goto tag).
|
|
The foreground color (first argument) is only used when the Markers margin
|
|
is enabled (see View menu).</p>
|
|
<p>Only the first and second argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">marker_line=0x000000;0xffff00;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>marker_search</dt>
|
|
<dd><p class="first">The style for a highlighted search result (e.g when using "Mark" in
|
|
Search dialogs). The foreground color (first argument) is only used
|
|
when the Markers margin is enabled (see View menu).</p>
|
|
<p>Only the first and second argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">marker_search=0x000000;0xB8F4B8;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>marker_translucency</dt>
|
|
<dd><p class="first">Translucency for the line marker (first argument) and the search marker
|
|
(second argument). Values between 0 and 256 are accepted.</p>
|
|
<p>Note for Windows 95, 98 and ME users:
|
|
keep this value at 256 to disable translucency otherwise Geany might crash.</p>
|
|
<p>Only the first and second argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">marker_translucency=256;256;false;false</span></tt></p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" id="id5">
|
|
<h4><a class="toc-backref" href="#id153">[settings] Section</a></h4>
|
|
<dl class="docutils">
|
|
<dt>whitespace_chars</dt>
|
|
<dd><p class="first">Characters to treat as whitespace. These characters are ignored
|
|
when moving, selecting and deleting across word boundaries
|
|
(see <a class="reference internal" href="#scintilla-keyboard-commands">Scintilla keyboard commands</a>).</p>
|
|
<p>This should include space (\s) and tab (\t).</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">whitespace_chars=\s\t!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~</span></tt></p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="filetype-extensions">
|
|
<h2><a class="toc-backref" href="#id154">Filetype extensions</a></h2>
|
|
<p>To change the default filetype extension used when saving a new file,
|
|
see <a class="reference internal" href="#filetype-definition-files">Filetype definition files</a>.</p>
|
|
<p>You can override the list of file extensions that Geany uses for each
|
|
filetype using the <tt class="docutils literal"><span class="pre">filetype_extensions.conf</span></tt> file.</p>
|
|
<p>To override the system-wide configuration file, copy it from
|
|
<tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt> to your configuration directory, usually
|
|
<tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt>. <tt class="docutils literal"><span class="pre">$prefix</span></tt> is the path where Geany is installed
|
|
(see <a class="reference internal" href="#installation-prefix">Installation prefix</a>).</p>
|
|
<p>For example:</p>
|
|
<pre class="literal-block">
|
|
% cp /usr/local/share/geany/filetype_extensions.conf /home/username/.config/geany/
|
|
</pre>
|
|
<p>Then edit it and remove all the lines for filetype extensions that
|
|
you do not want to override. The remaining lines can be edited after
|
|
the <tt class="docutils literal"><span class="pre">=</span></tt> sign, using a semi-colon separated list of patterns which
|
|
should be matched for that filetype.</p>
|
|
<p>For example, to set the filetype extensions for Make, the
|
|
<tt class="docutils literal"><span class="pre">/home/username/.config/geany/filetype_extensions.conf</span></tt> file should
|
|
look like:</p>
|
|
<pre class="literal-block">
|
|
[Extensions]
|
|
Make=Makefile*;*.mk;Buildfile;
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="templates">
|
|
<h2><a class="toc-backref" href="#id155">Templates</a></h2>
|
|
<p>Geany supports the following templates:</p>
|
|
<ul class="simple">
|
|
<li>ChangeLog entry</li>
|
|
<li>File header</li>
|
|
<li>Function description</li>
|
|
<li>Short GPL notice</li>
|
|
<li>Short BSD notice</li>
|
|
<li>Filetype template</li>
|
|
</ul>
|
|
<p>To use these templates, just open the Edit menu or open the popup menu
|
|
by right-clicking in the editor widget, and choose "Insert Comments"
|
|
and insert templates as you want.</p>
|
|
<p>Some templates (like File header or ChangeLog entry) will always be
|
|
inserted at the top of the file.</p>
|
|
<p>To insert a function description, the cursor must be inside
|
|
of the function, so that the function name can be determined
|
|
automatically. The description will be positioned correctly one line
|
|
above the function, just check it out. If the cursor is not inside
|
|
of a function or the function name cannot be determined, the inserted
|
|
function description won't contain the correct function name but "unknown"
|
|
instead.</p>
|
|
<div class="section" id="template-meta-data">
|
|
<h3><a class="toc-backref" href="#id156">Template meta data</a></h3>
|
|
<p>Meta data can be used with all templates, but by default user set
|
|
meta data is only used for the ChangeLog and File header templates.</p>
|
|
<p>In the configuration dialog you can find a tab "Templates" (see
|
|
<a class="reference internal" href="#template-tab-in-preferences-dialog">Template tab in preferences dialog</a>). You can define the
|
|
default values which will be inserted in the templates. You should
|
|
restart Geany after making changes, because they are only read
|
|
at startup.</p>
|
|
</div>
|
|
<div class="section" id="file-templates">
|
|
<h3><a class="toc-backref" href="#id157">File templates</a></h3>
|
|
<p>File templates are templates used as the basis of a new file. To
|
|
use them, choose the <em>New (with Template)</em> menu item from the <em>File</em>
|
|
menu.</p>
|
|
<p>By default, templates are created for some filetypes. Custom file
|
|
templates can be added by creating the appropriate template file and
|
|
restarting Geany. You can also edit the default filetype templates.</p>
|
|
<p>The file's contents are just the text to place in the document,
|
|
except for the optional <tt class="docutils literal"><span class="pre">{fileheader}</span></tt> template wildcard. This can
|
|
be placed anywhere, but is usually on the first line of the file,
|
|
followed by a blank line.</p>
|
|
<div class="section" id="custom-file-templates">
|
|
<h4><a class="toc-backref" href="#id158">Custom file templates</a></h4>
|
|
<p>These are read from the <tt class="docutils literal"><span class="pre">~/.config/geany/templates/files</span></tt> directory
|
|
(created the first time Geany is started). The filetype to use is
|
|
detected from the template file's extension, if any. For example, creating
|
|
a file <tt class="docutils literal"><span class="pre">main.c</span></tt> would add a menu item which created a new document with
|
|
the filetype set to 'C'.</p>
|
|
<p>The template file is read from disk when the corresponding menu item is
|
|
clicked, so you don't need to restart Geany after editing a custom file
|
|
template.</p>
|
|
</div>
|
|
<div class="section" id="filetype-templates">
|
|
<h4><a class="toc-backref" href="#id159">Filetype templates</a></h4>
|
|
<p>Filetype template files are read from the <tt class="docutils literal"><span class="pre">~/.config/geany/templates</span></tt>
|
|
directory, and are named "filetype." followed by the filetype
|
|
name, e.g. "filetype.python", "filetype.sh", etc. If you are
|
|
unsure about the filetype name extensions, they are the same as
|
|
the filetype configuration file extensions, commonly installed in
|
|
<tt class="docutils literal"><span class="pre">/usr/share/geany</span></tt>, with the prefix "filetypes.".</p>
|
|
<p>There is also a template file <tt class="docutils literal"><span class="pre">filetype.none</span></tt> which is used when
|
|
the New command is used without a filetype. This is empty by default.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="customizing-templates">
|
|
<h3><a class="toc-backref" href="#id160">Customizing templates</a></h3>
|
|
<p>Each template can be customized to your needs. The templates are
|
|
stored in the <tt class="docutils literal"><span class="pre">~/.config/geany/templates/</span></tt> directory (see the section called
|
|
<a class="reference internal" href="#command-line-options">Command line options</a> for further information about the configuration
|
|
directory). Just open the desired template with an editor (ideally,
|
|
Geany ;-) ) and edit the template to your needs. There are some
|
|
wildcards which will be automatically replaced by Geany at startup.</p>
|
|
<div class="section" id="template-wildcards">
|
|
<h4><a class="toc-backref" href="#id161">Template wildcards</a></h4>
|
|
<p>All wildcards must be enclosed by "{" and "}", e.g. {date}.</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="14%" />
|
|
<col width="46%" />
|
|
<col width="40%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Wildcard</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Available in</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>developer</td>
|
|
<td>The name of the developer.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>initial</td>
|
|
<td>The developer's initials, e.g. "ET" for
|
|
Enrico Tröger or "JFD" for John Foobar Doe.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>mail</td>
|
|
<td>The email address of the developer.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>company</td>
|
|
<td>The company the developer is working for.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>year <a class="footnote-reference" href="#id9" id="id6">[1]</a></td>
|
|
<td>The current year. Default format is: YYYY</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>version</td>
|
|
<td>The initial version of a new file.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>date <a class="footnote-reference" href="#id9" id="id7">[1]</a></td>
|
|
<td>The current date. Default format: YYYY-MM-DD.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>untitled</td>
|
|
<td>The string "untitled" (this will be
|
|
translated to your locale), used in
|
|
filetype templates.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>geanyversion</td>
|
|
<td>The actual Geany version, e.g.
|
|
"Geany 0.18".</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>datetime <a class="footnote-reference" href="#id9" id="id8">[1]</a></td>
|
|
<td>The current date and time. Default format:
|
|
DD.MM.YYYY HH:mm:ss ZZZZ.</td>
|
|
<td>filetype templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets</td>
|
|
</tr>
|
|
<tr><td>filename</td>
|
|
<td>The filename of the current file.</td>
|
|
<td>file header, snippets</td>
|
|
</tr>
|
|
<tr><td>gpl</td>
|
|
<td>This wildcard inserts a short GPL notice.</td>
|
|
<td>file header</td>
|
|
</tr>
|
|
<tr><td>bsd</td>
|
|
<td>This wildcard inserts a BSD licence notice.</td>
|
|
<td>file header</td>
|
|
</tr>
|
|
<tr><td>functionname</td>
|
|
<td>The function name of the function at the
|
|
cursor position. This wildcard will only be
|
|
replaced in the function description
|
|
template.</td>
|
|
<td>function description</td>
|
|
</tr>
|
|
<tr><td>fileheader</td>
|
|
<td>The file header template. This wildcard
|
|
will only be replaced in filetype
|
|
templates.</td>
|
|
<td>file header, snippets, custom filetype
|
|
templates</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<table class="docutils footnote" frame="void" id="id9" rules="none">
|
|
<colgroup><col class="label" /><col /></colgroup>
|
|
<tbody valign="top">
|
|
<tr><td class="label">[1]</td><td><em>(<a class="fn-backref" href="#id6">1</a>, <a class="fn-backref" href="#id7">2</a>, <a class="fn-backref" href="#id8">3</a>)</em> The format for the <tt class="docutils literal"><span class="pre">year</span></tt>, <tt class="docutils literal"><span class="pre">date</span></tt> and <tt class="docutils literal"><span class="pre">datetime</span></tt> wildcards can be changed
|
|
in the preferences dialog, see <a class="reference internal" href="#template-tab-in-preferences-dialog">Template tab in preferences dialog</a>. You can
|
|
use any conversion specifiers which can be used with the ANSI C strftime function.
|
|
For details please see <a class="reference external" href="http://man.cx/strftime">http://man.cx/strftime</a>.</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="customizing-the-toolbar">
|
|
<h2><a class="toc-backref" href="#id162">Customizing the toolbar</a></h2>
|
|
<p>You can add, remove and reorder the elements in the toolbar by using the toolbar editor
|
|
by manually editing the file <tt class="docutils literal"><span class="pre">ui_toolbar.xml</span></tt>.</p>
|
|
<p>The toolbar editor can be opened from the preferences editor on the Toolbar tab or
|
|
by right-clicking on the toolbar itself and choosing it from the menu.</p>
|
|
<div class="section" id="manually-editing-of-the-toolbar-layout">
|
|
<h3><a class="toc-backref" href="#id163">Manually editing of the toolbar layout</a></h3>
|
|
<p>To override the system-wide configuration file, copy it from
|
|
<tt class="docutils literal"><span class="pre">$prefix/share/geany</span></tt> to your configuration directory, usually
|
|
<tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt>. <tt class="docutils literal"><span class="pre">$prefix</span></tt> is the path where Geany is installed
|
|
(see <a class="reference internal" href="#installation-prefix">Installation prefix</a>).</p>
|
|
<p>For example:</p>
|
|
<pre class="literal-block">
|
|
% cp /usr/local/share/geany/ui_toolbar.xml /home/username/.config/geany/
|
|
</pre>
|
|
<p>Then edit it and add any of the available elements listed in the file or remove
|
|
any of the existing elements. Of course, you can also reorder the elements as
|
|
you wish and add or remove additional separators.
|
|
This file must be valid XML, otherwise the global toolbar UI definition
|
|
will be used instead.</p>
|
|
<p>Your changes are applied once you save the file.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<ol class="last arabic simple">
|
|
<li>You cannot add new actions which are not listed below.</li>
|
|
<li>Everything you add or change must be inside the /ui/toolbar/ path.</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="available-toolbar-elements">
|
|
<h3><a class="toc-backref" href="#id164">Available toolbar elements</a></h3>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="19%" />
|
|
<col width="81%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Element name</th>
|
|
<th class="head">Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>New</td>
|
|
<td>Create a new file</td>
|
|
</tr>
|
|
<tr><td>Open</td>
|
|
<td>Open an existing file</td>
|
|
</tr>
|
|
<tr><td>Save</td>
|
|
<td>Save the current file</td>
|
|
</tr>
|
|
<tr><td>SaveAll</td>
|
|
<td>Save all open files</td>
|
|
</tr>
|
|
<tr><td>Reload</td>
|
|
<td>Reload the current file from disk</td>
|
|
</tr>
|
|
<tr><td>Close</td>
|
|
<td>Close the current file</td>
|
|
</tr>
|
|
<tr><td>CloseAll</td>
|
|
<td>Close all open files</td>
|
|
</tr>
|
|
<tr><td>Print</td>
|
|
<td>Print the current file</td>
|
|
</tr>
|
|
<tr><td>Cut</td>
|
|
<td>Cut the current selection</td>
|
|
</tr>
|
|
<tr><td>Copy</td>
|
|
<td>Copy the current selection</td>
|
|
</tr>
|
|
<tr><td>Paste</td>
|
|
<td>Paste the contents of the clipboard</td>
|
|
</tr>
|
|
<tr><td>Delete</td>
|
|
<td>Delete the current selection</td>
|
|
</tr>
|
|
<tr><td>Undo</td>
|
|
<td>Undo the last modification</td>
|
|
</tr>
|
|
<tr><td>Redo</td>
|
|
<td>Redo the last modification</td>
|
|
</tr>
|
|
<tr><td>NavBack</td>
|
|
<td>Navigate back a location</td>
|
|
</tr>
|
|
<tr><td>NavFor</td>
|
|
<td>Navigate forward a location</td>
|
|
</tr>
|
|
<tr><td>Compile</td>
|
|
<td>Compile the current file</td>
|
|
</tr>
|
|
<tr><td>Build</td>
|
|
<td>Build the current file, includes also a submenu for Make commands. Geany
|
|
remembers the last chosen action from the submenu and uses this as default
|
|
action when the button itself is clicked.</td>
|
|
</tr>
|
|
<tr><td>Run</td>
|
|
<td>Run or view the current file</td>
|
|
</tr>
|
|
<tr><td>Color</td>
|
|
<td>Open a color chooser dialog, to interactively pick colors from a palette</td>
|
|
</tr>
|
|
<tr><td>ZoomIn</td>
|
|
<td>Zoom in the text</td>
|
|
</tr>
|
|
<tr><td>ZoomOut</td>
|
|
<td>Zoom out the text</td>
|
|
</tr>
|
|
<tr><td>UnIndent</td>
|
|
<td>Decrease indentation</td>
|
|
</tr>
|
|
<tr><td>Indent</td>
|
|
<td>Increase indentation</td>
|
|
</tr>
|
|
<tr><td>Replace</td>
|
|
<td>Replace text in the current document</td>
|
|
</tr>
|
|
<tr><td>SearchEntry</td>
|
|
<td>The search field belonging to the 'Search' element (can be used alone)</td>
|
|
</tr>
|
|
<tr><td>Search</td>
|
|
<td>Find the entered text in the current file (only useful if you also
|
|
use 'SearchEntry')</td>
|
|
</tr>
|
|
<tr><td>GotoEntry</td>
|
|
<td>The goto field belonging to the 'Goto' element (can be used alone)</td>
|
|
</tr>
|
|
<tr><td>Goto</td>
|
|
<td>Jump to the entered line number (only useful if you also use 'GotoEntry')</td>
|
|
</tr>
|
|
<tr><td>Preferences</td>
|
|
<td>Show the preferences dialog</td>
|
|
</tr>
|
|
<tr><td>Quit</td>
|
|
<td>Quit Geany</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="plugin-documentation">
|
|
<h1><a class="toc-backref" href="#id165">Plugin documentation</a></h1>
|
|
<div class="section" id="instant-save">
|
|
<h2><a class="toc-backref" href="#id166">Instant Save</a></h2>
|
|
<p>This plugin sets on every new file (File->New or File-> New (with template))
|
|
a randomly chosen filename and set its filetype appropriate to the used template
|
|
or when no template was used, to a configurable default filetype.
|
|
This enables you to quickly compile, build and/or run the new file without the
|
|
need to give it an explicit filename using the Save As dialog. This might be
|
|
useful when you often create new files just for testing some code or something
|
|
similar.</p>
|
|
</div>
|
|
<div class="section" id="backup-copy">
|
|
<h2><a class="toc-backref" href="#id167">Backup Copy</a></h2>
|
|
<p>This plugin creates a backup copy of the current file in Geany when it is
|
|
saved. You can specify the directory where the backup copy is saved and
|
|
you can configure the automatically added extension in the configure dialog
|
|
in Geany's plugin manager.</p>
|
|
<p>After the plugin was loaded in Geany's plugin manager, every file is
|
|
copied into the configured backup directory when the file is saved in Geany.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="contributing-to-this-document">
|
|
<h1><a class="toc-backref" href="#id168">Contributing to this document</a></h1>
|
|
<p>This document (<tt class="docutils literal"><span class="pre">geany.txt</span></tt>) is written in <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a>
|
|
(or "reST"). The source file for it is located in Geany's <tt class="docutils literal"><span class="pre">doc</span></tt>
|
|
subdirectory. If you intend on making changes, you should grab the
|
|
source right from SVN to make sure you've got the newest version. After
|
|
editing the file, to build the HTML document to see how your changes
|
|
look, run "<tt class="docutils literal"><span class="pre">make</span> <span class="pre">doc</span></tt>" in the subdirectory <tt class="docutils literal"><span class="pre">doc</span></tt> of Geany's source
|
|
directory. This regenerates the <tt class="docutils literal"><span class="pre">geany.html</span></tt> file. To generate a PDF
|
|
file, use the command "<tt class="docutils literal"><span class="pre">make</span> <span class="pre">pdf</span></tt>" which should generate a file called
|
|
geany-0.18.pdf.</p>
|
|
<p>After you are happy with your changes, create a patch:</p>
|
|
<pre class="literal-block">
|
|
% svn diff geany.txt > foo.patch
|
|
</pre>
|
|
<p>and then submit that file to the mailing list for review.</p>
|
|
<p>Note, you will need the Python docutils software package installed
|
|
to build the docs. The package is named <tt class="docutils literal"><span class="pre">python-docutils</span></tt> on Debian
|
|
and Fedora systems.</p>
|
|
</div>
|
|
<div class="section" id="scintilla-keyboard-commands">
|
|
<h1><a class="toc-backref" href="#id169">Scintilla keyboard commands</a></h1>
|
|
<p>Copyright © 1998, 2006 Neil Hodgson <neilh(at)scintilla(dot)org></p>
|
|
<p>This appendix is distributed under the terms of the License for
|
|
Scintilla and SciTE. A copy of this license can be found in the file
|
|
<tt class="docutils literal"><span class="pre">scintilla/License.txt</span></tt> included with the source code of this
|
|
program and in the appendix of this document. See <a class="reference internal" href="#license-for-scintilla-and-scite">License for
|
|
Scintilla and SciTE</a>.</p>
|
|
<p>20 June 2006</p>
|
|
<div class="section" id="keyboard-commands">
|
|
<h2><a class="toc-backref" href="#id170">Keyboard commands</a></h2>
|
|
<p>Keyboard commands for Scintilla mostly follow common Windows and GTK+
|
|
conventions. All move keys (arrows, page up/down, home and end)
|
|
allows to extend or reduce the stream selection when holding the
|
|
Shift key, and the rectangular selection when holding the Shift and
|
|
Ctrl keys. Some keys may not be available with some national keyboards
|
|
or because they are taken by the system such as by a window manager
|
|
or GTK. Keyboard equivalents of menu commands are listed in the
|
|
menus. Some less common commands with no menu equivalent are:</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="67%" />
|
|
<col width="33%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Action</th>
|
|
<th class="head">Shortcut key</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>Magnify text size.</td>
|
|
<td>Ctrl+Keypad+</td>
|
|
</tr>
|
|
<tr><td>Reduce text size.</td>
|
|
<td>Ctrl+Keypad-</td>
|
|
</tr>
|
|
<tr><td>Restore text size to normal.</td>
|
|
<td>Ctrl+Keypad/</td>
|
|
</tr>
|
|
<tr><td>Indent block.</td>
|
|
<td>Tab</td>
|
|
</tr>
|
|
<tr><td>Dedent block.</td>
|
|
<td>Shift+Tab</td>
|
|
</tr>
|
|
<tr><td>Delete to start of word.</td>
|
|
<td>Ctrl+BackSpace</td>
|
|
</tr>
|
|
<tr><td>Delete to end of word.</td>
|
|
<td>Ctrl+Delete</td>
|
|
</tr>
|
|
<tr><td>Delete to start of line.</td>
|
|
<td>Ctrl+Shift+BackSpace</td>
|
|
</tr>
|
|
<tr><td>Go to start of document.</td>
|
|
<td>Ctrl+Home</td>
|
|
</tr>
|
|
<tr><td>Extend selection to start of document.</td>
|
|
<td>Ctrl+Shift+Home</td>
|
|
</tr>
|
|
<tr><td>Go to start of display line.</td>
|
|
<td>Alt+Home</td>
|
|
</tr>
|
|
<tr><td>Extend selection to start of display line.</td>
|
|
<td>Alt+Shift+Home</td>
|
|
</tr>
|
|
<tr><td>Go to end of document.</td>
|
|
<td>Ctrl+End</td>
|
|
</tr>
|
|
<tr><td>Extend selection to end of document.</td>
|
|
<td>Ctrl+Shift+End</td>
|
|
</tr>
|
|
<tr><td>Extend selection to end of display line.</td>
|
|
<td>Alt+Shift+End</td>
|
|
</tr>
|
|
<tr><td>Previous paragraph. Shift extends selection.</td>
|
|
<td>Ctrl+Up</td>
|
|
</tr>
|
|
<tr><td>Next paragraph. Shift extends selection.</td>
|
|
<td>Ctrl+Down</td>
|
|
</tr>
|
|
<tr><td>Previous word. Shift extends selection.</td>
|
|
<td>Ctrl+Left</td>
|
|
</tr>
|
|
<tr><td>Next word. Shift extends selection.</td>
|
|
<td>Ctrl+Right</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="tips-and-tricks">
|
|
<h1><a class="toc-backref" href="#id171">Tips and tricks</a></h1>
|
|
<div class="section" id="document-notebook">
|
|
<h2><a class="toc-backref" href="#id172">Document notebook</a></h2>
|
|
<ul class="simple">
|
|
<li>Double-click on empty space in the notebook tab bar to open a
|
|
new document.</li>
|
|
<li>Double-click on a document's notebook tab to toggle all additional
|
|
widgets (to show them again use the View menu or the keyboard
|
|
shortcut). The interface pref must be enabled for this to work.</li>
|
|
<li>Middle-click on a document's notebook tab to close the document.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="editor">
|
|
<h2><a class="toc-backref" href="#id173">Editor</a></h2>
|
|
<ul class="simple">
|
|
<li>Alt-scroll wheel moves up/down a page.</li>
|
|
<li>Ctrl-scroll wheel zooms in/out.</li>
|
|
<li>Shift-scroll wheel scrolls 8 characters right/left.</li>
|
|
<li>Ctrl-click on a word in a document to perform <em>Go to Tag Definition</em>.</li>
|
|
<li>Ctrl-click on a bracket/brace to perform <em>Go to Matching Brace</em>.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="interface">
|
|
<h2><a class="toc-backref" href="#id174">Interface</a></h2>
|
|
<ul class="simple">
|
|
<li>Double-click on a symbol-list group to expand or compact it.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" id="gtk-related">
|
|
<h2><a class="toc-backref" href="#id175">GTK-related</a></h2>
|
|
<ul class="simple">
|
|
<li>Scrolling the mouse wheel over a notebook tab bar will switch
|
|
notebook pages.</li>
|
|
</ul>
|
|
<p>The following are derived from X-Windows features (but GTK still supports
|
|
them on Windows):</p>
|
|
<ul class="simple">
|
|
<li>Middle-click pastes the last selected text.</li>
|
|
<li>Middle-click on a scrollbar moves the scrollbar to that
|
|
position without having to drag it.</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="hidden-preferences">
|
|
<h1><a class="toc-backref" href="#id176">Hidden preferences</a></h1>
|
|
<p>There are some uncommon preferences that are not shown in the Preferences
|
|
dialog. These can be set by editing <tt class="docutils literal"><span class="pre">~/.config/geany/geany.conf</span></tt>, then
|
|
restarting Geany. Search for the key name, then edit the value. Example:</p>
|
|
<blockquote>
|
|
<tt class="docutils literal"><span class="pre">brace_match_ltgt=true</span></tt></blockquote>
|
|
<p>The table below show the key names of hidden preferences in the
|
|
configuration file.</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="34%" />
|
|
<col width="46%" />
|
|
<col width="19%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Key</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td><strong>Editor related</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>brace_match_ltgt</td>
|
|
<td>Whether to highlight <, > angle brackets.</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr><td>show_editor_scrollbars</td>
|
|
<td>Whether to display scrollbars. If set to
|
|
false, the horizontal and vertical
|
|
scrollbars are hidden completely.</td>
|
|
<td>true</td>
|
|
</tr>
|
|
<tr><td>use_gtk_word_boundaries</td>
|
|
<td>Whether to look for the end of a word when
|
|
using word-boundary related Scintilla
|
|
commands (see <a class="reference internal" href="#scintilla-keyboard-commands">Scintilla keyboard
|
|
commands</a>).</td>
|
|
<td>true</td>
|
|
</tr>
|
|
<tr><td>complete_snippets_whilst_editing</td>
|
|
<td>Whether to allow completion of snippets
|
|
when editing an existing line (i.e. there
|
|
is some text after the current cursor
|
|
position on the line). Only used when the
|
|
keybinding <tt class="docutils literal"><span class="pre">Complete</span> <span class="pre">snippet</span></tt> is set to
|
|
<tt class="docutils literal"><span class="pre">Space</span></tt>.</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr><td><strong>Interface related</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>show_symbol_list_expanders</td>
|
|
<td>Whether to show or hide the small expander
|
|
icons on the symbol list treeview (only
|
|
available with GTK 2.12 or above).</td>
|
|
<td>true</td>
|
|
</tr>
|
|
<tr><td>allow_always_save</td>
|
|
<td>Whether files can be saved always, even if
|
|
they don't have any changes. By default,
|
|
the Save buttons and menu items are
|
|
disabled when a file is unchanged. When
|
|
setting this option to true, the Save
|
|
buttons and menu items are always active
|
|
and files can be saved.</td>
|
|
<td>false</td>
|
|
</tr>
|
|
<tr><td><strong>VTE related</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>emulation</td>
|
|
<td>Terminal emulation mode. Only change this
|
|
if you have VTE termcap files other than
|
|
<tt class="docutils literal"><span class="pre">vte/termcap/xterm</span></tt>.</td>
|
|
<td>xterm</td>
|
|
</tr>
|
|
<tr><td><strong>File related</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>use_safe_file_saving</td>
|
|
<td>Defines the mode how Geany saves files to
|
|
disk. If disabled, Geany directly writes
|
|
the content of the document to disk. This
|
|
might cause in loss of data when there is
|
|
no more free space on disk to save the
|
|
file. When set to true, Geany first saves
|
|
the contents into a temporary file and if
|
|
this succeeded, the temporary file is
|
|
moved to the real file to save.
|
|
This gives better error checking in case of
|
|
no more free disk space. But it also
|
|
destroys hard links of the original file
|
|
and its permissions (e.g. executable flags
|
|
are reset). Use this with care as it can
|
|
break things seriously.
|
|
The better approach would be to ensure your
|
|
disk won't run out of free space.</td>
|
|
<td>false</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="compile-time-options">
|
|
<h1><a class="toc-backref" href="#id177">Compile-time options</a></h1>
|
|
<p>There are some options which can only be changed at compile time,
|
|
and some options which are used as the default for configurable
|
|
options. To change these options, edit the appropriate source file
|
|
in the <tt class="docutils literal"><span class="pre">src</span></tt> subdirectory. Look for a block of lines starting with
|
|
<tt class="docutils literal"><span class="pre">#define</span> <span class="pre">GEANY_*</span></tt>. Any definitions which are not listed here should
|
|
not be changed.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Most users should not need to change these options.</p>
|
|
</div>
|
|
<div class="section" id="src-geany-h">
|
|
<h2><a class="toc-backref" href="#id178">src/geany.h</a></h2>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="33%" />
|
|
<col width="48%" />
|
|
<col width="20%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Option</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>GEANY_STRING_UNTITLED</td>
|
|
<td>A string used as the default name for new
|
|
files. Be aware that the string can be
|
|
translated, so change it only if you know
|
|
what you are doing.</td>
|
|
<td>untitled</td>
|
|
</tr>
|
|
<tr><td>GEANY_WINDOW_MINIMAL_WIDTH</td>
|
|
<td>The minimal width of the main window.</td>
|
|
<td>620</td>
|
|
</tr>
|
|
<tr><td>GEANY_WINDOW_MINIMAL_HEIGHT</td>
|
|
<td>The minimal height of the main window.</td>
|
|
<td>440</td>
|
|
</tr>
|
|
<tr><td>GEANY_WINDOW_DEFAULT_WIDTH</td>
|
|
<td>The default width of the main window at the
|
|
first start.</td>
|
|
<td>900</td>
|
|
</tr>
|
|
<tr><td>GEANY_WINDOW_DEFAULT_HEIGHT</td>
|
|
<td>The default height of the main window at the
|
|
first start.</td>
|
|
<td>600</td>
|
|
</tr>
|
|
<tr><td><strong>Windows specific</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>GEANY_USE_WIN32_DIALOG</td>
|
|
<td>Set this to 1 if you want to use the default
|
|
Windows file open and save dialogs instead
|
|
GTK's file open and save dialogs. The
|
|
default Windows file dialogs are missing
|
|
some nice features like choosing a filetype
|
|
or an encoding. <em>Do not touch this setting
|
|
when building on a non-Win32 system.</em></td>
|
|
<td>0</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="project-h">
|
|
<h2><a class="toc-backref" href="#id179">project.h</a></h2>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="33%" />
|
|
<col width="48%" />
|
|
<col width="20%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Option</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>GEANY_PROJECT_EXT</td>
|
|
<td>The default filename extension for Geany
|
|
project files. It is used when creating new
|
|
projects and as filter mask for the project
|
|
open dialog.</td>
|
|
<td>geany</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="editor-h">
|
|
<h2><a class="toc-backref" href="#id180">editor.h</a></h2>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="33%" />
|
|
<col width="48%" />
|
|
<col width="20%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Option</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>GEANY_WORDCHARS</td>
|
|
<td>These characters define word boundaries when
|
|
making selections and searching using word
|
|
matching options.</td>
|
|
<td>a string with:
|
|
a-z, A-Z, 0-9 and
|
|
underscore.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="keyfile-c">
|
|
<h2><a class="toc-backref" href="#id181">keyfile.c</a></h2>
|
|
<p>These are default settings that can be overridden in the <a class="reference internal" href="#preferences">Preferences</a> dialog.</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="33%" />
|
|
<col width="48%" />
|
|
<col width="20%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Option</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>GEANY_MIN_SYMBOLLIST_CHARS</td>
|
|
<td>How many characters you need to type to
|
|
trigger the auto completion list.</td>
|
|
<td>4</td>
|
|
</tr>
|
|
<tr><td>GEANY_DISK_CHECK_TIMEOUT</td>
|
|
<td>Time in seconds between checking a file for
|
|
external changes.</td>
|
|
<td>30</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_TOOLS_MAKE</td>
|
|
<td>The make tool. This can also include a path.</td>
|
|
<td>"make"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_TOOLS_TERMINAL</td>
|
|
<td>A terminal emulator. It has to accept the
|
|
command line option "-e". This can also
|
|
include a path.</td>
|
|
<td>"xterm"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_TOOLS_BROWSER</td>
|
|
<td>A web browser. This can also include a path.</td>
|
|
<td>"firefox"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_TOOLS_PRINTCMD</td>
|
|
<td>A printing tool. It should be able to accept
|
|
and process plain text files. This can also
|
|
include a path.</td>
|
|
<td>"lpr"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_TOOLS_GREP</td>
|
|
<td>A grep tool. It should be compatible with
|
|
GNU grep. This can also include a path.</td>
|
|
<td>"grep"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_MRU_LENGTH</td>
|
|
<td>The length of the "Recent files" list.</td>
|
|
<td>10</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_FONT_SYMBOL_LIST</td>
|
|
<td>The font used in sidebar to show symbols and
|
|
open files.</td>
|
|
<td>"Sans 9"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_FONT_MSG_WINDOW</td>
|
|
<td>The font used in the messages window.</td>
|
|
<td>"Sans 9"</td>
|
|
</tr>
|
|
<tr><td>GEANY_DEFAULT_FONT_EDITOR</td>
|
|
<td>The font used in the editor window.</td>
|
|
<td>"Monospace 10"</td>
|
|
</tr>
|
|
<tr><td>GEANY_TOGGLE_MARK</td>
|
|
<td>A string which is used to mark a toggled
|
|
comment.</td>
|
|
<td>"~ "</td>
|
|
</tr>
|
|
<tr><td>GEANY_MAX_AUTOCOMPLETE_WORDS</td>
|
|
<td>How many auto completion suggestions should
|
|
Geany provide.</td>
|
|
<td>30</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section" id="build-h">
|
|
<h2><a class="toc-backref" href="#id182">build.h</a></h2>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="33%" />
|
|
<col width="48%" />
|
|
<col width="20%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Option</th>
|
|
<th class="head">Description</th>
|
|
<th class="head">Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>GEANY_BUILD_ERR_HIGHLIGHT_MAX</td>
|
|
<td>Amount of build error messages which should
|
|
be highlighted in the Compiler message
|
|
window. This affects the special coloring
|
|
when Geany detects a compiler output line as
|
|
an error message and then highlight the
|
|
corresponding line in the source code.
|
|
Usually only the first few messages are
|
|
interesting because following errors are
|
|
just aftereffects.</td>
|
|
<td>100</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="gnu-general-public-license">
|
|
<h1><a class="toc-backref" href="#id183">GNU General Public License</a></h1>
|
|
<pre class="literal-block">
|
|
GNU GENERAL PUBLIC LICENSE
|
|
Version 2, June 1991
|
|
|
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Everyone is permitted to copy and distribute verbatim copies
|
|
of this license document, but changing it is not allowed.
|
|
|
|
Preamble
|
|
|
|
The licenses for most software are designed to take away your
|
|
freedom to share and change it. By contrast, the GNU General Public
|
|
License is intended to guarantee your freedom to share and change free
|
|
software--to make sure the software is free for all its users. This
|
|
General Public License applies to most of the Free Software
|
|
Foundation's software and to any other program whose authors commit to
|
|
using it. (Some other Free Software Foundation software is covered by
|
|
the GNU Library General Public License instead.) You can apply it to
|
|
your programs, too.
|
|
|
|
When we speak of free software, we are referring to freedom, not
|
|
price. Our General Public Licenses are designed to make sure that you
|
|
have the freedom to distribute copies of free software (and charge for
|
|
this service if you wish), that you receive source code or can get it
|
|
if you want it, that you can change the software or use pieces of it
|
|
in new free programs; and that you know you can do these things.
|
|
|
|
To protect your rights, we need to make restrictions that forbid
|
|
anyone to deny you these rights or to ask you to surrender the rights.
|
|
These restrictions translate to certain responsibilities for you if you
|
|
distribute copies of the software, or if you modify it.
|
|
|
|
For example, if you distribute copies of such a program, whether
|
|
gratis or for a fee, you must give the recipients all the rights that
|
|
you have. You must make sure that they, too, receive or can get the
|
|
source code. And you must show them these terms so they know their
|
|
rights.
|
|
|
|
We protect your rights with two steps: (1) copyright the software, and
|
|
(2) offer you this license which gives you legal permission to copy,
|
|
distribute and/or modify the software.
|
|
|
|
Also, for each author's protection and ours, we want to make certain
|
|
that everyone understands that there is no warranty for this free
|
|
software. If the software is modified by someone else and passed on, we
|
|
want its recipients to know that what they have is not the original, so
|
|
that any problems introduced by others will not reflect on the original
|
|
authors' reputations.
|
|
|
|
Finally, any free program is threatened constantly by software
|
|
patents. We wish to avoid the danger that redistributors of a free
|
|
program will individually obtain patent licenses, in effect making the
|
|
program proprietary. To prevent this, we have made it clear that any
|
|
patent must be licensed for everyone's free use or not licensed at all.
|
|
|
|
The precise terms and conditions for copying, distribution and
|
|
modification follow.
|
|
|
|
GNU GENERAL PUBLIC LICENSE
|
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
|
|
0. This License applies to any program or other work which contains
|
|
a notice placed by the copyright holder saying it may be distributed
|
|
under the terms of this General Public License. The "Program", below,
|
|
refers to any such program or work, and a "work based on the Program"
|
|
means either the Program or any derivative work under copyright law:
|
|
that is to say, a work containing the Program or a portion of it,
|
|
either verbatim or with modifications and/or translated into another
|
|
language. (Hereinafter, translation is included without limitation in
|
|
the term "modification".) Each licensee is addressed as "you".
|
|
|
|
Activities other than copying, distribution and modification are not
|
|
covered by this License; they are outside its scope. The act of
|
|
running the Program is not restricted, and the output from the Program
|
|
is covered only if its contents constitute a work based on the
|
|
Program (independent of having been made by running the Program).
|
|
Whether that is true depends on what the Program does.
|
|
|
|
1. You may copy and distribute verbatim copies of the Program's
|
|
source code as you receive it, in any medium, provided that you
|
|
conspicuously and appropriately publish on each copy an appropriate
|
|
copyright notice and disclaimer of warranty; keep intact all the
|
|
notices that refer to this License and to the absence of any warranty;
|
|
and give any other recipients of the Program a copy of this License
|
|
along with the Program.
|
|
|
|
You may charge a fee for the physical act of transferring a copy, and
|
|
you may at your option offer warranty protection in exchange for a fee.
|
|
|
|
2. You may modify your copy or copies of the Program or any portion
|
|
of it, thus forming a work based on the Program, and copy and
|
|
distribute such modifications or work under the terms of Section 1
|
|
above, provided that you also meet all of these conditions:
|
|
|
|
a) You must cause the modified files to carry prominent notices
|
|
stating that you changed the files and the date of any change.
|
|
|
|
b) You must cause any work that you distribute or publish, that in
|
|
whole or in part contains or is derived from the Program or any
|
|
part thereof, to be licensed as a whole at no charge to all third
|
|
parties under the terms of this License.
|
|
|
|
c) If the modified program normally reads commands interactively
|
|
when run, you must cause it, when started running for such
|
|
interactive use in the most ordinary way, to print or display an
|
|
announcement including an appropriate copyright notice and a
|
|
notice that there is no warranty (or else, saying that you provide
|
|
a warranty) and that users may redistribute the program under
|
|
these conditions, and telling the user how to view a copy of this
|
|
License. (Exception: if the Program itself is interactive but
|
|
does not normally print such an announcement, your work based on
|
|
the Program is not required to print an announcement.)
|
|
|
|
These requirements apply to the modified work as a whole. If
|
|
identifiable sections of that work are not derived from the Program,
|
|
and can be reasonably considered independent and separate works in
|
|
themselves, then this License, and its terms, do not apply to those
|
|
sections when you distribute them as separate works. But when you
|
|
distribute the same sections as part of a whole which is a work based
|
|
on the Program, the distribution of the whole must be on the terms of
|
|
this License, whose permissions for other licensees extend to the
|
|
entire whole, and thus to each and every part regardless of who wrote it.
|
|
|
|
Thus, it is not the intent of this section to claim rights or contest
|
|
your rights to work written entirely by you; rather, the intent is to
|
|
exercise the right to control the distribution of derivative or
|
|
collective works based on the Program.
|
|
|
|
In addition, mere aggregation of another work not based on the Program
|
|
with the Program (or with a work based on the Program) on a volume of
|
|
a storage or distribution medium does not bring the other work under
|
|
the scope of this License.
|
|
|
|
3. You may copy and distribute the Program (or a work based on it,
|
|
under Section 2) in object code or executable form under the terms of
|
|
Sections 1 and 2 above provided that you also do one of the following:
|
|
|
|
a) Accompany it with the complete corresponding machine-readable
|
|
source code, which must be distributed under the terms of Sections
|
|
1 and 2 above on a medium customarily used for software interchange; or,
|
|
|
|
b) Accompany it with a written offer, valid for at least three
|
|
years, to give any third party, for a charge no more than your
|
|
cost of physically performing source distribution, a complete
|
|
machine-readable copy of the corresponding source code, to be
|
|
distributed under the terms of Sections 1 and 2 above on a medium
|
|
customarily used for software interchange; or,
|
|
|
|
c) Accompany it with the information you received as to the offer
|
|
to distribute corresponding source code. (This alternative is
|
|
allowed only for noncommercial distribution and only if you
|
|
received the program in object code or executable form with such
|
|
an offer, in accord with Subsection b above.)
|
|
|
|
The source code for a work means the preferred form of the work for
|
|
making modifications to it. For an executable work, complete source
|
|
code means all the source code for all modules it contains, plus any
|
|
associated interface definition files, plus the scripts used to
|
|
control compilation and installation of the executable. However, as a
|
|
special exception, the source code distributed need not include
|
|
anything that is normally distributed (in either source or binary
|
|
form) with the major components (compiler, kernel, and so on) of the
|
|
operating system on which the executable runs, unless that component
|
|
itself accompanies the executable.
|
|
|
|
If distribution of executable or object code is made by offering
|
|
access to copy from a designated place, then offering equivalent
|
|
access to copy the source code from the same place counts as
|
|
distribution of the source code, even though third parties are not
|
|
compelled to copy the source along with the object code.
|
|
|
|
4. You may not copy, modify, sublicense, or distribute the Program
|
|
except as expressly provided under this License. Any attempt
|
|
otherwise to copy, modify, sublicense or distribute the Program is
|
|
void, and will automatically terminate your rights under this License.
|
|
However, parties who have received copies, or rights, from you under
|
|
this License will not have their licenses terminated so long as such
|
|
parties remain in full compliance.
|
|
|
|
5. You are not required to accept this License, since you have not
|
|
signed it. However, nothing else grants you permission to modify or
|
|
distribute the Program or its derivative works. These actions are
|
|
prohibited by law if you do not accept this License. Therefore, by
|
|
modifying or distributing the Program (or any work based on the
|
|
Program), you indicate your acceptance of this License to do so, and
|
|
all its terms and conditions for copying, distributing or modifying
|
|
the Program or works based on it.
|
|
|
|
6. Each time you redistribute the Program (or any work based on the
|
|
Program), the recipient automatically receives a license from the
|
|
original licensor to copy, distribute or modify the Program subject to
|
|
these terms and conditions. You may not impose any further
|
|
restrictions on the recipients' exercise of the rights granted herein.
|
|
You are not responsible for enforcing compliance by third parties to
|
|
this License.
|
|
|
|
7. If, as a consequence of a court judgment or allegation of patent
|
|
infringement or for any other reason (not limited to patent issues),
|
|
conditions are imposed on you (whether by court order, agreement or
|
|
otherwise) that contradict the conditions of this License, they do not
|
|
excuse you from the conditions of this License. If you cannot
|
|
distribute so as to satisfy simultaneously your obligations under this
|
|
License and any other pertinent obligations, then as a consequence you
|
|
may not distribute the Program at all. For example, if a patent
|
|
license would not permit royalty-free redistribution of the Program by
|
|
all those who receive copies directly or indirectly through you, then
|
|
the only way you could satisfy both it and this License would be to
|
|
refrain entirely from distribution of the Program.
|
|
|
|
If any portion of this section is held invalid or unenforceable under
|
|
any particular circumstance, the balance of the section is intended to
|
|
apply and the section as a whole is intended to apply in other
|
|
circumstances.
|
|
|
|
It is not the purpose of this section to induce you to infringe any
|
|
patents or other property right claims or to contest validity of any
|
|
such claims; this section has the sole purpose of protecting the
|
|
integrity of the free software distribution system, which is
|
|
implemented by public license practices. Many people have made
|
|
generous contributions to the wide range of software distributed
|
|
through that system in reliance on consistent application of that
|
|
system; it is up to the author/donor to decide if he or she is willing
|
|
to distribute software through any other system and a licensee cannot
|
|
impose that choice.
|
|
|
|
This section is intended to make thoroughly clear what is believed to
|
|
be a consequence of the rest of this License.
|
|
|
|
8. If the distribution and/or use of the Program is restricted in
|
|
certain countries either by patents or by copyrighted interfaces, the
|
|
original copyright holder who places the Program under this License
|
|
may add an explicit geographical distribution limitation excluding
|
|
those countries, so that distribution is permitted only in or among
|
|
countries not thus excluded. In such case, this License incorporates
|
|
the limitation as if written in the body of this License.
|
|
|
|
9. The Free Software Foundation may publish revised and/or new versions
|
|
of the General Public License from time to time. Such new versions will
|
|
be similar in spirit to the present version, but may differ in detail to
|
|
address new problems or concerns.
|
|
|
|
Each version is given a distinguishing version number. If the Program
|
|
specifies a version number of this License which applies to it and "any
|
|
later version", you have the option of following the terms and conditions
|
|
either of that version or of any later version published by the Free
|
|
Software Foundation. If the Program does not specify a version number of
|
|
this License, you may choose any version ever published by the Free Software
|
|
Foundation.
|
|
|
|
10. If you wish to incorporate parts of the Program into other free
|
|
programs whose distribution conditions are different, write to the author
|
|
to ask for permission. For software which is copyrighted by the Free
|
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
|
make exceptions for this. Our decision will be guided by the two goals
|
|
of preserving the free status of all derivatives of our free software and
|
|
of promoting the sharing and reuse of software generally.
|
|
|
|
NO WARRANTY
|
|
|
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
|
REPAIR OR CORRECTION.
|
|
|
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
|
POSSIBILITY OF SUCH DAMAGES.
|
|
|
|
END OF TERMS AND CONDITIONS
|
|
|
|
How to Apply These Terms to Your New Programs
|
|
|
|
If you develop a new program, and you want it to be of the greatest
|
|
possible use to the public, the best way to achieve this is to make it
|
|
free software which everyone can redistribute and change under these terms.
|
|
|
|
To do so, attach the following notices to the program. It is safest
|
|
to attach them to the start of each source file to most effectively
|
|
convey the exclusion of warranty; and each file should have at least
|
|
the "copyright" line and a pointer to where the full notice is found.
|
|
|
|
<one line to give the program's name and a brief idea of what it does.>
|
|
Copyright (C) <year> <name of author>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
|
|
Also add information on how to contact you by electronic and paper mail.
|
|
|
|
If the program is interactive, make it output a short notice like this
|
|
when it starts in an interactive mode:
|
|
|
|
Gnomovision version 69, Copyright (C) year name of author
|
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
|
This is free software, and you are welcome to redistribute it
|
|
under certain conditions; type `show c' for details.
|
|
|
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
|
parts of the General Public License. Of course, the commands you use may
|
|
be called something other than `show w' and `show c'; they could even be
|
|
mouse-clicks or menu items--whatever suits your program.
|
|
|
|
You should also get your employer (if you work as a programmer) or your
|
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
|
necessary. Here is a sample; alter the names:
|
|
|
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
|
|
|
<signature of Ty Coon>, 1 April 1989
|
|
Ty Coon, President of Vice
|
|
|
|
This General Public License does not permit incorporating your program into
|
|
proprietary programs. If your program is a subroutine library, you may
|
|
consider it more useful to permit linking proprietary applications with the
|
|
library. If this is what you want to do, use the GNU Library General
|
|
Public License instead of this License.
|
|
</pre>
|
|
</div>
|
|
<div class="section" id="license-for-scintilla-and-scite">
|
|
<h1><a class="toc-backref" href="#id184">License for Scintilla and SciTE</a></h1>
|
|
<p>Copyright 1998-2003 by Neil Hodgson <neilh(at)scintilla(dot)org></p>
|
|
<p>All Rights Reserved</p>
|
|
<p>Permission to use, copy, modify, and distribute this software and
|
|
its documentation for any purpose and without fee is hereby granted,
|
|
provided that the above copyright notice appear in all copies and
|
|
that both that copyright notice and this permission notice appear in
|
|
supporting documentation.</p>
|
|
<p>NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
|
|
NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
|
|
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
|
|
USE OR PERFORMANCE OF THIS SOFTWARE.</p>
|
|
</div>
|
|
</div>
|
|
<div class="footer">
|
|
<hr class="footer" />
|
|
<a class="reference external" href="geany.txt">View document source</a>.
|
|
Generated on: 2009-06-30 18:30 UTC.
|
|
Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|