doc: update man pages

This commit is contained in:
Simon Michael 2016-04-12 20:31:17 -07:00
parent 5ef67e0d4d
commit 8ee0c7fa76
9 changed files with 341 additions and 164 deletions

View File

@ -33,7 +33,7 @@ $endif$
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -61,7 +61,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -20,20 +20,19 @@ At minimum, the rules file must specify the \f[C]date\f[] and
\f[C]amount\f[] fields. \f[C]amount\f[] fields.
For an example, see How to read CSV files. For an example, see How to read CSV files.
.PP .PP
(For CSV output, see CSV output.) To learn about \f[I]exporting\f[] CSV, see CSV output.
.SS CSV rules .SH CSV RULES
.PP .PP
The following six kinds of rule can appear in the rules file, in any The following six kinds of rule can appear in the rules file, in any
order. order.
Blank lines and lines beginning with \f[C]#\f[] or \f[C];\f[] are Blank lines and lines beginning with \f[C]#\f[] or \f[C];\f[] are
ignored. ignored.
.SS skip
.PP
\f[C]skip\f[]\f[I]\f[C]N\f[]\f[]
.PP .PP
\f[B]\f[C]skip\f[] \f[I]N\f[]\f[]
.PD 0
.P
.PD
Skip this number of CSV records at the beginning. Skip this number of CSV records at the beginning.
You\[aq]ll need this when your CSV contains header lines. You\[aq]ll need this whenever your CSV data contains header lines.
Eg: Eg:
.IP .IP
.nf .nf
@ -42,11 +41,10 @@ Eg:
skip\ 1 skip\ 1
\f[] \f[]
.fi .fi
.SS date\-format
.PP
\f[C]date\-format\f[]\f[I]\f[C]DATEFMT\f[]\f[]
.PP .PP
\f[B]\f[C]date\-format\f[] \f[I]DATEFMT\f[]\f[]
.PD 0
.P
.PD
When your CSV date fields are not formatted like \f[C]YYYY/MM/DD\f[] (or When your CSV date fields are not formatted like \f[C]YYYY/MM/DD\f[] (or
\f[C]YYYY\-MM\-DD\f[] or \f[C]YYYY.MM.DD\f[]), you\[aq]ll need to \f[C]YYYY\-MM\-DD\f[] or \f[C]YYYY.MM.DD\f[]), you\[aq]ll need to
specify the format. specify the format.
@ -56,71 +54,63 @@ Examples:
.IP .IP
.nf .nf
\f[C] \f[C]
#\ parses\ "6/11/2013": #\ for\ dates\ like\ "6/11/2013":
date\-format\ %\-d/%\-m/%Y date\-format\ %\-d/%\-m/%Y
\f[] \f[]
.fi .fi
.IP .IP
.nf .nf
\f[C] \f[C]
#\ parses\ "11/06/2013": #\ for\ dates\ like\ "11/06/2013":
date\-format\ %m/%d/%Y date\-format\ %m/%d/%Y
\f[] \f[]
.fi .fi
.IP .IP
.nf .nf
\f[C] \f[C]
#\ parses\ "2013\-Nov\-06": #\ for\ dates\ like\ "2013\-Nov\-06":
date\-format\ %Y\-%h\-%d date\-format\ %Y\-%h\-%d
\f[] \f[]
.fi .fi
.IP .IP
.nf .nf
\f[C] \f[C]
#\ parses\ "11/6/2013\ 11:32\ PM": #\ for\ dates\ like\ "11/6/2013\ 11:32\ PM":
date\-format\ %\-m/%\-d/%Y\ %l:%M\ %p date\-format\ %\-m/%\-d/%Y\ %l:%M\ %p
\f[] \f[]
.fi .fi
.SS field list
.PP .PP
\f[B]\f[C]fields\f[] \f[I]CSVFIELDNAME1\f[], \f[C]fields\f[]\f[I]\f[C]FIELDNAME1\f[]\f[],
\f[I]CSVFIELDNAME2\f[]...\f[] \f[I]\f[C]FIELDNAME2\f[]\f[]...
.PD 0 .PP
.P This (a) names the CSV fields, in order (names may not contain
.PD whitespace, but may be omitted), and (b) assigns them to journal entry
(Field list) fields if you use any of these standard field names: \f[C]date\f[],
.PD 0 \f[C]date2\f[], \f[C]status\f[], \f[C]code\f[], \f[C]description\f[],
.P \f[C]comment\f[], \f[C]account1\f[], \f[C]account2\f[], \f[C]amount\f[],
.PD
This (a) names the CSV fields (names may not contain whitespace), and
(b) assigns them to journal entry fields if you use any of these
standard field names: \f[C]date\f[], \f[C]date2\f[], \f[C]status\f[],
\f[C]code\f[], \f[C]description\f[], \f[C]comment\f[],
\f[C]account1\f[], \f[C]account2\f[], \f[C]amount\f[],
\f[C]amount\-in\f[], \f[C]amount\-out\f[], \f[C]currency\f[]. \f[C]amount\-in\f[], \f[C]amount\-out\f[], \f[C]currency\f[].
Eg: Eg:
.IP .IP
.nf .nf
\f[C] \f[C]
#\ use\ the\ 1st,\ 2nd\ and\ 4th\ CSV\ fields\ as\ the\ entry\ date,\ description\ and\ amount #\ use\ the\ 1st,\ 2nd\ and\ 4th\ CSV\ fields\ as\ the\ entry\[aq]s\ date,\ description\ and\ amount,
#\ give\ the\ 7th\ and\ 8th\ fields\ custom\ names\ for\ later\ reference #\ and\ give\ the\ 7th\ and\ 8th\ fields\ meaningful\ names\ for\ later\ reference:
#
#\ CSV\ field:
#\ \ \ \ \ \ 1\ \ \ \ \ 2\ \ \ \ \ \ \ \ \ \ \ \ 3\ 4\ \ \ \ \ \ \ 5\ 6\ 7\ \ \ \ \ \ \ \ \ \ 8
#\ entry\ field:
fields\ date,\ description,\ ,\ amount,\ ,\ ,\ somefield,\ anotherfield fields\ date,\ description,\ ,\ amount,\ ,\ ,\ somefield,\ anotherfield
\f[] \f[]
.fi .fi
.SS field assignment
.PP
\f[I]\f[C]ENTRYFIELDNAME\f[]\f[] \f[I]\f[C]FIELDVALUE\f[]\f[]
.PP .PP
\f[B]\f[I]ENTRYFIELDNAME\f[] \f[I]FIELDVALUE\f[]\f[]
.PD 0
.P
.PD
(Field assignment)
.PD 0
.P
.PD
This sets a journal entry field (one of the standard names above) to the This sets a journal entry field (one of the standard names above) to the
given text value, which can include CSV field values interpolated by given text value, which can include CSV field values interpolated by
name (\f[C]%CSVFIELDNAME\f[]) or 1\-based position (\f[C]%N\f[]). name (\f[C]%CSVFIELDNAME\f[]) or 1\-based position (\f[C]%N\f[]).
Field assignments can be used instead of or in addition to a field Eg:
list.
Eg:
.IP .IP
.nf .nf
\f[C] \f[C]
@ -136,38 +126,29 @@ comment\ note:\ %somefield\ \-\ %anotherfield,\ date:\ %1
\f[] \f[]
.fi .fi
.PP .PP
\f[B]\f[C]if\f[] \f[I]PATTERN\f[] Field assignments can be used instead of or in addition to a field list.
.SS conditional block
.PP
\f[C]if\f[] \f[I]\f[C]PATTERN\f[]\f[]
.PD 0 .PD 0
.P .P
.PD .PD
\ \ \ \ \f[I]FIELDASSIGNMENTS\f[]...\f[] \ \ \ \ \f[I]\f[C]FIELDASSIGNMENTS\f[]\f[]...
.PP
\f[C]if\f[]
.PD 0 .PD 0
.P .P
.PD .PD
or \f[I]\f[C]PATTERN\f[]\f[]
.PD 0 .PD 0
.P .P
.PD .PD
\f[B]\f[C]if\f[] \f[I]\f[C]PATTERN\f[]\f[]...
.PD 0
.P
.PD
\f[I]PATTERN\f[]
.PD 0
.P
.PD
\f[I]PATTERN\f[]...
.PD 0
.P
.PD
\ \ \ \ \f[I]FIELDASSIGNMENTS\f[]...\f[]
.PD 0
.P
.PD
(Conditional block)
.PD 0 .PD 0
.P .P
.PD .PD
\ \ \ \ \f[I]\f[C]FIELDASSIGNMENTS\f[]\f[]...
.PP
This applies one or more field assignments, only to those CSV records This applies one or more field assignments, only to those CSV records
matched by one of the PATTERNs. matched by one of the PATTERNs.
The patterns are case\-insensitive regular expressions which match The patterns are case\-insensitive regular expressions which match
@ -195,14 +176,13 @@ monthly\ service\ fee
atm\ transaction\ fee atm\ transaction\ fee
banking\ thru\ software banking\ thru\ software
\ account2\ expenses:business:banking \ account2\ expenses:business:banking
\ comment\ \ XXX\ deductible\ ?\ check \ comment\ \ XXX\ deductible\ ?\ check\ it
\f[] \f[]
.fi .fi
.SS include
.PP
\f[C]include\f[]\f[I]\f[C]RULESFILE\f[]\f[]
.PP .PP
\f[B]\f[C]include\f[] \f[I]RULESFILE\f[]\f[]
.PD 0
.P
.PD
Include another rules file at this point. Include another rules file at this point.
\f[C]RULESFILE\f[] is either an absolute file path or a path relative to \f[C]RULESFILE\f[] is either an absolute file path or a path relative to
the current file\[aq]s directory. the current file\[aq]s directory.
@ -214,7 +194,7 @@ Eg:
include\ common.rules include\ common.rules
\f[] \f[]
.fi .fi
.SS CSV tips .SH TIPS
.PP .PP
Each generated journal entry will have two postings, to Each generated journal entry will have two postings, to
\f[C]account1\f[] and \f[C]account2\f[] respectively. \f[C]account1\f[] and \f[C]account2\f[] respectively.
@ -248,7 +228,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -1,3 +1,4 @@
.\"t
.TH "hledger_journal" "5" "April 2016" "" "hledger User Manuals" .TH "hledger_journal" "5" "April 2016" "" "hledger User Manuals"
@ -57,8 +58,7 @@ Here\[aq]s an example:
\ \ \ \ assets:bank:checking \ \ \ \ assets:bank:checking
\f[] \f[]
.fi .fi
.PP .SH FILE FORMAT
Now let\[aq]s explore the available journal file syntax in detail.
.SS Transactions .SS Transactions
.PP .PP
Transactions are represented by journal entries. Transactions are represented by journal entries.
@ -806,6 +806,46 @@ Glob patterns (\f[C]*\f[]) are not currently supported.
The \f[C]include\f[] directive may only be used in journal files, and The \f[C]include\f[] directive may only be used in journal files, and
currently it may only include other journal files (eg, not CSV or currently it may only include other journal files (eg, not CSV or
timelog files.) timelog files.)
.SH EDITOR SUPPORT
.PP
Add\-on modes exist for various text editors, to make working with
journal files easier.
They add colour, navigation aids and helpful commands.
For hledger users who edit the journal file directly (the majority),
using one of these modes is quite recommended.
.PP
These were written with Ledger in mind, but also work with hledger
files:
.PP
.TS
tab(@);
lw(16.5n) lw(51.5n).
T{
Emacs
T}@T{
http://www.ledger\-cli.org/3.0/doc/ledger\-mode.html
T}
T{
Vim
T}@T{
https://github.com/ledger/ledger/wiki/Getting\-started
T}
T{
Sublime Text
T}@T{
https://github.com/ledger/ledger/wiki/Using\-Sublime\-Text
T}
T{
Textmate
T}@T{
https://github.com/ledger/ledger/wiki/Using\-TextMate\-2
T}
T{
Text Wrangler \
T}@T{
https://github.com/ledger/ledger/wiki/Editing\-Ledger\-files\-with\-TextWrangler
T}
.TE
.SH "REPORTING BUGS" .SH "REPORTING BUGS"
@ -819,7 +859,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -136,7 +136,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -90,7 +90,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -320,7 +320,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -245,7 +245,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),

View File

@ -20,9 +20,8 @@ hledger is a cross\-platform program for tracking money, time, or any
other commodity, using double\-entry accounting and a simple, editable other commodity, using double\-entry accounting and a simple, editable
file format. file format.
It is inspired by and largely compatible with ledger(1). It is inspired by and largely compatible with ledger(1).
hledger aims to be a reliable, practical tool for daily use. Tested on unix, mac, windows, hledger aims to be a reliable, practical
This man page is a quick reference and introduction; for more complete tool for daily use.
docs, see http://hledger.org/manual.
.PP .PP
This is hledger's command\-line interface (there are also curses and web This is hledger's command\-line interface (there are also curses and web
interfaces). interfaces).
@ -463,6 +462,52 @@ Examples:
\-p\ "every\ 4th\ day\ of\ week" \-p\ "every\ 4th\ day\ of\ week"
\f[] \f[]
.fi .fi
.SS Regular Expressions
.PP
hledger uses regular expressions in a number of places:
.IP \[bu] 2
query terms, on the command line and in the hledger\-web search form:
\f[C]REGEX\f[], \f[C]desc:REGEX\f[], \f[C]cur:REGEX\f[],
\f[C]tag:...=REGEX\f[]
.IP \[bu] 2
CSV rules conditional blocks: \f[C]if\ REGEX\ ...\f[]
.IP \[bu] 2
account alias directives and options:
\f[C]alias\ /REGEX/\ =\ REPLACEMENT\f[],
\f[C]\-\-alias\ /REGEX/=REPLACEMENT\f[]
.PP
hledger\[aq]s regular expressions come from the regex\-tdfa library.
In general they:
.IP \[bu] 2
are case insensitive
.IP \[bu] 2
are infix matching (do not need to match the entire thing being matched)
.IP \[bu] 2
are POSIX extended regular expressions
.IP \[bu] 2
also support GNU word boundaries (\\<, \\>, \\b, \\B)
.IP \[bu] 2
and parenthesised capturing groups and numeric backreferences in
replacement strings
.IP \[bu] 2
do not support mode modifiers like (?s)
.PP
Some things to note:
.IP \[bu] 2
In the \f[C]alias\f[] directive and \f[C]\-\-alias\f[] option, regular
expressions must be enclosed in forward slashes (\f[C]/REGEX/\f[]).
Elsewhere in hledger, these are not required.
.IP \[bu] 2
To match a regular expression metacharacter like \f[C]$\f[] as a literal
character, prepend a backslash.
Eg to search for amounts with the dollar sign in hledger\-web, write
\f[C]cur:\\$\f[].
.IP \[bu] 2
On the command line, some metacharacters like \f[C]$\f[] have a special
meaning to the shell and so must be escaped a second time, with single
or double quotes or another backslash.
Eg, to match amounts with the dollar sign from the command line, write
\f[C]cur:\[aq]\\$\[aq]\f[] or \f[C]cur:\\\\$\f[].
.SH QUERIES .SH QUERIES
.PP .PP
One of hledger\[aq]s strengths is being able to quickly report on One of hledger\[aq]s strengths is being able to quickly report on
@ -579,11 +624,13 @@ before any of the above negates the match.
.RS .RS
.RE .RE
.PP .PP
Some of the above can also be expressed as command\-line options (eg * * * * *
.PP
Some of these can also be expressed as command\-line options (eg
\f[C]depth:2\f[] is equivalent to \f[C]\-\-depth\ 2\f[]). \f[C]depth:2\f[] is equivalent to \f[C]\-\-depth\ 2\f[]).
Generally you can mix options and query arguments, and the resulting Generally you can mix options and query arguments, and the resulting
query will be their intersection (aside from the \f[C]\-p/\-\-period\f[] query will be their intersection (perhaps excluding the
option). \f[C]\-p/\-\-period\f[] option).
.SH COMMANDS .SH COMMANDS
.PP .PP
hledger provides a number of subcommands; \f[C]hledger\f[] with no hledger provides a number of subcommands; \f[C]hledger\f[] with no
@ -694,6 +741,85 @@ $\ hledger\ activity\ \-\-quarterly
2008\-10\-01\ ** 2008\-10\-01\ **
\f[] \f[]
.fi .fi
.SS add
.PP
Prompt for transactions and add them to the journal.
.TP
.B \f[C]\-\-no\-new\-accounts\f[]
don\[aq]t allow creating new accounts; helps prevent typos when entering
account names
.RS
.RE
.PP
Many hledger users edit their journals directly with a text editor, or
generate them from CSV.
For more interactive data entry, there is the \f[C]add\f[] command,
which prompts interactively on the console for new transactions, and
appends them to the journal file (existing transactions are not
changed).
This is the only hledger command that writes to the journal file.
.PP
To use it, just run \f[C]hledger\ add\f[] and follow the prompts.
You can add as many transactions as you like; when you are finished,
enter \f[C]\&.\f[] or press control\-d or control\-c to exit.
.PP
Features:
.IP \[bu] 2
add tries to provide useful defaults, using the most similar recent
transaction (by description) as a template.
.IP \[bu] 2
You can also set the initial defaults with command line arguments.
.IP \[bu] 2
Readline\-style edit keys can be used during data entry.
.IP \[bu] 2
The tab key will auto\-complete whenever possible \- accounts,
descriptions, dates (\f[C]yesterday\f[], \f[C]today\f[],
\f[C]tomorrow\f[]).
If the input area is empty, it will insert the default value.
.IP \[bu] 2
If the journal defines a default commodity, it will be added to any bare
numbers entered.
.IP \[bu] 2
A parenthesised transaction code may be entered following a date.
.IP \[bu] 2
Comments and tags may be entered following a description or amount.
.IP \[bu] 2
If you make a mistake, enter \f[C]<\f[] at any prompt to restart the
transaction.
.IP \[bu] 2
Input prompts are displayed in a different colour when the terminal
supports it.
.PP
Example (see the tutorial for a detailed explanation):
.IP
.nf
\f[C]
$\ hledger\ add
Adding\ transactions\ to\ journal\ file\ /src/hledger/data/sample.journal
Any\ command\ line\ arguments\ will\ be\ used\ as\ defaults.
Use\ tab\ key\ to\ complete,\ readline\ keys\ to\ edit,\ enter\ to\ accept\ defaults.
An\ optional\ (CODE)\ may\ follow\ transaction\ dates.
An\ optional\ ;\ COMMENT\ may\ follow\ descriptions\ or\ amounts.
If\ you\ make\ a\ mistake,\ enter\ <\ at\ any\ prompt\ to\ restart\ the\ transaction.
To\ end\ a\ transaction,\ enter\ .\ when\ prompted.
To\ quit,\ enter\ .\ at\ a\ date\ prompt\ or\ press\ control\-d\ or\ control\-c.
Date\ [2015/05/22]:\
Description:\ supermarket
Account\ 1:\ expenses:food
Amount\ \ 1:\ $10
Account\ 2:\ assets:checking
Amount\ \ 2\ [$\-10.0]:\
Account\ 3\ (or\ .\ or\ enter\ to\ finish\ this\ transaction):\ .
2015/05/22\ supermarket
\ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ \ \ $10
\ \ \ \ assets:checking\ \ \ \ \ \ \ \ $\-10.0
Save\ this\ transaction\ to\ the\ journal\ ?\ [y]:\
Saved.
Starting\ the\ next\ transaction\ (.\ or\ ctrl\-D/ctrl\-C\ to\ quit)
Date\ [2015/05/22]:\ <CTRL\-D>\ $
\f[]
.fi
.SS balance .SS balance
.PP .PP
Show accounts and their balances. Show accounts and their balances.
@ -1088,85 +1214,6 @@ charts in a spreadsheet.
This is controlled by the \f[C]\-O/\-\-output\-format\f[] option, or by This is controlled by the \f[C]\-O/\-\-output\-format\f[] option, or by
specifying a \f[C]\&.csv\f[] file extension with specifying a \f[C]\&.csv\f[] file extension with
\f[C]\-o/\-\-output\-file\f[]. \f[C]\-o/\-\-output\-file\f[].
.SS add
.PP
Prompt for transactions and add them to the journal.
.TP
.B \f[C]\-\-no\-new\-accounts\f[]
don\[aq]t allow creating new accounts; helps prevent typos when entering
account names
.RS
.RE
.PP
Many hledger users edit their journals directly with a text editor, or
generate them from CSV.
For more interactive data entry, there is the \f[C]add\f[] command,
which prompts interactively on the console for new transactions, and
appends them to the journal file (existing transactions are not
changed).
This is the only hledger command that writes to the journal file.
.PP
To use it, just run \f[C]hledger\ add\f[] and follow the prompts.
You can add as many transactions as you like; when you are finished,
enter \f[C]\&.\f[] or press control\-d or control\-c to exit.
.PP
Features:
.IP \[bu] 2
add tries to provide useful defaults, using the most similar recent
transaction (by description) as a template.
.IP \[bu] 2
You can also set the initial defaults with command line arguments.
.IP \[bu] 2
Readline\-style edit keys can be used during data entry.
.IP \[bu] 2
The tab key will auto\-complete whenever possible \- accounts,
descriptions, dates (\f[C]yesterday\f[], \f[C]today\f[],
\f[C]tomorrow\f[]).
If the input area is empty, it will insert the default value.
.IP \[bu] 2
If the journal defines a default commodity, it will be added to any bare
numbers entered.
.IP \[bu] 2
A parenthesised transaction code may be entered following a date.
.IP \[bu] 2
Comments and tags may be entered following a description or amount.
.IP \[bu] 2
If you make a mistake, enter \f[C]<\f[] at any prompt to restart the
transaction.
.IP \[bu] 2
Input prompts are displayed in a different colour when the terminal
supports it.
.PP
Example (see the tutorial for a detailed explanation):
.IP
.nf
\f[C]
$\ hledger\ add
Adding\ transactions\ to\ journal\ file\ /src/hledger/data/sample.journal
Any\ command\ line\ arguments\ will\ be\ used\ as\ defaults.
Use\ tab\ key\ to\ complete,\ readline\ keys\ to\ edit,\ enter\ to\ accept\ defaults.
An\ optional\ (CODE)\ may\ follow\ transaction\ dates.
An\ optional\ ;\ COMMENT\ may\ follow\ descriptions\ or\ amounts.
If\ you\ make\ a\ mistake,\ enter\ <\ at\ any\ prompt\ to\ restart\ the\ transaction.
To\ end\ a\ transaction,\ enter\ .\ when\ prompted.
To\ quit,\ enter\ .\ at\ a\ date\ prompt\ or\ press\ control\-d\ or\ control\-c.
Date\ [2015/05/22]:\
Description:\ supermarket
Account\ 1:\ expenses:food
Amount\ \ 1:\ $10
Account\ 2:\ assets:checking
Amount\ \ 2\ [$\-10.0]:\
Account\ 3\ (or\ .\ or\ enter\ to\ finish\ this\ transaction):\ .
2015/05/22\ supermarket
\ \ \ \ expenses:food\ \ \ \ \ \ \ \ \ \ \ \ \ $10
\ \ \ \ assets:checking\ \ \ \ \ \ \ \ $\-10.0
Save\ this\ transaction\ to\ the\ journal\ ?\ [y]:\
Saved.
Starting\ the\ next\ transaction\ (.\ or\ ctrl\-D/ctrl\-C\ to\ quit)
Date\ [2015/05/22]:\ <CTRL\-D>\ $
\f[]
.fi
.SS balancesheet .SS balancesheet
.PP .PP
Show a balance sheet. Show a balance sheet.
@ -1941,6 +1988,116 @@ Curses\-style interface, see hledger\-ui.
.SS web .SS web
.PP .PP
Web interface, see hledger\-web. Web interface, see hledger\-web.
.SH TROUBLESHOOTING
.SS Run\-time problems
.PP
Here are some issues you might encounter when you run hledger (and
remember you can also seek help from the IRC channel, mail list or bug
tracker):
.PP
\f[B]Successfully installed, but "No command \[aq]hledger\[aq]
found"\f[]
.PD 0
.P
.PD
stack and cabal install binaries into a special directory, which should
be added to your PATH environment variable.
Eg on unix\-like systems, that is ~/.local/bin and ~/.cabal/bin
respectively.
.PP
\f[B]I set a custom LEDGER_FILE, but hledger is still using the default
file\f[]
.PD 0
.P
.PD
\f[C]LEDGER_FILE\f[] should be a real environment variable, not just a
shell variable.
The command \f[C]env\ |\ grep\ LEDGER_FILE\f[] should show it.
You may need to use \f[C]export\f[].
Here\[aq]s an explanation.
.PP
\f[B]"Illegal byte sequence" or "Invalid or incomplete multibyte or wide
character" errors\f[]
.PD 0
.P
.PD
In order to handle non\-ascii letters and symbols (like £), hledger
needs an appropriate locale.
This is usually configured system\-wide; you can also configure it
temporarily.
The locale may need to be one that supports UTF\-8, if you built hledger
with GHC < 7.2 (or possibly always, I\[aq]m not sure yet).
.PP
Here\[aq]s an example of setting the locale temporarily, on ubuntu
gnu/linux:
.IP
.nf
\f[C]
$\ file\ my.journal
my.journal:\ UTF\-8\ Unicode\ text\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ <\-\ the\ file\ is\ UTF8\-encoded
$\ locale\ \-a
C
en_US.utf8\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ <\-\ a\ UTF8\-aware\ locale\ is\ available
POSIX
$\ LANG=en_US.utf8\ hledger\ \-f\ my.journal\ print\ \ \ #\ <\-\ use\ it\ for\ this\ command
\f[]
.fi
.PP
Here\[aq]s one way to set it permanently, there are probably better
ways:
.IP
.nf
\f[C]
$\ echo\ "export\ LANG=en_US.UTF\-8"\ >>~/.bash_profile
$\ bash\ \-\-login
\f[]
.fi
.PP
If we preferred to use eg \f[C]fr_FR.utf8\f[], we might have to install
that first:
.IP
.nf
\f[C]
$\ apt\-get\ install\ language\-pack\-fr
$\ locale\ \-a
C
en_US.utf8
fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
fr_LU.utf8
POSIX
$\ LANG=fr_FR.utf8\ hledger\ \-f\ my.journal\ print
\f[]
.fi
.PP
Note some platforms allow variant locale spellings, but not all (ubuntu
accepts \f[C]fr_FR.UTF8\f[], mac osx requires exactly
\f[C]fr_FR.UTF\-8\f[]).
.SS Known limitations
.PP
\f[B]Command line interface\f[]
.PP
Add\-on command options, unless they are also understood by the main
hledger executable, must be written after \f[C]\-\-\f[], like this:
\f[C]hledger\ web\ \-\-\ \-\-server\f[]
.PP
\f[B]Differences from Ledger\f[]
.PP
Not all of Ledger\[aq]s journal file syntax is supported.
See file format differences.
.PP
hledger is slower than Ledger, and uses more memory, on large data
files.
.PP
\f[B]Windows limitations\f[]
.PP
In a windows CMD window, non\-ascii characters and colours are not
supported.
.PP
In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in
hledger add.
.SH ENVIRONMENT .SH ENVIRONMENT
.PP .PP
\f[B]LEDGER_FILE\f[] sets the default journal file path. \f[B]LEDGER_FILE\f[] sets the default journal file path.
@ -1977,7 +2134,7 @@ Simon Michael <simon@joyful.com> and contributors
Copyright (C) 2007-2016 Simon Michael. Copyright (C) 2007-2016 Simon Michael.
.br .br
Released under GNU GPLv3+. Released under GNU GPL v3 or later.
.SH SEE ALSO .SH SEE ALSO
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1), hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),