;regen help, manuals

This commit is contained in:
Simon Michael 2020-07-11 08:48:40 -07:00
parent 9198449ee3
commit 4f7bee7abf
9 changed files with 560 additions and 279 deletions

View File

@ -635,6 +635,7 @@ Conditional blocks (\[dq]if blocks\[dq]) are a block of rules that are
applied only to CSV records which match certain patterns. applied only to CSV records which match certain patterns.
They are often used for customising account names based on transaction They are often used for customising account names based on transaction
descriptions. descriptions.
.SS Matching the whole record
.PP .PP
Each MATCHER can be a record matcher, which looks like this: Each MATCHER can be a record matcher, which looks like this:
.IP .IP
@ -659,6 +660,7 @@ field containing a comma will appear like two fields).
Eg, if the original record is Eg, if the original record is
\f[C]2020-01-01; \[dq]Acme, Inc.\[dq]; 1,000\f[R], the REGEX will \f[C]2020-01-01; \[dq]Acme, Inc.\[dq]; 1,000\f[R], the REGEX will
actually see \f[C]2020-01-01,Acme, Inc., 1,000\f[R]). actually see \f[C]2020-01-01,Acme, Inc., 1,000\f[R]).
.SS Matching individual fields
.PP .PP
Or, MATCHER can be a field matcher, like this: Or, MATCHER can be a field matcher, like this:
.IP .IP
@ -671,6 +673,7 @@ Or, MATCHER can be a field matcher, like this:
which matches just the content of a particular CSV field. which matches just the content of a particular CSV field.
CSVFIELD is a percent sign followed by the field\[aq]s name or column CSVFIELD is a percent sign followed by the field\[aq]s name or column
number, like \f[C]%date\f[R] or \f[C]%1\f[R]. number, like \f[C]%date\f[R] or \f[C]%1\f[R].
.SS Combining matchers
.PP .PP
A single matcher can be written on the same line as the \[dq]if\[dq]; or A single matcher can be written on the same line as the \[dq]if\[dq]; or
multiple matchers can be written on the following lines, non-indented. multiple matchers can be written on the following lines, non-indented.
@ -686,6 +689,7 @@ MATCHER
RULE RULE
\f[R] \f[R]
.fi .fi
.SS Rules applied on successful match
.PP .PP
After the patterns there should be one or more rules to apply, all After the patterns there should be one or more rules to apply, all
indented by at least one space. indented by at least one space.

View File

@ -615,7 +615,20 @@ applied only to CSV records which match certain patterns. They are
often used for customising account names based on transaction often used for customising account names based on transaction
descriptions. descriptions.
Each MATCHER can be a record matcher, which looks like this: * Menu:
* Matching the whole record::
* Matching individual fields::
* Combining matchers::
* Rules applied on successful match::

File: hledger_csv.info, Node: Matching the whole record, Next: Matching individual fields, Up: if block
2.5.1 Matching the whole record
-------------------------------
Each MATCHER can be a record matcher, which looks like this:
REGEX REGEX
@ -632,7 +645,13 @@ that a field containing a comma will appear like two fields). Eg, if
the original record is '2020-01-01; "Acme, Inc."; 1,000', the REGEX will the original record is '2020-01-01; "Acme, Inc."; 1,000', the REGEX will
actually see '2020-01-01,Acme, Inc., 1,000'). actually see '2020-01-01,Acme, Inc., 1,000').
Or, MATCHER can be a field matcher, like this: 
File: hledger_csv.info, Node: Matching individual fields, Next: Combining matchers, Prev: Matching the whole record, Up: if block
2.5.2 Matching individual fields
--------------------------------
Or, MATCHER can be a field matcher, like this:
%CSVFIELD REGEX %CSVFIELD REGEX
@ -640,7 +659,13 @@ actually see '2020-01-01,Acme, Inc., 1,000').
is a percent sign followed by the field's name or column number, like is a percent sign followed by the field's name or column number, like
'%date' or '%1'. '%date' or '%1'.
A single matcher can be written on the same line as the "if"; or 
File: hledger_csv.info, Node: Combining matchers, Next: Rules applied on successful match, Prev: Matching individual fields, Up: if block
2.5.3 Combining matchers
------------------------
A single matcher can be written on the same line as the "if"; or
multiple matchers can be written on the following lines, non-indented. multiple matchers can be written on the following lines, non-indented.
Multiple matchers are OR'd (any one of them can match), unless one Multiple matchers are OR'd (any one of them can match), unless one
begins with an '&' symbol, in which case it is AND'ed with the previous begins with an '&' symbol, in which case it is AND'ed with the previous
@ -651,7 +676,13 @@ MATCHER
& MATCHER & MATCHER
RULE RULE
After the patterns there should be one or more rules to apply, all 
File: hledger_csv.info, Node: Rules applied on successful match, Prev: Combining matchers, Up: if block
2.5.4 Rules applied on successful match
---------------------------------------
After the patterns there should be one or more rules to apply, all
indented by at least one space. Three kinds of rule are allowed in indented by at least one space. Three kinds of rule are allowed in
conditional blocks: conditional blocks:
@ -1148,40 +1179,48 @@ Node: separator21340
Ref: #separator21475 Ref: #separator21475
Node: if block21886 Node: if block21886
Ref: #if-block22011 Ref: #if-block22011
Node: if table24287 Node: Matching the whole record22412
Ref: #if-table24406 Ref: #matching-the-whole-record22587
Node: end26144 Node: Matching individual fields23391
Ref: #end26256 Ref: #matching-individual-fields23595
Node: date-format26480 Node: Combining matchers23819
Ref: #date-format26612 Ref: #combining-matchers24015
Node: newest-first27361 Node: Rules applied on successful match24328
Ref: #newest-first27499 Ref: #rules-applied-on-successful-match24519
Node: include28182 Node: if table25173
Ref: #include28313 Ref: #if-table25292
Node: balance-type28757 Node: end27030
Ref: #balance-type28877 Ref: #end27142
Node: TIPS29577 Node: date-format27366
Ref: #tips29659 Ref: #date-format27498
Node: Rapid feedback29915 Node: newest-first28247
Ref: #rapid-feedback30032 Ref: #newest-first28385
Node: Valid CSV30492 Node: include29068
Ref: #valid-csv30622 Ref: #include29199
Node: File Extension30814 Node: balance-type29643
Ref: #file-extension30966 Ref: #balance-type29763
Node: Reading multiple CSV files31376 Node: TIPS30463
Ref: #reading-multiple-csv-files31561 Ref: #tips30545
Node: Valid transactions31802 Node: Rapid feedback30801
Ref: #valid-transactions31980 Ref: #rapid-feedback30918
Node: Deduplicating importing32608 Node: Valid CSV31378
Ref: #deduplicating-importing32787 Ref: #valid-csv31508
Node: Setting amounts33820 Node: File Extension31700
Ref: #setting-amounts33989 Ref: #file-extension31852
Node: Setting currency/commodity34976 Node: Reading multiple CSV files32262
Ref: #setting-currencycommodity35168 Ref: #reading-multiple-csv-files32447
Node: Referencing other fields35971 Node: Valid transactions32688
Ref: #referencing-other-fields36171 Ref: #valid-transactions32866
Node: How CSV rules are evaluated37068 Node: Deduplicating importing33494
Ref: #how-csv-rules-are-evaluated37241 Ref: #deduplicating-importing33673
Node: Setting amounts34706
Ref: #setting-amounts34875
Node: Setting currency/commodity35862
Ref: #setting-currencycommodity36054
Node: Referencing other fields36857
Ref: #referencing-other-fields37057
Node: How CSV rules are evaluated37954
Ref: #how-csv-rules-are-evaluated38127
 
End Tag Table End Tag Table

View File

@ -479,6 +479,7 @@ CSV RULES
only to CSV records which match certain patterns. They are often used only to CSV records which match certain patterns. They are often used
for customising account names based on transaction descriptions. for customising account names based on transaction descriptions.
Matching the whole record
Each MATCHER can be a record matcher, which looks like this: Each MATCHER can be a record matcher, which looks like this:
REGEX REGEX
@ -496,6 +497,7 @@ CSV RULES
original record is 2020-01-01; "Acme, Inc."; 1,000, the REGEX will ac- original record is 2020-01-01; "Acme, Inc."; 1,000, the REGEX will ac-
tually see 2020-01-01,Acme, Inc., 1,000). tually see 2020-01-01,Acme, Inc., 1,000).
Matching individual fields
Or, MATCHER can be a field matcher, like this: Or, MATCHER can be a field matcher, like this:
%CSVFIELD REGEX %CSVFIELD REGEX
@ -504,6 +506,7 @@ CSV RULES
a percent sign followed by the field's name or column number, like a percent sign followed by the field's name or column number, like
%date or %1. %date or %1.
Combining matchers
A single matcher can be written on the same line as the "if"; or multi- A single matcher can be written on the same line as the "if"; or multi-
ple matchers can be written on the following lines, non-indented. Mul- ple matchers can be written on the following lines, non-indented. Mul-
tiple matchers are OR'd (any one of them can match), unless one begins tiple matchers are OR'd (any one of them can match), unless one begins
@ -514,6 +517,7 @@ CSV RULES
& MATCHER & MATCHER
RULE RULE
Rules applied on successful match
After the patterns there should be one or more rules to apply, all in- After the patterns there should be one or more rules to apply, all in-
dented by at least one space. Three kinds of rule are allowed in con- dented by at least one space. Three kinds of rule are allowed in con-
ditional blocks: ditional blocks:

View File

@ -13,11 +13,11 @@ subaccounts), from the point of view of that account. Each line shows:
- the account's historical running balance (including balance from - the account's historical running balance (including balance from
transactions before the report start date). transactions before the report start date).
This is different from register, which shows individual postings. With With aregister, each line represents a whole transaction - as in
aregister, each line represents a whole transaction - as in hledger-ui, hledger-ui, hledger-web, and your bank statement. By contrast, the
hledger-web, and your bank statement. You might prefer aregister for register command shows individual postings, across all accounts. You
reconciling with real-world asset/liability accounts, and register for might prefer aregister for reconciling with real-world asset/liability
reviewing detailed revenues/expenses. accounts, and register for reviewing detailed revenues/expenses.
An account must be specified as the first argument, which should be the An account must be specified as the first argument, which should be the
full account name or an account pattern (regular expression). aregister full account name or an account pattern (regular expression). aregister

View File

@ -292,10 +292,6 @@ Balance changes in 2008:
(Average is rounded to the dollar here since all journal amounts are) (Average is rounded to the dollar here since all journal amounts are)
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
The --transpose flag can be used to exchange the rows and columns of a The --transpose flag can be used to exchange the rows and columns of a
multicolumn report. multicolumn report.

View File

@ -1,8 +1,15 @@
tags tags
List all the tag names used in the journal. With a TAGREGEX argument, List the unique tag names used in the journal. With a TAGREGEX argument,
only tag names matching the regular expression (case insensitive) are only tag names matching the regular expression (case insensitive) are
shown. With QUERY arguments, only transactions matching the query are shown. With QUERY arguments, only transactions matching the query are
considered. With --values flag, the tags' unique values are listed considered.
instead.
With the --values flag, the tags' unique values are listed instead.
With --parsed flag, all tags or values are shown in the order they are
parsed from the input data, including duplicates.
With -E/--empty, any blank/empty values will also be shown, otherwise
they are omitted.
_FLAGS _FLAGS

View File

@ -2510,6 +2510,84 @@ Date [2015/05/22]: <CTRL-D> $
.PP .PP
On Microsoft Windows, the add command makes sure that no part of the On Microsoft Windows, the add command makes sure that no part of the
file path ends with a period, as that would cause problems (#1056). file path ends with a period, as that would cause problems (#1056).
.SS aregister
.PP
aregister, areg
.PD 0
.P
.PD
Show transactions affecting a particular account, and the account\[aq]s
running balance.
.PP
\f[C]aregister\f[R] shows the transactions affecting a particular
account (and its subaccounts), from the point of view of that account.
Each line shows:
.IP \[bu] 2
the transaction\[aq]s (or posting\[aq]s, see below) date
.IP \[bu] 2
the names of the other account(s) involved
.IP \[bu] 2
the net change to this account\[aq]s balance
.IP \[bu] 2
the account\[aq]s historical running balance (including balance from
transactions before the report start date).
.PP
With \f[C]aregister\f[R], each line represents a whole transaction - as
in hledger-ui, hledger-web, and your bank statement.
By contrast, the \f[C]register\f[R] command shows individual postings,
across all accounts.
You might prefer \f[C]aregister\f[R] for reconciling with real-world
asset/liability accounts, and \f[C]register\f[R] for reviewing detailed
revenues/expenses.
.PP
An account must be specified as the first argument, which should be the
full account name or an account pattern (regular expression).
aregister will show transactions in this account (the first one matched)
and any of its subaccounts.
.PP
Any additional arguments form a query which will filter the transactions
shown.
.PP
Transactions making a net change of zero are not shown by default; add
the \f[C]-E/--empty\f[R] flag to show them.
.SS aregister and custom posting dates
.PP
Transactions whose date is outside the report period can still be shown,
if they have a posting to this account dated inside the report period.
(And in this case it\[aq]s the posting date that is shown.) This ensures
that \f[C]aregister\f[R] can show an accurate historical running
balance, matching the one shown by \f[C]register -H\f[R] with the same
arguments.
.PP
To filter strictly by transaction date instead, add the
\f[C]--txn-dates\f[R] flag.
If you use this flag and some of your postings have custom dates,
it\[aq]s probably best to assume the running balance is wrong.
.SS Output format
.PP
This command also supports the output destination and output format
options The output formats supported are \f[C]txt\f[R], \f[C]csv\f[R],
and \f[C]json\f[R].
.PP
Examples:
.PP
Show all transactions and historical running balance in the first
account whose name contains \[dq]checking\[dq]:
.IP
.nf
\f[C]
$ hledger areg checking
\f[R]
.fi
.PP
Show transactions and historical running balance in all asset accounts
during july:
.IP
.nf
\f[C]
$ hledger areg assets date:jul
\f[R]
.fi
.SS balance .SS balance
.PP .PP
balance, bal, b balance, bal, b
@ -2876,10 +2954,6 @@ Balance changes in 2008:
\f[R] \f[R]
.fi .fi
.PP .PP
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
.PP
The \f[C]--transpose\f[R] flag can be used to exchange the rows and The \f[C]--transpose\f[R] flag can be used to exchange the rows and
columns of a multicolumn report. columns of a multicolumn report.
.PP .PP
@ -4334,12 +4408,19 @@ tags
.PD 0 .PD 0
.P .P
.PD .PD
List all the tag names used in the journal. List the unique tag names used in the journal.
With a TAGREGEX argument, only tag names matching the regular expression With a TAGREGEX argument, only tag names matching the regular expression
(case insensitive) are shown. (case insensitive) are shown.
With QUERY arguments, only transactions matching the query are With QUERY arguments, only transactions matching the query are
considered. considered.
With --values flag, the tags\[aq] unique values are listed instead. .PP
With the --values flag, the tags\[aq] unique values are listed instead.
.PP
With --parsed flag, all tags or values are shown in the order they are
parsed from the input data, including duplicates.
.PP
With -E/--empty, any blank/empty values will also be shown, otherwise
they are omitted.
.SS test .SS test
.PP .PP
test test

View File

@ -1896,6 +1896,8 @@ detailed command help.
* accounts:: * accounts::
* activity:: * activity::
* add:: * add::
* aregister::
* aregister and custom posting dates::
* balance:: * balance::
* balancesheet:: * balancesheet::
* balancesheetequity:: * balancesheetequity::
@ -1977,7 +1979,7 @@ $ hledger activity --quarterly
2008-10-01 ** 2008-10-01 **
 
File: hledger.info, Node: add, Next: balance, Prev: activity, Up: COMMANDS File: hledger.info, Node: add, Next: aregister, Prev: activity, Up: COMMANDS
3.3 add 3.3 add
======= =======
@ -2048,9 +2050,84 @@ Date [2015/05/22]: <CTRL-D> $
file path ends with a period, as that would cause problems (#1056). file path ends with a period, as that would cause problems (#1056).
 
File: hledger.info, Node: balance, Next: balancesheet, Prev: add, Up: COMMANDS File: hledger.info, Node: aregister, Next: aregister and custom posting dates, Prev: add, Up: COMMANDS
3.4 balance 3.4 aregister
=============
aregister, areg
Show transactions affecting a particular account, and the account's
running balance.
'aregister' shows the transactions affecting a particular account
(and its subaccounts), from the point of view of that account. Each
line shows:
* the transaction's (or posting's, see below) date
* the names of the other account(s) involved
* the net change to this account's balance
* the account's historical running balance (including balance from
transactions before the report start date).
With 'aregister', each line represents a whole transaction - as in
hledger-ui, hledger-web, and your bank statement. By contrast, the
'register' command shows individual postings, across all accounts. You
might prefer 'aregister' for reconciling with real-world asset/liability
accounts, and 'register' for reviewing detailed revenues/expenses.
An account must be specified as the first argument, which should be
the full account name or an account pattern (regular expression).
aregister will show transactions in this account (the first one matched)
and any of its subaccounts.
Any additional arguments form a query which will filter the
transactions shown.
Transactions making a net change of zero are not shown by default;
add the '-E/--empty' flag to show them.

File: hledger.info, Node: aregister and custom posting dates, Next: balance, Prev: aregister, Up: COMMANDS
3.5 aregister and custom posting dates
======================================
Transactions whose date is outside the report period can still be shown,
if they have a posting to this account dated inside the report period.
(And in this case it's the posting date that is shown.) This ensures
that 'aregister' can show an accurate historical running balance,
matching the one shown by 'register -H' with the same arguments.
To filter strictly by transaction date instead, add the '--txn-dates'
flag. If you use this flag and some of your postings have custom dates,
it's probably best to assume the running balance is wrong.
* Menu:
* Output format::
3.5.1 Output format
-------------------
This command also supports the output destination and output format
options The output formats supported are 'txt', 'csv', and 'json'.
Examples:
Show all transactions and historical running balance in the first
account whose name contains "checking":
$ hledger areg checking
Show transactions and historical running balance in all asset
accounts during july:
$ hledger areg assets date:jul

File: hledger.info, Node: balance, Next: balancesheet, Prev: aregister and custom posting dates, Up: COMMANDS
3.6 balance
=========== ===========
balance, bal, b balance, bal, b
@ -2093,7 +2170,7 @@ is used to ensure this (more below).
 
File: hledger.info, Node: Classic balance report, Next: Customising the classic balance report, Up: balance File: hledger.info, Node: Classic balance report, Next: Customising the classic balance report, Up: balance
3.4.1 Classic balance report 3.6.1 Classic balance report
---------------------------- ----------------------------
This is the original balance report, as found in Ledger. It usually This is the original balance report, as found in Ledger. It usually
@ -2141,7 +2218,7 @@ $ hledger balance -p 2008/6 expenses --no-total
 
File: hledger.info, Node: Customising the classic balance report, Next: Colour support, Prev: Classic balance report, Up: balance File: hledger.info, Node: Customising the classic balance report, Next: Colour support, Prev: Classic balance report, Up: balance
3.4.2 Customising the classic balance report 3.6.2 Customising the classic balance report
-------------------------------------------- --------------------------------------------
You can customise the layout of classic balance reports with '--format You can customise the layout of classic balance reports with '--format
@ -2203,7 +2280,7 @@ may be needed to get pleasing results.
 
File: hledger.info, Node: Colour support, Next: Flat mode, Prev: Customising the classic balance report, Up: balance File: hledger.info, Node: Colour support, Next: Flat mode, Prev: Customising the classic balance report, Up: balance
3.4.3 Colour support 3.6.3 Colour support
-------------------- --------------------
The balance command shows negative amounts in red, if: The balance command shows negative amounts in red, if:
@ -2214,7 +2291,7 @@ The balance command shows negative amounts in red, if:
 
File: hledger.info, Node: Flat mode, Next: Depth limited balance reports, Prev: Colour support, Up: balance File: hledger.info, Node: Flat mode, Next: Depth limited balance reports, Prev: Colour support, Up: balance
3.4.4 Flat mode 3.6.4 Flat mode
--------------- ---------------
To see a flat list instead of the default hierarchical display, use To see a flat list instead of the default hierarchical display, use
@ -2230,7 +2307,7 @@ $ hledger balance -p 2008/6 expenses -N --flat --drop 1
 
File: hledger.info, Node: Depth limited balance reports, Next: Percentages, Prev: Flat mode, Up: balance File: hledger.info, Node: Depth limited balance reports, Next: Percentages, Prev: Flat mode, Up: balance
3.4.5 Depth limited balance reports 3.6.5 Depth limited balance reports
----------------------------------- -----------------------------------
With '--depth N' or 'depth:N' or just '-N', balance reports show With '--depth N' or 'depth:N' or just '-N', balance reports show
@ -2249,7 +2326,7 @@ show inclusive balances at the depth limit.
 
File: hledger.info, Node: Percentages, Next: Multicolumn balance report, Prev: Depth limited balance reports, Up: balance File: hledger.info, Node: Percentages, Next: Multicolumn balance report, Prev: Depth limited balance reports, Up: balance
3.4.6 Percentages 3.6.6 Percentages
----------------- -----------------
With '-%' or '--percent', balance reports show each account's value With '-%' or '--percent', balance reports show each account's value
@ -2281,7 +2358,7 @@ to use '-V' or '-B' to coerce the report into using a single commodity.
 
File: hledger.info, Node: Multicolumn balance report, Next: Budget report, Prev: Percentages, Up: balance File: hledger.info, Node: Multicolumn balance report, Next: Budget report, Prev: Percentages, Up: balance
3.4.7 Multicolumn balance report 3.6.7 Multicolumn balance report
-------------------------------- --------------------------------
Multicolumn or tabular balance reports are a very useful hledger Multicolumn or tabular balance reports are a very useful hledger
@ -2386,10 +2463,6 @@ Balance changes in 2008:
(Average is rounded to the dollar here since all journal amounts are) (Average is rounded to the dollar here since all journal amounts are)
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
The '--transpose' flag can be used to exchange the rows and columns The '--transpose' flag can be used to exchange the rows and columns
of a multicolumn report. of a multicolumn report.
@ -2406,7 +2479,7 @@ bal -D | less -RS'.
 
File: hledger.info, Node: Budget report, Next: , Prev: Multicolumn balance report, Up: balance File: hledger.info, Node: Budget report, Next: , Prev: Multicolumn balance report, Up: balance
3.4.8 Budget report 3.6.8 Budget report
------------------- -------------------
With '--budget', extra columns are displayed showing budget goals for With '--budget', extra columns are displayed showing budget goals for
@ -2529,7 +2602,7 @@ Budget performance in 2017/11/01-2017/12/31:
 
File: hledger.info, Node: Nested budgets, Up: Budget report File: hledger.info, Node: Nested budgets, Up: Budget report
3.4.8.1 Nested budgets 3.6.8.1 Nested budgets
...................... ......................
You can add budgets to any account in your account hierarchy. If you You can add budgets to any account in your account hierarchy. If you
@ -2614,7 +2687,7 @@ Budget performance in 2019/01:
----------------------------------------++------------------------------- ----------------------------------------++-------------------------------
|| 0 [ 0] || 0 [ 0]
3.4.9 Output format 3.6.9 Output format
------------------- -------------------
This command also supports the output destination and output format This command also supports the output destination and output format
@ -2624,7 +2697,7 @@ non-budget reports only) 'html', and (experimental) 'json'.
 
File: hledger.info, Node: balancesheet, Next: balancesheetequity, Prev: balance, Up: COMMANDS File: hledger.info, Node: balancesheet, Next: balancesheetequity, Prev: balance, Up: COMMANDS
3.5 balancesheet 3.7 balancesheet
================ ================
balancesheet, bs balancesheet, bs
@ -2674,7 +2747,7 @@ options The output formats supported are 'txt', 'csv', 'html', and
 
File: hledger.info, Node: balancesheetequity, Next: cashflow, Prev: balancesheet, Up: COMMANDS File: hledger.info, Node: balancesheetequity, Next: cashflow, Prev: balancesheet, Up: COMMANDS
3.6 balancesheetequity 3.8 balancesheetequity
====================== ======================
balancesheetequity, bse balancesheetequity, bse
@ -2714,7 +2787,7 @@ options The output formats supported are 'txt', 'csv', 'html', and
 
File: hledger.info, Node: cashflow, Next: check-dates, Prev: balancesheetequity, Up: COMMANDS File: hledger.info, Node: cashflow, Next: check-dates, Prev: balancesheetequity, Up: COMMANDS
3.7 cashflow 3.9 cashflow
============ ============
cashflow, cf cashflow, cf
@ -2754,8 +2827,8 @@ options The output formats supported are 'txt', 'csv', 'html', and
 
File: hledger.info, Node: check-dates, Next: check-dupes, Prev: cashflow, Up: COMMANDS File: hledger.info, Node: check-dates, Next: check-dupes, Prev: cashflow, Up: COMMANDS
3.8 check-dates 3.10 check-dates
=============== ================
check-dates check-dates
Check that transactions are sorted by increasing date. With -date2, Check that transactions are sorted by increasing date. With -date2,
@ -2766,8 +2839,8 @@ Reads the default journal file, or another specified with -f.
 
File: hledger.info, Node: check-dupes, Next: close, Prev: check-dates, Up: COMMANDS File: hledger.info, Node: check-dupes, Next: close, Prev: check-dates, Up: COMMANDS
3.9 check-dupes 3.11 check-dupes
=============== ================
check-dupes check-dupes
Reports account names having the same leaf but different prefixes. In Reports account names having the same leaf but different prefixes. In
@ -2779,7 +2852,7 @@ the default journal file, or another specified as an argument.
 
File: hledger.info, Node: close, Next: codes, Prev: check-dupes, Up: COMMANDS File: hledger.info, Node: close, Next: codes, Prev: check-dupes, Up: COMMANDS
3.10 close 3.12 close
========== ==========
close, equity close, equity
@ -2819,7 +2892,7 @@ you have many foreign currency or investment transactions.
 
File: hledger.info, Node: close usage, Up: close File: hledger.info, Node: close usage, Up: close
3.10.1 close usage 3.12.1 close usage
------------------ ------------------
If you split your journal files by time (eg yearly), you will typically If you split your journal files by time (eg yearly), you will typically
@ -2890,7 +2963,7 @@ breaking balance assertions:
 
File: hledger.info, Node: codes, Next: commodities, Prev: close, Up: COMMANDS File: hledger.info, Node: codes, Next: commodities, Prev: close, Up: COMMANDS
3.11 codes 3.13 codes
========== ==========
codes codes
@ -2936,7 +3009,7 @@ $ hledger codes -E
 
File: hledger.info, Node: commodities, Next: descriptions, Prev: codes, Up: COMMANDS File: hledger.info, Node: commodities, Next: descriptions, Prev: codes, Up: COMMANDS
3.12 commodities 3.14 commodities
================ ================
commodities commodities
@ -2945,7 +3018,7 @@ List all commodity/currency symbols used or declared in the journal.
 
File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: COMMANDS File: hledger.info, Node: descriptions, Next: diff, Prev: commodities, Up: COMMANDS
3.13 descriptions 3.15 descriptions
================= =================
descriptions descriptions
@ -2965,7 +3038,7 @@ Person A
 
File: hledger.info, Node: diff, Next: files, Prev: descriptions, Up: COMMANDS File: hledger.info, Node: diff, Next: files, Prev: descriptions, Up: COMMANDS
3.14 diff 3.16 diff
========= =========
diff diff
@ -3000,7 +3073,7 @@ These transactions are in the second file only:
 
File: hledger.info, Node: files, Next: help, Prev: diff, Up: COMMANDS File: hledger.info, Node: files, Next: help, Prev: diff, Up: COMMANDS
3.15 files 3.17 files
========== ==========
files files
@ -3010,7 +3083,7 @@ file names matching the regular expression (case sensitive) are shown.
 
File: hledger.info, Node: help, Next: import, Prev: files, Up: COMMANDS File: hledger.info, Node: help, Next: import, Prev: files, Up: COMMANDS
3.16 help 3.18 help
========= =========
help help
@ -3050,7 +3123,7 @@ DESCRIPTION
 
File: hledger.info, Node: import, Next: incomestatement, Prev: help, Up: COMMANDS File: hledger.info, Node: import, Next: incomestatement, Prev: help, Up: COMMANDS
3.17 import 3.19 import
=========== ===========
import import
@ -3079,7 +3152,7 @@ $ hledger import --dry ... | hledger -f- print unknown --ignore-assertions
 
File: hledger.info, Node: Importing balance assignments, Up: import File: hledger.info, Node: Importing balance assignments, Up: import
3.17.1 Importing balance assignments 3.19.1 Importing balance assignments
------------------------------------ ------------------------------------
Entries added by import will have their posting amounts made explicit Entries added by import will have their posting amounts made explicit
@ -3098,7 +3171,7 @@ please test it and send a pull request.)
 
File: hledger.info, Node: incomestatement, Next: notes, Prev: import, Up: COMMANDS File: hledger.info, Node: incomestatement, Next: notes, Prev: import, Up: COMMANDS
3.18 incomestatement 3.20 incomestatement
==================== ====================
incomestatement, is incomestatement, is
@ -3147,7 +3220,7 @@ options The output formats supported are 'txt', 'csv', 'html', and
 
File: hledger.info, Node: notes, Next: payees, Prev: incomestatement, Up: COMMANDS File: hledger.info, Node: notes, Next: payees, Prev: incomestatement, Up: COMMANDS
3.19 notes 3.21 notes
========== ==========
notes notes
@ -3167,7 +3240,7 @@ Snacks
 
File: hledger.info, Node: payees, Next: prices, Prev: notes, Up: COMMANDS File: hledger.info, Node: payees, Next: prices, Prev: notes, Up: COMMANDS
3.20 payees 3.22 payees
=========== ===========
payees payees
@ -3189,7 +3262,7 @@ Person A
 
File: hledger.info, Node: prices, Next: print, Prev: payees, Up: COMMANDS File: hledger.info, Node: prices, Next: print, Prev: payees, Up: COMMANDS
3.21 prices 3.23 prices
=========== ===========
prices prices
@ -3202,7 +3275,7 @@ Price amounts are always displayed with their full precision.
 
File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: COMMANDS File: hledger.info, Node: print, Next: print-unique, Prev: prices, Up: COMMANDS
3.22 print 3.24 print
========== ==========
print, txns, p print, txns, p
@ -3311,7 +3384,7 @@ $ hledger print -Ocsv
 
File: hledger.info, Node: print-unique, Next: register, Prev: print, Up: COMMANDS File: hledger.info, Node: print-unique, Next: register, Prev: print, Up: COMMANDS
3.23 print-unique 3.25 print-unique
================= =================
print-unique print-unique
@ -3332,7 +3405,7 @@ $ LEDGER_FILE=unique.journal hledger print-unique
 
File: hledger.info, Node: register, Next: register-match, Prev: print-unique, Up: COMMANDS File: hledger.info, Node: register, Next: register-match, Prev: print-unique, Up: COMMANDS
3.24 register 3.26 register
============= =============
register, reg, r register, reg, r
@ -3422,7 +3495,7 @@ length and comparable to the others in the report.
 
File: hledger.info, Node: Custom register output, Up: register File: hledger.info, Node: Custom register output, Up: register
3.24.1 Custom register output 3.26.1 Custom register output
----------------------------- -----------------------------
register uses the full terminal width by default, except on windows. register uses the full terminal width by default, except on windows.
@ -3454,7 +3527,7 @@ options The output formats supported are 'txt', 'csv', and
 
File: hledger.info, Node: register-match, Next: rewrite, Prev: register, Up: COMMANDS File: hledger.info, Node: register-match, Next: rewrite, Prev: register, Up: COMMANDS
3.25 register-match 3.27 register-match
=================== ===================
register-match register-match
@ -3467,7 +3540,7 @@ ledger-autosync detect already-seen transactions when importing.
 
File: hledger.info, Node: rewrite, Next: roi, Prev: register-match, Up: COMMANDS File: hledger.info, Node: rewrite, Next: roi, Prev: register-match, Up: COMMANDS
3.26 rewrite 3.28 rewrite
============ ============
rewrite rewrite
@ -3519,7 +3592,7 @@ commodity.
 
File: hledger.info, Node: Re-write rules in a file, Up: rewrite File: hledger.info, Node: Re-write rules in a file, Up: rewrite
3.26.1 Re-write rules in a file 3.28.1 Re-write rules in a file
------------------------------- -------------------------------
During the run this tool will execute so called "Automated Transactions" During the run this tool will execute so called "Automated Transactions"
@ -3562,7 +3635,7 @@ postings.
 
File: hledger.info, Node: Diff output format, Next: rewrite vs print --auto, Up: Re-write rules in a file File: hledger.info, Node: Diff output format, Next: rewrite vs print --auto, Up: Re-write rules in a file
3.26.1.1 Diff output format 3.28.1.1 Diff output format
........................... ...........................
To use this tool for batch modification of your journal files you may To use this tool for batch modification of your journal files you may
@ -3603,7 +3676,7 @@ output from 'hledger print'.
 
File: hledger.info, Node: rewrite vs print --auto, Prev: Diff output format, Up: Re-write rules in a file File: hledger.info, Node: rewrite vs print --auto, Prev: Diff output format, Up: Re-write rules in a file
3.26.1.2 rewrite vs. print -auto 3.28.1.2 rewrite vs. print -auto
................................ ................................
This command predates print -auto, and currently does much the same This command predates print -auto, and currently does much the same
@ -3623,7 +3696,7 @@ thing, but with these differences:
 
File: hledger.info, Node: roi, Next: stats, Prev: rewrite, Up: COMMANDS File: hledger.info, Node: roi, Next: stats, Prev: rewrite, Up: COMMANDS
3.27 roi 3.29 roi
======== ========
roi roi
@ -3651,7 +3724,7 @@ regardless of the length of reporting interval.
 
File: hledger.info, Node: stats, Next: tags, Prev: roi, Up: COMMANDS File: hledger.info, Node: stats, Next: tags, Prev: roi, Up: COMMANDS
3.28 stats 3.30 stats
========== ==========
stats stats
@ -3682,20 +3755,27 @@ selection.
 
File: hledger.info, Node: tags, Next: test, Prev: stats, Up: COMMANDS File: hledger.info, Node: tags, Next: test, Prev: stats, Up: COMMANDS
3.29 tags 3.31 tags
========= =========
tags tags
List all the tag names used in the journal. With a TAGREGEX argument, List the unique tag names used in the journal. With a TAGREGEX
only tag names matching the regular expression (case insensitive) are argument, only tag names matching the regular expression (case
shown. With QUERY arguments, only transactions matching the query are insensitive) are shown. With QUERY arguments, only transactions
considered. With -values flag, the tags' unique values are listed matching the query are considered.
instead.
With the -values flag, the tags' unique values are listed instead.
With -parsed flag, all tags or values are shown in the order they are
parsed from the input data, including duplicates.
With -E/-empty, any blank/empty values will also be shown, otherwise
they are omitted.
 
File: hledger.info, Node: test, Next: Add-on commands, Prev: tags, Up: COMMANDS File: hledger.info, Node: test, Next: Add-on commands, Prev: tags, Up: COMMANDS
3.30 test 3.32 test
========= =========
test test
@ -3722,7 +3802,7 @@ $ hledger test -- -pData.Amount --color=never
 
File: hledger.info, Node: Add-on commands, Prev: test, Up: COMMANDS File: hledger.info, Node: Add-on commands, Prev: test, Up: COMMANDS
3.31 Add-on commands 3.33 Add-on commands
==================== ====================
hledger also searches for external add-on commands, and will include hledger also searches for external add-on commands, and will include
@ -3763,7 +3843,7 @@ interfaces. These are maintained and released along with hledger:
 
File: hledger.info, Node: ui, Next: web, Up: Add-on commands File: hledger.info, Node: ui, Next: web, Up: Add-on commands
3.31.1 ui 3.33.1 ui
--------- ---------
hledger-ui provides an efficient terminal interface. hledger-ui provides an efficient terminal interface.
@ -3771,7 +3851,7 @@ hledger-ui provides an efficient terminal interface.
 
File: hledger.info, Node: web, Next: iadd, Prev: ui, Up: Add-on commands File: hledger.info, Node: web, Next: iadd, Prev: ui, Up: Add-on commands
3.31.2 web 3.33.2 web
---------- ----------
hledger-web provides a simple web interface. hledger-web provides a simple web interface.
@ -3781,7 +3861,7 @@ hledger-web provides a simple web interface.
 
File: hledger.info, Node: iadd, Next: interest, Prev: web, Up: Add-on commands File: hledger.info, Node: iadd, Next: interest, Prev: web, Up: Add-on commands
3.31.3 iadd 3.33.3 iadd
----------- -----------
hledger-iadd is a more interactive, terminal UI replacement for the add hledger-iadd is a more interactive, terminal UI replacement for the add
@ -3790,7 +3870,7 @@ command.
 
File: hledger.info, Node: interest, Prev: iadd, Up: Add-on commands File: hledger.info, Node: interest, Prev: iadd, Up: Add-on commands
3.31.4 interest 3.33.4 interest
--------------- ---------------
hledger-interest generates interest transactions for an account hledger-interest generates interest transactions for an account
@ -4027,115 +4107,120 @@ Node: Effect of valuation on reports58740
Ref: #effect-of-valuation-on-reports58928 Ref: #effect-of-valuation-on-reports58928
Node: COMMANDS64449 Node: COMMANDS64449
Ref: #commands64557 Ref: #commands64557
Node: accounts65651 Node: accounts65704
Ref: #accounts65749 Ref: #accounts65802
Node: activity66448 Node: activity66501
Ref: #activity66558 Ref: #activity66611
Node: add66941 Node: add66994
Ref: #add67040 Ref: #add67095
Node: balance69833 Node: aregister69888
Ref: #balance69944 Ref: #aregister70027
Node: Classic balance report71402 Node: aregister and custom posting dates71333
Ref: #classic-balance-report71575 Ref: #aregister-and-custom-posting-dates71526
Node: Customising the classic balance report73009 Ref: #output-format-172147
Ref: #customising-the-classic-balance-report73237 Node: balance72552
Node: Colour support75313 Ref: #balance72694
Ref: #colour-support75480 Node: Classic balance report74152
Node: Flat mode75653 Ref: #classic-balance-report74325
Ref: #flat-mode75801 Node: Customising the classic balance report75759
Node: Depth limited balance reports76214 Ref: #customising-the-classic-balance-report75987
Ref: #depth-limited-balance-reports76399 Node: Colour support78063
Node: Percentages76855 Ref: #colour-support78230
Ref: #percentages77021 Node: Flat mode78403
Node: Multicolumn balance report78158 Ref: #flat-mode78551
Ref: #multicolumn-balance-report78338 Node: Depth limited balance reports78964
Node: Budget report84076 Ref: #depth-limited-balance-reports79149
Ref: #budget-report84219 Node: Percentages79605
Node: Nested budgets89485 Ref: #percentages79771
Ref: #nested-budgets89597 Node: Multicolumn balance report80908
Ref: #output-format-193078 Ref: #multicolumn-balance-report81088
Node: balancesheet93275 Node: Budget report86673
Ref: #balancesheet93411 Ref: #budget-report86816
Node: balancesheetequity94877 Node: Nested budgets92082
Ref: #balancesheetequity95026 Ref: #nested-budgets92194
Node: cashflow95749 Ref: #output-format-295675
Ref: #cashflow95877 Node: balancesheet95872
Node: check-dates97056 Ref: #balancesheet96008
Ref: #check-dates97183 Node: balancesheetequity97474
Node: check-dupes97462 Ref: #balancesheetequity97623
Ref: #check-dupes97586 Node: cashflow98346
Node: close97879 Ref: #cashflow98474
Ref: #close97987 Node: check-dates99653
Node: close usage99509 Ref: #check-dates99782
Ref: #close-usage99602 Node: check-dupes100061
Node: codes102415 Ref: #check-dupes100187
Ref: #codes102523 Node: close100480
Node: commodities103235 Ref: #close100588
Ref: #commodities103362 Node: close usage102110
Node: descriptions103444 Ref: #close-usage102203
Ref: #descriptions103572 Node: codes105016
Node: diff103876 Ref: #codes105124
Ref: #diff103982 Node: commodities105836
Node: files105029 Ref: #commodities105963
Ref: #files105129 Node: descriptions106045
Node: help105276 Ref: #descriptions106173
Ref: #help105376 Node: diff106477
Node: import106457 Ref: #diff106583
Ref: #import106571 Node: files107630
Node: Importing balance assignments107464 Ref: #files107730
Ref: #importing-balance-assignments107612 Node: help107877
Node: incomestatement108261 Ref: #help107977
Ref: #incomestatement108394 Node: import109058
Node: notes109881 Ref: #import109172
Ref: #notes109994 Node: Importing balance assignments110065
Node: payees110362 Ref: #importing-balance-assignments110213
Ref: #payees110468 Node: incomestatement110862
Node: prices110888 Ref: #incomestatement110995
Ref: #prices110994 Node: notes112482
Node: print111335 Ref: #notes112595
Ref: #print111445 Node: payees112963
Node: print-unique116241 Ref: #payees113069
Ref: #print-unique116367 Node: prices113489
Node: register116652 Ref: #prices113595
Ref: #register116779 Node: print113936
Node: Custom register output120951 Ref: #print114046
Ref: #custom-register-output121080 Node: print-unique118842
Node: register-match122417 Ref: #print-unique118968
Ref: #register-match122551 Node: register119253
Node: rewrite122902 Ref: #register119380
Ref: #rewrite123017 Node: Custom register output123552
Node: Re-write rules in a file124872 Ref: #custom-register-output123681
Ref: #re-write-rules-in-a-file125006 Node: register-match125018
Node: Diff output format126216 Ref: #register-match125152
Ref: #diff-output-format126385 Node: rewrite125503
Node: rewrite vs print --auto127477 Ref: #rewrite125618
Ref: #rewrite-vs.-print---auto127656 Node: Re-write rules in a file127473
Node: roi128212 Ref: #re-write-rules-in-a-file127607
Ref: #roi128310 Node: Diff output format128817
Node: stats129322 Ref: #diff-output-format128986
Ref: #stats129421 Node: rewrite vs print --auto130078
Node: tags130209 Ref: #rewrite-vs.-print---auto130257
Ref: #tags130307 Node: roi130813
Node: test130601 Ref: #roi130911
Ref: #test130709 Node: stats131923
Node: Add-on commands131456 Ref: #stats132022
Ref: #add-on-commands131573 Node: tags132810
Node: ui132916 Ref: #tags132908
Ref: #ui133004 Node: test133427
Node: web133058 Ref: #test133535
Ref: #web133161 Node: Add-on commands134282
Node: iadd133277 Ref: #add-on-commands134399
Ref: #iadd133388 Node: ui135742
Node: interest133470 Ref: #ui135830
Ref: #interest133577 Node: web135884
Node: ENVIRONMENT133817 Ref: #web135987
Ref: #environment133929 Node: iadd136103
Node: FILES134758 Ref: #iadd136214
Ref: #files-1134861 Node: interest136296
Node: LIMITATIONS135074 Ref: #interest136403
Ref: #limitations135193 Node: ENVIRONMENT136643
Node: TROUBLESHOOTING135935 Ref: #environment136755
Ref: #troubleshooting136048 Node: FILES137584
Ref: #files-1137687
Node: LIMITATIONS137900
Ref: #limitations138019
Node: TROUBLESHOOTING138761
Ref: #troubleshooting138874
 
End Tag Table End Tag Table

View File

@ -1739,6 +1739,68 @@ COMMANDS
On Microsoft Windows, the add command makes sure that no part of the On Microsoft Windows, the add command makes sure that no part of the
file path ends with a period, as that would cause problems (#1056). file path ends with a period, as that would cause problems (#1056).
aregister
aregister, areg
Show transactions affecting a particular account, and the account's
running balance.
aregister shows the transactions affecting a particular account (and
its subaccounts), from the point of view of that account. Each line
shows:
o the transaction's (or posting's, see below) date
o the names of the other account(s) involved
o the net change to this account's balance
o the account's historical running balance (including balance from
transactions before the report start date).
With aregister, each line represents a whole transaction - as in
hledger-ui, hledger-web, and your bank statement. By contrast, the
register command shows individual postings, across all accounts. You
might prefer aregister for reconciling with real-world asset/liability
accounts, and register for reviewing detailed revenues/expenses.
An account must be specified as the first argument, which should be the
full account name or an account pattern (regular expression). aregis-
ter will show transactions in this account (the first one matched) and
any of its subaccounts.
Any additional arguments form a query which will filter the transac-
tions shown.
Transactions making a net change of zero are not shown by default; add
the -E/--empty flag to show them.
aregister and custom posting dates
Transactions whose date is outside the report period can still be
shown, if they have a posting to this account dated inside the report
period. (And in this case it's the posting date that is shown.) This
ensures that aregister can show an accurate historical running balance,
matching the one shown by register -H with the same arguments.
To filter strictly by transaction date instead, add the --txn-dates
flag. If you use this flag and some of your postings have custom
dates, it's probably best to assume the running balance is wrong.
Output format
This command also supports the output destination and output format op-
tions The output formats supported are txt, csv, and json.
Examples:
Show all transactions and historical running balance in the first ac-
count whose name contains "checking":
$ hledger areg checking
Show transactions and historical running balance in all asset accounts
during july:
$ hledger areg assets date:jul
balance balance
balance, bal, b balance, bal, b
Show accounts and their balances. Show accounts and their balances.
@ -2034,10 +2096,6 @@ COMMANDS
(Average is rounded to the dollar here since all journal amounts are) (Average is rounded to the dollar here since all journal amounts are)
A limitation of multicolumn balance reports: eliding of boring parent
accounts in tree mode, as in the classic balance report, is not yet
supported.
The --transpose flag can be used to exchange the rows and columns of a The --transpose flag can be used to exchange the rows and columns of a
multicolumn report. multicolumn report.
@ -3139,23 +3197,30 @@ COMMANDS
tags tags
tags tags
List all the tag names used in the journal. With a TAGREGEX argument, List the unique tag names used in the journal. With a TAGREGEX argu-
only tag names matching the regular expression (case insensitive) are ment, only tag names matching the regular expression (case insensitive)
shown. With QUERY arguments, only transactions matching the query are are shown. With QUERY arguments, only transactions matching the query
considered. With --values flag, the tags' unique values are listed in- are considered.
stead.
With the --values flag, the tags' unique values are listed instead.
With --parsed flag, all tags or values are shown in the order they are
parsed from the input data, including duplicates.
With -E/--empty, any blank/empty values will also be shown, otherwise
they are omitted.
test test
test test
Run built-in unit tests. Run built-in unit tests.
This command runs the unit tests built in to hledger and hledger-lib, This command runs the unit tests built in to hledger and hledger-lib,
printing the results on stdout. If any test fails, the exit code will printing the results on stdout. If any test fails, the exit code will
be non-zero. be non-zero.
This is mainly used by hledger developers, but you can also use it to This is mainly used by hledger developers, but you can also use it to
sanity-check the installed hledger executable on your platform. All sanity-check the installed hledger executable on your platform. All
tests are expected to pass - if you ever see a failure, please report tests are expected to pass - if you ever see a failure, please report
as a bug! as a bug!
This command also accepts tasty test runner options, written after a -- This command also accepts tasty test runner options, written after a --
@ -3164,35 +3229,35 @@ COMMANDS
$ hledger test -- -pData.Amount --color=never $ hledger test -- -pData.Amount --color=never
For help on these, see https://github.com/feuerbach/tasty#options (-- For help on these, see https://github.com/feuerbach/tasty#options (--
--help currently doesn't show them). --help currently doesn't show them).
Add-on commands Add-on commands
hledger also searches for external add-on commands, and will include hledger also searches for external add-on commands, and will include
these in the commands list. These are programs or scripts in your PATH these in the commands list. These are programs or scripts in your PATH
whose name starts with hledger- and ends with a recognised file exten- whose name starts with hledger- and ends with a recognised file exten-
sion (currently: no extension, bat,com,exe, hs,lhs,pl,py,rb,rkt,sh). sion (currently: no extension, bat,com,exe, hs,lhs,pl,py,rb,rkt,sh).
Add-ons can be invoked like any hledger command, but there are a few Add-ons can be invoked like any hledger command, but there are a few
things to be aware of. Eg if the hledger-web add-on is installed, things to be aware of. Eg if the hledger-web add-on is installed,
o hledger -h web shows hledger's help, while hledger web -h shows o hledger -h web shows hledger's help, while hledger web -h shows
hledger-web's help. hledger-web's help.
o Flags specific to the add-on must have a preceding -- to hide them o Flags specific to the add-on must have a preceding -- to hide them
from hledger. So hledger web --serve --port 9000 will be rejected; from hledger. So hledger web --serve --port 9000 will be rejected;
you must use hledger web -- --serve --port 9000. you must use hledger web -- --serve --port 9000.
o You can always run add-ons directly if preferred: hledger-web --serve o You can always run add-ons directly if preferred: hledger-web --serve
--port 9000. --port 9000.
Add-ons are a relatively easy way to add local features or experiment Add-ons are a relatively easy way to add local features or experiment
with new ideas. They can be written in any language, but haskell with new ideas. They can be written in any language, but haskell
scripts have a big advantage: they can use the same hledger (and scripts have a big advantage: they can use the same hledger (and
haskell) library functions that built-in commands do, for command-line haskell) library functions that built-in commands do, for command-line
options, journal parsing, reporting, etc. options, journal parsing, reporting, etc.
Two important add-ons are the hledger-ui and hledger-web user inter- Two important add-ons are the hledger-ui and hledger-web user inter-
faces. These are maintained and released along with hledger: faces. These are maintained and released along with hledger:
ui ui
@ -3211,23 +3276,23 @@ COMMANDS
hledger-interest generates interest transactions for an account accord- hledger-interest generates interest transactions for an account accord-
ing to various schemes. ing to various schemes.
A few more experimental or old add-ons can be found in hledger's bin/ A few more experimental or old add-ons can be found in hledger's bin/
directory. These are typically prototypes and not guaranteed to work. directory. These are typically prototypes and not guaranteed to work.
ENVIRONMENT ENVIRONMENT
COLUMNS The screen width used by the register command. Default: the COLUMNS The screen width used by the register command. Default: the
full terminal width. full terminal width.
LEDGER_FILE The journal file path when not specified with -f. Default: LEDGER_FILE The journal file path when not specified with -f. Default:
~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-
nal). nal).
A typical value is ~/DIR/YYYY.journal, where DIR is a version-con- A typical value is ~/DIR/YYYY.journal, where DIR is a version-con-
trolled finance directory and YYYY is the current year. Or ~/DIR/cur- trolled finance directory and YYYY is the current year. Or ~/DIR/cur-
rent.journal, where current.journal is a symbolic link to YYYY.journal. rent.journal, where current.journal is a symbolic link to YYYY.journal.
On Mac computers, you can set this and other environment variables in a On Mac computers, you can set this and other environment variables in a
more thorough way that also affects applications started from the GUI more thorough way that also affects applications started from the GUI
(say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en- (say, an Emacs dock icon). Eg on MacOS Catalina I have a ~/.MacOSX/en-
vironment.plist file containing vironment.plist file containing
@ -3238,13 +3303,13 @@ ENVIRONMENT
To see the effect you may need to killall Dock, or reboot. To see the effect you may need to killall Dock, or reboot.
FILES FILES
Reads data from one or more files in hledger journal, timeclock, time- Reads data from one or more files in hledger journal, timeclock, time-
dot, or CSV format specified with -f, or $LEDGER_FILE, or dot, or CSV format specified with -f, or $LEDGER_FILE, or
$HOME/.hledger.journal (on windows, perhaps $HOME/.hledger.journal (on windows, perhaps
C:/Users/USER/.hledger.journal). C:/Users/USER/.hledger.journal).
LIMITATIONS LIMITATIONS
The need to precede addon command options with -- when invoked from The need to precede addon command options with -- when invoked from
hledger is awkward. hledger is awkward.
When input data contains non-ascii characters, a suitable system locale When input data contains non-ascii characters, a suitable system locale
@ -3260,36 +3325,36 @@ LIMITATIONS
In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger In a Cygwin/MSYS/Mintty window, the tab key is not supported in hledger
add. add.
Not all of Ledger's journal file syntax is supported. See file format Not all of Ledger's journal file syntax is supported. See file format
differences. differences.
On large data files, hledger is slower and uses more memory than On large data files, hledger is slower and uses more memory than
Ledger. Ledger.
TROUBLESHOOTING TROUBLESHOOTING
Here are some issues you might encounter when you run hledger (and re- Here are some issues you might encounter when you run hledger (and re-
member you can also seek help from the IRC channel, mail list or bug member you can also seek help from the IRC channel, mail list or bug
tracker): tracker):
Successfully installed, but "No command 'hledger' found" Successfully installed, but "No command 'hledger' found"
stack and cabal install binaries into a special directory, which should stack and cabal install binaries into a special directory, which should
be added to your PATH environment variable. Eg on unix-like systems, be added to your PATH environment variable. Eg on unix-like systems,
that is ~/.local/bin and ~/.cabal/bin respectively. that is ~/.local/bin and ~/.cabal/bin respectively.
I set a custom LEDGER_FILE, but hledger is still using the default file I set a custom LEDGER_FILE, but hledger is still using the default file
LEDGER_FILE should be a real environment variable, not just a shell LEDGER_FILE should be a real environment variable, not just a shell
variable. The command env | grep LEDGER_FILE should show it. You may variable. The command env | grep LEDGER_FILE should show it. You may
need to use export. Here's an explanation. need to use export. Here's an explanation.
Getting errors like "Illegal byte sequence" or "Invalid or incomplete Getting errors like "Illegal byte sequence" or "Invalid or incomplete
multibyte or wide character" or "commitAndReleaseBuffer: invalid argu- multibyte or wide character" or "commitAndReleaseBuffer: invalid argu-
ment (invalid character)" ment (invalid character)"
Programs compiled with GHC (hledger, haskell build tools, etc.) need to Programs compiled with GHC (hledger, haskell build tools, etc.) need to
have a UTF-8-aware locale configured in the environment, otherwise they have a UTF-8-aware locale configured in the environment, otherwise they
will fail with these kinds of errors when they encounter non-ascii will fail with these kinds of errors when they encounter non-ascii
characters. characters.
To fix it, set the LANG environment variable to some locale which sup- To fix it, set the LANG environment variable to some locale which sup-
ports UTF-8. The locale you choose must be installed on your system. ports UTF-8. The locale you choose must be installed on your system.
Here's an example of setting LANG temporarily, on Ubuntu GNU/Linux: Here's an example of setting LANG temporarily, on Ubuntu GNU/Linux:
@ -3304,8 +3369,8 @@ TROUBLESHOOTING
POSIX POSIX
$ LANG=en_US.utf8 hledger -f my.journal print # ensure it is used for this command $ LANG=en_US.utf8 hledger -f my.journal print # ensure it is used for this command
If available, C.UTF-8 will also work. If your preferred locale isn't If available, C.UTF-8 will also work. If your preferred locale isn't
listed by locale -a, you might need to install it. Eg on Ubuntu/De- listed by locale -a, you might need to install it. Eg on Ubuntu/De-
bian: bian:
$ apt-get install language-pack-fr $ apt-get install language-pack-fr
@ -3325,8 +3390,8 @@ TROUBLESHOOTING
$ echo "export LANG=en_US.utf8" >>~/.bash_profile $ echo "export LANG=en_US.utf8" >>~/.bash_profile
$ bash --login $ bash --login
Exact spelling and capitalisation may be important. Note the differ- Exact spelling and capitalisation may be important. Note the differ-
ence on MacOS (UTF-8, not utf8). Some platforms (eg ubuntu) allow ence on MacOS (UTF-8, not utf8). Some platforms (eg ubuntu) allow
variant spellings, but others (eg macos) require it to be exact: variant spellings, but others (eg macos) require it to be exact:
$ locale -a | grep -iE en_us.*utf $ locale -a | grep -iE en_us.*utf
@ -3336,7 +3401,7 @@ TROUBLESHOOTING
REPORTING BUGS REPORTING BUGS
Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel
or hledger mail list) or hledger mail list)
@ -3350,7 +3415,7 @@ COPYRIGHT
SEE ALSO SEE ALSO
hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-
dot(5), ledger(1) dot(5), ledger(1)