455 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			455 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
 | 
						|
.TH "hledger\-ui" "1" "May 2016" "hledger\-ui 0.28dev" "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\[aq]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\[aq]s command\-line interface, and sometimes
 | 
						|
quicker and more convenient than the web interface.
 | 
						|
.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]\-\-flat\f[]
 | 
						|
show full account names, unindented
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-register=ACCTREGEX\f[]
 | 
						|
start in the (first) matched account\[aq]s register screen
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-theme=default|terminal|greenterm\f[]
 | 
						|
use this custom display theme
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-V\ \-\-value\f[]
 | 
						|
show amounts as their current market value in their default valuation
 | 
						|
commodity (accounts screen only)
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
hledger general options:
 | 
						|
.TP
 | 
						|
.B \f[C]\-h\f[]
 | 
						|
show general usage (or after COMMAND, the command\[aq]s usage)
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-help\f[]
 | 
						|
show the current program\[aq]s manual as plain text (or after an add\-on
 | 
						|
COMMAND, the add\-on\[aq]s manual)
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-man\f[]
 | 
						|
show the current program\[aq]s manual with man
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-info\f[]
 | 
						|
show the current program\[aq]s manual with info
 | 
						|
.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
 | 
						|
.TP
 | 
						|
.B \f[C]\-f\ FILE\ \-\-file=FILE\f[]
 | 
						|
use a different input file.
 | 
						|
For stdin, use \-
 | 
						|
.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]\-\-alias=OLD=NEW\f[]
 | 
						|
display accounts named OLD as NEW
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-I\ \-\-ignore\-assertions\f[]
 | 
						|
ignore any failing balance assertions in the journal
 | 
						|
.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
 | 
						|
(overrides the flags above)
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-date2\f[]
 | 
						|
show, and match with \-b/\-e/\-p/date:, secondary dates instead
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-C\ \-\-cleared\f[]
 | 
						|
include only cleared postings/txns
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-pending\f[]
 | 
						|
include only pending postings/txns
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-U\ \-\-uncleared\f[]
 | 
						|
include only uncleared (and pending) postings/txns
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-R\ \-\-real\f[]
 | 
						|
include only non\-virtual postings
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-depth=N\f[]
 | 
						|
hide accounts/postings deeper than N
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-E\ \-\-empty\f[]
 | 
						|
show items with zero amount, normally hidden
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-B\ \-\-cost\f[]
 | 
						|
show amounts in their cost price\[aq]s commodity
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.TP
 | 
						|
.B \f[C]\-\-pivot\ TAG\f[]
 | 
						|
will transform the journal before any other processing by replacing the
 | 
						|
account name of every posting having the tag TAG with content VALUE by
 | 
						|
the account name "TAG:VALUE".
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
The TAG will only match if it is a full\-length match.
 | 
						|
The pivot will only happen if the TAG is on a posting, not if it is on
 | 
						|
the transaction.
 | 
						|
If the tag value is a multi:level:account:name the new account name will
 | 
						|
be "TAG:multi:level:account:name".
 | 
						|
.RS
 | 
						|
.RE
 | 
						|
.SH KEYS
 | 
						|
.PP
 | 
						|
\f[C]?\f[] shows a help dialog listing all keys.
 | 
						|
(Some but not all 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.
 | 
						|
.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[] movement keys are
 | 
						|
also supported.
 | 
						|
(A tip: movement speed is limited by your keyboard repeat rate, to move
 | 
						|
faster you may want to adjust that.
 | 
						|
On a mac, the Karabiner app is one way to do that.)
 | 
						|
.PP
 | 
						|
On most screens, \f[C]/\f[] lets you set or change the filter query,
 | 
						|
which limits the data shown (this filter is in addition to the quick
 | 
						|
filters described below).
 | 
						|
While editing the query you can use typical command\-line edit keys
 | 
						|
(CTRL\-a/e/d/k, cursor keys etc.), and \f[C]ENTER\f[]to set the new
 | 
						|
filter or \f[C]ESCAPE\f[]to cancel.
 | 
						|
.PP
 | 
						|
\f[C]d\f[] cycles through the common report period durations: day, week,
 | 
						|
month, quarter, year, and unlimited (the default).
 | 
						|
When the report duration is limited in this way, \f[C]n\f[] and
 | 
						|
\f[C]p\f[] step to the next or previous day/week/month/etc.
 | 
						|
(To set arbitrary start/end dates, you can use \f[C]/\f[] to set a
 | 
						|
\f[C]date:\f[] query.)
 | 
						|
.PP
 | 
						|
\f[C]BACKSPACE\f[] or \f[C]DELETE\f[] clears any filters in effect.
 | 
						|
.PP
 | 
						|
\f[C]ESCAPE\f[] removes any filters currently in effect, and jumps to
 | 
						|
the top screen.
 | 
						|
Or, it cancels a minibuffer edit or help dialog if one is active.
 | 
						|
.PP
 | 
						|
\f[C]g\f[] reloads from the data file(s) and updates the current screen
 | 
						|
and any previous screens.
 | 
						|
(With large files, there can be 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\[aq]s add command, and reloads the
 | 
						|
updated file.
 | 
						|
This allows some basic data entry.
 | 
						|
.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\[aq]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 normally indented to show the hierarchy (tree mode).
 | 
						|
To see less detail, set a depth limit by pressing a number key,
 | 
						|
\f[C]1\f[] to \f[C]9\f[].
 | 
						|
\f[C]0\f[] shows even less detail, collapsing all accounts to a single
 | 
						|
total.
 | 
						|
\f[C]\-\f[] and \f[C]+\f[] (or \f[C]=\f[]) decrease and increase the
 | 
						|
depth limit.
 | 
						|
To remove the depth limit, set it higher than the maximum account depth,
 | 
						|
or press \f[C]ESCAPE\f[].
 | 
						|
.PP
 | 
						|
\f[C]F\f[] toggles flat mode on and off.
 | 
						|
In flat mode, accounts are listed without indentation, and show their
 | 
						|
subaccount\-excluding balances, except for accounts which have been
 | 
						|
clipped by a depth limit, which show their inclusive balances (as with
 | 
						|
hledger\[aq]s balance command).
 | 
						|
.PP
 | 
						|
\f[C]C\f[] toggles cleared mode, in which uncleared transactions and
 | 
						|
postings are not shown.
 | 
						|
\f[C]U\f[] toggles uncleared mode, in which only uncleared
 | 
						|
transactions/postings are shown.
 | 
						|
.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\[aq]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\[aq]s balance; positive for an
 | 
						|
inflow to this account, negative for an outflow.
 | 
						|
.IP \[bu] 2
 | 
						|
the current account\[aq]s historic balance (if no query other than a
 | 
						|
date limit is in effect) or the running total starting from zero
 | 
						|
(otherwise), after the transaction.
 | 
						|
.PD 0
 | 
						|
.P
 | 
						|
.PD
 | 
						|
Eg, these will show historic balances:
 | 
						|
.RS 2
 | 
						|
.IP
 | 
						|
.nf
 | 
						|
\f[C]
 | 
						|
$\ hledger\-ui
 | 
						|
$\ hledger\-ui\ \-\-begin\ \[aq]this\ month\[aq]
 | 
						|
$\ hledger\-ui\ \-\-register\ checking\ date:2015/10
 | 
						|
\f[]
 | 
						|
.fi
 | 
						|
.PP
 | 
						|
while these will show a running total, since the queries are not just
 | 
						|
date limits:
 | 
						|
.IP
 | 
						|
.nf
 | 
						|
\f[C]
 | 
						|
$\ hledger\-ui\ checking
 | 
						|
$\ hledger\-ui\ \-\-begin\ \[aq]this\ month\[aq]\ desc:market
 | 
						|
$\ hledger\-ui\ \-\-register\ checking\ \-\-cleared
 | 
						|
\f[]
 | 
						|
.fi
 | 
						|
.RE
 | 
						|
.PP
 | 
						|
The register screen normally shows transactions in the current account
 | 
						|
and any of its subaccounts (inclusive mode).
 | 
						|
If it was entered from the accounts screen in flat mode, where the
 | 
						|
selected account was not depth\-clipped and therefore was showing its
 | 
						|
subaccount\-excluding balance, the register too will omit the
 | 
						|
transactions of subaccounts (exclusive mode).
 | 
						|
This means the register always shows the transactions responsible for
 | 
						|
the balance being displayed on the accounts screen.
 | 
						|
.PP
 | 
						|
\f[C]C\f[] toggles cleared mode, in which uncleared transactions and
 | 
						|
postings are not shown.
 | 
						|
\f[C]U\f[] toggles uncleared mode, in which only uncleared
 | 
						|
transactions/postings are shown.
 | 
						|
.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\[aq]s print command and journal format
 | 
						|
(hledger_journal(5)).
 | 
						|
.PP
 | 
						|
The transaction\[aq]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\[aq]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\[aq]t work (hledger\-ui can\[aq]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.
 | 
						|
Also there is no visual indication that this is in progress.
 | 
						|
.PP
 | 
						|
The register screen\[aq]s switching between historic balance and running
 | 
						|
total based on query arguments may be confusing, and there is no column
 | 
						|
heading to indicate which is being displayed.
 | 
						|
 | 
						|
 | 
						|
.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
 |