435a479d98
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4878 ea778897-0a13-0410-b9d1-a72fbfd435f5
6094 lines
270 KiB
HTML
6094 lines
270 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.4: http://docutils.sourceforge.net/" />
|
|
<title>Geany</title>
|
|
<meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" />
|
|
<meta name="date" content="2010-05-05" />
|
|
<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;
|
|
max-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>2010-05-05</td></tr>
|
|
<tr><th class="docinfo-name">Version:</th>
|
|
<td>0.19</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Copyright © 2005-2010</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" href="#gnu-general-public-license">GNU General Public License</a>.</p>
|
|
<div class="contents topic">
|
|
<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
|
|
<ul class="simple">
|
|
<li><a class="reference" href="#introduction" id="id8" name="id8">Introduction</a><ul>
|
|
<li><a class="reference" href="#about-geany" id="id9" name="id9">About Geany</a></li>
|
|
<li><a class="reference" href="#where-to-get-it" id="id10" name="id10">Where to get it</a></li>
|
|
<li><a class="reference" href="#license" id="id11" name="id11">License</a></li>
|
|
<li><a class="reference" href="#about-this-document" id="id12" name="id12">About this document</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#installation" id="id13" name="id13">Installation</a><ul>
|
|
<li><a class="reference" href="#requirements" id="id14" name="id14">Requirements</a></li>
|
|
<li><a class="reference" href="#binary-packages" id="id15" name="id15">Binary packages</a></li>
|
|
<li><a class="reference" href="#source-compilation" id="id16" name="id16">Source compilation</a><ul>
|
|
<li><a class="reference" href="#autotools-based-build-system" id="id17" name="id17">Autotools based build system</a></li>
|
|
<li><a class="reference" href="#waf-based-build-system" id="id18" name="id18">Waf based build system</a><ul>
|
|
<li><a class="reference" href="#waf-cache" id="id19" name="id19">Waf Cache</a><ul>
|
|
<li><a class="reference" href="#cleaning-the-cache" id="id20" name="id20">Cleaning the Cache</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#custom-installation" id="id21" name="id21">Custom installation</a></li>
|
|
<li><a class="reference" href="#dynamic-linking-loader-support-and-vte" id="id22" name="id22">Dynamic linking loader support and VTE</a></li>
|
|
<li><a class="reference" href="#build-problems" id="id23" name="id23">Build problems</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#installation-prefix" id="id24" name="id24">Installation prefix</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#usage" id="id25" name="id25">Usage</a><ul>
|
|
<li><a class="reference" href="#getting-started" id="id26" name="id26">Getting started</a></li>
|
|
<li><a class="reference" href="#the-geany-workspace" id="id27" name="id27">The Geany workspace</a></li>
|
|
<li><a class="reference" href="#command-line-options" id="id28" name="id28">Command line options</a></li>
|
|
<li><a class="reference" href="#general" id="id29" name="id29">General</a><ul>
|
|
<li><a class="reference" href="#startup" id="id30" name="id30">Startup</a></li>
|
|
<li><a class="reference" href="#opening-files-from-the-command-line-in-a-running-instance" id="id31" name="id31">Opening files from the command-line in a running instance</a></li>
|
|
<li><a class="reference" href="#virtual-terminal-emulator-widget-vte" id="id32" name="id32">Virtual terminal emulator widget (VTE)</a></li>
|
|
<li><a class="reference" href="#defining-own-widget-styles-using-gtkrc-2-0" id="id33" name="id33">Defining own widget styles using .gtkrc-2.0</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#documents" id="id34" name="id34">Documents</a><ul>
|
|
<li><a class="reference" href="#switching-between-documents" id="id35" name="id35">Switching between documents</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#character-sets-and-unicode-byte-order-mark-bom" id="id36" name="id36">Character sets and Unicode Byte-Order-Mark (BOM)</a><ul>
|
|
<li><a class="reference" href="#using-character-sets" id="id37" name="id37">Using character sets</a></li>
|
|
<li><a class="reference" href="#in-file-encoding-specification" id="id38" name="id38">In-file encoding specification</a></li>
|
|
<li><a class="reference" href="#special-encoding-none" id="id39" name="id39">Special encoding "None"</a></li>
|
|
<li><a class="reference" href="#unicode-byte-order-mark-bom" id="id40" name="id40">Unicode Byte-Order-Mark (BOM)</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#editing" id="id41" name="id41">Editing</a><ul>
|
|
<li><a class="reference" href="#folding" id="id42" name="id42">Folding</a></li>
|
|
<li><a class="reference" href="#column-mode-editing-rectangular-selections" id="id43" name="id43">Column mode editing (rectangular selections)</a></li>
|
|
<li><a class="reference" href="#drag-and-drop-of-text" id="id44" name="id44">Drag and drop of text</a></li>
|
|
<li><a class="reference" href="#indentation" id="id45" name="id45">Indentation</a></li>
|
|
<li><a class="reference" href="#auto-indentation" id="id46" name="id46">Auto-indentation</a></li>
|
|
<li><a class="reference" href="#bookmarks" id="id47" name="id47">Bookmarks</a></li>
|
|
<li><a class="reference" href="#code-navigation-history" id="id48" name="id48">Code navigation history</a></li>
|
|
<li><a class="reference" href="#sending-text-through-custom-commands" id="id49" name="id49">Sending text through custom commands</a></li>
|
|
<li><a class="reference" href="#context-actions" id="id50" name="id50">Context actions</a></li>
|
|
<li><a class="reference" href="#autocompletion" id="id51" name="id51">Autocompletion</a><ul>
|
|
<li><a class="reference" href="#word-part-completion" id="id52" name="id52">Word part completion</a></li>
|
|
<li><a class="reference" href="#scope-autocompletion" id="id53" name="id53">Scope autocompletion</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#user-definable-snippets" id="id54" name="id54">User-definable snippets</a></li>
|
|
<li><a class="reference" href="#inserting-unicode-characters" id="id55" name="id55">Inserting Unicode characters</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#search-replace-and-go-to" id="id56" name="id56">Search, replace and go to</a><ul>
|
|
<li><a class="reference" href="#toolbar-entries" id="id57" name="id57">Toolbar entries</a><ul>
|
|
<li><a class="reference" href="#search-bar" id="id58" name="id58">Search bar</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#find" id="id59" name="id59">Find</a><ul>
|
|
<li><a class="reference" href="#matching-options" id="id60" name="id60">Matching options</a></li>
|
|
<li><a class="reference" href="#find-all" id="id61" name="id61">Find all</a></li>
|
|
<li><a class="reference" href="#change-font-in-search-dialog-text-fields" id="id62" name="id62">Change font in search dialog text fields</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#find-usage" id="id63" name="id63">Find usage</a></li>
|
|
<li><a class="reference" href="#find-in-files" id="id64" name="id64">Find in files</a><ul>
|
|
<li><a class="reference" href="#filtering-out-version-control-files" id="id65" name="id65">Filtering out version control files</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#replace" id="id66" name="id66">Replace</a><ul>
|
|
<li><a class="reference" href="#replace-all" id="id67" name="id67">Replace all</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#go-to-tag-definition" id="id68" name="id68">Go to tag definition</a></li>
|
|
<li><a class="reference" href="#go-to-tag-declaration" id="id69" name="id69">Go to tag declaration</a></li>
|
|
<li><a class="reference" href="#go-to-line" id="id70" name="id70">Go to line</a></li>
|
|
<li><a class="reference" href="#regular-expressions" id="id71" name="id71">Regular expressions</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#tags" id="id72" name="id72">Tags</a><ul>
|
|
<li><a class="reference" href="#workspace-tags" id="id73" name="id73">Workspace tags</a></li>
|
|
<li><a class="reference" href="#global-tags" id="id74" name="id74">Global tags</a><ul>
|
|
<li><a class="reference" href="#default-global-tags-files" id="id75" name="id75">Default global tags files</a></li>
|
|
<li><a class="reference" href="#global-tags-file-format" id="id76" name="id76">Global tags file format</a></li>
|
|
<li><a class="reference" href="#generating-a-global-tags-file" id="id77" name="id77">Generating a global tags file</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#ignore-tags" id="id78" name="id78">Ignore tags</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#preferences" id="id79" name="id79">Preferences</a><ul>
|
|
<li><a class="reference" href="#general-startup-preferences" id="id80" name="id80">General Startup preferences</a><ul>
|
|
<li><a class="reference" href="#id1" id="id81" name="id81">Startup</a></li>
|
|
<li><a class="reference" href="#shutdown" id="id82" name="id82">Shutdown</a></li>
|
|
<li><a class="reference" href="#paths" id="id83" name="id83">Paths</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#general-miscellaneous-preferences" id="id84" name="id84">General Miscellaneous preferences</a><ul>
|
|
<li><a class="reference" href="#miscellaneous" id="id85" name="id85">Miscellaneous</a></li>
|
|
<li><a class="reference" href="#search" id="id86" name="id86">Search</a></li>
|
|
<li><a class="reference" href="#projects" id="id87" name="id87">Projects</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#interface-preferences" id="id88" name="id88">Interface preferences</a><ul>
|
|
<li><a class="reference" href="#sidebar" id="id89" name="id89">Sidebar</a></li>
|
|
<li><a class="reference" href="#fonts" id="id90" name="id90">Fonts</a></li>
|
|
<li><a class="reference" href="#editor-tabs" id="id91" name="id91">Editor tabs</a></li>
|
|
<li><a class="reference" href="#tab-positions" id="id92" name="id92">Tab positions</a></li>
|
|
<li><a class="reference" href="#id2" id="id93" name="id93">Miscellaneous</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#toolbar-preferences" id="id94" name="id94">Toolbar preferences</a><ul>
|
|
<li><a class="reference" href="#toolbar" id="id95" name="id95">Toolbar</a></li>
|
|
<li><a class="reference" href="#appearance" id="id96" name="id96">Appearance</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#editor-features-preferences" id="id97" name="id97">Editor Features preferences</a><ul>
|
|
<li><a class="reference" href="#features" id="id98" name="id98">Features</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#editor-indentation-preferences" id="id99" name="id99">Editor Indentation preferences</a><ul>
|
|
<li><a class="reference" href="#indentation-group" id="id100" name="id100">Indentation group</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#editor-completions-preferences" id="id101" name="id101">Editor Completions preferences</a><ul>
|
|
<li><a class="reference" href="#completions" id="id102" name="id102">Completions</a></li>
|
|
<li><a class="reference" href="#auto-close-quotes-and-brackets" id="id103" name="id103">Auto-close quotes and brackets</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#editor-display-preferences" id="id104" name="id104">Editor Display preferences</a><ul>
|
|
<li><a class="reference" href="#display" id="id105" name="id105">Display</a></li>
|
|
<li><a class="reference" href="#long-line-marker" id="id106" name="id106">Long line marker</a></li>
|
|
<li><a class="reference" href="#virtual-spaces" id="id107" name="id107">Virtual spaces</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#files-preferences" id="id108" name="id108">Files preferences</a><ul>
|
|
<li><a class="reference" href="#new-files" id="id109" name="id109">New files</a></li>
|
|
<li><a class="reference" href="#saving-files" id="id110" name="id110">Saving files</a></li>
|
|
<li><a class="reference" href="#id3" id="id111" name="id111">Miscellaneous</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#tools-preferences" id="id112" name="id112">Tools preferences</a><ul>
|
|
<li><a class="reference" href="#tool-paths" id="id113" name="id113">Tool paths</a></li>
|
|
<li><a class="reference" href="#commands" id="id114" name="id114">Commands</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#template-preferences" id="id115" name="id115">Template preferences</a><ul>
|
|
<li><a class="reference" href="#template-data" id="id116" name="id116">Template data</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#keybinding-preferences" id="id117" name="id117">Keybinding preferences</a></li>
|
|
<li><a class="reference" href="#printing-preferences" id="id118" name="id118">Printing preferences</a></li>
|
|
<li><a class="reference" href="#terminal-vte-preferences" id="id119" name="id119">Terminal (VTE) preferences</a><ul>
|
|
<li><a class="reference" href="#terminal-widget" id="id120" name="id120">Terminal widget</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#project-management" id="id121" name="id121">Project Management</a><ul>
|
|
<li><a class="reference" href="#new-project" id="id122" name="id122">New Project</a></li>
|
|
<li><a class="reference" href="#project-properties" id="id123" name="id123">Project Properties</a><ul>
|
|
<li><a class="reference" href="#set-base-path-button" id="id124" name="id124">Set Base Path Button</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#open-project" id="id125" name="id125">Open Project</a></li>
|
|
<li><a class="reference" href="#close-project" id="id126" name="id126">Close Project</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#build-menu" id="id127" name="id127">Build Menu</a><ul>
|
|
<li><a class="reference" href="#indicators" id="id128" name="id128">Indicators</a></li>
|
|
<li><a class="reference" href="#default-build-menu-items" id="id129" name="id129">Default Build Menu Items</a><ul>
|
|
<li><a class="reference" href="#compile" id="id130" name="id130">Compile</a></li>
|
|
<li><a class="reference" href="#build" id="id131" name="id131">Build</a></li>
|
|
<li><a class="reference" href="#make" id="id132" name="id132">Make</a></li>
|
|
<li><a class="reference" href="#make-custom-target" id="id133" name="id133">Make custom target</a></li>
|
|
<li><a class="reference" href="#make-object" id="id134" name="id134">Make object</a></li>
|
|
<li><a class="reference" href="#next-error" id="id135" name="id135">Next Error</a></li>
|
|
<li><a class="reference" href="#previous-error" id="id136" name="id136">Previous Error</a></li>
|
|
<li><a class="reference" href="#execute" id="id137" name="id137">Execute</a></li>
|
|
<li><a class="reference" href="#stopping-running-processes" id="id138" name="id138">Stopping running processes</a><ul>
|
|
<li><a class="reference" href="#terminal-emulators" id="id139" name="id139">Terminal emulators</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#set-build-commands" id="id140" name="id140">Set Build Commands</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#build-menu-configuration" id="id141" name="id141">Build Menu Configuration</a></li>
|
|
<li><a class="reference" href="#build-menu-commands-dialog" id="id142" name="id142">Build Menu Commands Dialog</a><ul>
|
|
<li><a class="reference" href="#substitutions-in-commands-and-working-directories" id="id143" name="id143">Substitutions in Commands and Working Directories</a></li>
|
|
<li><a class="reference" href="#build-menu-keyboard-shortcuts" id="id144" name="id144">Build Menu Keyboard Shortcuts</a></li>
|
|
<li><a class="reference" href="#configuration-files" id="id145" name="id145">Configuration Files</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#printing-support" id="id146" name="id146">Printing support</a></li>
|
|
<li><a class="reference" href="#plugins" id="id147" name="id147">Plugins</a></li>
|
|
<li><a class="reference" href="#keybindings" id="id148" name="id148">Keybindings</a><ul>
|
|
<li><a class="reference" href="#switching-documents" id="id149" name="id149">Switching documents</a></li>
|
|
<li><a class="reference" href="#configurable-keybindings" id="id150" name="id150">Configurable keybindings</a><ul>
|
|
<li><a class="reference" href="#file-keybindings" id="id151" name="id151">File keybindings</a></li>
|
|
<li><a class="reference" href="#editor-keybindings" id="id152" name="id152">Editor keybindings</a></li>
|
|
<li><a class="reference" href="#clipboard-keybindings" id="id153" name="id153">Clipboard keybindings</a></li>
|
|
<li><a class="reference" href="#select-keybindings" id="id154" name="id154">Select keybindings</a></li>
|
|
<li><a class="reference" href="#insert-keybindings" id="id155" name="id155">Insert keybindings</a></li>
|
|
<li><a class="reference" href="#format-keybindings" id="id156" name="id156">Format keybindings</a></li>
|
|
<li><a class="reference" href="#settings-keybindings" id="id157" name="id157">Settings keybindings</a></li>
|
|
<li><a class="reference" href="#search-keybindings" id="id158" name="id158">Search keybindings</a></li>
|
|
<li><a class="reference" href="#go-to-keybindings" id="id159" name="id159">Go to keybindings</a></li>
|
|
<li><a class="reference" href="#view-keybindings" id="id160" name="id160">View keybindings</a></li>
|
|
<li><a class="reference" href="#focus-keybindings" id="id161" name="id161">Focus keybindings</a></li>
|
|
<li><a class="reference" href="#notebook-tab-keybindings" id="id162" name="id162">Notebook tab keybindings</a></li>
|
|
<li><a class="reference" href="#document-keybindings" id="id163" name="id163">Document keybindings</a></li>
|
|
<li><a class="reference" href="#build-keybindings" id="id164" name="id164">Build keybindings</a></li>
|
|
<li><a class="reference" href="#tools-keybindings" id="id165" name="id165">Tools keybindings</a></li>
|
|
<li><a class="reference" href="#help-keybindings" id="id166" name="id166">Help keybindings</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#id4" id="id167" name="id167">Configuration files</a><ul>
|
|
<li><a class="reference" href="#tools-menu-items" id="id168" name="id168">Tools menu items</a></li>
|
|
<li><a class="reference" href="#global-configuration-file" id="id169" name="id169">Global configuration file</a></li>
|
|
<li><a class="reference" href="#filetype-definition-files" id="id170" name="id170">Filetype definition files</a><ul>
|
|
<li><a class="reference" href="#custom-filetypes" id="id171" name="id171">Custom filetypes</a></li>
|
|
<li><a class="reference" href="#system-files" id="id172" name="id172">System files</a></li>
|
|
<li><a class="reference" href="#user-files" id="id173" name="id173">User files</a></li>
|
|
<li><a class="reference" href="#format" id="id174" name="id174">Format</a><ul>
|
|
<li><a class="reference" href="#styling-section" id="id175" name="id175">[styling] Section</a><ul>
|
|
<li><a class="reference" href="#using-a-named-style" id="id176" name="id176">Using a named style</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#keywords-section" id="id177" name="id177">[keywords] Section</a></li>
|
|
<li><a class="reference" href="#lexer-properties-section" id="id178" name="id178">[lexer_properties] Section</a></li>
|
|
<li><a class="reference" href="#settings-section" id="id179" name="id179">[settings] Section</a></li>
|
|
<li><a class="reference" href="#build-settings-section" id="id180" name="id180">[build_settings] Section</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#special-file-filetypes-common" id="id181" name="id181">Special file filetypes.common</a><ul>
|
|
<li><a class="reference" href="#named-styles-section" id="id182" name="id182">[named_styles] Section</a></li>
|
|
<li><a class="reference" href="#id5" id="id183" name="id183">[styling] Section</a></li>
|
|
<li><a class="reference" href="#id6" id="id184" name="id184">[settings] Section</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#filetype-extensions" id="id185" name="id185">Filetype extensions</a></li>
|
|
<li><a class="reference" href="#preferences-file-format" id="id186" name="id186">Preferences File Format</a><ul>
|
|
<li><a class="reference" href="#hidden-preferences" id="id187" name="id187">Hidden preferences</a></li>
|
|
<li><a class="reference" href="#build-menu-section" id="id188" name="id188">[build-menu] Section</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#project-file-format" id="id189" name="id189">Project File Format</a><ul>
|
|
<li><a class="reference" href="#build-menu-additions" id="id190" name="id190">[build-menu] Additions</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#templates" id="id191" name="id191">Templates</a><ul>
|
|
<li><a class="reference" href="#template-meta-data" id="id192" name="id192">Template meta data</a></li>
|
|
<li><a class="reference" href="#file-templates" id="id193" name="id193">File templates</a><ul>
|
|
<li><a class="reference" href="#custom-file-templates" id="id194" name="id194">Custom file templates</a></li>
|
|
<li><a class="reference" href="#filetype-templates" id="id195" name="id195">Filetype templates</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#customizing-templates" id="id196" name="id196">Customizing templates</a><ul>
|
|
<li><a class="reference" href="#template-wildcards" id="id197" name="id197">Template wildcards</a><ul>
|
|
<li><a class="reference" href="#special-command-wildcard" id="id198" name="id198">Special {command:} wildcard</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#customizing-the-toolbar" id="id199" name="id199">Customizing the toolbar</a><ul>
|
|
<li><a class="reference" href="#manually-editing-of-the-toolbar-layout" id="id200" name="id200">Manually editing of the toolbar layout</a></li>
|
|
<li><a class="reference" href="#available-toolbar-elements" id="id201" name="id201">Available toolbar elements</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#plugin-documentation" id="id202" name="id202">Plugin documentation</a><ul>
|
|
<li><a class="reference" href="#save-actions" id="id203" name="id203">Save Actions</a><ul>
|
|
<li><a class="reference" href="#instant-save" id="id204" name="id204">Instant Save</a></li>
|
|
<li><a class="reference" href="#backup-copy" id="id205" name="id205">Backup Copy</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#contributing-to-this-document" id="id206" name="id206">Contributing to this document</a></li>
|
|
<li><a class="reference" href="#scintilla-keyboard-commands" id="id207" name="id207">Scintilla keyboard commands</a><ul>
|
|
<li><a class="reference" href="#keyboard-commands" id="id208" name="id208">Keyboard commands</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#tips-and-tricks" id="id209" name="id209">Tips and tricks</a><ul>
|
|
<li><a class="reference" href="#document-notebook" id="id210" name="id210">Document notebook</a></li>
|
|
<li><a class="reference" href="#editor" id="id211" name="id211">Editor</a></li>
|
|
<li><a class="reference" href="#interface" id="id212" name="id212">Interface</a></li>
|
|
<li><a class="reference" href="#gtk-related" id="id213" name="id213">GTK-related</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#compile-time-options" id="id214" name="id214">Compile-time options</a><ul>
|
|
<li><a class="reference" href="#src-geany-h" id="id215" name="id215">src/geany.h</a></li>
|
|
<li><a class="reference" href="#project-h" id="id216" name="id216">project.h</a></li>
|
|
<li><a class="reference" href="#editor-h" id="id217" name="id217">editor.h</a></li>
|
|
<li><a class="reference" href="#keyfile-c" id="id218" name="id218">keyfile.c</a></li>
|
|
<li><a class="reference" href="#build-h" id="id219" name="id219">build.h</a></li>
|
|
<li><a class="reference" href="#build-c" id="id220" name="id220">build.c</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a class="reference" href="#gnu-general-public-license" id="id221" name="id221">GNU General Public License</a></li>
|
|
<li><a class="reference" href="#license-for-scintilla-and-scite" id="id222" name="id222">License for Scintilla and SciTE</a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="section">
|
|
<h1><a class="toc-backref" href="#id8" id="introduction" name="introduction">Introduction</a></h1>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id9" id="about-geany" name="about-geany">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 on other packages. Another goal was to be as independent
|
|
as possible from a particular 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>Autocompletion of symbols/words</li>
|
|
<li>Construct completion/snippets</li>
|
|
<li>Auto-closing of XML and HTML tags</li>
|
|
<li>Calltips</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">
|
|
<h2><a class="toc-backref" href="#id10" id="where-to-get-it" name="where-to-get-it">Where to get it</a></h2>
|
|
<p>You can obtain Geany from <a class="reference" href="http://www.geany.org/">http://www.geany.org/</a> or perhaps also from
|
|
your distribution. For a list of available packages, please see
|
|
<a class="reference" href="http://www.geany.org/Download/ThirdPartyPackages">http://www.geany.org/Download/ThirdPartyPackages</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id11" id="license" name="license">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" 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" href="#license-for-scintilla-and-scite">License for Scintilla and SciTE</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id12" id="about-this-document" name="about-this-document">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" href="http://www.geany.org/">http://www.geany.org/</a>.</p>
|
|
<p>If you want to contribute to it, see <a class="reference" href="#contributing-to-this-document">Contributing to this document</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h1><a class="toc-backref" href="#id13" id="installation" name="installation">Installation</a></h1>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id14" id="requirements" name="requirements">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
|
|
from the website which bundles these libraries.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id15" id="binary-packages" name="binary-packages">Binary packages</a></h2>
|
|
<p>There are many binary packages available. For an up-to-date but maybe
|
|
incomplete list see <a class="reference" href="http://www.geany.org/Download/ThirdPartyPackages">http://www.geany.org/Download/ThirdPartyPackages</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id16" id="source-compilation" name="source-compilation">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" 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">
|
|
<h3><a class="toc-backref" href="#id17" id="autotools-based-build-system" name="autotools-based-build-system">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">
|
|
<h3><a class="toc-backref" href="#id18" id="waf-based-build-system" name="waf-based-build-system">Waf based build system</a></h3>
|
|
<p>The Waf build system is still quite young and under heavy development but already in a
|
|
usable state. In contrast to the Autotools system, 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 for 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" href="#waf-cache">Waf Cache</a> for details.
|
|
To build Geany with Waf as 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">
|
|
<h4><a class="toc-backref" href="#id19" id="waf-cache" name="waf-cache">Waf Cache</a></h4>
|
|
<p>The Waf build system has a nice and interesting feature which can help to avoid
|
|
a lot of unnecessary rebuilding of unchanged code. This often happens when developing new features
|
|
or trying to debug something in Geany.
|
|
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" href="http://code.google.com/p/waf/wiki/CacheObjectFiles">http://code.google.com/p/waf/wiki/CacheObjectFiles</a>.</p>
|
|
<div class="section">
|
|
<h5><a class="toc-backref" href="#id20" id="cleaning-the-cache" name="cleaning-the-cache">Cleaning the Cache</a></h5>
|
|
<p>You should be careful about the size of the cache directory as it may
|
|
grow rapidly over 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">
|
|
<h3><a class="toc-backref" href="#id21" id="custom-installation" name="custom-installation">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" href="#compile-time-options">Compile-time options</a>.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id22" id="dynamic-linking-loader-support-and-vte" name="dynamic-linking-loader-support-and-vte">Dynamic linking loader support and VTE</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 for automatically loading <tt class="docutils literal"><span class="pre">libvte.so.4</span></tt> if available.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id23" id="build-problems" name="build-problems">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 distribution.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id24" id="installation-prefix" name="installation-prefix">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 per user configuration files and
|
|
you will not need root permissions.</p>
|
|
<p>Use the <tt class="docutils literal"><span class="pre">--print-prefix</span></tt> option to Geany to check - see <a class="reference" 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">
|
|
<h1><a class="toc-backref" href="#id25" id="usage" name="usage">Usage</a></h1>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id26" id="getting-started" name="getting-started">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">
|
|
<h2><a class="toc-backref" href="#id27" id="the-geany-workspace" name="the-geany-workspace">The Geany workspace</a></h2>
|
|
<p>The Geany window is shown in the following figure:</p>
|
|
<img alt="./images/main_window.png" src="./images/main_window.png" />
|
|
<p>The workspace has the following parts:</p>
|
|
<ul class="simple">
|
|
<li>The menu.</li>
|
|
<li>An optional toolbar.</li>
|
|
<li>An optional sidebar that can show the following tabs:<ul>
|
|
<li>Documents - A document list, and</li>
|
|
<li>Symbols - A list of symbols in your code.</li>
|
|
</ul>
|
|
</li>
|
|
<li>The main editor window.</li>
|
|
<li>An optional message window which can show the following tabs:<ul>
|
|
<li>Status - A list of status messages.</li>
|
|
<li>Compiler - The output of compiling or building programs.</li>
|
|
<li>Messages - Results of 'Find Usage', 'Find Usage' 'Find in Files' and other actions</li>
|
|
<li>Scribble - A text scratchpad for any use.</li>
|
|
<li>Terminal - An optional terminal window.</li>
|
|
</ul>
|
|
</li>
|
|
<li>A status bar</li>
|
|
</ul>
|
|
<p>Additional tabs may be added to the sidebar and message window by plugins.</p>
|
|
<p>The position of the tabs can be selected in the interface preferences.</p>
|
|
<p>The sizes of the sidebar and message window can be adjusted by
|
|
dragging the dividers.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id28" id="command-line-options" name="command-line-options">Command line options</a></h2>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="9%" />
|
|
<col width="18%" />
|
|
<col width="72%" />
|
|
</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. The default
|
|
configuration directory is <tt class="docutils literal"><span class="pre">~/.config/geany/</span></tt> and that
|
|
is where <tt class="docutils literal"><span class="pre">geany.conf</span></tt> and other configuration files
|
|
reside.</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" 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><em>none</em></td>
|
|
<td>--list-documents</td>
|
|
<td>Return a list of open documents in a running Geany
|
|
instance.
|
|
This can be used to read the currently opened documents in
|
|
Geany from an external script or tool. The returned list
|
|
is separated by newlines (LF) and consists of the full,
|
|
UTF-8 encoded filenames of the documents.
|
|
Only available if Geany was compiled with support for
|
|
Sockets.</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, one line each. 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>--socket-file</td>
|
|
<td><p class="first">Use this socket filename for communication with a
|
|
running Geany instance. This can be used with the following
|
|
command to execute Geany on the current workspace:</p>
|
|
<pre class="last literal-block">
|
|
geany --socket-file=/tmp/geany-sock-$(xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}')
|
|
</pre>
|
|
</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">
|
|
<h2><a class="toc-backref" href="#id29" id="general" name="general">General</a></h2>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id30" id="startup" name="startup">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" href="#general-startup-preferences">General Startup preferences</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 number 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">
|
|
<h3><a class="toc-backref" href="#id31" id="opening-files-from-the-command-line-in-a-running-instance" name="opening-files-from-the-command-line-in-a-running-instance">Opening files from the command-line in a running instance</a></h3>
|
|
<p>Geany detects if there is an an instance of itself already running and opens files
|
|
from the command-line in that 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" href="#command-line-options">Command line options</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id32" id="virtual-terminal-emulator-widget-vte" name="virtual-terminal-emulator-widget-vte">Virtual terminal emulator widget (VTE)</a></h3>
|
|
<p>If you have installed <tt class="docutils literal"><span class="pre">libvte.so</span></tt> on 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" href="#command-line-options">Command line options</a>.</p>
|
|
<p>You can use this terminal (from now on called VTE) much as you would
|
|
a 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 note, Geany will run 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>). If 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" 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">
|
|
<h3><a class="toc-backref" href="#id33" id="defining-own-widget-styles-using-gtkrc-2-0" name="defining-own-widget-styles-using-gtkrc-2-0">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 have a defined style used by Geany you must assign it to
|
|
at least one of Geany's widgets. For example use the following line:</p>
|
|
<pre class="literal-block">
|
|
widget "Geany*" style "geanyStyle"
|
|
</pre>
|
|
<p>This would assign your 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>An 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">
|
|
<h2><a class="toc-backref" href="#id34" id="documents" name="documents">Documents</a></h2>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id35" id="switching-between-documents" name="switching-between-documents">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. Its is not alphabetical as shown in the documents list
|
|
(regardless of whether or not editor tabs are visible).</p>
|
|
<p>The tabs can be positioned at the top, bottom, left, or right of the
|
|
main editing window, by a selection in the interface preferences.</p>
|
|
<p>See the <a class="reference" href="#notebook-tab-keybindings">Notebook tab keybindings</a> section for useful
|
|
shortcuts including for Most-Recently-Used document switching.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id36" id="character-sets-and-unicode-byte-order-mark-bom" name="character-sets-and-unicode-byte-order-mark-bom">Character sets and Unicode Byte-Order-Mark (BOM)</a></h2>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id37" id="using-character-sets" name="using-character-sets">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
|
|
convert a file from one character set to another. To do this,
|
|
Geany uses the character conversion capabilities of the GLib library.</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 be read 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, but
|
|
auto-detecting the encoding of a file is not easy and sometimes an
|
|
encoding might not be detected correctly. In this case you have to
|
|
set the encoding of the file manually 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 where it is known that
|
|
auto-detection has problems.</p>
|
|
<p>There are different ways to set 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 the wrong encoding was used.</p>
|
|
</li>
|
|
<li><p class="first">Using the "Set encoding" menu item</p>
|
|
<p>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 the specification line, described in the next section,
|
|
to the beginning of the file to force Geany to use a specific
|
|
encoding when opening the file.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id38" id="in-file-encoding-specification" name="in-file-encoding-specification">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 specified 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 #, /* and */ are examples
|
|
of 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 which match the
|
|
regular expression used to find the encoding string:
|
|
<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>
|
|
<p>Some examples are:</p>
|
|
<pre class="literal-block">
|
|
# encoding = ISO-8859-15
|
|
</pre>
|
|
<p>or:</p>
|
|
<pre class="literal-block">
|
|
# coding: ISO-8859-15
|
|
</pre>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id39" id="special-encoding-none" name="special-encoding-none">Special encoding "None"</a></h3>
|
|
<p>There is a special encoding "None" which uses no
|
|
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">
|
|
<h3><a class="toc-backref" href="#id40" id="unicode-byte-order-mark-bom" name="unicode-byte-order-mark-bom">Unicode Byte-Order-Mark (BOM)</a></h3>
|
|
<p>Furthermore, Geany detects a Unicode Byte Order Mark (see
|
|
<a class="reference" 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 a 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 for programs not
|
|
expecting it, e.g. the compiler 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.</p>
|
|
<p>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">
|
|
<h2><a class="toc-backref" href="#id41" id="editing" name="editing">Editing</a></h2>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id42" id="folding" name="folding">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 hidden sections again. In the editor window there is
|
|
a small grey margin on the left side with [+] and [-] symbols which
|
|
show hidden parts and hide parts of the file respectively. 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>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">You can customize the folding icon and line styles - see the
|
|
filetypes.common <a class="reference" href="#folding-settings">Folding Settings</a>.</p>
|
|
</div>
|
|
<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>This option can be 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">
|
|
<h3><a class="toc-backref" href="#id43" id="column-mode-editing-rectangular-selections" name="column-mode-editing-rectangular-selections">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.
|
|
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">
|
|
<h3><a class="toc-backref" href="#id44" id="drag-and-drop-of-text" name="drag-and-drop-of-text">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">
|
|
<h3><a class="toc-backref" href="#id45" id="indentation" name="indentation">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" href="#editor-features-preferences">Editor Features
|
|
preferences</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">
|
|
<h3><a class="toc-backref" href="#id46" id="auto-indentation" name="auto-indentation">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 has 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">
|
|
<h3><a class="toc-backref" href="#id47" id="bookmarks" name="bookmarks">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. 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">
|
|
<h3><a class="toc-backref" href="#id48" id="code-navigation-history" name="code-navigation-history">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" href="#go-to-tag-declaration">Go to tag declaration</a></li>
|
|
<li><a class="reference" 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">
|
|
<h3><a class="toc-backref" href="#id49" id="sending-text-through-custom-commands" name="sending-text-through-custom-commands">Sending text through custom commands</a></h3>
|
|
<p>You can define several custom commands in Geany and send the current
|
|
selection to one of these commands using the "Edit->Format->Send
|
|
Selection to" menu or keybindings.
|
|
The output of the command will be
|
|
used to replace the current selection. This makes it 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">
|
|
<h3><a class="toc-backref" href="#id50" id="context-actions" name="context-actions">Context actions</a></h3>
|
|
<p>You can execute the context action command on the current word at the
|
|
cursor position or the available selection. This word or selection
|
|
can be used as an argument to the command.
|
|
The context action is invoked by a menu entry in the popup menu of the
|
|
editor and also a keyboard shortcut (see the section called
|
|
<a class="reference" href="#keybindings">Keybindings</a>).</p>
|
|
<p>The command can be specified in the preferences dialog and also for
|
|
each filetype (see "context_action_cmd" in the section called
|
|
<a class="reference" href="#format">Format</a>). When the context action is invoked, the filetype
|
|
specific command is used if available, otherwise the command
|
|
specified in the preferences dialog is executed.</p>
|
|
<p>The current word or selection can be referred with the wildcard "%s"
|
|
in the command, it will be replaced by the current word or
|
|
selection before the command is executed.</p>
|
|
<p>For example a context action can be used to open API documentation
|
|
in a browser window, 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" href="http://www.php.net/echo">http://www.php.net/echo</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id51" id="autocompletion" name="autocompletion">Autocompletion</a></h3>
|
|
<p>Geany can offer a list of possible completions for symbols defined in the
|
|
tags and for all words in a document.</p>
|
|
<p>The autocompletion list for symbols is presented when the first few
|
|
characters of the symbol are typed (configurable, see <a class="reference" href="#editor-completions-preferences">Editor Completions
|
|
preferences</a>, default 4) or when the <em>Complete word</em>
|
|
keybinding is pressed (configurable, see <a class="reference" href="#editor-keybindings">Editor keybindings</a>,
|
|
default Ctrl-Space).</p>
|
|
<p>When the defined keybinding is typed and the <em>Autocomplete all words in
|
|
document</em> preference (in <a class="reference" href="#editor-completions-preferences">Editor Completions preferences</a>)
|
|
is selected then the autocompletion list will show all matching words
|
|
in the document, if there are no matching symbols.</p>
|
|
<p>If you don't want to use autocompletion it can be dismissed until
|
|
the next symbol by pressing Escape. The autocompletion list is updated
|
|
as more characters are typed so that it only shows completions that start
|
|
with the characters typed so far. If no symbols begin with the sequence,
|
|
the autocompletion window is closed.</p>
|
|
<p>The up and down arrows will move the selected item. The highlighted
|
|
item on the autocompletion list can be chosen from the list by pressing
|
|
Enter/Return. You can also double-click to select an item. The sequence
|
|
will be completed to match the chosen item, and if the <em>Drop rest of
|
|
word on completion</em> preference is set (in <a class="reference" href="#editor-completions-preferences">Editor Completions
|
|
preferences</a>) then any characters after the cursor that match
|
|
a symbol or word are deleted.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id52" id="word-part-completion" name="word-part-completion">Word part completion</a></h4>
|
|
<p>By default, pressing Tab will complete the selected item by word part;
|
|
useful e.g. for adding the prefix <tt class="docutils literal"><span class="pre">gtk_combo_box_entry_</span></tt> without typing it
|
|
manually:</p>
|
|
<ul class="simple">
|
|
<li>gtk_com<TAB></li>
|
|
<li>gtk_combo_<TAB></li>
|
|
<li>gtk_combo_box_<e><TAB></li>
|
|
<li>gtk_combo_box_entry_<s><ENTER></li>
|
|
<li>gtk_combo_box_entry_set_text_column</li>
|
|
</ul>
|
|
<p>The key combination can be changed from Tab - See <a class="reference" href="#editor-keybindings">Editor keybindings</a>.
|
|
If you clear/change the key combination for word part completion, Tab
|
|
will complete the whole word instead, like Enter.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id53" id="scope-autocompletion" name="scope-autocompletion">Scope autocompletion</a></h4>
|
|
<p>E.g.:</p>
|
|
<pre class="literal-block">
|
|
struct
|
|
{
|
|
int i;
|
|
char c;
|
|
} foo;
|
|
</pre>
|
|
<p>When you type <tt class="docutils literal"><span class="pre">foo.</span></tt> it will show an autocompletion list with 'i' and
|
|
'c' symbols.</p>
|
|
<p>It only works for languages that set parent scope names for e.g. struct
|
|
members. Currently this means C-like languages. The C tag parser only
|
|
parses global scopes, so this won't work for structs or objects declared
|
|
in local scope.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id54" id="user-definable-snippets" name="user-definable-snippets">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 when
|
|
typing common 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>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 autocompletion 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>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" 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 will remain 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> contains sections defining snippets that
|
|
are available for particular filetypes and in general.</p>
|
|
<p>The two sections "Default" and "Special" apply to all filetypes.
|
|
"Default" contains all snippets which are available for every
|
|
filetype and "Special" contains 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>You can define sections with the name of a filetype eg "C++". The
|
|
snippets in that section are only available for use in files with that
|
|
filetype. Snippets in filetype sections will hide snippets with the
|
|
same name in the "Default" section when used in a file of that
|
|
filetype.</p>
|
|
<p>To define snippets you can use several special character sequences which
|
|
will be replaced when using the snippet:</p>
|
|
<p><strong>Substitution Sequences 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>Since Geany 0.15 you can also use most of the available templates wildcards
|
|
listed in <a class="reference" 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}
|
|
mysystem=My system: {command:uname -a}
|
|
</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 can change the way Geany recognizes the word to complete,
|
|
that is how the start and end of a word is recognised when the
|
|
snippet completion is requested. 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">
|
|
<h3><a class="toc-backref" href="#id55" id="inserting-unicode-characters" name="inserting-unicode-characters">Inserting Unicode characters</a></h3>
|
|
<p>With GTK 2.10 and above, you can insert Unicode code points by hitting
|
|
Ctrl-Shift-u, then still holding Ctrl-Shift, type some hex digits representing
|
|
the code point for the character you want and hit Enter or Return (still
|
|
holding Ctrl-Shift). If you release Ctrl-Shift before hitting Enter or Return
|
|
(or any other character), the code insertion is completed, but the typed
|
|
character is also entered. In the case of Enter/Return, it is a newline, as
|
|
you might expect.</p>
|
|
<p>In some earlier versions of Geany, you might need to first unbind Ctrl-Shift-u
|
|
in the <a class="reference" href="#keybinding-preferences">keybinding preferences</a>, then select <em>Tools->Reload Configuration</em>
|
|
or 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 (and the Enter or Return to finish the code point).</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">
|
|
<h2><a class="toc-backref" href="#id56" id="search-replace-and-go-to" name="search-replace-and-go-to">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 <a class="reference" href="#search-keybindings">Search keybindings</a>).</p>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id57" id="toolbar-entries" name="toolbar-entries">Toolbar entries</a></h3>
|
|
<p>There are also two toolbar entries:</p>
|
|
<ul class="simple">
|
|
<li>Search bar</li>
|
|
<li>Go to line entry</li>
|
|
</ul>
|
|
<p>There are keybindings to focus each of these - see <a class="reference" href="#focus-keybindings">Focus
|
|
keybindings</a>. Pressing Escape will then focus the editor.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id58" id="search-bar" name="search-bar">Search bar</a></h4>
|
|
<p>The quickest way to find some text is to use the search bar entry in
|
|
the toolbar. This performs a case-insensitive search in the current
|
|
document whilst you type. Pressing Enter will search again.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id59" id="find" name="find">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">
|
|
<h4><a class="toc-backref" href="#id60" id="matching-options" name="matching-options">Matching options</a></h4>
|
|
<p>The syntax for the <em>Use regular expressions</em> option is shown in
|
|
<a class="reference" href="#regular-expressions">Regular expressions</a>.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last"><em>Use escape sequences</em> is implied for regular expressions.</p>
|
|
</div>
|
|
<p>The <em>Use escape sequences</em> 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">
|
|
<h4><a class="toc-backref" href="#id61" id="find-all" name="find-all">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">
|
|
<h4><a class="toc-backref" href="#id62" id="change-font-in-search-dialog-text-fields" name="change-font-in-search-dialog-text-fields">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 input such as 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, 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 of ":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">
|
|
<h3><a class="toc-backref" href="#id63" id="find-usage" name="find-usage">Find usage</a></h3>
|
|
<p>Find usage searches all open files. It is similar to the Find All In
|
|
Session option in the Find dialog.</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">
|
|
<h3><a class="toc-backref" href="#id64" id="find-in-files" name="find-in-files">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 entered search text is converted to the chosen encoding
|
|
and the search results are converted back to UTF-8.
|
|
The Extra options field is used to pass any additional arguments to
|
|
the grep tool.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id65" id="filtering-out-version-control-files" name="filtering-out-version-control-files">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">
|
|
<h3><a class="toc-backref" href="#id66" id="replace" name="replace">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 <a class="reference" href="#matching-options">Matching options</a>.</p>
|
|
<p>The <em>Use regular expressions</em> option allows regular expressions to
|
|
be used in the search string and back references in the replacement
|
|
text -- see the entry for '\n' in <a class="reference" href="#regular-expressions">Regular expressions</a>.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id67" id="replace-all" name="replace-all">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">
|
|
<h3><a class="toc-backref" href="#id68" id="go-to-tag-definition" name="go-to-tag-definition">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 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">
|
|
<h3><a class="toc-backref" href="#id69" id="go-to-tag-declaration" name="go-to-tag-declaration">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">
|
|
<h3><a class="toc-backref" href="#id70" id="go-to-line" name="go-to-line">Go to line</a></h3>
|
|
<p>Go to a particular line number in the current file.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id71" id="regular-expressions" name="regular-expressions">Regular expressions</a></h3>
|
|
<p>You can use regular expressions in the Find and Replace dialogs
|
|
by selecting the <em>Use regular expressions</em> check box (see <a class="reference" href="#matching-options">Matching
|
|
options</a>). The syntax is POSIX compatible, as described in the table
|
|
below.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<ol class="last arabic simple">
|
|
<li>The <em>Use escape sequences</em> dialog option always applies for regular
|
|
expressions.</li>
|
|
<li>Searching backwards with regular expressions is not supported.</li>
|
|
<li>\b, \d, \s, \w are GNU extensions and may not be available
|
|
on non-GNU POSIX systems unless you built Geany with the
|
|
<tt class="docutils literal"><span class="pre">--enable-gnu-regex</span></tt> option (this is always used on Windows).</li>
|
|
</ol>
|
|
</div>
|
|
<p><strong>In a regular expression, the following characters are interpreted:</strong></p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="10%" />
|
|
<col width="90%" />
|
|
</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><p class="first">Where n is 1 through 9 refers to the first through ninth tagged
|
|
region when searching or replacing.</p>
|
|
<p>Searching for (Wiki)\1 matches WikiWiki.</p>
|
|
<p class="last">If the search string was Fred([1-9])XXX and the
|
|
replace string was Sam\1YYY, when applied to Fred2XXX this
|
|
would generate Sam2YYY.</p>
|
|
</td>
|
|
</tr>
|
|
<tr><td>\0</td>
|
|
<td>When replacing, the whole matching text.</td>
|
|
</tr>
|
|
<tr><td>\b</td>
|
|
<td>This matches a word boundary.</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</li>
|
|
<li>W: any char except alphanumeric & underscore</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>[...]</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.</p>
|
|
<p>The special characters ] and - have no special
|
|
meaning if they appear first in the set. - can also be last
|
|
in the set. To include both, put ] first: []A-Z-].</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>
|
|
<tr><td>?</td>
|
|
<td>This matches 0 or 1 time(s). For example, Joh?n matches John, Jon.</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" href="#license-for-scintilla-and-scite">License for Scintilla and SciTE</a>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id72" id="tags" name="tags">Tags</a></h2>
|
|
<p>Tags are information that relates symbols in a program with the
|
|
source file location of the declaration and definition.</p>
|
|
<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">
|
|
<h3><a class="toc-backref" href="#id73" id="workspace-tags" name="workspace-tags">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 autocompletion 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" href="#go-to-tag-definition">Go to tag definition</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id74" id="global-tags" name="global-tags">Global tags</a></h3>
|
|
<p>Global tags are used to provide autocompletion 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" 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" href="#filetype-extensions">Filetype extensions</a> for
|
|
more information.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id75" id="default-global-tags-files" name="default-global-tags-files">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">
|
|
<h4><a class="toc-backref" href="#id76" id="global-tags-file-format" name="global-tags-file-format">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>
|
|
or <tt class="docutils literal"><span class="pre">format=tagmanager</span></tt> respectively, these are 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" href="#global-tags">Global tags</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id77" id="generating-a-global-tags-file" name="generating-a-global-tags-file">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" 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">
|
|
<h3><a class="toc-backref" href="#id78" id="ignore-tags" name="ignore-tags">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">
|
|
<h2><a class="toc-backref" href="#id79" id="preferences" name="preferences">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" 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">
|
|
<h3><a class="toc-backref" href="#id80" id="general-startup-preferences" name="general-startup-preferences">General Startup preferences</a></h3>
|
|
<img alt="./images/pref_dialog_gen_startup.png" src="./images/pref_dialog_gen_startup.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id81" id="id1" name="id1">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">
|
|
<h4><a class="toc-backref" href="#id82" id="shutdown" name="shutdown">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">
|
|
<h4><a class="toc-backref" href="#id83" id="paths" name="paths">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>By default Geany looks in the global installation path and in the
|
|
configuration directory. In addition the path entered here will be searched
|
|
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 are available in a common location for all users.
|
|
Leave blank to not set an additional lookup path.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id84" id="general-miscellaneous-preferences" name="general-miscellaneous-preferences">General Miscellaneous preferences</a></h3>
|
|
<img alt="./images/pref_dialog_gen_misc.png" src="./images/pref_dialog_gen_misc.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id85" id="miscellaneous" name="miscellaneous">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><p class="first">Remove all messages from the status bar. The messages are still displayed
|
|
in the status messages window.</p>
|
|
<div class="last tip">
|
|
<p class="first admonition-title">Tip</p>
|
|
<p class="last">Another option is to use the <em>Switch to Editor</em> keybinding - it
|
|
reshows the document statistics on the status bar. See <a class="reference" href="#focus-keybindings">Focus
|
|
keybindings</a>.</p>
|
|
</div>
|
|
</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 class="section">
|
|
<h4><a class="toc-backref" href="#id86" id="search" name="search">Search</a></h4>
|
|
<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 last used in 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>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id87" id="projects" name="projects">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 either case, you can easily set the final project file path in the
|
|
<em>New Project</em> dialog. This option provides the more common
|
|
defaults automatically for convenience.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id88" id="interface-preferences" name="interface-preferences">Interface preferences</a></h3>
|
|
<img alt="./images/pref_dialog_interface.png" src="./images/pref_dialog_interface.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id89" id="sidebar" name="sidebar">Sidebar</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Show sidebar</dt>
|
|
<dd>Whether to show the sidebar at all.</dd>
|
|
<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" href="#switching-between-documents">Switching between documents</a>) and
|
|
to perform some common operations such as saving, closing and reloading.</dd>
|
|
<dt>Position</dt>
|
|
<dd>Whether to place the sidebar on the left or right of the editor window.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id90" id="fonts" name="fonts">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">
|
|
<h4><a class="toc-backref" href="#id91" id="editor-tabs" name="editor-tabs">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">
|
|
<h4><a class="toc-backref" href="#id92" id="tab-positions" name="tab-positions">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">
|
|
<h4><a class="toc-backref" href="#id93" id="id2" name="id2">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">
|
|
<h3><a class="toc-backref" href="#id94" id="toolbar-preferences" name="toolbar-preferences">Toolbar preferences</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">
|
|
<h4><a class="toc-backref" href="#id95" id="toolbar" name="toolbar">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>
|
|
<dt>Customize Toolbar</dt>
|
|
<dd>See <a class="reference" href="#customizing-the-toolbar">Customizing the toolbar</a>.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id96" id="appearance" name="appearance">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.
|
|
The choice System default uses whatever icon style is set by GTK.</dd>
|
|
<dt>Icon size</dt>
|
|
<dd>Select the size of the icons you see (large, small or very small).
|
|
The choice System default uses whatever icon size is set by GTK.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id97" id="editor-features-preferences" name="editor-features-preferences">Editor Features preferences</a></h3>
|
|
<img alt="./images/pref_dialog_edit_features.png" src="./images/pref_dialog_edit_features.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id98" id="features" name="features">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">
|
|
<h3><a class="toc-backref" href="#id99" id="editor-indentation-preferences" name="editor-indentation-preferences">Editor Indentation preferences</a></h3>
|
|
<img alt="./images/pref_dialog_edit_indentation.png" src="./images/pref_dialog_edit_indentation.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id100" id="indentation-group" name="indentation-group">Indentation group</a></h4>
|
|
<p>See <a class="reference" 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>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="last note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">There are also separate configurable keybindings for indent &
|
|
unindent, but this preference 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">
|
|
<h3><a class="toc-backref" href="#id101" id="editor-completions-preferences" name="editor-completions-preferences">Editor Completions preferences</a></h3>
|
|
<img alt="./images/pref_dialog_edit_completions.png" src="./images/pref_dialog_edit_completions.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id102" id="completions" name="completions">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" 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>Autocomplete symbols</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>Autocomplete all words in document</dt>
|
|
<dd>When you start to type a word, Geany will search the whole document for
|
|
words starting with the typed part to complete it, assuming there
|
|
are no tag names to show.</dd>
|
|
<dt>Drop rest of word on completion</dt>
|
|
<dd>Remove any word part to the right of the cursor when choosing a
|
|
completion list item.</dd>
|
|
<dt>Characters to type for autocompletion</dt>
|
|
<dd>Number of characters of a word to type before autocompletion is
|
|
displayed.</dd>
|
|
<dt>Completion list height</dt>
|
|
<dd>The number of rows to display for the autocompletion window.</dd>
|
|
<dt>Max. symbol name suggestions</dt>
|
|
<dd>The maximum number of items in the autocompletion list.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id103" id="auto-close-quotes-and-brackets" name="auto-close-quotes-and-brackets">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 curly brackets (braces) when typing an opening one</dd>
|
|
<dt>Square brackets [ ]</dt>
|
|
<dd>Auto-close square brackets when typing an opening one</dd>
|
|
<dt>Single quotes ' '</dt>
|
|
<dd>Auto-close single quotes when typing an opening one</dd>
|
|
<dt>Double quotes " "</dt>
|
|
<dd>Auto-close double quotes when typing an opening one</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id104" id="editor-display-preferences" name="editor-display-preferences">Editor Display preferences</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">
|
|
<h4><a class="toc-backref" href="#id105" id="display" name="display">Display</a></h4>
|
|
<dl class="docutils">
|
|
<dt>Invert syntax highlighting colors</dt>
|
|
<dd>Invert all colors, by default this makes white text on a black
|
|
background.</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">
|
|
<h4><a class="toc-backref" href="#id106" id="long-line-marker" name="long-line-marker">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 class="section">
|
|
<h4><a class="toc-backref" href="#id107" id="virtual-spaces" name="virtual-spaces">Virtual spaces</a></h4>
|
|
<p>Virtual space is space beyond the end of each line.
|
|
The cursor may be moved into virtual space but no real space will be
|
|
added to the document until there is some text typed or some other
|
|
text insertion command is used.</p>
|
|
<dl class="docutils">
|
|
<dt>Disabled</dt>
|
|
<dd>Do not show virtual spaces</dd>
|
|
<dt>Only for rectangular selections</dt>
|
|
<dd>Only show virtual spaces beyond the end of lines when drawing a rectangular selection</dd>
|
|
<dt>Always</dt>
|
|
<dd>Always show virtual spaces beyond the end of lines</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id108" id="files-preferences" name="files-preferences">Files preferences</a></h3>
|
|
<img alt="./images/pref_dialog_files.png" src="./images/pref_dialog_files.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id109" id="new-files" name="new-files">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">
|
|
<h4><a class="toc-backref" href="#id110" id="saving-files" name="saving-files">Saving files</a></h4>
|
|
<p>Perform formatting operations when a document is saved. These
|
|
can each be undone with the Undo command.</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="last note">
|
|
<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" href="#indentation">Indentation</a>.</p>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id111" id="id3" name="id3">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="last note">
|
|
<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">
|
|
<h3><a class="toc-backref" href="#id112" id="tools-preferences" name="tools-preferences">Tools preferences</a></h3>
|
|
<img alt="./images/pref_dialog_tools.png" src="./images/pref_dialog_tools.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id113" id="tool-paths" name="tool-paths">Tool paths</a></h4>
|
|
<dl class="docutils">
|
|
<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" 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">
|
|
<h4><a class="toc-backref" href="#id114" id="commands" name="commands">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">
|
|
<h3><a class="toc-backref" href="#id115" id="template-preferences" name="template-preferences">Template preferences</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, you must either select
|
|
<em>Tools->Reload Configuration</em> or restart Geany.</p>
|
|
</div>
|
|
<img alt="./images/pref_dialog_templ.png" src="./images/pref_dialog_templ.png" />
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id116" id="template-data" name="template-data">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="last note">
|
|
<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" 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" 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" href="http://man.cx/strftime">http://man.cx/strftime</a>.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id117" id="keybinding-preferences" name="keybinding-preferences">Keybinding preferences</a></h3>
|
|
<img alt="./images/pref_dialog_keys.png" src="./images/pref_dialog_keys.png" />
|
|
<p>There are some commands listed in the keybinding dialog 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 <a class="reference" href="#keybindings">Keybindings</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id118" id="printing-preferences" name="printing-preferences">Printing preferences</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" href="http://man.cx/strftime">http://man.cx/strftime</a>.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id119" id="terminal-vte-preferences" name="terminal-vte-preferences">Terminal (VTE) preferences</a></h3>
|
|
<p>See also: <a class="reference" 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">
|
|
<h4><a class="toc-backref" href="#id120" id="terminal-widget" name="terminal-widget">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. Note that if you run multiple execute commands at once
|
|
the output may become mixed together in the VTE.</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">
|
|
<h2><a class="toc-backref" href="#id121" id="project-management" name="project-management">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>Configuring the Build menu on a project basis.</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" href="#preferences">Preferences</a> dialog.</p>
|
|
<p>As long as a project is open, the Build menu will use
|
|
the items defined in project's settings, instead of the defaults.
|
|
See <a class="reference" href="#build-menu-configuration">Build Menu Configuration</a> for information on configuring the menu.</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>The project menu items are detailed below.</p>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id122" id="new-project" name="new-project">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">
|
|
<h3><a class="toc-backref" href="#id123" id="project-properties" name="project-properties">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 Build menu commands.
|
|
The specified path can be an absolute path or it is considered to be
|
|
relative to the project's file name.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id124" id="set-base-path-button" name="set-base-path-button">Set Base Path Button</a></h4>
|
|
<p>This button is a convenience to set the working directory fields
|
|
in the non-filetype Build menu items to %p to use the project base path.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Pressing the 'set' button will overright any working directories
|
|
you have configured for the project.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id125" id="open-project" name="open-project">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">
|
|
<h3><a class="toc-backref" href="#id126" id="close-project" name="close-project">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">
|
|
<h2><a class="toc-backref" href="#id127" id="build-menu" name="build-menu">Build Menu</a></h2>
|
|
<p>After editing code with Geany, the next step is to compile, link, build,
|
|
interpret, run etc. As Geany supports many languages each with a different
|
|
approach to such operations, and as there are also many language independant
|
|
software building systems, Geany does not have a built in build system, nor
|
|
does it limit which system you can use. Instead the build menu provides
|
|
a configurable and flexible means of running any external commands to
|
|
execute your preferred build system.</p>
|
|
<p>This section provides a description of the default configuration of the
|
|
build menu and then covers how to configure it, and where the defaults fit in.</p>
|
|
<p>Running the commands from within Geany has two benefits:</p>
|
|
<ul class="simple">
|
|
<li>the current file is automatically saved before the command is run</li>
|
|
<li>the output is captured in the Compiler notebook tab and parsed for
|
|
warnings or errors</li>
|
|
</ul>
|
|
<p>Warnings and errors that can be parsed for line numbers will be shown in
|
|
red in the Compiler tab and you can click on them to switch to the relevant
|
|
source file (or open it) and mark the line number. Also lines with
|
|
warnings or errors are marked in the source, see <a class="reference" href="#indicators">Indicators</a> below.</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 in the Build Commands
|
|
Dialog, see <a class="reference" href="#build-menu-configuration">Build Menu Configuration</a></p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id128" id="indicators" name="indicators">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 select "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 class="section">
|
|
<h3><a class="toc-backref" href="#id129" id="default-build-menu-items" name="default-build-menu-items">Default Build Menu Items</a></h3>
|
|
<p>Depending on the current file's filetype, the default 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>Next Error</li>
|
|
<li>Previous Error</li>
|
|
<li>Execute</li>
|
|
<li>Set Build Menu Commands</li>
|
|
</ul>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id130" id="compile" name="compile">Compile</a></h4>
|
|
<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
|
|
set up to compile the current source file into a binary object file.</p>
|
|
<p>Java source files will be compiled to class file bytecode.</p>
|
|
<p>Interpreted languages such as Perl, Python, Ruby will compile to
|
|
bytecode if the language supports it, or will run a syntax check,
|
|
or if that is not available will run the file in its language interpreter.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id131" id="build" name="build">Build</a></h4>
|
|
<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">
|
|
<h4><a class="toc-backref" href="#id132" id="make" name="make">Make</a></h4>
|
|
<p>This runs "make" in the same directory as the
|
|
current file.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id133" id="make-custom-target" name="make-custom-target">Make custom target</a></h4>
|
|
<p>This is similar to running 'Make' 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">
|
|
<h4><a class="toc-backref" href="#id134" id="make-object" name="make-object">Make object</a></h4>
|
|
<p>Make object will run "make current_file.o" in the same directory as
|
|
the current file, using the filename for 'current_file'. It is useful
|
|
for building just the current file without building the whole project.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id135" id="next-error" name="next-error">Next Error</a></h4>
|
|
<p>The next error item will move to the next detected error in the file.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id136" id="previous-error" name="previous-error">Previous Error</a></h4>
|
|
<p>The previous error item will move to the previous detected error in the file.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id137" id="execute" name="execute">Execute</a></h4>
|
|
<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 or can be
|
|
selected to us the build-in VTE if it is available, see
|
|
<a class="reference" href="#virtual-terminal-emulator-widget-vte">Virtual terminal emulator widget (VTE)</a>.</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>
|
|
<p>The execute command output is not parsed for errors.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id138" id="stopping-running-processes" name="stopping-running-processes">Stopping running processes</a></h4>
|
|
<p>When there is a running program, the Execute menu item in the menu and
|
|
the Run button in the toolbar
|
|
becomes a stop button and you can stop the current running program. This
|
|
works by sending a signal to the process (and its child process(es))
|
|
to stop the process. The signal used is SIGQUIT.</p>
|
|
<p>Depending on the process you started it is possible that the process
|
|
cannot be stopped. For example this can happen when the process creates
|
|
more than one child process.</p>
|
|
<div class="section">
|
|
<h5><a class="toc-backref" href="#id139" id="terminal-emulators" name="terminal-emulators">Terminal emulators</a></h5>
|
|
<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">
|
|
<h4><a class="toc-backref" href="#id140" id="set-build-commands" name="set-build-commands">Set Build Commands</a></h4>
|
|
<p>By default the Compile and Build commands invoke the GCC compiler and
|
|
linker with only the basic arguments needed by all programs. Using
|
|
Set Build Commands 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>
|
|
<p>For details of configuration see <a class="reference" href="#build-menu-configuration">Build Menu Configuration</a> below.</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>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id141" id="build-menu-configuration" name="build-menu-configuration">Build Menu Configuration</a></h3>
|
|
<p>The build menu has considerable flexibility and configurability, allowing
|
|
both menu labels the commands they execute and the directory they execute
|
|
in to be configured.</p>
|
|
<p>For example, if you change one of the default make commands to run say 'waf'
|
|
you can also change the label to match.</p>
|
|
<p>Underlines in the labels set mnemonic characters.</p>
|
|
<p>The build menu is divided into four groups of items each with different
|
|
behaviors:</p>
|
|
<ul class="simple">
|
|
<li>file items - are configurable and depend on the filetype of the current
|
|
document, put the output in the compiler tab and parse it for errors</li>
|
|
<li>non-file items - are configurable and mostly don't depend on the filetype
|
|
of the current document, put the output in the compiler tab and parse
|
|
it for errors</li>
|
|
<li>execute items - are configurable and intended for executing your
|
|
program or other long running programs. The output is not parsed for errors
|
|
and is directed to the terminal selected in preferences.</li>
|
|
<li>fixed items - are not configurable because they perform the Geany built in actions,
|
|
go to the next error, go to the previous error and show the build menu
|
|
commands dialog</li>
|
|
</ul>
|
|
<p>The maximum numbers of items in each of the configurable groups can be
|
|
configured when Geany starts using hidden settings(see <a class="reference" href="#preferences-file-format">Preferences File Format</a>).
|
|
Even though the maximum number of items may have been increased, only
|
|
those menu items that have values configured are shown in the menu.</p>
|
|
<p>The groups of menu items obtain their configuration from four potential
|
|
sources. The highest pririty source that has the menu item defined will
|
|
be used. The sources in decreasing priority are:</p>
|
|
<ul class="simple">
|
|
<li>a project file if open</li>
|
|
<li>the user preferences</li>
|
|
<li>the system filetype definitions</li>
|
|
<li>the defaults</li>
|
|
</ul>
|
|
<p>The detailed relationships between sources and the configurable menu item groups
|
|
is shown in the following table.</p>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="13%" />
|
|
<col width="19%" />
|
|
<col width="23%" />
|
|
<col width="17%" />
|
|
<col width="28%" />
|
|
</colgroup>
|
|
<thead valign="bottom">
|
|
<tr><th class="head">Group</th>
|
|
<th class="head">Project File</th>
|
|
<th class="head">Preferences</th>
|
|
<th class="head">System Filetype</th>
|
|
<th class="head">Defaults</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody valign="top">
|
|
<tr><td>Filetype</td>
|
|
<td><p class="first">Loads From: project
|
|
file</p>
|
|
<p class="last">Saves To: project
|
|
file</p>
|
|
</td>
|
|
<td><p class="first">Loads From:
|
|
filetype.xxx file in
|
|
~/.config/geany/filedefs</p>
|
|
<p class="last">Saves to: as above,
|
|
creating if needed.</p>
|
|
</td>
|
|
<td><p class="first">Loads From:
|
|
filetype.xxx in
|
|
Geany install</p>
|
|
<p class="last">Saves to: as user
|
|
preferences left.</p>
|
|
</td>
|
|
<td>None</td>
|
|
</tr>
|
|
<tr><td>Non-Filetype</td>
|
|
<td><p class="first">Loads From: project
|
|
file</p>
|
|
<p class="last">Saves To: project
|
|
file</p>
|
|
</td>
|
|
<td><p class="first">Loads From:
|
|
geany.conf file in
|
|
~/.config/geany</p>
|
|
<p class="last">Saves to: as above,
|
|
creating if needed.</p>
|
|
</td>
|
|
<td><p class="first">Loads From:
|
|
filetype.xxx in
|
|
Geany install</p>
|
|
<p class="last">Saves to: as user
|
|
preferences left.</p>
|
|
</td>
|
|
<td><dl class="first last docutils">
|
|
<dt>1:</dt>
|
|
<dd>Label: _Make
|
|
Command: make</dd>
|
|
<dt>2:</dt>
|
|
<dd>Label: Make Custom _Target
|
|
Command: make</dd>
|
|
<dt>3:</dt>
|
|
<dd>Label: Make _Object
|
|
Command: make %e.o</dd>
|
|
</dl>
|
|
</td>
|
|
</tr>
|
|
<tr><td>Execute</td>
|
|
<td><p class="first">Loads From: project
|
|
file or else
|
|
filetype defined in
|
|
project file</p>
|
|
<p class="last">Saves To:
|
|
project file</p>
|
|
</td>
|
|
<td><p class="first">Loads From:
|
|
geany.conf file in
|
|
~/.config/geany or else
|
|
filetype.xxx file in
|
|
~/.config/geany/filedefs</p>
|
|
<p class="last">Saves To:
|
|
filetype.xxx file in
|
|
~/.config/geany/filedefs</p>
|
|
</td>
|
|
<td><p class="first">Loads From:
|
|
filetype.xxx in
|
|
Geany install</p>
|
|
<p class="last">Saves To: as user
|
|
preferences left</p>
|
|
</td>
|
|
<td>Label: _Execute Command: ./%e</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>The following notes on the table reference cells by coordinate as (group,source):</p>
|
|
<ul class="simple">
|
|
<li>General - for filetype.xxx substitute the filetype name of the
|
|
current document for xxx.</li>
|
|
<li>System Filetypes - Labels loaded from these sources are locale sensitive
|
|
and can contain translations.</li>
|
|
<li>(Filetype, Project File) and (Filetype, Preferences) - preferences use a full
|
|
filetype file so that users can configure all other filetype preferences
|
|
as well. Projects can only configure menu items per filetype. Saving
|
|
in the project file means that there is only one file per project not
|
|
a whole directory.</li>
|
|
<li>(Non-Filetype, System Filetype) - although conceptually strange, defining
|
|
non-filetype commands in a filetype file, this provides the ability to
|
|
define filetype dependent default menu items.</li>
|
|
<li>(Execute, Project File) and (Execute, Preferences) - the project filetype based execute
|
|
configuration and preferences non-filetype based execute can only be set by hand editing the
|
|
appropriate file, see <a class="reference" href="#preferences-file-format">Preferences File Format</a> and <a class="reference" href="#project-file-format">Project File Format</a>.</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id142" id="build-menu-commands-dialog" name="build-menu-commands-dialog">Build Menu Commands Dialog</a></h3>
|
|
<p>Most of the configuration of the build menu is done through the Build Menu
|
|
Commands Dialog. You edit the configuration sourced from preferences in the
|
|
dialog opened from the Build->Build Menu Commands item and you edit the
|
|
configuration from the project in the build tab of the project preferences
|
|
dialog. Both use the same form shown below.</p>
|
|
<img alt="./images/build_menu_commands_dialog.png" src="./images/build_menu_commands_dialog.png" />
|
|
<p>The dialog is divided into three sections:</p>
|
|
<ul class="simple">
|
|
<li>Filetype menu items which will be selected based on the filetype of the
|
|
currently open document,</li>
|
|
<li>Non-filetype menu items, and</li>
|
|
<li>Execute menu items.</li>
|
|
</ul>
|
|
<p>The filetype and non-filetype sections also contains a field for the regular
|
|
expression used for parsing command output for error and warning messages.</p>
|
|
<p>The columns in the first three sections allow setting of the label, command,
|
|
and working directory to run the command in.</p>
|
|
<p>An item with an empty label will not be shown in the menu.</p>
|
|
<p>An empty working directory will default to the directory of the current document.
|
|
If there is no current document then the command will not run.</p>
|
|
<p>The dialog will always show the command selected by priority, not just the
|
|
commands configured in this configuration source. This ensures that you always
|
|
see what the menu item is going to do if activated.</p>
|
|
<p>If the current source of the menu item is higher priority than the
|
|
configuration source you are editing then the command will be shown
|
|
in the dialog but will be insensitive (greyed out). This can't happen
|
|
with the project source but can with the preferences source dialog.</p>
|
|
<p>The clear buttons remove the definition from the configuration source you are editing.
|
|
When you do this the command from the next lower priority source will be shown.
|
|
To hide lower priority menu items without having anything show in the menu
|
|
configure with a nothing in the label but at least one character in the command.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id143" id="substitutions-in-commands-and-working-directories" name="substitutions-in-commands-and-working-directories">Substitutions in Commands and Working Directories</a></h4>
|
|
<p>The first occurance of each of the following character sequences in each of the
|
|
command and working directory fields is substituted by the items specified below
|
|
before the command is run.</p>
|
|
<ul class="simple">
|
|
<li>%d - substituted by the absolute path to the directory of the current file.</li>
|
|
<li>%e - substituted by the name of the current file without the extension or path.</li>
|
|
<li>%f - substituted by the name of the current file without the path.</li>
|
|
<li>%p - if a project is open, substituted by the base path from the project.</li>
|
|
</ul>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">If the basepath set in the project preferences is not an absolute path , then it is
|
|
taken as relative to the directory of the project file. This allows a project file
|
|
stored in the source tree to specify all commands and working directories relative
|
|
to the tree itself, so that the whole tree including the project file, can be moved
|
|
and even checked into and out of version control without having to re-configure the
|
|
build menu.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id144" id="build-menu-keyboard-shortcuts" name="build-menu-keyboard-shortcuts">Build Menu Keyboard Shortcuts</a></h4>
|
|
<p>Keyboard shortcuts can be defiend for the first two filetype menu items, the first three
|
|
non-filetype menu items, the first two execute menu items and the fixed menu items.
|
|
In the keybindings configuration dialog (see <a class="reference" href="#keybinding-preferences">Keybinding preferences</a>)
|
|
these items are identified by the default labels shown in the <a class="reference" href="#build-menu">Build Menu</a> section above.</p>
|
|
<p>It is currently not possible to bind keyboard shortcuts to more than these menu items.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id145" id="configuration-files" name="configuration-files">Configuration Files</a></h4>
|
|
<p>The configurable Build Menu capability was introduced in Geany V0.19 and
|
|
required a new section to be added to the configuration files (See
|
|
<a class="reference" href="#preferences-file-format">Preferences File Format</a>). Geany will still load older format project,
|
|
preferences and filetype file settings and will attempt to map them into the new
|
|
configuration format. There is not a simple clean mapping between the formats.
|
|
The mapping used produces the most sensible results for the majority of cases.
|
|
However, if they do not map the way you want, you may have to manually
|
|
configure some settings using the Build Commands
|
|
Dialog or the Build tab of the project preferences dialog.</p>
|
|
<p>Any setting configured in either of these dialogs will override settings mapped from
|
|
older format configuration files.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id146" id="printing-support" name="printing-support">Printing support</a></h2>
|
|
<p>Since Geany 0.13 there has been 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).</p>
|
|
<p>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
|
|
with full path information is added 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.</p>
|
|
<p>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 have not 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 many 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">
|
|
<h2><a class="toc-backref" href="#id147" id="plugins" name="plugins">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" 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" href="#plugin-documentation">Plugin documentation</a> for information about single plugins
|
|
which are included in Geany.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id148" id="keybindings" name="keybindings">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" 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">
|
|
<h3><a class="toc-backref" href="#id149" id="switching-documents" name="switching-documents">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">
|
|
<h3><a class="toc-backref" href="#id150" id="configurable-keybindings" name="configurable-keybindings">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 resulting dialog you can press the key combination you
|
|
want to assign to the action and it will be saved when you press OK.
|
|
You can define only one key combination for each action and each key
|
|
combination can only be defined for one action.</p>
|
|
<p>Some of the default key combinations are common across many
|
|
applications, for example <em>Ctrl-N</em> for New and <em>Ctrl-O</em> for Open.
|
|
Because they are so common it is not advisable to change these, but
|
|
you can add other key combinations for these actions. For example
|
|
<em>Ctrl-O</em> is set to execute menu_open by default, 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 tables list all customizable keyboard shortcuts, those
|
|
which are common to many applications are marked with (C) after the
|
|
shortcut.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id151" id="file-keybindings" name="file-keybindings">File keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>New</td>
|
|
<td>Ctrl-N (C)</td>
|
|
<td>Creates a new file.</td>
|
|
</tr>
|
|
<tr><td>Open</td>
|
|
<td>Ctrl-O (C)</td>
|
|
<td>Opens a file.</td>
|
|
</tr>
|
|
<tr><td>Open selected file</td>
|
|
<td>Ctrl-Shift-O</td>
|
|
<td>Opens the selected filename.</td>
|
|
</tr>
|
|
<tr><td>Re-open last closed tab</td>
|
|
<td> </td>
|
|
<td>Re-opens the last closed document tab.</td>
|
|
</tr>
|
|
<tr><td>Save</td>
|
|
<td>Ctrl-S (C)</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 (C)</td>
|
|
<td>Closes the current file.</td>
|
|
</tr>
|
|
<tr><td>Reload file</td>
|
|
<td>Ctrl-R (C)</td>
|
|
<td>Reloads the current file. All unsaved changes
|
|
will be lost.</td>
|
|
</tr>
|
|
<tr><td>Print</td>
|
|
<td>Ctrl-P (C)</td>
|
|
<td>Prints the current file.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id152" id="editor-keybindings" name="editor-keybindings">Editor keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Undo</td>
|
|
<td>Ctrl-Z (C)</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 the autocompletion list. If already showing
|
|
tag completion, it shows document word completion
|
|
instead, even if it is not enabled for automatic
|
|
completion. Likewise if no tag suggestions are
|
|
available, it shows document word completion.</td>
|
|
</tr>
|
|
<tr><td>Show calltip</td>
|
|
<td>Ctrl-Shift-Space</td>
|
|
<td>Shows a calltip 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" 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>Word part completion</td>
|
|
<td>Tab</td>
|
|
<td>When the autocompletion list is visible, complete
|
|
the currently selected item up to the next word
|
|
part.</td>
|
|
</tr>
|
|
<tr><td>Move line(s) up</td>
|
|
<td> </td>
|
|
<td>Move the current line or selected lines up by
|
|
one line.</td>
|
|
</tr>
|
|
<tr><td>Move line(s) down</td>
|
|
<td> </td>
|
|
<td>Move the current line or selected lines down by
|
|
one line.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id153" id="clipboard-keybindings" name="clipboard-keybindings">Clipboard keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="23%" />
|
|
<col width="48%" />
|
|
</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>Cut</td>
|
|
<td>Ctrl-X (C)</td>
|
|
<td>Cut the current selection to the clipboard.</td>
|
|
</tr>
|
|
<tr><td>Copy</td>
|
|
<td>Ctrl-C (C)</td>
|
|
<td>Copy the current selection to the clipboard.</td>
|
|
</tr>
|
|
<tr><td>Paste</td>
|
|
<td>Ctrl-V (C)</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>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id154" id="select-keybindings" name="select-keybindings">Select keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Select all</td>
|
|
<td>Ctrl-A (C)</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>Select to previous word part</td>
|
|
<td> </td>
|
|
<td>(Extend) selection to previous word part boundary.</td>
|
|
</tr>
|
|
<tr><td>Select to next word part</td>
|
|
<td> </td>
|
|
<td>(Extend) selection to next word part boundary.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id155" id="insert-keybindings" name="insert-keybindings">Insert keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>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>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id156" id="format-keybindings" name="format-keybindings">Format keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>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" href="#sending-text-through-custom-commands">Sending text through custom 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>Reflow lines/block</td>
|
|
<td> </td>
|
|
<td>Reformat selected lines or current
|
|
(indented) text block,
|
|
breaking lines at the long line marker or the
|
|
line breaking column if line breaking is
|
|
enabled for the current document.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id157" id="settings-keybindings" name="settings-keybindings">Settings keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Preferences</td>
|
|
<td>Ctrl-Alt-P</td>
|
|
<td>Opens preferences dialog.</td>
|
|
</tr>
|
|
<tr><td>Plugin Preferences</td>
|
|
<td> </td>
|
|
<td>Opens plugin preferences dialog.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id158" id="search-keybindings" name="search-keybindings">Search keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Find</td>
|
|
<td>Ctrl-F (C)</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 (C)</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>Mark All</td>
|
|
<td>Ctrl-Shift-M</td>
|
|
<td>Highlight all matches of the current
|
|
word/selection in the current document
|
|
with a colored box. If there's nothing to
|
|
find, highlighted matches will be cleared.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id159" id="go-to-keybindings" name="go-to-keybindings">Go to keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Navigate forward a location</td>
|
|
<td> </td>
|
|
<td>Switches to the next location in the navigation
|
|
history. See the section called <a class="reference" 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" href="#code-navigation-history">Code navigation history</a>.</td>
|
|
</tr>
|
|
<tr><td>Go to line</td>
|
|
<td>Ctrl-L</td>
|
|
<td>Focuses the Go to Line entry (if visible) or
|
|
shows 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" 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" 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>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id160" id="view-keybindings" name="view-keybindings">View keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Fullscreen</td>
|
|
<td>F11 (C)</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 status bar.</td>
|
|
</tr>
|
|
<tr><td>Zoom In</td>
|
|
<td>Ctrl-+ (C)</td>
|
|
<td>Zooms in the text.</td>
|
|
</tr>
|
|
<tr><td>Zoom Out</td>
|
|
<td>Ctrl-- (C)</td>
|
|
<td>Zooms out the text.</td>
|
|
</tr>
|
|
<tr><td>Zoom Reset</td>
|
|
<td>Ctrl-0</td>
|
|
<td>Reset any previous zoom on the text.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id161" id="focus-keybindings" name="focus-keybindings">Focus keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="30%" />
|
|
<col width="23%" />
|
|
<col width="47%" />
|
|
</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>Switch to Editor</td>
|
|
<td>F2</td>
|
|
<td>Switches to editor widget.
|
|
Also reshows the document statistics line
|
|
(after a short timeout).</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>Switch to Messages</td>
|
|
<td> </td>
|
|
<td>Focus the Messages message window tab.</td>
|
|
</tr>
|
|
<tr><td>Switch to Message Window</td>
|
|
<td> </td>
|
|
<td>Focus the Message Window's current tab.</td>
|
|
</tr>
|
|
<tr><td>Switch to Sidebar Document List</td>
|
|
<td> </td>
|
|
<td>Focus the Document list tab in the Sidebar
|
|
(if visible).</td>
|
|
</tr>
|
|
<tr><td>Switch to Sidebar Symbol List</td>
|
|
<td> </td>
|
|
<td>Focus the Symbol list tab in the Sidebar
|
|
(if visible).</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id162" id="notebook-tab-keybindings" name="notebook-tab-keybindings">Notebook tab keybindings</a></h4>
|
|
<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>Switch to left document</td>
|
|
<td>Ctrl-PageUp (C)</td>
|
|
<td>Switches to the previous open document.</td>
|
|
</tr>
|
|
<tr><td>Switch to right document</td>
|
|
<td>Ctrl-PageDown (C)</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>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id163" id="document-keybindings" name="document-keybindings">Document keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="23%" />
|
|
<col width="48%" />
|
|
</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>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>Remove Markers</td>
|
|
<td> </td>
|
|
<td>Remove any markers on lines or words which
|
|
were set by using 'Mark All' in the
|
|
search dialog or by manually marking lines.</td>
|
|
</tr>
|
|
<tr><td>Remove Error Indicators</td>
|
|
<td> </td>
|
|
<td>Remove any error indicators in the
|
|
current document.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id164" id="build-keybindings" name="build-keybindings">Build keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>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>Set Build Commands</td>
|
|
<td> </td>
|
|
<td>Opens the build commands dialog.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id165" id="tools-keybindings" name="tools-keybindings">Tools keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Show Color Chooser</td>
|
|
<td> </td>
|
|
<td>Opens the Color Chooser dialog.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id166" id="help-keybindings" name="help-keybindings">Help keybindings</a></h4>
|
|
<table border="1" class="docutils">
|
|
<colgroup>
|
|
<col width="29%" />
|
|
<col width="24%" />
|
|
<col width="47%" />
|
|
</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>Help</td>
|
|
<td>F1 (C)</td>
|
|
<td>Opens the manual.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h1><a class="toc-backref" href="#id167" id="id4" name="id4">Configuration files</a></h1>
|
|
<div class="warning">
|
|
<p class="first admonition-title">Warning</p>
|
|
<p class="last">You must use UTF-8 encoding <em>without BOM</em> for configuration files.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id168" id="tools-menu-items" name="tools-menu-items">Tools menu items</a></h2>
|
|
<p>There's a <em>Configuration files</em> submenu in the <em>Tools</em> menu that
|
|
contains items for some of the available user configuration files.
|
|
Clicking on one opens it in the editor for you to update. Geany will
|
|
reload the file after you have saved it.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Other configuration files not shown here will need to be opened
|
|
manually, and will not be automatically reloaded when saved.
|
|
(see <em>Reload Configuration</em> below).</p>
|
|
</div>
|
|
<p>There's also a <em>Reload Configuration</em> item which can be used if you
|
|
updated one of the other configuration files, or modified or added
|
|
template files.</p>
|
|
<p><em>Reload Configuration</em> is also necessary to update syntax highlighting colors.</p>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Syntax highlighting colors aren't updated in open documents after
|
|
saving filetypes.common as this can possibly take a significant
|
|
amount of time.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id169" id="global-configuration-file" name="global-configuration-file">Global configuration file</a></h2>
|
|
<p>There is a global configuration file for Geany which will be used for
|
|
any settings not defined in the users local configuration file.
|
|
Settings present in the local configuration file override those in the global
|
|
file.</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" 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. Usually users won't
|
|
need to do that.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id170" id="filetype-definition-files" name="filetype-definition-files">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>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id171" id="custom-filetypes" name="custom-filetypes">Custom filetypes</a></h3>
|
|
<p>At startup Geany looks for <tt class="docutils literal"><span class="pre">filetypes.*.conf</span></tt> files in the system and
|
|
user filetype paths, adding any filetypes found with the name matching
|
|
the '<tt class="docutils literal"><span class="pre">*</span></tt>' wildcard.</p>
|
|
<p>Custom filetypes are not as powerful as built-in filetypes, but the following
|
|
have been implemented:</p>
|
|
<ul>
|
|
<li><p class="first">Recognizing and setting the filetype (after the user has manually edited
|
|
<tt class="docutils literal"><span class="pre">filetype_extensions.conf</span></tt>).</p>
|
|
</li>
|
|
<li><dl class="first docutils">
|
|
<dt>Filetype settings in the [settings] section (see <a class="reference" href="#format">Format</a>).</dt>
|
|
<dd><ul class="first last simple">
|
|
<li>Using existing tag parsing (<tt class="docutils literal"><span class="pre">tag_parser</span></tt> key).</li>
|
|
<li>Using existing syntax highlighting (<tt class="docutils literal"><span class="pre">lexer_filetype</span></tt> key).</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</li>
|
|
<li><p class="first">Build commands.</p>
|
|
</li>
|
|
<li><p class="first">Loading global tags files (namespace will be shared with tag_parser
|
|
type).</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id172" id="system-files" name="system-files">System files</a></h3>
|
|
<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" 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 that users edit the system-wide files,
|
|
because they will be overridden when Geany is updated.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id173" id="user-files" name="user-files">User files</a></h3>
|
|
<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>
|
|
<p>As well as the sections listed below, each filetype file can contain
|
|
a [build-menu] section as described in <a class="reference" href="#build-menu-section">[build-menu] Section</a>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id174" id="format" name="format">Format</a></h3>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id175" id="styling-section" name="styling-section">[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 values from the style named <tt class="docutils literal"><span class="pre">"default"</span></tt>.</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">
|
|
<h5><a class="toc-backref" href="#id176" id="using-a-named-style" name="using-a-named-style">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" href="#named-styles-section">[named_styles]
|
|
Section</a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id177" id="keywords-section" name="keywords-section">[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">
|
|
<h4><a class="toc-backref" href="#id178" id="lexer-properties-section" name="lexer-properties-section">[lexer_properties] Section</a></h4>
|
|
<p>Here any special properties for the Scintilla lexer can be set in the
|
|
format <tt class="docutils literal"><span class="pre">key.name.field=some.value</span></tt>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id179" id="settings-section" name="settings-section">[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" 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 the current word or the current
|
|
selection.</p>
|
|
<p>Example usage: Open the API documentation for the
|
|
current function call at the cursor position.</p>
|
|
<p>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" 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>
|
|
<dt>tag_parser</dt>
|
|
<dd>The TagManager language name, e.g. "C".</dd>
|
|
<dt>lexer_filetype</dt>
|
|
<dd>A filetype name to setup syntax highlighting from another filetype.
|
|
This must not be recursive, i.e. it should be a filetype name that
|
|
doesn't use the lexer_filetype key itself.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id180" id="build-settings-section" name="build-settings-section">[build_settings] Section</a></h4>
|
|
<p>As of Geany v0.19 this section is supplemented by the <a class="reference" href="#build-menu-section">[build-menu] Section</a>.
|
|
Values that are set in the [build-menu] section will override those in this section.</p>
|
|
<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>If any build menu item settings have been configured in the Build Menu Commands
|
|
dialog or the Build tab of the project preferences dialog then these
|
|
settings are stored in the [build-menu] section and override the settings in
|
|
this section for that item.</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">
|
|
<h3><a class="toc-backref" href="#id181" id="special-file-filetypes-common" name="special-file-filetypes-common">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" href="#format">Format</a> section for how to define styles.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id182" id="named-styles-section" name="named-styles-section">[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">
|
|
<h4><a class="toc-backref" href="#id183" id="id5" name="id5">[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>
|
|
</dl>
|
|
<dl class="docutils" id="folding-settings">
|
|
<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>
|
|
<li>3 -- for arrows</li>
|
|
<li>4 -- for +/-</li>
|
|
</ul>
|
|
<p>Valid values for the second argument are:</p>
|
|
<ul class="simple">
|
|
<li>0 -- for no lines</li>
|
|
<li>1 -- for straight lines</li>
|
|
<li>2 -- for curved lines</li>
|
|
</ul>
|
|
<p><em>Default:</em> <tt class="docutils literal"><span class="pre">folding_style=1;1;</span></tt></p>
|
|
<p class="last"><em>Arrows:</em> <tt class="docutils literal"><span class="pre">folding_style=3;0;</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>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">First argument: sets the size of indentation of sublines for wrapped lines
|
|
in terms of the width of a space, only used when the second argument is <tt class="docutils literal"><span class="pre">0</span></tt>.</p>
|
|
<p>Second argument: wrapped sublines can be indented to the position of their
|
|
first subline or one more indent level. Possible values:</p>
|
|
<ul class="simple">
|
|
<li>0 - Wrapped sublines aligned to left of window plus amount set by the first argument</li>
|
|
<li>1 - Wrapped sublines are aligned to first subline indent (use the same indentation)</li>
|
|
<li>2 - Wrapped sublines are aligned to first subline indent plus one more level of indentation</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_indent=0;1;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 marked search results (when using "Mark" in Search dialogs).
|
|
The second argument sets the background colour for the drawn rectangle.</p>
|
|
<p>Only the 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_mark</dt>
|
|
<dd><p class="first">The style for a marked line (e.g when using the "Toggle Marker" keybinding
|
|
(Ctrl-M)). 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_mark=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>
|
|
<dt>line_height</dt>
|
|
<dd><p class="first">Amount of space to be drawn above and below the line's baseline.
|
|
The first argument defines the amount of space to be drawn above the line, the second
|
|
argument defines the amount of space to be drawn below.</p>
|
|
<p>Only the first and second argument is interpreted.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">line_height=0;0;false;false</span></tt></p>
|
|
</dd>
|
|
<dt>calltips</dt>
|
|
<dd><p class="first">The style for coloring the calltips. The first two arguments
|
|
define the foreground and background colors, the third and fourth
|
|
arguments set whether to use the defined colors.</p>
|
|
<p class="last"><em>Example:</em> <tt class="docutils literal"><span class="pre">calltips=0xc0c0c0;0xffffff;false;false</span></tt></p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id184" id="id6" name="id6">[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" 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">
|
|
<h2><a class="toc-backref" href="#id185" id="filetype-extensions" name="filetype-extensions">Filetype extensions</a></h2>
|
|
<p>To change the default filetype extension used when saving a new file,
|
|
see <a class="reference" 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" 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">
|
|
<h2><a class="toc-backref" href="#id186" id="preferences-file-format" name="preferences-file-format">Preferences File Format</a></h2>
|
|
<p>The preferences file <tt class="docutils literal"><span class="pre">~/.config/geany/geany.conf</span></tt> holds settings for all the items configured
|
|
in the preferences dialog. This file should not be edited while Geany is running
|
|
as the file will be overwritten when the preferences in Geany are changed or Geany
|
|
is quitted.</p>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id187" id="hidden-preferences" name="hidden-preferences">Hidden preferences</a></h3>
|
|
<p>There are some rarely used preferences that are not shown in the Preferences
|
|
dialog. These can be set by editing the preferences file, then
|
|
selecting <em>Tools->Reload Configuration</em> or 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" 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>send_selection_unsafe</td>
|
|
<td>By default, Geany strips any trailing
|
|
newline characters from the current
|
|
selection before sending it to the terminal
|
|
to not execute arbitrary code. This is
|
|
mainly a security feature.
|
|
If, for whatever reasons, you really want
|
|
it to be executed directly, set this option
|
|
to true.</td>
|
|
<td>false</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>
|
|
<tr><td><strong>Build Menu related</strong></td>
|
|
<td> </td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr><td>number_ft_menu_items</td>
|
|
<td>The maximum number of menu items in the
|
|
filetype section of the Build menu.</td>
|
|
<td>2</td>
|
|
</tr>
|
|
<tr><td>number_non_ft_menu_items</td>
|
|
<td>The maximum number of menu items in the
|
|
non-filetype section of the Build menu.</td>
|
|
<td>3</td>
|
|
</tr>
|
|
<tr><td>number_exec_menu_items</td>
|
|
<td>The maximum number of menu items in the
|
|
execute section of the Build menu.</td>
|
|
<td>2</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id188" id="build-menu-section" name="build-menu-section">[build-menu] Section</a></h3>
|
|
<p>The [build-menu] section contains the configuration of the build menu.
|
|
This section can occur in filetype, preferences and project files and
|
|
always has the format described here. Different menu items are loaded
|
|
from different files, see the table in the <a class="reference" href="#build-menu-configuration">Build Menu Configuration</a>
|
|
section for details. All the settings can be configured from the dialogs
|
|
except the execute command in filetype files and filetype definitions in
|
|
the project file, so these are the only ones which need hand editing.</p>
|
|
<p>The build-menu section stores one entry for each setting for each menu item that
|
|
is configured. The keys for these settings have the format:</p>
|
|
<blockquote>
|
|
<tt class="docutils literal"><span class="pre">GG_NN_FF</span></tt></blockquote>
|
|
<p>where:</p>
|
|
<ul class="simple">
|
|
<li>GG - is the menu item group,<ul>
|
|
<li>FT for filetype</li>
|
|
<li>NF for non-filetype</li>
|
|
<li>EX for execute</li>
|
|
</ul>
|
|
</li>
|
|
<li>NN - is a two decimal digit number of the item within the group,
|
|
starting at 00</li>
|
|
<li>FF - is the field,<ul>
|
|
<li>LB for label</li>
|
|
<li>CM for command</li>
|
|
<li>WD for working directory</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id189" id="project-file-format" name="project-file-format">Project File Format</a></h2>
|
|
<p>The project file contains project related settings and possibly a
|
|
record of the current session files.</p>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id190" id="build-menu-additions" name="build-menu-additions">[build-menu] Additions</a></h3>
|
|
<p>The project file also can have extra fields in the [build-menu] section
|
|
in addition to those listed in <a class="reference" href="#build-menu-section">[build-menu] Section</a> above.</p>
|
|
<p>When filetype menu items are configured for the project they are stored
|
|
in the project file.</p>
|
|
<p>The <tt class="docutils literal"><span class="pre">filetypes</span></tt> entry is a list of the filetypes which exist in the
|
|
project file.</p>
|
|
<p>For each filetype the entries for that filetype have the format defined in
|
|
<a class="reference" href="#build-menu-section">[build-menu] Section</a> but the key is prefixed by the name of the filetype
|
|
as it appears in the <tt class="docutils literal"><span class="pre">filetypes</span></tt> entry, eg the entry for the label of
|
|
filetype menu item 0 for the C filetype would be</p>
|
|
<blockquote>
|
|
<tt class="docutils literal"><span class="pre">CFT_00_LB=Label</span></tt></blockquote>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id191" id="templates" name="templates">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>File templates</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="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">Geany automatically reloads template information when it notices you
|
|
save a file in the user's template configuration directory. You can
|
|
also force this by selecting <em>Tools->Reload Configuration</em>.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id192" id="template-meta-data" name="template-meta-data">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" href="#template-preferences">Template preferences</a>). You can define the default values
|
|
which will be inserted in the templates. You should select
|
|
<em>Tools->Reload Configuration</em> or restart Geany after making changes.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id193" id="file-templates" name="file-templates">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, file templates are installed for some filetypes. Custom
|
|
file templates can be added by creating the appropriate template file
|
|
and then selecting <em>Tools->Reload Configuration</em> or restarting Geany. You can
|
|
also edit the default file templates.</p>
|
|
<p>The file's contents are just the text to place in the document, with
|
|
optional template wildcards like <tt class="docutils literal"><span class="pre">{fileheader}</span></tt>. The fileheader
|
|
wildcard can be placed anywhere, but it's usually put on the first
|
|
line of the file, followed by a blank line.</p>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id194" id="custom-file-templates" name="custom-file-templates">Custom file templates</a></h4>
|
|
<p>These are read from the following directories:</p>
|
|
<ul class="simple">
|
|
<li><tt class="docutils literal"><span class="pre">$prefix/share/geany/templates/files</span></tt> (see <a class="reference" href="#installation-prefix">Installation prefix</a>)</li>
|
|
<li><tt class="docutils literal"><span class="pre">~/.config/geany/templates/files</span></tt> (created the first time
|
|
Geany is started).</li>
|
|
</ul>
|
|
<p>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">module.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.</p>
|
|
</div>
|
|
<div class="section">
|
|
<h4><a class="toc-backref" href="#id195" id="filetype-templates" name="filetype-templates">Filetype templates</a></h4>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">It's recommended to use custom file templates instead.</p>
|
|
</div>
|
|
<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">
|
|
<h3><a class="toc-backref" href="#id196" id="customizing-templates" name="customizing-templates">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" 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">
|
|
<h4><a class="toc-backref" href="#id197" id="template-wildcards" name="template-wildcards">Template wildcards</a></h4>
|
|
<p>All wildcards must be enclosed by "{" and "}", e.g. {date}.</p>
|
|
<p><strong>Wildcards for character escaping</strong></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>ob</td>
|
|
<td>{ Opening Brace (used to prevent other
|
|
wildcards being expanded).</td>
|
|
<td>file templates, file header, snippets.</td>
|
|
</tr>
|
|
<tr><td>cb</td>
|
|
<td>} Closing Brace.</td>
|
|
<td>file templates, file header, snippets.</td>
|
|
</tr>
|
|
<tr><td>pc</td>
|
|
<td>% Percent (used to escape e.g. %block% in
|
|
snippets).</td>
|
|
<td>snippets.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Global wildcards</strong></p>
|
|
<p>These are configurable, see <a class="reference" href="#template-preferences">Template preferences</a>.</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>file 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>file 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>file 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>file 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>file templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Date & time wildcards</strong></p>
|
|
<p>The format for these wildcards can be changed in the preferences
|
|
dialog, see <a class="reference" href="#template-preferences">Template preferences</a>. You can use any conversion
|
|
specifiers which can be used with the ANSI C strftime function.
|
|
For details please see <a class="reference" href="http://man.cx/strftime">http://man.cx/strftime</a>.</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>year</td>
|
|
<td>The current year. Default format is: YYYY.</td>
|
|
<td>file templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets.</td>
|
|
</tr>
|
|
<tr><td>date</td>
|
|
<td>The current date. Default format:
|
|
YYYY-MM-DD.</td>
|
|
<td>file templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets.</td>
|
|
</tr>
|
|
<tr><td>datetime</td>
|
|
<td>The current date and time. Default format:
|
|
DD.MM.YYYY HH:mm:ss ZZZZ.</td>
|
|
<td>file templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Dynamic wildcards</strong></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>untitled</td>
|
|
<td>The string "untitled" (this will be
|
|
translated to your locale), used in
|
|
file templates.</td>
|
|
<td>file 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.19".</td>
|
|
<td>file templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets.</td>
|
|
</tr>
|
|
<tr><td>filename</td>
|
|
<td>The filename of the current file.
|
|
For new files, it's only replaced when
|
|
first saving if found on the first 3 lines
|
|
of the file.</td>
|
|
<td>file header, snippets, file
|
|
templates.</td>
|
|
</tr>
|
|
<tr><td>project</td>
|
|
<td>The current project's name, if any.</td>
|
|
<td>file header, snippets, file templates.</td>
|
|
</tr>
|
|
<tr><td>description</td>
|
|
<td>The current project's description, if any.</td>
|
|
<td>file header, snippets, file templates.</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>command:path</td>
|
|
<td>Executes the specified command and replace
|
|
the wildcard with the command's standard
|
|
output. See <a class="reference" href="#special-command-wildcard">Special {command:} wildcard</a>
|
|
for details.</td>
|
|
<td>file templates, file header,
|
|
function description, ChangeLog entry,
|
|
bsd, gpl, snippets.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p><strong>Template insertion wildcards</strong></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>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>fileheader</td>
|
|
<td>The file header template. This wildcard
|
|
will only be replaced in filetype
|
|
templates.</td>
|
|
<td>snippets, file templates.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="section">
|
|
<h5><a class="toc-backref" href="#id198" id="special-command-wildcard" name="special-command-wildcard">Special {command:} wildcard</a></h5>
|
|
<p>The {command:} wildcard is a special one because it can execute
|
|
a specified command and put the command's output (stdout) into
|
|
the template.</p>
|
|
<p>Example:</p>
|
|
<pre class="literal-block">
|
|
{command:uname -a}
|
|
</pre>
|
|
<p>will result in:</p>
|
|
<pre class="literal-block">
|
|
Linux localhost 2.6.9-023stab046.2-smp #1 SMP Mon Dec 10 15:04:55 MSK 2007 x86_64 GNU/Linux
|
|
</pre>
|
|
<p>Using this wildcard you can insert nearly any arbitrary text into the
|
|
template.</p>
|
|
<p>In the environment of the executed command the variables
|
|
<tt class="docutils literal"><span class="pre">GEANY_FILENAME</span></tt>, <tt class="docutils literal"><span class="pre">GEANY_FILETYPE</span></tt> and <tt class="docutils literal"><span class="pre">GEANY_FUNCNAME</span></tt> are set.
|
|
The value of these variables is filled in only if Geany knows about it.
|
|
For example, <tt class="docutils literal"><span class="pre">GEANY_FUNCNAME</span></tt> is only filled within the function
|
|
description template. However, these variables are <tt class="docutils literal"><span class="pre">always</span></tt> set,
|
|
just maybe with an empty value.
|
|
You can easily access them e.g. within an executed shell script using:</p>
|
|
<pre class="literal-block">
|
|
$GEANY_FILENAME
|
|
</pre>
|
|
<div class="note">
|
|
<p class="first admonition-title">Note</p>
|
|
<p class="last">If the specified command could not be found or not executed, the wildcard is substituted
|
|
by an empty string. In such cases, you can find the occurred error message on Geany's
|
|
standard error and in the Help->Debug Messages dialog.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id199" id="customizing-the-toolbar" name="customizing-the-toolbar">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">
|
|
<h3><a class="toc-backref" href="#id200" id="manually-editing-of-the-toolbar-layout" name="manually-editing-of-the-toolbar-layout">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" 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">
|
|
<h3><a class="toc-backref" href="#id201" id="available-toolbar-elements" name="available-toolbar-elements">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 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">
|
|
<h1><a class="toc-backref" href="#id202" id="plugin-documentation" name="plugin-documentation">Plugin documentation</a></h1>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id203" id="save-actions" name="save-actions">Save Actions</a></h2>
|
|
<div class="section">
|
|
<h3><a class="toc-backref" href="#id204" id="instant-save" name="instant-save">Instant Save</a></h3>
|
|
<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">
|
|
<h3><a class="toc-backref" href="#id205" id="backup-copy" name="backup-copy">Backup Copy</a></h3>
|
|
<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>
|
|
<div class="section">
|
|
<h1><a class="toc-backref" href="#id206" id="contributing-to-this-document" name="contributing-to-this-document">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" 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.19.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">
|
|
<h1><a class="toc-backref" href="#id207" id="scintilla-keyboard-commands" name="scintilla-keyboard-commands">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" href="#license-for-scintilla-and-scite">License for
|
|
Scintilla and SciTE</a>.</p>
|
|
<p>20 June 2006</p>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id208" id="keyboard-commands" name="keyboard-commands">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">
|
|
<h1><a class="toc-backref" href="#id209" id="tips-and-tricks" name="tips-and-tricks">Tips and tricks</a></h1>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id210" id="document-notebook" name="document-notebook">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>Middle-click on a document's notebook tab to close the document.</li>
|
|
<li>Hold <cite>Ctrl</cite> and click on any notebook tab to switch to the last used
|
|
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>
|
|
</ul>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id211" id="editor" name="editor">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">
|
|
<h2><a class="toc-backref" href="#id212" id="interface" name="interface">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">
|
|
<h2><a class="toc-backref" href="#id213" id="gtk-related" name="gtk-related">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">
|
|
<h1><a class="toc-backref" href="#id214" id="compile-time-options" name="compile-time-options">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">
|
|
<h2><a class="toc-backref" href="#id215" id="src-geany-h" name="src-geany-h">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">
|
|
<h2><a class="toc-backref" href="#id216" id="project-h" name="project-h">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">
|
|
<h2><a class="toc-backref" href="#id217" id="editor-h" name="editor-h">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">
|
|
<h2><a class="toc-backref" href="#id218" id="keyfile-c" name="keyfile-c">keyfile.c</a></h2>
|
|
<p>These are default settings that can be overridden in the <a class="reference" 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 autocompletion 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 autocompletion suggestions should
|
|
Geany provide.</td>
|
|
<td>30</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="section">
|
|
<h2><a class="toc-backref" href="#id219" id="build-h" name="build-h">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 class="section">
|
|
<h2><a class="toc-backref" href="#id220" id="build-c" name="build-c">build.c</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>PRINTBUILDCMDS</td>
|
|
<td>Every time a build menu item priority
|
|
calculation is run, print the state of the
|
|
menu item table in the form of the table
|
|
in <a class="reference" href="#build-menu-configuration">Build Menu Configuration</a>. May be
|
|
useful to debug configuration file
|
|
overloading. Warning produces a lot of
|
|
output. Can also be enabled/disabled by the
|
|
debugger by setting printbuildcmds to 1/0
|
|
overriding the compile setting.</td>
|
|
<td>FALSE</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section">
|
|
<h1><a class="toc-backref" href="#id221" id="gnu-general-public-license" name="gnu-general-public-license">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">
|
|
<h1><a class="toc-backref" href="#id222" id="license-for-scintilla-and-scite" name="license-for-scintilla-and-scite">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" href="geany.txt">View document source</a>.
|
|
Generated on: 2010-05-06 12:44 UTC.
|
|
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|