Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Save frequently used options

You can save frequently used options and arguments in an argument file, one per line, then reuse them via a @FILE argument on the command line.

Here’s an example. I keep frequently-used options for quick daily reports in a file called simple.args. The name can be anything; I use a .args suffix so I can find these easily. Here’s the content of simple.args:

--alias=/:(business|personal):/=:
--alias=/:(bank|cash|online):/=:
--alias=/:bofi:/=:b
--alias=/:unify:/=:u
--alias=/:wf:/=:w
-2
cur:.

The format is one command-line flag or command-line argument per line. Special characters should have one less level of quoting than at the command prompt (so no quotes around those (|) characters), and spaces should be avoided except inside quotes (so = is used between flags and arguments).

Now if I write @simple.args in a hledger command line, it will be replaced by all of the above options/flags.

(In case you’re wondering about this example: it removes some detail, giving simplified reports which were easier for me to read at a glance):

  • the aliases simplify the chart of accounts, hiding some distinctions (eg business vs. personal) and flattening some bank account names
  • the -2 depth flag limits account depth to 2, hiding deeper subaccounts
  • the cur:. query argument shows only single-character currencies, hiding a bunch of cluttersome commodities I don’t want to see

Usage

Generate a balance report showing the simplified accounts:

$ hledger bal @simple.args

Start a live-updating hledger-ui showing the simplified asset accounts only:

$ hledger-ui --watch @simple.args assets

Options in the arguments file can be overridden by similar options later on the command line, in the usual way. Eg, to show just a little more account detail:

$ hledger bal @simple.args -3

Suppressing this feature

If you actually need to write an argument beginning with @, eg let’s say you have an account pattern beginning with that character, you’ll want a way to disable this feature. On unix systems at least, you can do that by inserting a -- (double hyphen) argument first. Eg:

$ hledger bal @somewhere.com       # looks for additional arguments in the ./somewhere.com file
$ hledger bal -- @somewhere.com    # matches account names containing "@somewhere.com"

On windows, this double hyphen trick might require a hledger built with GHC 8.2+.