;doc: update manuals

This commit is contained in:
Simon Michael 2021-07-29 20:40:47 -10:00
parent 085b7d4b88
commit 4451d68a63
7 changed files with 1759 additions and 1164 deletions

View File

@ -302,12 +302,6 @@ There\[aq]s not yet any visual reminder when cost or value mode is
active; for now pressing \f[C]b\f[R] \f[C]b\f[R] \f[C]v\f[R] should
reliably reset to normal mode.
.PP
With \f[C]--watch\f[R] active, if you save an edit to the journal file
while viewing the transaction screen in cost or value mode, the
\f[C]B\f[R]/\f[C]V\f[R] keys will stop working.
To work around, press \f[C]g\f[R] to force a manual reload, or exit the
transaction screen.
.PP
\f[C]q\f[R] quits the application.
.PP
Additional screen-specific keys are described below.
@ -439,6 +433,58 @@ when you press g to reload.
Once you have fixed the problem, press g again to reload and resume
normal operation.
(Or, you can press escape to cancel the reload attempt.)
.SH TIPS
.SS Watch mode
.PP
One of hledger-ui\[aq]s best features is the auto-reloading
\f[C]--watch\f[R] mode.
With this flag, it will update the display automatically whenever
changes are saved to the data files.
.PP
This is very useful when reconciling.
A good workflow is to have your bank\[aq]s online register open in a
browser window, for reference; the journal file open in an editor
window; and hledger-ui in watch mode in a terminal window, eg:
.IP
.nf
\f[C]
$ hledger-ui --watch --register checking -C
\f[R]
.fi
.PP
As you mark things cleared in the editor, you can see the effect
immediately without having to context switch.
This leaves more mental bandwidth for your accounting.
Of course you can still interact with hledger-ui when needed, eg to
toggle cleared mode, or to explore the history.
.SS Watch mode limitations
.PP
There are situations in which it won\[aq]t work, ie the display will not
update when you save a change (because the underlying \f[C]inotify\f[R]
library does not support it).
Here are some that we know of:
.IP \[bu] 2
Certain editors: saving with \f[C]gedit\f[R], and perhaps any Gnome
application, won\[aq]t be detected (#1617).
Jetbrains IDEs, such as IDEA, also may not work (#911).
.IP \[bu] 2
Certain unusual filesystems might not be supported.
(All the usual ones on unix, mac and windows are supported.)
.PP
In such cases, the workaround is to switch to the hledger-ui window and
press \f[C]g\f[R] each time you want it to reload.
(Actually, see #1617 for another workaround, and let us know if it works
for you.)
.PP
If you leave \f[C]hledger-ui --watch\f[R] running for days, on certain
platforms (?), perhaps with many transactions in your journal (?),
perhaps with large numbers of other files present (?), you may see it
gradually using more and more memory and CPU over time, as seen in
\f[C]top\f[R] or Activity Monitor or Task Manager.
.PP
A workaround is to \f[C]q\f[R]uit and restart it, or to suspend it
(\f[C]CTRL-z\f[R]) and restart it (\f[C]fg\f[R]) if your shell supports
that.
.SH ENVIRONMENT
.PP
\f[B]COLUMNS\f[R] The screen width to use.

View File

@ -3,7 +3,7 @@ from stdin.
INFO-DIR-SECTION User Applications
START-INFO-DIR-ENTRY
* hledger-ui: (hledger-ui/hledger-ui). Terminal UI for the hledger accounting tool.
* hledger-ui: (hledger-ui). Terminal UI for the hledger accounting tool.
END-INFO-DIR-ENTRY

@ -45,6 +45,7 @@ enable "forecast mode".
* OPTIONS::
* KEYS::
* SCREENS::
* TIPS::
* ENVIRONMENT::
* FILES::
* BUGS::
@ -308,17 +309,12 @@ screen, press `/', and add `date:-7/30' to the query.
active; for now pressing `b' `b' `v' should reliably reset to normal
mode.
With `--watch' active, if you save an edit to the journal file while
viewing the transaction screen in cost or value mode, the `B'/`V' keys
will stop working. To work around, press `g' to force a manual reload,
or exit the transaction screen.
`q' quits the application.
Additional screen-specific keys are described below.

File: hledger-ui.info, Node: SCREENS, Next: ENVIRONMENT, Prev: KEYS, Up: Top
File: hledger-ui.info, Node: SCREENS, Next: TIPS, Prev: KEYS, Up: Top
3 SCREENS
*********
@ -463,9 +459,75 @@ again to reload and resume normal operation. (Or, you can press escape
to cancel the reload attempt.)

File: hledger-ui.info, Node: ENVIRONMENT, Next: FILES, Prev: SCREENS, Up: Top
File: hledger-ui.info, Node: TIPS, Next: ENVIRONMENT, Prev: SCREENS, Up: Top
4 ENVIRONMENT
4 TIPS
******
* Menu:
* Watch mode::
* Watch mode limitations::

File: hledger-ui.info, Node: Watch mode, Next: Watch mode limitations, Up: TIPS
4.1 Watch mode
==============
One of hledger-ui's best features is the auto-reloading `--watch' mode.
With this flag, it will update the display automatically whenever
changes are saved to the data files.
This is very useful when reconciling. A good workflow is to have your
bank's online register open in a browser window, for reference; the
journal file open in an editor window; and hledger-ui in watch mode in a
terminal window, eg:
$ hledger-ui --watch --register checking -C
As you mark things cleared in the editor, you can see the effect
immediately without having to context switch. This leaves more mental
bandwidth for your accounting. Of course you can still interact with
hledger-ui when needed, eg to toggle cleared mode, or to explore the
history.

File: hledger-ui.info, Node: Watch mode limitations, Prev: Watch mode, Up: TIPS
4.2 Watch mode limitations
==========================
There are situations in which it won't work, ie the display will not
update when you save a change (because the underlying `inotify' library
does not support it). Here are some that we know of:
* Certain editors: saving with `gedit', and perhaps any Gnome
application, won't be detected (#1617). Jetbrains IDEs, such as
IDEA, also may not work (#911).
* Certain unusual filesystems might not be supported. (All the usual
ones on unix, mac and windows are supported.)
In such cases, the workaround is to switch to the hledger-ui window
and press `g' each time you want it to reload. (Actually, see #1617 for
another workaround, and let us know if it works for you.)
If you leave `hledger-ui --watch' running for days, on certain
platforms (?), perhaps with many transactions in your journal (?),
perhaps with large numbers of other files present (?), you may see it
gradually using more and more memory and CPU over time, as seen in
`top' or Activity Monitor or Task Manager.
A workaround is to `q'uit and restart it, or to suspend it
(`CTRL-z') and restart it (`fg') if your shell supports that.

File: hledger-ui.info, Node: ENVIRONMENT, Next: FILES, Prev: TIPS, Up: Top
5 ENVIRONMENT
*************
*COLUMNS* The screen width to use. Default: the full terminal width.
@ -494,7 +556,7 @@ GUI (say, an Emacs dock icon). Eg on MacOS Catalina I have a

File: hledger-ui.info, Node: FILES, Next: BUGS, Prev: ENVIRONMENT, Up: Top
5 FILES
6 FILES
*******
Reads data from one or more files in hledger journal, timeclock,
@ -505,7 +567,7 @@ timedot, or CSV format specified with `-f', or `$LEDGER_FILE', or

File: hledger-ui.info, Node: BUGS, Prev: FILES, Up: Top
6 BUGS
7 BUGS
******
The need to precede options with `--' when invoked from hledger is
@ -533,26 +595,32 @@ program is restarted.

Tag Table:
Node: Top243
Node: OPTIONS1636
Ref: #options1733
Node: KEYS6128
Ref: #keys6223
Node: SCREENS10519
Ref: #screens10624
Node: Accounts screen10714
Ref: #accounts-screen10842
Node: Register screen13046
Ref: #register-screen13201
Node: Transaction screen15196
Ref: #transaction-screen15354
Node: Error screen16221
Ref: #error-screen16343
Node: ENVIRONMENT16585
Ref: #environment16699
Node: FILES17504
Ref: #files17603
Node: BUGS17816
Ref: #bugs17893
Node: Top232
Node: OPTIONS1634
Ref: #options1731
Node: KEYS6126
Ref: #keys6221
Node: SCREENS10270
Ref: #screens10368
Node: Accounts screen10458
Ref: #accounts-screen10586
Node: Register screen12790
Ref: #register-screen12945
Node: Transaction screen14940
Ref: #transaction-screen15098
Node: Error screen15965
Ref: #error-screen16087
Node: TIPS16329
Ref: #tips16428
Node: Watch mode16480
Ref: #watch-mode16597
Node: Watch mode limitations17341
Ref: #watch-mode-limitations17482
Node: ENVIRONMENT18615
Ref: #environment18726
Node: FILES19531
Ref: #files19630
Node: BUGS19843
Ref: #bugs19920

End Tag Table

View File

@ -276,55 +276,50 @@ KEYS
There's not yet any visual reminder when cost or value mode is active;
for now pressing b b v should reliably reset to normal mode.
With --watch active, if you save an edit to the journal file while
viewing the transaction screen in cost or value mode, the B/V keys will
stop working. To work around, press g to force a manual reload, or
exit the transaction screen.
q quits the application.
Additional screen-specific keys are described below.
SCREENS
Accounts screen
This is normally the first screen displayed. It lists accounts and
their balances, like hledger's balance command. By default, it shows
all accounts and their latest ending balances (including the balances
of subaccounts). If you specify a query on the command line, it shows
This is normally the first screen displayed. It lists accounts and
their balances, like hledger's balance command. By default, it shows
all accounts and their latest ending balances (including the balances
of subaccounts). If you specify a query on the command line, it shows
just the matched accounts and the balances from matched transactions.
Account names are shown as a flat list by default; press t to toggle
tree mode. In list mode, account balances are exclusive of subac-
counts, except where subaccounts are hidden by a depth limit (see
below). In tree mode, all account balances are inclusive of subac-
Account names are shown as a flat list by default; press t to toggle
tree mode. In list mode, account balances are exclusive of subac-
counts, except where subaccounts are hidden by a depth limit (see
below). In tree mode, all account balances are inclusive of subac-
counts.
To see less detail, press a number key, 1 to 9, to set a depth limit.
To see less detail, press a number key, 1 to 9, to set a depth limit.
Or use - to decrease and +/= to increase the depth limit. 0 shows even
less detail, collapsing all accounts to a single total. To remove the
depth limit, set it higher than the maximum account depth, or press
less detail, collapsing all accounts to a single total. To remove the
depth limit, set it higher than the maximum account depth, or press
ESCAPE.
H toggles between showing historical balances or period balances. His-
torical balances (the default) are ending balances at the end of the
report period, taking into account all transactions before that date
(filtered by the filter query if any), including transactions before
the start of the report period. In other words, historical balances
are what you would see on a bank statement for that account (unless
disturbed by a filter query). Period balances ignore transactions
torical balances (the default) are ending balances at the end of the
report period, taking into account all transactions before that date
(filtered by the filter query if any), including transactions before
the start of the report period. In other words, historical balances
are what you would see on a bank statement for that account (unless
disturbed by a filter query). Period balances ignore transactions
before the report start date, so they show the change in balance during
the report period. They are more useful eg when viewing a time log.
U toggles filtering by unmarked status, including or excluding unmarked
postings in the balances. Similarly, P toggles pending postings, and C
toggles cleared postings. (By default, balances include all postings;
if you activate one or two status filters, only those postings are
toggles cleared postings. (By default, balances include all postings;
if you activate one or two status filters, only those postings are
included; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only accounts with nonzero balances
are shown (hledger-ui shows zero items by default, unlike command-line
Z toggles nonzero mode, in which only accounts with nonzero balances
are shown (hledger-ui shows zero items by default, unlike command-line
hledger).
Press right or enter to view an account's transactions register.
@ -333,66 +328,110 @@ SCREENS
This screen shows the transactions affecting a particular account, like
a check register. Each line represents one transaction and shows:
o the other account(s) involved, in abbreviated form. (If there are
both real and virtual postings, it shows only the accounts affected
o the other account(s) involved, in abbreviated form. (If there are
both real and virtual postings, it shows only the accounts affected
by real postings.)
o the overall change to the current account's balance; positive for an
o the overall change to the current account's balance; positive for an
inflow to this account, negative for an outflow.
o the running historical total or period total for the current account,
after the transaction. This can be toggled with H. Similar to the
accounts screen, the historical total is affected by transactions
(filtered by the filter query) before the report start date, while
after the transaction. This can be toggled with H. Similar to the
accounts screen, the historical total is affected by transactions
(filtered by the filter query) before the report start date, while
the period total is not. If the historical total is not disturbed by
a filter query, it will be the running historical balance you would
a filter query, it will be the running historical balance you would
see on a bank register for the current account.
Transactions affecting this account's subaccounts will be included in
Transactions affecting this account's subaccounts will be included in
the register if the accounts screen is in tree mode, or if it's in list
mode but this account has subaccounts which are not shown due to a
depth limit. In other words, the register always shows the transac-
tions contributing to the balance shown on the accounts screen. Tree
mode but this account has subaccounts which are not shown due to a
depth limit. In other words, the register always shows the transac-
tions contributing to the balance shown on the accounts screen. Tree
mode/list mode can be toggled with t here also.
U toggles filtering by unmarked status, showing or hiding unmarked
U toggles filtering by unmarked status, showing or hiding unmarked
transactions. Similarly, P toggles pending transactions, and C toggles
cleared transactions. (By default, transactions with all statuses are
shown; if you activate one or two status filters, only those transac-
cleared transactions. (By default, transactions with all statuses are
shown; if you activate one or two status filters, only those transac-
tions are shown; and if you activate all three, the filter is removed.)
R toggles real mode, in which virtual postings are ignored.
Z toggles nonzero mode, in which only transactions posting a nonzero
change are shown (hledger-ui shows zero items by default, unlike com-
Z toggles nonzero mode, in which only transactions posting a nonzero
change are shown (hledger-ui shows zero items by default, unlike com-
mand-line hledger).
Press right (or enter) to view the selected transaction in detail.
Transaction screen
This screen shows a single transaction, as a general journal entry,
similar to hledger's print command and journal format (hledger_jour-
This screen shows a single transaction, as a general journal entry,
similar to hledger's print command and journal format (hledger_jour-
nal(5)).
The transaction's date(s) and any cleared flag, transaction code,
description, comments, along with all of its account postings are
shown. Simple transactions have two postings, but there can be more
The transaction's date(s) and any cleared flag, transaction code,
description, comments, along with all of its account postings are
shown. Simple transactions have two postings, but there can be more
(or in certain cases, fewer).
up and down will step through all transactions listed in the previous
account register screen. In the title bar, the numbers in parentheses
show your position within that account register. They will vary
up and down will step through all transactions listed in the previous
account register screen. In the title bar, the numbers in parentheses
show your position within that account register. They will vary
depending on which account register you came from (remember most trans-
actions appear in multiple account registers). The #N number preceding
them is the transaction's position within the complete unfiltered jour-
nal, which is a more stable id (at least until the next reload).
Error screen
This screen will appear if there is a problem, such as a parse error,
when you press g to reload. Once you have fixed the problem, press g
This screen will appear if there is a problem, such as a parse error,
when you press g to reload. Once you have fixed the problem, press g
again to reload and resume normal operation. (Or, you can press escape
to cancel the reload attempt.)
TIPS
Watch mode
One of hledger-ui's best features is the auto-reloading --watch mode.
With this flag, it will update the display automatically whenever
changes are saved to the data files.
This is very useful when reconciling. A good workflow is to have your
bank's online register open in a browser window, for reference; the
journal file open in an editor window; and hledger-ui in watch mode in
a terminal window, eg:
$ hledger-ui --watch --register checking -C
As you mark things cleared in the editor, you can see the effect imme-
diately without having to context switch. This leaves more mental
bandwidth for your accounting. Of course you can still interact with
hledger-ui when needed, eg to toggle cleared mode, or to explore the
history.
Watch mode limitations
There are situations in which it won't work, ie the display will not
update when you save a change (because the underlying inotify library
does not support it). Here are some that we know of:
o Certain editors: saving with gedit, and perhaps any Gnome applica-
tion, won't be detected (#1617). Jetbrains IDEs, such as IDEA, also
may not work (#911).
o Certain unusual filesystems might not be supported. (All the usual
ones on unix, mac and windows are supported.)
In such cases, the workaround is to switch to the hledger-ui window and
press g each time you want it to reload. (Actually, see #1617 for
another workaround, and let us know if it works for you.)
If you leave hledger-ui --watch running for days, on certain platforms
(?), perhaps with many transactions in your journal (?), perhaps with
large numbers of other files present (?), you may see it gradually
using more and more memory and CPU over time, as seen in top or Activ-
ity Monitor or Task Manager.
A workaround is to quit and restart it, or to suspend it (CTRL-z) and
restart it (fg) if your shell supports that.
ENVIRONMENT
COLUMNS The screen width to use. Default: the full terminal width.

View File

@ -3,7 +3,7 @@ from stdin.
INFO-DIR-SECTION User Applications
START-INFO-DIR-ENTRY
* hledger-web: (hledger-web/hledger-web). Web UI/API for the hledger accounting tool.
* hledger-web: (hledger-web). Web UI/API for the hledger accounting tool.
END-INFO-DIR-ENTRY

@ -612,22 +612,22 @@ awkward.

Tag Table:
Node: Top247
Node: OPTIONS1887
Ref: #options1992
Node: PERMISSIONS9405
Ref: #permissions9544
Node: EDITING UPLOADING DOWNLOADING10756
Ref: #editing-uploading-downloading10937
Node: RELOADING11768
Ref: #reloading11902
Node: JSON API12334
Ref: #json-api12448
Node: ENVIRONMENT17937
Ref: #environment18053
Node: FILES18785
Ref: #files18885
Node: BUGS19098
Ref: #bugs19176
Node: Top235
Node: OPTIONS1875
Ref: #options1980
Node: PERMISSIONS9393
Ref: #permissions9532
Node: EDITING UPLOADING DOWNLOADING10744
Ref: #editing-uploading-downloading10925
Node: RELOADING11756
Ref: #reloading11890
Node: JSON API12322
Ref: #json-api12436
Node: ENVIRONMENT17925
Ref: #environment18041
Node: FILES18773
Ref: #files18873
Node: BUGS19086
Ref: #bugs19164

End Tag Table

View File

@ -296,6 +296,11 @@ or:
$ hledger register credit\[rs] card
\f[R]
.fi
.PP
Windows users should keep in mind that \f[C]cmd\f[R] treats single quote
as a regular character, so you should be using double quotes
exclusively.
PowerShell treats both single and double quotes as quotes.
.SS Double escaping (regular expression metacharacters)
.PP
Characters significant in regular expressions (described below) - such
@ -657,6 +662,8 @@ Are all accounts posted to, declared with an \f[C]account\f[R] directive
.IP \[bu] 2
Are all commodities declared with a \f[C]commodity\f[R] directive ?
(Commodity error checking)
.IP \[bu] 2
Are all commodity conversions declared explicitly ?
.PP
You can also use the check command to run these and some additional
checks.
@ -754,6 +761,7 @@ T}@T{
9+ digits beginning with a valid YYYYMMDD gives an error
T}
.TE
.PP
.SS Report start & end date
.PP
By default, most hledger reports will show the full span of time
@ -1140,18 +1148,171 @@ This flag has the same effect as a \f[C]depth:\f[R] query argument (so
\f[C]-2\f[R], \f[C]--depth=2\f[R] or \f[C]depth:2\f[R] are equivalent).
.SH QUERIES
.PP
One of hledger\[aq]s strengths is being able to quickly report on
precise subsets of your data.
Most commands accept an optional query expression, written as arguments
after the command name, to filter the data by date, account name or
other criteria.
The syntax is similar to a web search: one or more space-separated
search terms, quotes to enclose whitespace, prefixes to match specific
fields, a not: prefix to negate the match.
One of hledger\[aq]s strengths is being able to quickly report on a
precise subset of your data.
Most hledger commands accept optional query arguments to restrict their
scope.
The syntax is as follows:
.IP \[bu] 2
Zero or more space-separated query terms.
These are most often account name substrings:
.RS 2
.PP
We do not yet support arbitrary boolean combinations of search terms;
instead most commands show transactions/postings/accounts which match
(or negatively match):
\f[C]utilities food:groceries\f[R]
.RE
.IP \[bu] 2
Terms with spaces or other special characters should be enclosed in
quotes:
.RS 2
.PP
\f[C]\[dq]personal care\[dq]\f[R]
.RE
.IP \[bu] 2
Regular expressions are also supported:
.RS 2
.PP
\f[C]\[dq]\[ha]expenses\[rs]b\[dq] \[dq]accounts (payable|receivable)\[dq]\f[R]
.RE
.IP \[bu] 2
Add a query type prefix to match other parts of the data:
.RS 2
.PP
\f[C]date:202012- desc:amazon cur:USD amt:\[dq]>100\[dq] status:\f[R]
.RE
.IP \[bu] 2
Add a \f[C]not:\f[R] prefix to negate a term:
.RS 2
.PP
\f[C]not:cur:USD\f[R]
.RE
.SS Query types
.PP
Here are the types of query term available.
Remember these can also be prefixed with \f[B]\f[CB]not:\f[B]\f[R] to
convert them into a negative match.
.PP
\f[B]\f[CB]acct:REGEX\f[B], \f[CB]REGEX\f[B]\f[R]
.PD 0
.P
.PD
Match account names containing this (case insensitive) regular
expression.
This is the default query type when there is no prefix, and regular
expression syntax is typically not needed, so usually we just write an
account name substring, like \f[C]expenses\f[R] or \f[C]food\f[R].
.PP
\f[B]\f[CB]amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N\f[B]\f[R]
.PD 0
.P
.PD
Match postings with a single-commodity amount equal to, less than, or
greater than N.
(Postings with multi-commodity amounts are not tested and will always
match.) The comparison has two modes: if N is preceded by a + or - sign
(or is 0), the two signed numbers are compared.
Otherwise, the absolute magnitudes are compared, ignoring sign.
.PP
\f[B]\f[CB]code:REGEX\f[B]\f[R]
.PD 0
.P
.PD
Match by transaction code (eg check number).
.PP
\f[B]\f[CB]cur:REGEX\f[B]\f[R]
.PD 0
.P
.PD
Match postings or transactions including any amounts whose
currency/commodity symbol is fully matched by REGEX.
(For a partial match, use \f[C].*REGEX.*\f[R]).
Note, to match special characters which are regex-significant, you need
to escape them with \f[C]\[rs]\f[R].
And for characters which are significant to your shell you may need one
more level of escaping.
So eg to match the dollar sign:
.PD 0
.P
.PD
\f[C]hledger print cur:\[rs]\[rs]$\f[R].
.PP
\f[B]\f[CB]desc:REGEX\f[B]\f[R]
.PD 0
.P
.PD
Match transaction descriptions.
.PP
\f[B]\f[CB]date:PERIODEXPR\f[B]\f[R]
.PD 0
.P
.PD
Match dates (or with the \f[C]--date2\f[R] flag, secondary dates) within
the specified period.
PERIODEXPR is a period expression with no report interval.
Examples:
.PD 0
.P
.PD
\f[C]date:2016\f[R], \f[C]date:thismonth\f[R], \f[C]date:2/1-2/15\f[R],
\f[C]date:2021-07-27..nextquarter\f[R].
.PP
\f[B]\f[CB]date2:PERIODEXPR\f[B]\f[R]
.PD 0
.P
.PD
Match secondary dates within the specified period (independent of the
\f[C]--date2\f[R] flag).
.PP
\f[B]\f[CB]depth:N\f[B]\f[R]
.PD 0
.P
.PD
Match (or display, depending on command) accounts at or above this
depth.
.PP
\f[B]\f[CB]note:REGEX\f[B]\f[R]
.PD 0
.P
.PD
Match transaction notes (the part of the description right of
\f[C]|\f[R], or the whole description if there\[aq]s no \f[C]|\f[R]).
.PP
\f[B]\f[CB]payee:REGEX\f[B]\f[R]
.PD 0
.P
.PD
Match transaction payee/payer names (the part of the description left of
\f[C]|\f[R], or the whole description if there\[aq]s no \f[C]|\f[R]).
.PP
\f[B]\f[CB]real:, real:0\f[B]\f[R]
.PD 0
.P
.PD
Match real or virtual postings respectively.
.PP
\f[B]\f[CB]status:, status:!, status:*\f[B]\f[R]
.PD 0
.P
.PD
Match unmarked, pending, or cleared transactions respectively.
.PP
\f[B]\f[CB]tag:REGEX[=REGEX]\f[B]\f[R]
.PD 0
.P
.PD
Match by tag name, and optionally also by tag value.
(To match only by value, use \f[C]tag:.=REGEX\f[R].) Note that postings
also inherit tags from their transaction, and transactions also acquire
tags from their postings, when querying.
.PP
(\f[B]\f[CB]inacct:ACCTNAME\f[B]\f[R]
.PD 0
.P
.PD
A special query term used automatically in hledger-web only: tells
hledger-web to show the transaction register for an account.)
.SS Combining query terms
.PP
Most commands select things which match:
.IP \[bu] 2
any of the description terms AND
.IP \[bu] 2
@ -1161,7 +1322,7 @@ any of the status terms AND
.IP \[bu] 2
all the other terms.
.PP
The print command instead shows transactions which:
while the print command shows transactions which:
.IP \[bu] 2
match any of the description terms AND
.IP \[bu] 2
@ -1171,89 +1332,49 @@ have no postings matching any of the negative account terms AND
.IP \[bu] 2
match all the other terms.
.PP
The following kinds of search terms can be used.
Remember these can also be prefixed with \f[B]\f[CB]not:\f[B]\f[R], eg
to exclude a particular subaccount.
.TP
\f[B]\f[R]\f[C]REGEX\f[R]\f[B], \f[R]\f[C]acct:REGEX\f[R]\f[B]\f[R]
match account names by this regular expression.
(With no prefix, \f[C]acct:\f[R] is assumed.)
same as above
.TP
\f[B]\f[R]\f[C]amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N\f[R]\f[B]\f[R]
match postings with a single-commodity amount that is equal to, less
than, or greater than N.
(Multi-commodity amounts are not tested, and will always match.) The
comparison has two modes: if N is preceded by a + or - sign (or is 0),
the two signed numbers are compared.
Otherwise, the absolute magnitudes are compared, ignoring sign.
.TP
\f[B]\f[R]\f[C]code:REGEX\f[R]\f[B]\f[R]
match by transaction code (eg check number)
.TP
\f[B]\f[R]\f[C]cur:REGEX\f[R]\f[B]\f[R]
match postings or transactions including any amounts whose
currency/commodity symbol is fully matched by REGEX.
(For a partial match, use \f[C].*REGEX.*\f[R]).
Note, to match characters which are regex-significant, like the dollar
sign (\f[C]$\f[R]), you need to prepend \f[C]\[rs]\f[R].
And when using the command line you need to add one more level of
quoting to hide it from the shell, so eg do:
\f[C]hledger print cur:\[aq]\[rs]$\[aq]\f[R] or
\f[C]hledger print cur:\[rs]\[rs]$\f[R].
.TP
\f[B]\f[R]\f[C]desc:REGEX\f[R]\f[B]\f[R]
match transaction descriptions.
.TP
\f[B]\f[R]\f[C]date:PERIODEXPR\f[R]\f[B]\f[R]
match dates within the specified period.
PERIODEXPR is a period expression (with no report interval).
Examples: \f[C]date:2016\f[R], \f[C]date:thismonth\f[R],
\f[C]date:2000/2/1-2/15\f[R], \f[C]date:lastweek-\f[R].
If the \f[C]--date2\f[R] command line flag is present, this matches
secondary dates instead.
(Report intervals will adjust start/end dates to preceding/following
subperiod boundaries.)
.TP
\f[B]\f[R]\f[C]date2:PERIODEXPR\f[R]\f[B]\f[R]
match secondary dates within the specified period.
.TP
\f[B]\f[R]\f[C]depth:N\f[R]\f[B]\f[R]
match (or display, depending on command) accounts at or above this depth
.TP
\f[B]\f[R]\f[C]note:REGEX\f[R]\f[B]\f[R]
match transaction notes (part of description right of \f[C]|\f[R], or
whole description when there\[aq]s no \f[C]|\f[R])
.TP
\f[B]\f[R]\f[C]payee:REGEX\f[R]\f[B]\f[R]
match transaction payee/payer names (part of description left of
\f[C]|\f[R], or whole description when there\[aq]s no \f[C]|\f[R])
.TP
\f[B]\f[R]\f[C]real:, real:0\f[R]\f[B]\f[R]
match real or virtual postings respectively
.TP
\f[B]\f[R]\f[C]status:, status:!, status:*\f[R]\f[B]\f[R]
match unmarked, pending, or cleared transactions respectively
.TP
\f[B]\f[R]\f[C]tag:REGEX[=REGEX]\f[R]\f[B]\f[R]
match by tag name, and optionally also by tag value.
Note a tag: query is considered to match a transaction if it matches any
of the postings.
Also remember that postings inherit the tags of their parent
transaction.
You can do more powerful queries (such as AND-ing two like terms) by
running a first query with \f[C]print\f[R], and piping the result into a
second hledger command.
Eg: how much of food expenses was paid with cash ?
.IP
.nf
\f[C]
$ hledger print assets:cash | hledger f- -I balance expenses:food
\f[R]
.fi
.PP
The following special search term is used automatically in hledger-web,
only:
.TP
\f[B]\f[R]\f[C]inacct:ACCTNAME\f[R]\f[B]\f[R]
tells hledger-web to show the transaction register for this account.
Can be filtered further with \f[C]acct\f[R] etc.
If you are interested in full boolean expressions for queries, see #203.
.SS Queries and command options
.PP
Some of these can also be expressed as command-line options (eg
\f[C]depth:2\f[R] is equivalent to \f[C]--depth 2\f[R]).
Generally you can mix options and query arguments, and the resulting
query will be their intersection (perhaps excluding the
\f[C]-p/--period\f[R] option).
Some queries can also be expressed as command-line options:
\f[C]depth:2\f[R] is equivalent to \f[C]--depth 2\f[R],
\f[C]date:2020\f[R] is equivalent to \f[C]-p 2020\f[R], etc.
When you mix command options and query arguments, generally the
resulting query is their intersection.
.SS Queries and account aliases
.PP
When account names are rewritten with \f[C]--alias\f[R] or
\f[C]alias\f[R], \f[C]acct:\f[R] will match either the old or the new
account name.
.SS Queries and valuation
.PP
When amounts are converted to other commodities in cost or value
reports, \f[C]cur:\f[R] and \f[C]amt:\f[R] match the old commodity
symbol and the old amount quantity, not the new ones (except in hledger
1.22.0 where it\[aq]s reversed, see #1625).
.SS Querying with account aliases
.PP
When account names are rewritten with \f[C]--alias\f[R] or
\f[C]alias\f[R], note that \f[C]acct:\f[R] will match either the old or
the new account name.
.SS Querying with cost or value
.PP
When amounts are converted to other commodities in cost or value
reports, note that \f[C]cur:\f[R] matches the new commodity symbol, and
not the old one, and \f[C]amt:\f[R] matches the new quantity, and not
the old one.
Note: this changed in hledger 1.22, previously it was the reverse, see
the discussion at #1625.
.SH COSTING
.PP
The \f[C]-B/--cost\f[R] flag converts amounts to their cost or sale
@ -2783,6 +2904,9 @@ With \f[C]-S/--sort-amount\f[R], accounts with the largest (most
positive) balances are shown first.
Eg: \f[C]hledger bal expenses -MAS\f[R] shows your biggest averaged
monthly expenses first.
When more than one commodity is present, they will be sorted by the
alphabetically earliest commodity first, and then by subsequent
commodities (if an amount is missing a commodity, it is treated as 0).
.PP
Revenues and liability balances are typically negative, however, so
\f[C]-S\f[R] shows these in reverse order.
@ -3255,7 +3379,7 @@ Budget performance in 2020-01-01..2020-01-15:
|| $400 [80% of $500]
\f[R]
.fi
.SS Nested budgets
.SS Budgets and subaccounts
.PP
You can add budgets to any account in your account hierarchy.
If you have budgets on both parent account and some of its children,
@ -3357,6 +3481,34 @@ Budget performance in 2019/01:
|| 0 [ 0]
\f[R]
.fi
.SS Selecting budget goals
.PP
The budget report evaluates periodic transaction rules to generate
special \[dq]goal transactions\[dq], which generate the goal amounts for
each account in each report subperiod.
When troubleshooting, you can use the print command to show these as
forecasted transactions:
.IP
.nf
\f[C]
$ hledger print --forecast=BUDGETREPORTPERIOD tag:generated
\f[R]
.fi
.PP
By default, the budget report uses all available periodic transaction
rules to generate goals.
This includes rules with a different report interval from your report.
Eg if you have daily, weekly and monthly periodic rules, all of these
will contribute to the goals in a monthly budget report.
.PP
You can select a subset of periodic rules by providing an argument to
the \f[C]--budget\f[R] flag.
\f[C]--budget=DESCPAT\f[R] will match all periodic rules whose
description contains DESCPAT, a case-insensitive substring (not a
regular expression or query).
This means you can give your periodic rules descriptions (remember that
two spaces are needed), and then select from multiple budgets defined in
your journal.
.SS Customising single-period balance reports
.PP
For single-period balance reports displayed in the terminal (only), you
@ -4871,6 +5023,28 @@ Using roi to compute total return of investment in stocks:
https://github.com/simonmichael/hledger/blob/master/examples/roi-unrealised.ledger
.IP \[bu] 2
Cookbook -> Return on Investment
.SS Spaces and special characters in \f[C]--inv\f[R] and \f[C]--pnl\f[R]
.PP
Note that \f[C]--inv\f[R] and \f[C]--pnl\f[R]\[aq]s argument is a query,
and queries could have several space-separated terms (see QUERIES).
.PP
To indicate that all search terms form single command-line argument, you
will need to put them in quotes (see Special characters):
.IP
.nf
\f[C]
$ hledger roi --inv \[aq]term1 term2 term3 ...\[aq]
\f[R]
.fi
.PP
If any query terms contain spaces themselves, you will need an extra
level of nested quoting, eg:
.IP
.nf
\f[C]
$ hledger roi --inv=\[dq]\[aq]Assets:Test 1\[aq]\[dq] --pnl=\[dq]\[aq]Equity:Unrealized Profit and Loss\[aq]\[dq]
\f[R]
.fi
.SS Semantics of \f[C]--inv\f[R] and \f[C]--pnl\f[R]
.PP
Query supplied to \f[C]--inv\f[R] has to match all transactions that are

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff