mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-27 04:13:11 +03:00
519 lines
16 KiB
Groff
519 lines
16 KiB
Groff
|
|
.TH "hledger\-ui" "1" "September 2018" "hledger\-ui 1.11.99" "hledger User Manuals"
|
|
|
|
|
|
|
|
.SH NAME
|
|
.PP
|
|
hledger\-ui \- curses\-style interface for the hledger accounting tool
|
|
.SH SYNOPSIS
|
|
.PP
|
|
\f[C]hledger\-ui\ [OPTIONS]\ [QUERYARGS]\f[]
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
\f[C]hledger\ ui\ \-\-\ [OPTIONS]\ [QUERYARGS]\f[]
|
|
.SH DESCRIPTION
|
|
.PP
|
|
hledger is a cross\-platform program for tracking money, time, or any
|
|
other commodity, using double\-entry accounting and a simple, editable
|
|
file format.
|
|
hledger is inspired by and largely compatible with ledger(1).
|
|
.PP
|
|
hledger\-ui is hledger's curses\-style interface, providing an efficient
|
|
full\-window text UI for viewing accounts and transactions, and some
|
|
limited data entry capability.
|
|
It is easier than hledger's command\-line interface, and sometimes
|
|
quicker and more convenient than the web interface.
|
|
.PP
|
|
Note hledger\-ui has some different defaults: \- it generates
|
|
rule\-based transactions and postings by default (\[en]forecast and
|
|
\[en]auto are always on).
|
|
\- it hides transactions dated in the future by default (change this
|
|
with \[en]future or the F key).
|
|
Experimental.
|
|
.PP
|
|
Like hledger, it reads data from one or more files in hledger journal,
|
|
timeclock, timedot, or CSV format specified with \f[C]\-f\f[], or
|
|
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
|
For more about this see hledger(1), hledger_journal(5) etc.
|
|
.SH OPTIONS
|
|
.PP
|
|
Note: if invoking hledger\-ui as a hledger subcommand, write
|
|
\f[C]\-\-\f[] before options as shown above.
|
|
.PP
|
|
Any QUERYARGS are interpreted as a hledger search query which filters
|
|
the data.
|
|
.TP
|
|
.B \f[C]\-\-watch\f[]
|
|
watch for data and date changes and reload automatically
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-theme=default|terminal|greenterm\f[]
|
|
use this custom display theme
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-register=ACCTREGEX\f[]
|
|
start in the (first) matched account's register screen
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-change\f[]
|
|
show period balances (changes) at startup instead of historical balances
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-F\ \-\-flat\f[]
|
|
show accounts as a list (default)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-T\ \-\-tree\f[]
|
|
show accounts as a tree
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-future\f[]
|
|
show transactions dated later than today (normally hidden)
|
|
.RS
|
|
.RE
|
|
.PP
|
|
hledger input options:
|
|
.TP
|
|
.B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
|
|
use a different input file.
|
|
For stdin, use \- (default: \f[C]$LEDGER_FILE\f[] or
|
|
\f[C]$HOME/.hledger.journal\f[])
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-rules\-file=RULESFILE\f[]
|
|
Conversion rules file to use when reading CSV (default: FILE.rules)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-separator=CHAR\f[]
|
|
Field separator to expect when reading CSV (default: `,')
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-alias=OLD=NEW\f[]
|
|
rename accounts named OLD to NEW
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-anon\f[]
|
|
anonymize accounts and payees
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-pivot\ FIELDNAME\f[]
|
|
use some other field or tag for the account name
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-I\ \-\-ignore\-assertions\f[]
|
|
ignore any failing balance assertions
|
|
.RS
|
|
.RE
|
|
.PP
|
|
hledger reporting options:
|
|
.TP
|
|
.B \f[C]\-b\ \-\-begin=DATE\f[]
|
|
include postings/txns on or after this date
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-e\ \-\-end=DATE\f[]
|
|
include postings/txns before this date
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-D\ \-\-daily\f[]
|
|
multiperiod/multicolumn report by day
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-W\ \-\-weekly\f[]
|
|
multiperiod/multicolumn report by week
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-M\ \-\-monthly\f[]
|
|
multiperiod/multicolumn report by month
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-Q\ \-\-quarterly\f[]
|
|
multiperiod/multicolumn report by quarter
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-Y\ \-\-yearly\f[]
|
|
multiperiod/multicolumn report by year
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-p\ \-\-period=PERIODEXP\f[]
|
|
set start date, end date, and/or reporting interval all at once using
|
|
period expressions syntax (overrides the flags above)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-date2\f[]
|
|
match the secondary date instead (see command help for other effects)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-U\ \-\-unmarked\f[]
|
|
include only unmarked postings/txns (can combine with \-P or \-C)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-P\ \-\-pending\f[]
|
|
include only pending postings/txns
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-C\ \-\-cleared\f[]
|
|
include only cleared postings/txns
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-R\ \-\-real\f[]
|
|
include only non\-virtual postings
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-NUM\ \-\-depth=NUM\f[]
|
|
hide/aggregate accounts or postings more than NUM levels deep
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-E\ \-\-empty\f[]
|
|
show items with zero amount, normally hidden (and vice\-versa in
|
|
hledger\-ui/hledger\-web)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-B\ \-\-cost\f[]
|
|
convert amounts to their cost at transaction time (using the transaction
|
|
price, if any)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-V\ \-\-value\f[]
|
|
convert amounts to their market value on the report end date (using the
|
|
most recent applicable market price, if any)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-auto\f[]
|
|
apply automated posting rules to modify transactions.
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-forecast\f[]
|
|
apply periodic transaction rules to generate future transactions, to 6
|
|
months from now or report end date.
|
|
.RS
|
|
.RE
|
|
.PP
|
|
When a reporting option appears more than once in the command line, the
|
|
last one takes precedence.
|
|
.PP
|
|
Some reporting options can also be written as query arguments.
|
|
.PP
|
|
hledger help options:
|
|
.TP
|
|
.B \f[C]\-h\ \-\-help\f[]
|
|
show general usage (or after COMMAND, command usage)
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-version\f[]
|
|
show version
|
|
.RS
|
|
.RE
|
|
.TP
|
|
.B \f[C]\-\-debug[=N]\f[]
|
|
show debug output (levels 1\-9, default: 1)
|
|
.RS
|
|
.RE
|
|
.PP
|
|
A \@FILE argument will be expanded to the contents of FILE, which should
|
|
contain one command line option/argument per line.
|
|
(To prevent this, insert a \f[C]\-\-\f[] argument before.)
|
|
.SH KEYS
|
|
.PP
|
|
\f[C]?\f[] shows a help dialog listing all keys.
|
|
(Some of these also appear in the quick help at the bottom of each
|
|
screen.) Press \f[C]?\f[] again (or \f[C]ESCAPE\f[], or \f[C]LEFT\f[])
|
|
to close it.
|
|
The following keys work on most screens:
|
|
.PP
|
|
The cursor keys navigate: \f[C]right\f[] (or \f[C]enter\f[]) goes
|
|
deeper, \f[C]left\f[] returns to the previous screen,
|
|
\f[C]up\f[]/\f[C]down\f[]/\f[C]page\ up\f[]/\f[C]page\ down\f[]/\f[C]home\f[]/\f[C]end\f[]
|
|
move up and down through lists.
|
|
Vi\-style (\f[C]h\f[]/\f[C]j\f[]/\f[C]k\f[]/\f[C]l\f[]) and Emacs\-style
|
|
(\f[C]CTRL\-p\f[]/\f[C]CTRL\-n\f[]/\f[C]CTRL\-f\f[]/\f[C]CTRL\-b\f[])
|
|
movement keys are also supported.
|
|
A tip: movement speed is limited by your keyboard repeat rate, to move
|
|
faster you may want to adjust it.
|
|
(If you're on a mac, the Karabiner app is one way to do that.)
|
|
.PP
|
|
With shift pressed, the cursor keys adjust the report period, limiting
|
|
the transactions to be shown (by default, all are shown).
|
|
\f[C]shift\-down/up\f[] steps downward and upward through these standard
|
|
report period durations: year, quarter, month, week, day.
|
|
Then, \f[C]shift\-left/right\f[] moves to the previous/next period.
|
|
\f[C]t\f[] sets the report period to today.
|
|
With the \f[C]\-\-watch\f[] option, when viewing a \[lq]current\[rq]
|
|
period (the current day, week, month, quarter, or year), the period will
|
|
move automatically to track the current date.
|
|
To set a non\-standard period, you can use \f[C]/\f[] and a
|
|
\f[C]date:\f[] query.
|
|
.PP
|
|
\f[C]/\f[] lets you set a general filter query limiting the data shown,
|
|
using the same query terms as in hledger and hledger\-web.
|
|
While editing the query, you can use CTRL\-a/e/d/k, BS, cursor keys;
|
|
press \f[C]ENTER\f[] to set it, or \f[C]ESCAPE\f[]to cancel.
|
|
There are also keys for quickly adjusting some common filters like
|
|
account depth and transaction status (see below).
|
|
\f[C]BACKSPACE\f[] or \f[C]DELETE\f[] removes all filters, showing all
|
|
transactions.
|
|
.PP
|
|
As mentioned above, hledger\-ui shows auto\-generated periodic
|
|
transactions, and hides future transactions (auto\-generated or not) by
|
|
default.
|
|
\f[C]F\f[] toggles showing and hiding these future transactions.
|
|
This is similar to using a query like \f[C]date:\-tomorrow\f[], but more
|
|
convenient.
|
|
(experimental)
|
|
.PP
|
|
\f[C]ESCAPE\f[] removes all filters and jumps back to the top screen.
|
|
Or, it cancels a minibuffer edit or help dialog in progress.
|
|
.PP
|
|
\f[C]CTRL\-l\f[] redraws the screen and centers the selection if
|
|
possible (selections near the top won't be centered, since we don't
|
|
scroll above the top).
|
|
.PP
|
|
\f[C]g\f[] reloads from the data file(s) and updates the current screen
|
|
and any previous screens.
|
|
(With large files, this could cause a noticeable pause.)
|
|
.PP
|
|
\f[C]I\f[] toggles balance assertion checking.
|
|
Disabling balance assertions temporarily can be useful for
|
|
troubleshooting.
|
|
.PP
|
|
\f[C]a\f[] runs command\-line hledger's add command, and reloads the
|
|
updated file.
|
|
This allows some basic data entry.
|
|
.PP
|
|
\f[C]A\f[] is like \f[C]a\f[], but runs the hledger\-iadd tool, which
|
|
provides a curses\-style interface.
|
|
This key will be available if \f[C]hledger\-iadd\f[] is installed in
|
|
$PATH.
|
|
.PP
|
|
\f[C]E\f[] runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default
|
|
(\f[C]emacsclient\ \-a\ ""\ \-nw\f[]) on the journal file.
|
|
With some editors (emacs, vi), the cursor will be positioned at the
|
|
current transaction when invoked from the register and transaction
|
|
screens, and at the error location (if possible) when invoked from the
|
|
error screen.
|
|
.PP
|
|
\f[C]q\f[] quits the application.
|
|
.PP
|
|
Additional screen\-specific keys are described below.
|
|
.SH SCREENS
|
|
.SS Accounts screen
|
|
.PP
|
|
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.
|
|
.PP
|
|
Account names are shown as a flat list by default.
|
|
Press \f[C]T\f[] to toggle tree mode.
|
|
In flat mode, account balances are exclusive of subaccounts, except
|
|
where subaccounts are hidden by a depth limit (see below).
|
|
In tree mode, all account balances are inclusive of subaccounts.
|
|
.PP
|
|
To see less detail, press a number key, \f[C]1\f[] to \f[C]9\f[], to set
|
|
a depth limit.
|
|
Or use \f[C]\-\f[] to decrease and \f[C]+\f[]/\f[C]=\f[] to increase the
|
|
depth limit.
|
|
\f[C]0\f[] 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 \f[C]ESCAPE\f[].
|
|
.PP
|
|
\f[C]H\f[] toggles between showing historical balances or period
|
|
balances.
|
|
Historical 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.
|
|
.PP
|
|
\f[C]U\f[] toggles filtering by unmarked status, including or excluding
|
|
unmarked postings in the balances.
|
|
Similarly, \f[C]P\f[] toggles pending postings, and \f[C]C\f[] 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.)
|
|
.PP
|
|
\f[C]R\f[] toggles real mode, in which virtual postings are ignored.
|
|
.PP
|
|
\f[C]Z\f[] toggles nonzero mode, in which only accounts with nonzero
|
|
balances are shown (hledger\-ui shows zero items by default, unlike
|
|
command\-line hledger).
|
|
.PP
|
|
Press \f[C]right\f[] or \f[C]enter\f[] to view an account's transactions
|
|
register.
|
|
.SS Register screen
|
|
.PP
|
|
This screen shows the transactions affecting a particular account, like
|
|
a check register.
|
|
Each line represents one transaction and shows:
|
|
.IP \[bu] 2
|
|
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.)
|
|
.IP \[bu] 2
|
|
the overall change to the current account's balance; positive for an
|
|
inflow to this account, negative for an outflow.
|
|
.IP \[bu] 2
|
|
the running historical total or period total for the current account,
|
|
after the transaction.
|
|
This can be toggled with \f[C]H\f[].
|
|
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 see on a bank register for the
|
|
current account.
|
|
.PP
|
|
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 flat
|
|
mode but this account has subaccounts which are not shown due to a depth
|
|
limit.
|
|
In other words, the register always shows the transactions contributing
|
|
to the balance shown on the accounts screen.
|
|
.PD 0
|
|
.P
|
|
.PD
|
|
Tree mode/flat mode can be toggled with \f[C]T\f[] here also.
|
|
.PP
|
|
\f[C]U\f[] toggles filtering by unmarked status, showing or hiding
|
|
unmarked transactions.
|
|
Similarly, \f[C]P\f[] toggles pending transactions, and \f[C]C\f[]
|
|
toggles cleared transactions.
|
|
(By default, transactions with all statuses are shown; if you activate
|
|
one or two status filters, only those transactions are shown; and if you
|
|
activate all three, the filter is removed.)q
|
|
.PP
|
|
\f[C]R\f[] toggles real mode, in which virtual postings are ignored.
|
|
.PP
|
|
\f[C]Z\f[] toggles nonzero mode, in which only transactions posting a
|
|
nonzero change are shown (hledger\-ui shows zero items by default,
|
|
unlike command\-line hledger).
|
|
.PP
|
|
Press \f[C]right\f[] (or \f[C]enter\f[]) to view the selected
|
|
transaction in detail.
|
|
.SS Transaction screen
|
|
.PP
|
|
This screen shows a single transaction, as a general journal entry,
|
|
similar to hledger's print command and journal format
|
|
(hledger_journal(5)).
|
|
.PP
|
|
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).
|
|
.PP
|
|
\f[C]up\f[] and \f[C]down\f[] 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 transactions appear in multiple account registers).
|
|
The #N number preceding them is the transaction's position within the
|
|
complete unfiltered journal, which is a more stable id (at least until
|
|
the next reload).
|
|
.SS Error screen
|
|
.PP
|
|
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.)
|
|
.SH ENVIRONMENT
|
|
.PP
|
|
\f[B]COLUMNS\f[] The screen width to use.
|
|
Default: the full terminal width.
|
|
.PP
|
|
\f[B]LEDGER_FILE\f[] The journal file path when not specified with
|
|
\f[C]\-f\f[].
|
|
Default: \f[C]~/.hledger.journal\f[] (on windows, perhaps
|
|
\f[C]C:/Users/USER/.hledger.journal\f[]).
|
|
.SH FILES
|
|
.PP
|
|
Reads data from one or more files in hledger journal, timeclock,
|
|
timedot, or CSV format specified with \f[C]\-f\f[], or
|
|
\f[C]$LEDGER_FILE\f[], or \f[C]$HOME/.hledger.journal\f[] (on windows,
|
|
perhaps \f[C]C:/Users/USER/.hledger.journal\f[]).
|
|
.SH BUGS
|
|
.PP
|
|
The need to precede options with \f[C]\-\-\f[] when invoked from hledger
|
|
is awkward.
|
|
.PP
|
|
\f[C]\-f\-\f[] doesn't work (hledger\-ui can't read from stdin).
|
|
.PP
|
|
\f[C]\-V\f[] affects only the accounts screen.
|
|
.PP
|
|
When you press \f[C]g\f[], the current and all previous screens are
|
|
regenerated, which may cause a noticeable pause with large files.
|
|
Also there is no visual indication that this is in progress.
|
|
.PP
|
|
\f[C]\-\-watch\f[] is not yet fully robust.
|
|
It works well for normal usage, but many file changes in a short time
|
|
(eg saving the file thousands of times with an editor macro) can cause
|
|
problems at least on OSX.
|
|
Symptoms include: unresponsive UI, periodic resetting of the cursor
|
|
position, momentary display of parse errors, high CPU usage eventually
|
|
subsiding, and possibly a small but persistent build\-up of CPU usage
|
|
until the program is restarted.
|
|
|
|
|
|
.SH "REPORTING BUGS"
|
|
Report bugs at http://bugs.hledger.org
|
|
(or on the #hledger IRC channel or hledger mail list)
|
|
|
|
.SH AUTHORS
|
|
Simon Michael <simon@joyful.com> and contributors
|
|
|
|
.SH COPYRIGHT
|
|
|
|
Copyright (C) 2007-2016 Simon Michael.
|
|
.br
|
|
Released under GNU GPL v3 or later.
|
|
|
|
.SH SEE ALSO
|
|
hledger(1), hledger\-ui(1), hledger\-web(1), hledger\-api(1),
|
|
hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_timedot(5),
|
|
ledger(1)
|
|
|
|
http://hledger.org
|