doc: regenerate embedded manuals
[ci skip]
This commit is contained in:
		
							parent
							
								
									c433873e04
								
							
						
					
					
						commit
						4228203740
					
				| @ -1,4 +1,4 @@ | |||||||
| This is hledger-api.1.info, produced by makeinfo version 6.1 from stdin. | This is hledger-api.1.info, produced by makeinfo version 6.0 from stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-api.1.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | File: hledger-api.1.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | ||||||
|  | |||||||
| @ -8,19 +8,77 @@ | |||||||
| CSV \- how hledger reads CSV data, and the CSV rules file format | CSV \- how hledger reads CSV data, and the CSV rules file format | ||||||
| .SH DESCRIPTION | .SH DESCRIPTION | ||||||
| .PP | .PP | ||||||
| hledger can read CSV files, converting each CSV record into a journal | hledger can read CSV (comma\-separated value) files as if they were | ||||||
| entry (transaction), if you provide some conversion hints in a "rules | journal files, automatically converting each CSV record into a | ||||||
| file". | transaction. | ||||||
| This file should be named like the CSV file with an additional | (To learn about \f[I]writing\f[] CSV, see CSV output.) | ||||||
| \f[C]\&.rules\f[] suffix (eg: \f[C]mybank.csv.rules\f[]); or, you can |  | ||||||
| specify the file with \f[C]\-\-rules\-file\ PATH\f[]. |  | ||||||
| hledger will create it if necessary, with some default rules which |  | ||||||
| you\[aq]ll need to adjust. |  | ||||||
| At minimum, the rules file must specify the \f[C]date\f[] and |  | ||||||
| \f[C]amount\f[] fields. |  | ||||||
| For an example, see Cookbook: convert CSV files. |  | ||||||
| .PP | .PP | ||||||
| To learn about \f[I]exporting\f[] CSV, see CSV output. | Converting CSV to transactions requires some special conversion rules. | ||||||
|  | These do several things: | ||||||
|  | .IP \[bu] 2 | ||||||
|  | they describe the layout and format of the CSV data | ||||||
|  | .IP \[bu] 2 | ||||||
|  | they can customize the generated journal entries using a simple | ||||||
|  | templating language | ||||||
|  | .IP \[bu] 2 | ||||||
|  | they can add refinements based on patterns in the CSV data, eg | ||||||
|  | categorizing transactions with more detailed account names. | ||||||
|  | .PP | ||||||
|  | When reading a CSV file named \f[C]FILE.csv\f[], hledger looks for a | ||||||
|  | conversion rules file named \f[C]FILE.csv.rules\f[] in the same | ||||||
|  | directory. | ||||||
|  | You can override this with the \f[C]\-\-rules\-file\f[] option. | ||||||
|  | If the rules file does not exist, hledger will auto\-create one with | ||||||
|  | some example rules, which you\[aq]ll need to adjust. | ||||||
|  | .PP | ||||||
|  | At minimum, the rules file must identify the \f[C]date\f[] and | ||||||
|  | \f[C]amount\f[] fields. | ||||||
|  | It may also be necessary to specify the date format, and the number of | ||||||
|  | header lines to skip. | ||||||
|  | Eg: | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | fields\ date,\ _,\ _,\ amount | ||||||
|  | date\-format\ \ %d/%m/%Y | ||||||
|  | skip\ 1 | ||||||
|  | \f[] | ||||||
|  | .fi | ||||||
|  | .PP | ||||||
|  | A more complete example: | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | #\ hledger\ CSV\ rules\ for\ amazon.com\ order\ history | ||||||
|  | 
 | ||||||
|  | #\ sample: | ||||||
|  | #\ "Date","Type","To/From","Name","Status","Amount","Fees","Transaction\ ID" | ||||||
|  | #\ "Jul\ 29,\ 2012","Payment","To","Adapteva,\ Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL" | ||||||
|  | 
 | ||||||
|  | #\ skip\ one\ header\ line | ||||||
|  | skip\ 1 | ||||||
|  | 
 | ||||||
|  | #\ name\ the\ csv\ fields\ (and\ assign\ the\ transaction\[aq]s\ date,\ amount\ and\ code) | ||||||
|  | fields\ date,\ _,\ toorfrom,\ name,\ amzstatus,\ amount,\ fees,\ code | ||||||
|  | 
 | ||||||
|  | #\ how\ to\ parse\ the\ date | ||||||
|  | date\-format\ %b\ %\-d,\ %Y | ||||||
|  | 
 | ||||||
|  | #\ combine\ two\ fields\ to\ make\ the\ description | ||||||
|  | description\ %toorfrom\ %name | ||||||
|  | 
 | ||||||
|  | #\ save\ these\ fields\ as\ tags | ||||||
|  | comment\ \ \ \ \ status:%amzstatus,\ fees:%fees | ||||||
|  | 
 | ||||||
|  | #\ set\ the\ base\ account\ for\ all\ transactions | ||||||
|  | account1\ \ \ \ assets:amazon | ||||||
|  | 
 | ||||||
|  | #\ flip\ the\ sign\ on\ the\ amount | ||||||
|  | amount\ \ \ \ \ \ \-%amount | ||||||
|  | \f[] | ||||||
|  | .fi | ||||||
|  | .PP | ||||||
|  | For more examples, see Convert CSV files. | ||||||
| .SH CSV RULES | .SH CSV RULES | ||||||
| .PP | .PP | ||||||
| The following seven kinds of rule can appear in the rules file, in any | The following seven kinds of rule can appear in the rules file, in any | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger_csv.5.info, produced by makeinfo version 6.1 from stdin. | This is hledger_csv.5.info, produced by makeinfo version 6.0 from stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger_csv.5.info,  Node: Top,  Next: CSV RULES,  Up: (dir) | File: hledger_csv.5.info,  Node: Top,  Next: CSV RULES,  Up: (dir) | ||||||
| @ -6,16 +6,63 @@ File: hledger_csv.5.info,  Node: Top,  Next: CSV RULES,  Up: (dir) | |||||||
| hledger_csv(5) hledger 1.4 | hledger_csv(5) hledger 1.4 | ||||||
| ************************** | ************************** | ||||||
| 
 | 
 | ||||||
| hledger can read CSV files, converting each CSV record into a journal | hledger can read CSV (comma-separated value) files as if they were | ||||||
| entry (transaction), if you provide some conversion hints in a "rules | journal files, automatically converting each CSV record into a | ||||||
| file".  This file should be named like the CSV file with an additional | transaction.  (To learn about _writing_ CSV, see CSV output.) | ||||||
| '.rules' suffix (eg: 'mybank.csv.rules'); or, you can specify the file |  | ||||||
| with '--rules-file PATH'.  hledger will create it if necessary, with |  | ||||||
| some default rules which you'll need to adjust.  At minimum, the rules |  | ||||||
| file must specify the 'date' and 'amount' fields.  For an example, see |  | ||||||
| Cookbook: convert CSV files. |  | ||||||
| 
 | 
 | ||||||
|    To learn about _exporting_ CSV, see CSV output. |    Converting CSV to transactions requires some special conversion | ||||||
|  | rules.  These do several things: | ||||||
|  | 
 | ||||||
|  |    * they describe the layout and format of the CSV data | ||||||
|  |    * they can customize the generated journal entries using a simple | ||||||
|  |      templating language | ||||||
|  |    * they can add refinements based on patterns in the CSV data, eg | ||||||
|  |      categorizing transactions with more detailed account names. | ||||||
|  | 
 | ||||||
|  |    When reading a CSV file named 'FILE.csv', hledger looks for a | ||||||
|  | conversion rules file named 'FILE.csv.rules' in the same directory.  You | ||||||
|  | can override this with the '--rules-file' option.  If the rules file | ||||||
|  | does not exist, hledger will auto-create one with some example rules, | ||||||
|  | which you'll need to adjust. | ||||||
|  | 
 | ||||||
|  |    At minimum, the rules file must identify the 'date' and 'amount' | ||||||
|  | fields.  It may also be necessary to specify the date format, and the | ||||||
|  | number of header lines to skip.  Eg: | ||||||
|  | 
 | ||||||
|  | fields date, _, _, amount | ||||||
|  | date-format  %d/%m/%Y | ||||||
|  | skip 1 | ||||||
|  | 
 | ||||||
|  |    A more complete example: | ||||||
|  | 
 | ||||||
|  | # hledger CSV rules for amazon.com order history | ||||||
|  | 
 | ||||||
|  | # sample: | ||||||
|  | # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID" | ||||||
|  | # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL" | ||||||
|  | 
 | ||||||
|  | # skip one header line | ||||||
|  | skip 1 | ||||||
|  | 
 | ||||||
|  | # name the csv fields (and assign the transaction's date, amount and code) | ||||||
|  | fields date, _, toorfrom, name, amzstatus, amount, fees, code | ||||||
|  | 
 | ||||||
|  | # how to parse the date | ||||||
|  | date-format %b %-d, %Y | ||||||
|  | 
 | ||||||
|  | # combine two fields to make the description | ||||||
|  | description %toorfrom %name | ||||||
|  | 
 | ||||||
|  | # save these fields as tags | ||||||
|  | comment     status:%amzstatus, fees:%fees | ||||||
|  | 
 | ||||||
|  | # set the base account for all transactions | ||||||
|  | account1    assets:amazon | ||||||
|  | 
 | ||||||
|  | # flip the sign on the amount | ||||||
|  | amount      -%amount | ||||||
|  | 
 | ||||||
|  |    For more examples, see Convert CSV files. | ||||||
| * Menu: | * Menu: | ||||||
| 
 | 
 | ||||||
| * CSV RULES:: | * CSV RULES:: | ||||||
| @ -270,33 +317,33 @@ one rules file will be used for all the CSV files being read. | |||||||
|  |  | ||||||
| Tag Table: | Tag Table: | ||||||
| Node: Top74 | Node: Top74 | ||||||
| Node: CSV RULES810 | Node: CSV RULES2165 | ||||||
| Ref: #csv-rules920 | Ref: #csv-rules2275 | ||||||
| Node: skip1182 | Node: skip2537 | ||||||
| Ref: #skip1278 | Ref: #skip2633 | ||||||
| Node: date-format1450 | Node: date-format2805 | ||||||
| Ref: #date-format1579 | Ref: #date-format2934 | ||||||
| Node: field list2085 | Node: field list3440 | ||||||
| Ref: #field-list2224 | Ref: #field-list3579 | ||||||
| Node: field assignment2929 | Node: field assignment4284 | ||||||
| Ref: #field-assignment3086 | Ref: #field-assignment4441 | ||||||
| Node: conditional block3590 | Node: conditional block4945 | ||||||
| Ref: #conditional-block3746 | Ref: #conditional-block5101 | ||||||
| Node: include4642 | Node: include5997 | ||||||
| Ref: #include4774 | Ref: #include6129 | ||||||
| Node: newest-first5005 | Node: newest-first6360 | ||||||
| Ref: #newest-first5121 | Ref: #newest-first6476 | ||||||
| Node: CSV TIPS5532 | Node: CSV TIPS6887 | ||||||
| Ref: #csv-tips5628 | Ref: #csv-tips6983 | ||||||
| Node: CSV ordering5746 | Node: CSV ordering7101 | ||||||
| Ref: #csv-ordering5866 | Ref: #csv-ordering7221 | ||||||
| Node: CSV accounts6047 | Node: CSV accounts7402 | ||||||
| Ref: #csv-accounts6187 | Ref: #csv-accounts7542 | ||||||
| Node: CSV amounts6441 | Node: CSV amounts7796 | ||||||
| Ref: #csv-amounts6589 | Ref: #csv-amounts7944 | ||||||
| Node: CSV balance assertions7364 | Node: CSV balance assertions8719 | ||||||
| Ref: #csv-balance-assertions7548 | Ref: #csv-balance-assertions8903 | ||||||
| Node: Reading multiple CSV files7753 | Node: Reading multiple CSV files9108 | ||||||
| Ref: #reading-multiple-csv-files7925 | Ref: #reading-multiple-csv-files9280 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
|  | |||||||
| @ -7,16 +7,65 @@ NAME | |||||||
|        CSV - how hledger reads CSV data, and the CSV rules file format |        CSV - how hledger reads CSV data, and the CSV rules file format | ||||||
| 
 | 
 | ||||||
| DESCRIPTION | DESCRIPTION | ||||||
|        hledger  can  read CSV files, converting each CSV record into a journal |        hledger  can  read  CSV  (comma-separated  value) files as if they were | ||||||
|        entry (transaction), if you provide some conversion hints in  a  "rules |        journal files, automatically converting each CSV record into a transac- | ||||||
|        file".   This file should be named like the CSV file with an additional |        tion.  (To learn about writing CSV, see CSV output.) | ||||||
|        .rules suffix (eg: mybank.csv.rules); or, you can specify the file with |  | ||||||
|        --rules-file PATH.   hledger  will  create  it  if necessary, with some |  | ||||||
|        default rules which you'll need to adjust.  At minimum, the rules  file |  | ||||||
|        must specify the date and amount fields.  For an example, see Cookbook: |  | ||||||
|        convert CSV files. |  | ||||||
| 
 | 
 | ||||||
|        To learn about exporting CSV, see CSV output. |        Converting  CSV to transactions requires some special conversion rules. | ||||||
|  |        These do several things: | ||||||
|  | 
 | ||||||
|  |        o they describe the layout and format of the CSV data | ||||||
|  | 
 | ||||||
|  |        o they can customize the generated journal entries using a simple  tem- | ||||||
|  |          plating language | ||||||
|  | 
 | ||||||
|  |        o they  can add refinements based on patterns in the CSV data, eg cate- | ||||||
|  |          gorizing transactions with more detailed account names. | ||||||
|  | 
 | ||||||
|  |        When reading a CSV file named FILE.csv, hledger looks for a  conversion | ||||||
|  |        rules  file  named FILE.csv.rules in the same directory.  You can over- | ||||||
|  |        ride this with the --rules-file option.  If the  rules  file  does  not | ||||||
|  |        exist,  hledger  will  auto-create  one  with some example rules, which | ||||||
|  |        you'll need to adjust. | ||||||
|  | 
 | ||||||
|  |        At minimum, the rules file must identify the date  and  amount  fields. | ||||||
|  |        It  may also be necessary to specify the date format, and the number of | ||||||
|  |        header lines to skip.  Eg: | ||||||
|  | 
 | ||||||
|  |               fields date, _, _, amount | ||||||
|  |               date-format  %d/%m/%Y | ||||||
|  |               skip 1 | ||||||
|  | 
 | ||||||
|  |        A more complete example: | ||||||
|  | 
 | ||||||
|  |               # hledger CSV rules for amazon.com order history | ||||||
|  | 
 | ||||||
|  |               # sample: | ||||||
|  |               # "Date","Type","To/From","Name","Status","Amount","Fees","Transaction ID" | ||||||
|  |               # "Jul 29, 2012","Payment","To","Adapteva, Inc.","Completed","$25.00","$0.00","17LA58JSK6PRD4HDGLNJQPI1PB9N8DKPVHL" | ||||||
|  | 
 | ||||||
|  |               # skip one header line | ||||||
|  |               skip 1 | ||||||
|  | 
 | ||||||
|  |               # name the csv fields (and assign the transaction's date, amount and code) | ||||||
|  |               fields date, _, toorfrom, name, amzstatus, amount, fees, code | ||||||
|  | 
 | ||||||
|  |               # how to parse the date | ||||||
|  |               date-format %b %-d, %Y | ||||||
|  | 
 | ||||||
|  |               # combine two fields to make the description | ||||||
|  |               description %toorfrom %name | ||||||
|  | 
 | ||||||
|  |               # save these fields as tags | ||||||
|  |               comment     status:%amzstatus, fees:%fees | ||||||
|  | 
 | ||||||
|  |               # set the base account for all transactions | ||||||
|  |               account1    assets:amazon | ||||||
|  | 
 | ||||||
|  |               # flip the sign on the amount | ||||||
|  |               amount      -%amount | ||||||
|  | 
 | ||||||
|  |        For more examples, see Convert CSV files. | ||||||
| 
 | 
 | ||||||
| CSV RULES | CSV RULES | ||||||
|        The following seven kinds of rule can appear in the rules file, in  any |        The following seven kinds of rule can appear in the rules file, in  any | ||||||
| @ -126,59 +175,59 @@ CSV RULES | |||||||
|    newest-first |    newest-first | ||||||
|        newest-first |        newest-first | ||||||
| 
 | 
 | ||||||
|        Consider  adding  this rule if all of the following are true: you might |        Consider adding this rule if all of the following are true:  you  might | ||||||
|        be processing just one day of data, your CSV  records  are  in  reverse |        be  processing  just  one  day of data, your CSV records are in reverse | ||||||
|        chronological  order  (newest first), and you care about preserving the |        chronological order (newest first), and you care about  preserving  the | ||||||
|        order of same-day  transactions.   It  usually  isn't  needed,  because |        order  of  same-day  transactions.   It  usually  isn't needed, because | ||||||
|        hledger  autodetects  the  CSV order, but when all CSV records have the |        hledger autodetects the CSV order, but when all CSV  records  have  the | ||||||
|        same date it will assume they are oldest first. |        same date it will assume they are oldest first. | ||||||
| 
 | 
 | ||||||
| CSV TIPS | CSV TIPS | ||||||
|    CSV ordering |    CSV ordering | ||||||
|        The generated journal entries will be sorted by  date.   The  order  of |        The  generated  journal  entries  will be sorted by date.  The order of | ||||||
|        same-day  entries  will  be preserved (except in the special case where |        same-day entries will be preserved (except in the  special  case  where | ||||||
|        you might need newest-first, see above). |        you might need newest-first, see above). | ||||||
| 
 | 
 | ||||||
|    CSV accounts |    CSV accounts | ||||||
|        Each journal entry will have two postings,  to  account1  and  account2 |        Each  journal  entry  will  have two postings, to account1 and account2 | ||||||
|        respectively.  It's not yet possible to generate entries with more than |        respectively.  It's not yet possible to generate entries with more than | ||||||
|        two postings.  It's conventional and recommended to  use  account1  for |        two  postings.   It's  conventional and recommended to use account1 for | ||||||
|        the account whose CSV we are reading. |        the account whose CSV we are reading. | ||||||
| 
 | 
 | ||||||
|    CSV amounts |    CSV amounts | ||||||
|        The amount field sets the amount of the account1 posting. |        The amount field sets the amount of the account1 posting. | ||||||
| 
 | 
 | ||||||
|        If  the  CSV has debit/credit amounts in separate fields, assign to the |        If the CSV has debit/credit amounts in separate fields, assign  to  the | ||||||
|        amount-in and amount-out pseudo fields instead.  (Whichever one  has  a |        amount-in  and  amount-out pseudo fields instead.  (Whichever one has a | ||||||
|        value will be used, with appropriate sign.  If both contain a value, it |        value will be used, with appropriate sign.  If both contain a value, it | ||||||
|        may not work so well.) |        may not work so well.) | ||||||
| 
 | 
 | ||||||
|        If an amount value is parenthesised, it will  be  de-parenthesised  and |        If  an  amount  value is parenthesised, it will be de-parenthesised and | ||||||
|        sign-flipped. |        sign-flipped. | ||||||
| 
 | 
 | ||||||
|        If  an  amount value begins with a double minus sign, those will cancel |        If an amount value begins with a double minus sign, those  will  cancel | ||||||
|        out and be removed. |        out and be removed. | ||||||
| 
 | 
 | ||||||
|        If the CSV has the currency symbol in a separate field, assign that  to |        If  the CSV has the currency symbol in a separate field, assign that to | ||||||
|        the  currency pseudo field to have it prepended to the amount.  Or, you |        the currency pseudo field to have it prepended to the amount.  Or,  you | ||||||
|        can use a field assignment to amount that interpolates both CSV  fields |        can  use a field assignment to amount that interpolates both CSV fields | ||||||
|        (giving more control, eg to put the currency symbol on the right). |        (giving more control, eg to put the currency symbol on the right). | ||||||
| 
 | 
 | ||||||
|    CSV balance assertions |    CSV balance assertions | ||||||
|        If  the CSV includes a running balance, you can assign that to the bal- |        If the CSV includes a running balance, you can assign that to the  bal- | ||||||
|        ance pseudo field; whenever the running balance value is non-empty,  it |        ance  pseudo field; whenever the running balance value is non-empty, it | ||||||
|        will be asserted as the balance after the account1 posting. |        will be asserted as the balance after the account1 posting. | ||||||
| 
 | 
 | ||||||
|    Reading multiple CSV files |    Reading multiple CSV files | ||||||
|        You  can read multiple CSV files at once using multiple -f arguments on |        You can read multiple CSV files at once using multiple -f arguments  on | ||||||
|        the command line, and hledger will  look  for  a  correspondingly-named |        the  command  line,  and  hledger will look for a correspondingly-named | ||||||
|        rules file for each.  Note if you use the --rules-file option, this one |        rules file for each.  Note if you use the --rules-file option, this one | ||||||
|        rules file will be used for all the CSV files being read. |        rules file will be used for all the CSV files being read. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 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) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -192,7 +241,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) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -384,7 +384,26 @@ digit groups (thousands, or any other grouping) can be separated by | |||||||
| commas (in which case period is used for decimal point) or periods (in | commas (in which case period is used for decimal point) or periods (in | ||||||
| which case comma is used for decimal point) | which case comma is used for decimal point) | ||||||
| .PP | .PP | ||||||
| You can use any of these variations when recording data, but when | You can use any of these variations when recording data. | ||||||
|  | However, there is some ambiguous way of representing numbers like | ||||||
|  | \f[C]$1.000\f[] and \f[C]$1,000\f[] both may mean either one thousand or | ||||||
|  | one dollar. | ||||||
|  | By default hledger will assume that this is sole delimiter is used only | ||||||
|  | for decimals. | ||||||
|  | On the other hand commodity format declared prior to that line will help | ||||||
|  | to resolve that ambiguity differently: | ||||||
|  | .IP | ||||||
|  | .nf | ||||||
|  | \f[C] | ||||||
|  | commodity\ $1,000.00 | ||||||
|  | 
 | ||||||
|  | 2017/12/25\ New\ life\ of\ Scrooge | ||||||
|  | \ \ \ \ expenses:gifts\ \ $1,000 | ||||||
|  | \ \ \ \ assets | ||||||
|  | \f[] | ||||||
|  | .fi | ||||||
|  | .PP | ||||||
|  | Though journal may contain mixed styles to represent amount, when | ||||||
| hledger displays amounts, it will choose a consistent format for each | hledger displays amounts, it will choose a consistent format for each | ||||||
| commodity. | commodity. | ||||||
| (Except for price amounts, which are always formatted as written). | (Except for price amounts, which are always formatted as written). | ||||||
| @ -716,9 +735,9 @@ P\ 2010/1/1\ €\ $1.40 | |||||||
| .SS Comments | .SS Comments | ||||||
| .PP | .PP | ||||||
| Lines in the journal beginning with a semicolon (\f[C];\f[]) or hash | Lines in the journal beginning with a semicolon (\f[C];\f[]) or hash | ||||||
| (\f[C]#\f[]) or asterisk (\f[C]*\f[]) are comments, and will be ignored. | (\f[C]#\f[]) or star (\f[C]*\f[]) are comments, and will be ignored. | ||||||
| (Asterisk comments make it easy to treat your journal like an org\-mode | (Star comments cause org\-mode nodes to be ignored, allowing emacs users | ||||||
| outline in emacs.) | to fold and navigate their journals with org\-mode or orgstruct\-mode.) | ||||||
| .PP | .PP | ||||||
| Also, anything between \f[C]comment\f[] and \f[C]end\ comment\f[] | Also, anything between \f[C]comment\f[] and \f[C]end\ comment\f[] | ||||||
| directives is a (multi\-line) comment. | directives is a (multi\-line) comment. | ||||||
| @ -730,20 +749,22 @@ description and/or indented on the following lines (before the | |||||||
| postings). | postings). | ||||||
| Similarly, you can attach comments to an individual posting by writing | Similarly, you can attach comments to an individual posting by writing | ||||||
| them after the amount and/or indented on the following lines. | them after the amount and/or indented on the following lines. | ||||||
|  | Transaction and posting comments must begin with a semicolon | ||||||
|  | (\f[C];\f[]). | ||||||
| .PP | .PP | ||||||
| Some examples: | Some examples: | ||||||
| .IP | .IP | ||||||
| .nf | .nf | ||||||
| \f[C] | \f[C] | ||||||
| #\ a\ journal\ comment | #\ a\ file\ comment | ||||||
| 
 | 
 | ||||||
| ;\ also\ a\ journal\ comment | ;\ also\ a\ file\ comment | ||||||
| 
 | 
 | ||||||
| comment | comment | ||||||
| This\ is\ a\ multiline\ comment, | This\ is\ a\ multiline\ file\ comment, | ||||||
| which\ continues\ until\ a\ line | which\ continues\ until\ a\ line | ||||||
| where\ the\ "end\ comment"\ string | where\ the\ "end\ comment"\ string | ||||||
| appears\ on\ its\ own. | appears\ on\ its\ own\ (or\ end\ of\ file). | ||||||
| end\ comment | end\ comment | ||||||
| 
 | 
 | ||||||
| 2012/5/14\ something\ \ ;\ a\ transaction\ comment | 2012/5/14\ something\ \ ;\ a\ transaction\ comment | ||||||
| @ -752,7 +773,7 @@ end\ comment | |||||||
| \ \ \ \ posting2 | \ \ \ \ posting2 | ||||||
| \ \ \ \ ;\ a\ comment\ for\ posting\ 2 | \ \ \ \ ;\ a\ comment\ for\ posting\ 2 | ||||||
| \ \ \ \ ;\ another\ comment\ line\ for\ posting\ 2 | \ \ \ \ ;\ another\ comment\ line\ for\ posting\ 2 | ||||||
| ;\ a\ journal\ comment\ (because\ not\ indented) | ;\ a\ file\ comment\ (because\ not\ indented) | ||||||
| \f[] | \f[] | ||||||
| .fi | .fi | ||||||
| .SS Tags | .SS Tags | ||||||
| @ -1038,7 +1059,7 @@ commodity\-less amounts, or until the next D directive. | |||||||
| D\ $1,000.00 | D\ $1,000.00 | ||||||
| 
 | 
 | ||||||
| 1/1 | 1/1 | ||||||
| \ \ a\ \ \ \ \ 5\ \ \ \ #\ <\-\ commodity\-less\ amount,\ becomes\ $1 | \ \ a\ \ \ \ \ 5\ \ \ \ ;\ <\-\ commodity\-less\ amount,\ becomes\ $1 | ||||||
| \ \ b | \ \ b | ||||||
| \f[] | \f[] | ||||||
| .fi | .fi | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger_journal.5.info, produced by makeinfo version 6.1 from | This is hledger_journal.5.info, produced by makeinfo version 6.0 from | ||||||
| stdin. | stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| @ -361,7 +361,20 @@ commodity name.  Some examples: | |||||||
|      commas (in which case period is used for decimal point) or periods |      commas (in which case period is used for decimal point) or periods | ||||||
|      (in which case comma is used for decimal point) |      (in which case comma is used for decimal point) | ||||||
| 
 | 
 | ||||||
|    You can use any of these variations when recording data, but when |    You can use any of these variations when recording data.  However, | ||||||
|  | there is some ambiguous way of representing numbers like '$1.000' and | ||||||
|  | '$1,000' both may mean either one thousand or one dollar.  By default | ||||||
|  | hledger will assume that this is sole delimiter is used only for | ||||||
|  | decimals.  On the other hand commodity format declared prior to that | ||||||
|  | line will help to resolve that ambiguity differently: | ||||||
|  | 
 | ||||||
|  | commodity $1,000.00 | ||||||
|  | 
 | ||||||
|  | 2017/12/25 New life of Scrooge | ||||||
|  |     expenses:gifts  $1,000 | ||||||
|  |     assets | ||||||
|  | 
 | ||||||
|  |    Though journal may contain mixed styles to represent amount, when | ||||||
| hledger displays amounts, it will choose a consistent format for each | hledger displays amounts, it will choose a consistent format for each | ||||||
| commodity.  (Except for price amounts, which are always formatted as | commodity.  (Except for price amounts, which are always formatted as | ||||||
| written).  The display format is chosen as follows: | written).  The display format is chosen as follows: | ||||||
| @ -684,8 +697,9 @@ File: hledger_journal.5.info,  Node: Comments,  Next: Tags,  Prev: Prices,  Up: | |||||||
| ============= | ============= | ||||||
| 
 | 
 | ||||||
| Lines in the journal beginning with a semicolon (';') or hash ('#') or | Lines in the journal beginning with a semicolon (';') or hash ('#') or | ||||||
| asterisk ('*') are comments, and will be ignored.  (Asterisk comments | star ('*') are comments, and will be ignored.  (Star comments cause | ||||||
| make it easy to treat your journal like an org-mode outline in emacs.) | org-mode nodes to be ignored, allowing emacs users to fold and navigate | ||||||
|  | their journals with org-mode or orgstruct-mode.) | ||||||
| 
 | 
 | ||||||
|    Also, anything between 'comment' and 'end comment' directives is a |    Also, anything between 'comment' and 'end comment' directives is a | ||||||
| (multi-line) comment.  If there is no 'end comment', the comment extends | (multi-line) comment.  If there is no 'end comment', the comment extends | ||||||
| @ -695,18 +709,19 @@ to the end of the file. | |||||||
| description and/or indented on the following lines (before the | description and/or indented on the following lines (before the | ||||||
| postings).  Similarly, you can attach comments to an individual posting | postings).  Similarly, you can attach comments to an individual posting | ||||||
| by writing them after the amount and/or indented on the following lines. | by writing them after the amount and/or indented on the following lines. | ||||||
|  | Transaction and posting comments must begin with a semicolon (';'). | ||||||
| 
 | 
 | ||||||
|    Some examples: |    Some examples: | ||||||
| 
 | 
 | ||||||
| # a journal comment | # a file comment | ||||||
| 
 | 
 | ||||||
| ; also a journal comment | ; also a file comment | ||||||
| 
 | 
 | ||||||
| comment | comment | ||||||
| This is a multiline comment, | This is a multiline file comment, | ||||||
| which continues until a line | which continues until a line | ||||||
| where the "end comment" string | where the "end comment" string | ||||||
| appears on its own. | appears on its own (or end of file). | ||||||
| end comment | end comment | ||||||
| 
 | 
 | ||||||
| 2012/5/14 something  ; a transaction comment | 2012/5/14 something  ; a transaction comment | ||||||
| @ -715,7 +730,7 @@ end comment | |||||||
|     posting2 |     posting2 | ||||||
|     ; a comment for posting 2 |     ; a comment for posting 2 | ||||||
|     ; another comment line for posting 2 |     ; another comment line for posting 2 | ||||||
| ; a journal comment (because not indented) | ; a file comment (because not indented) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger_journal.5.info,  Node: Tags,  Next: Directives,  Prev: Comments,  Up: FILE FORMAT | File: hledger_journal.5.info,  Node: Tags,  Next: Directives,  Prev: Comments,  Up: FILE FORMAT | ||||||
| @ -992,7 +1007,7 @@ amounts, or until the next D directive. | |||||||
| D $1,000.00 | D $1,000.00 | ||||||
| 
 | 
 | ||||||
| 1/1 | 1/1 | ||||||
|   a     5    # <- commodity-less amount, becomes $1 |   a     5    ; <- commodity-less amount, becomes $1 | ||||||
|   b |   b | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| @ -1087,61 +1102,61 @@ Node: Account names11207 | |||||||
| Ref: #account-names11352 | Ref: #account-names11352 | ||||||
| Node: Amounts11839 | Node: Amounts11839 | ||||||
| Ref: #amounts11977 | Ref: #amounts11977 | ||||||
| Node: Virtual Postings14078 | Node: Virtual Postings14568 | ||||||
| Ref: #virtual-postings14239 | Ref: #virtual-postings14729 | ||||||
| Node: Balance Assertions15459 | Node: Balance Assertions15949 | ||||||
| Ref: #balance-assertions15636 | Ref: #balance-assertions16126 | ||||||
| Node: Assertions and ordering16532 | Node: Assertions and ordering17022 | ||||||
| Ref: #assertions-and-ordering16720 | Ref: #assertions-and-ordering17210 | ||||||
| Node: Assertions and included files17420 | Node: Assertions and included files17910 | ||||||
| Ref: #assertions-and-included-files17663 | Ref: #assertions-and-included-files18153 | ||||||
| Node: Assertions and multiple -f options17996 | Node: Assertions and multiple -f options18486 | ||||||
| Ref: #assertions-and-multiple--f-options18252 | Ref: #assertions-and-multiple--f-options18742 | ||||||
| Node: Assertions and commodities18384 | Node: Assertions and commodities18874 | ||||||
| Ref: #assertions-and-commodities18621 | Ref: #assertions-and-commodities19111 | ||||||
| Node: Assertions and subaccounts19317 | Node: Assertions and subaccounts19807 | ||||||
| Ref: #assertions-and-subaccounts19551 | Ref: #assertions-and-subaccounts20041 | ||||||
| Node: Assertions and virtual postings20072 | Node: Assertions and virtual postings20562 | ||||||
| Ref: #assertions-and-virtual-postings20281 | Ref: #assertions-and-virtual-postings20771 | ||||||
| Node: Balance Assignments20423 | Node: Balance Assignments20913 | ||||||
| Ref: #balance-assignments20594 | Ref: #balance-assignments21084 | ||||||
| Node: Prices21713 | Node: Prices22203 | ||||||
| Ref: #prices21848 | Ref: #prices22338 | ||||||
| Node: Transaction prices21899 | Node: Transaction prices22389 | ||||||
| Ref: #transaction-prices22046 | Ref: #transaction-prices22536 | ||||||
| Node: Market prices24202 | Node: Market prices24692 | ||||||
| Ref: #market-prices24339 | Ref: #market-prices24829 | ||||||
| Node: Comments25299 | Node: Comments25789 | ||||||
| Ref: #comments25423 | Ref: #comments25913 | ||||||
| Node: Tags26536 | Node: Tags27155 | ||||||
| Ref: #tags26656 | Ref: #tags27275 | ||||||
| Node: Directives28058 | Node: Directives28677 | ||||||
| Ref: #directives28173 | Ref: #directives28792 | ||||||
| Node: Account aliases28366 | Node: Account aliases28985 | ||||||
| Ref: #account-aliases28512 | Ref: #account-aliases29131 | ||||||
| Node: Basic aliases29116 | Node: Basic aliases29735 | ||||||
| Ref: #basic-aliases29261 | Ref: #basic-aliases29880 | ||||||
| Node: Regex aliases29951 | Node: Regex aliases30570 | ||||||
| Ref: #regex-aliases30121 | Ref: #regex-aliases30740 | ||||||
| Node: Multiple aliases30839 | Node: Multiple aliases31458 | ||||||
| Ref: #multiple-aliases31013 | Ref: #multiple-aliases31632 | ||||||
| Node: end aliases31511 | Node: end aliases32130 | ||||||
| Ref: #end-aliases31653 | Ref: #end-aliases32272 | ||||||
| Node: account directive31754 | Node: account directive32373 | ||||||
| Ref: #account-directive31936 | Ref: #account-directive32555 | ||||||
| Node: apply account directive32232 | Node: apply account directive32851 | ||||||
| Ref: #apply-account-directive32430 | Ref: #apply-account-directive33049 | ||||||
| Node: Multi-line comments33089 | Node: Multi-line comments33708 | ||||||
| Ref: #multi-line-comments33281 | Ref: #multi-line-comments33900 | ||||||
| Node: commodity directive33409 | Node: commodity directive34028 | ||||||
| Ref: #commodity-directive33595 | Ref: #commodity-directive34214 | ||||||
| Node: Default commodity34467 | Node: Default commodity35086 | ||||||
| Ref: #default-commodity34642 | Ref: #default-commodity35261 | ||||||
| Node: Default year35179 | Node: Default year35798 | ||||||
| Ref: #default-year35346 | Ref: #default-year35965 | ||||||
| Node: Including other files35769 | Node: Including other files36388 | ||||||
| Ref: #including-other-files35928 | Ref: #including-other-files36547 | ||||||
| Node: EDITOR SUPPORT36325 | Node: EDITOR SUPPORT36944 | ||||||
| Ref: #editor-support36445 | Ref: #editor-support37064 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
|  | |||||||
| @ -7,23 +7,23 @@ NAME | |||||||
|        Journal - hledger's default file format, representing a General Journal |        Journal - hledger's default file format, representing a General Journal | ||||||
| 
 | 
 | ||||||
| DESCRIPTION | DESCRIPTION | ||||||
|        hledger's  usual  data  source  is a plain text file containing journal |        hledger's usual data source is a plain  text  file  containing  journal | ||||||
|        entries in hledger journal format.  This  file  represents  a  standard |        entries  in  hledger  journal  format.  This file represents a standard | ||||||
|        accounting  general  journal.  I use file names ending in .journal, but |        accounting general journal.  I use file names ending in  .journal,  but | ||||||
|        that's not required.  The journal file contains a number of transaction |        that's not required.  The journal file contains a number of transaction | ||||||
|        entries, each describing a transfer of money (or any commodity) between |        entries, each describing a transfer of money (or any commodity) between | ||||||
|        two or more named accounts, in a simple format readable by both hledger |        two or more named accounts, in a simple format readable by both hledger | ||||||
|        and humans. |        and humans. | ||||||
| 
 | 
 | ||||||
|        hledger's  journal  format  is a compatible subset, mostly, of ledger's |        hledger's journal format is a compatible subset,  mostly,  of  ledger's | ||||||
|        journal format, so hledger can  work  with  compatible  ledger  journal |        journal  format,  so  hledger  can  work with compatible ledger journal | ||||||
|        files  as  well.   It's  safe,  and encouraged, to run both hledger and |        files as well.  It's safe, and encouraged,  to  run  both  hledger  and | ||||||
|        ledger on the same journal file, eg to validate the results you're get- |        ledger on the same journal file, eg to validate the results you're get- | ||||||
|        ting. |        ting. | ||||||
| 
 | 
 | ||||||
|        You can use hledger without learning any more about this file; just use |        You can use hledger without learning any more about this file; just use | ||||||
|        the add or web commands to create and update it.  Many  users,  though, |        the  add  or web commands to create and update it.  Many users, though, | ||||||
|        also  edit  the  journal  file  directly  with  a  text editor, perhaps |        also edit the  journal  file  directly  with  a  text  editor,  perhaps | ||||||
|        assisted by the helper modes for emacs or vim. |        assisted by the helper modes for emacs or vim. | ||||||
| 
 | 
 | ||||||
|        Here's an example: |        Here's an example: | ||||||
| @ -57,73 +57,73 @@ DESCRIPTION | |||||||
| 
 | 
 | ||||||
| FILE FORMAT | FILE FORMAT | ||||||
|    Transactions |    Transactions | ||||||
|        Transactions are movements of  some  quantity  of  commodities  between |        Transactions  are  movements  of  some  quantity of commodities between | ||||||
|        named  accounts.   Each  transaction  is represented by a journal entry |        named accounts.  Each transaction is represented  by  a  journal  entry | ||||||
|        beginning with a simple date in column 0.  This can be followed by  any |        beginning  with a simple date in column 0.  This can be followed by any | ||||||
|        of the following, separated by spaces: |        of the following, separated by spaces: | ||||||
| 
 | 
 | ||||||
|        o (optional) a status character (empty, !, or *) |        o (optional) a status character (empty, !, or *) | ||||||
| 
 | 
 | ||||||
|        o (optional)  a transaction code (any short number or text, enclosed in |        o (optional) a transaction code (any short number or text, enclosed  in | ||||||
|          parentheses) |          parentheses) | ||||||
| 
 | 
 | ||||||
|        o (optional) a transaction description (any remaining text until end of |        o (optional) a transaction description (any remaining text until end of | ||||||
|          line or a semicolon) |          line or a semicolon) | ||||||
| 
 | 
 | ||||||
|        o (optional)  a  transaction  comment  (any  remaining text following a |        o (optional) a transaction comment  (any  remaining  text  following  a | ||||||
|          semicolon until end of line) |          semicolon until end of line) | ||||||
| 
 | 
 | ||||||
|        Then comes zero or more (but usually at least 2) indented lines  repre- |        Then  comes zero or more (but usually at least 2) indented lines repre- | ||||||
|        senting... |        senting... | ||||||
| 
 | 
 | ||||||
|    Postings |    Postings | ||||||
|        A  posting  is an addition of some amount to, or removal of some amount |        A posting is an addition of some amount to, or removal of  some  amount | ||||||
|        from, an account.  Each posting line begins with at least one space  or |        from,  an account.  Each posting line begins with at least one space or | ||||||
|        tab (2 or 4 spaces is common), followed by: |        tab (2 or 4 spaces is common), followed by: | ||||||
| 
 | 
 | ||||||
|        o (optional) a status character (empty, !, or *), followed by a space |        o (optional) a status character (empty, !, or *), followed by a space | ||||||
| 
 | 
 | ||||||
|        o (required)  an  account  name (any text, optionally containing single |        o (required) an account name (any text,  optionally  containing  single | ||||||
|          spaces, until end of line or a double space) |          spaces, until end of line or a double space) | ||||||
| 
 | 
 | ||||||
|        o (optional) two or more spaces or tabs followed by an amount. |        o (optional) two or more spaces or tabs followed by an amount. | ||||||
| 
 | 
 | ||||||
|        Positive amounts are being added to the account, negative  amounts  are |        Positive  amounts  are being added to the account, negative amounts are | ||||||
|        being removed. |        being removed. | ||||||
| 
 | 
 | ||||||
|        The amounts within a transaction must always sum up to zero.  As a con- |        The amounts within a transaction must always sum up to zero.  As a con- | ||||||
|        venience, one amount may be left blank; it will be inferred  so  as  to |        venience,  one  amount  may be left blank; it will be inferred so as to | ||||||
|        balance the transaction. |        balance the transaction. | ||||||
| 
 | 
 | ||||||
|        Be  sure  to  note the unusual two-space delimiter between account name |        Be sure to note the unusual two-space delimiter  between  account  name | ||||||
|        and amount.  This makes it easy to write account names containing  spa- |        and  amount.  This makes it easy to write account names containing spa- | ||||||
|        ces.   But if you accidentally leave only one space (or tab) before the |        ces.  But if you accidentally leave only one space (or tab) before  the | ||||||
|        amount, the amount will be considered part of the account name. |        amount, the amount will be considered part of the account name. | ||||||
| 
 | 
 | ||||||
|    Dates |    Dates | ||||||
|    Simple dates |    Simple dates | ||||||
|        Within a journal file, transaction dates use Y/M/D (or Y-M-D or  Y.M.D) |        Within  a journal file, transaction dates use Y/M/D (or Y-M-D or Y.M.D) | ||||||
|        Leading  zeros are optional.  The year may be omitted, in which case it |        Leading zeros are optional.  The year may be omitted, in which case  it | ||||||
|        will be inferred from  the  context  -  the  current  transaction,  the |        will  be  inferred  from  the  context  -  the current transaction, the | ||||||
|        default  year  set  with  a default year directive, or the current date |        default year set with a default year directive,  or  the  current  date | ||||||
|        when the command is run.  Some examples: 2010/01/31, 1/31,  2010-01-31, |        when  the command is run.  Some examples: 2010/01/31, 1/31, 2010-01-31, | ||||||
|        2010.1.31. |        2010.1.31. | ||||||
| 
 | 
 | ||||||
|    Secondary dates |    Secondary dates | ||||||
|        Real-life  transactions  sometimes  involve more than one date - eg the |        Real-life transactions sometimes involve more than one date  -  eg  the | ||||||
|        date you write a cheque, and the date it clears in your bank.  When you |        date you write a cheque, and the date it clears in your bank.  When you | ||||||
|        want  to  model  this,  eg  for more accurate balances, you can specify |        want to model this, eg for more  accurate  balances,  you  can  specify | ||||||
|        individual posting dates, which I recommend.  Or, you can use the  sec- |        individual  posting dates, which I recommend.  Or, you can use the sec- | ||||||
|        ondary  dates  (aka  auxiliary/effective  dates) feature, supported for |        ondary dates (aka auxiliary/effective  dates)  feature,  supported  for | ||||||
|        compatibility with Ledger. |        compatibility with Ledger. | ||||||
| 
 | 
 | ||||||
|        A secondary date can be written after the primary date, separated by an |        A secondary date can be written after the primary date, separated by an | ||||||
|        equals  sign.   The  primary date, on the left, is used by default; the |        equals sign.  The primary date, on the left, is used  by  default;  the | ||||||
|        secondary date, on the right, is used when the --date2 flag  is  speci- |        secondary  date,  on the right, is used when the --date2 flag is speci- | ||||||
|        fied (--aux-date or --effective also work). |        fied (--aux-date or --effective also work). | ||||||
| 
 | 
 | ||||||
|        The  meaning of secondary dates is up to you, but it's best to follow a |        The meaning of secondary dates is up to you, but it's best to follow  a | ||||||
|        consistent rule.  Eg write the bank's clearing  date  as  primary,  and |        consistent  rule.   Eg  write  the bank's clearing date as primary, and | ||||||
|        when needed, the date the transaction was initiated as secondary. |        when needed, the date the transaction was initiated as secondary. | ||||||
| 
 | 
 | ||||||
|        Here's an example.  Note that a secondary date will use the year of the |        Here's an example.  Note that a secondary date will use the year of the | ||||||
| @ -139,18 +139,18 @@ FILE FORMAT | |||||||
|               $ hledger register checking --date2 |               $ hledger register checking --date2 | ||||||
|               2010/02/19 movie ticket         assets:checking                $-10         $-10 |               2010/02/19 movie ticket         assets:checking                $-10         $-10 | ||||||
| 
 | 
 | ||||||
|        Secondary dates require some effort; you must use them consistently  in |        Secondary  dates require some effort; you must use them consistently in | ||||||
|        your journal entries and remember whether to use or not use the --date2 |        your journal entries and remember whether to use or not use the --date2 | ||||||
|        flag for your reports.  They are included in hledger for Ledger compat- |        flag for your reports.  They are included in hledger for Ledger compat- | ||||||
|        ibility,  but  posting  dates  are  a  more powerful and less confusing |        ibility, but posting dates are  a  more  powerful  and  less  confusing | ||||||
|        alternative. |        alternative. | ||||||
| 
 | 
 | ||||||
|    Posting dates |    Posting dates | ||||||
|        You can give individual postings a different  date  from  their  parent |        You  can  give  individual  postings a different date from their parent | ||||||
|        transaction,  by  adding a posting comment containing a tag (see below) |        transaction, by adding a posting comment containing a tag  (see  below) | ||||||
|        like date:DATE.  This is probably the best way to control posting dates |        like date:DATE.  This is probably the best way to control posting dates | ||||||
|        precisely.   Eg  in  this  example  the  expense  should  appear in May |        precisely.  Eg in  this  example  the  expense  should  appear  in  May | ||||||
|        reports, and the deduction from checking should be reported on 6/1  for |        reports,  and the deduction from checking should be reported on 6/1 for | ||||||
|        easy bank reconciliation: |        easy bank reconciliation: | ||||||
| 
 | 
 | ||||||
|               2015/5/30 |               2015/5/30 | ||||||
| @ -163,80 +163,82 @@ FILE FORMAT | |||||||
|               $ hledger -f t.j register checking |               $ hledger -f t.j register checking | ||||||
|               2015/06/01                      assets:checking               $-10          $-10 |               2015/06/01                      assets:checking               $-10          $-10 | ||||||
| 
 | 
 | ||||||
|        DATE  should be a simple date; if the year is not specified it will use |        DATE should be a simple date; if the year is not specified it will  use | ||||||
|        the year of the transaction's date.  You can  set  the  secondary  date |        the  year  of  the  transaction's date.  You can set the secondary date | ||||||
|        similarly,  with  date2:DATE2.   The  date:  or date2: tags must have a |        similarly, with date2:DATE2.  The date: or  date2:  tags  must  have  a | ||||||
|        valid simple date value if they are present, eg a  date:  tag  with  no |        valid  simple  date  value  if they are present, eg a date: tag with no | ||||||
|        value is not allowed. |        value is not allowed. | ||||||
| 
 | 
 | ||||||
|        Ledger's earlier, more compact bracketed date syntax is also supported: |        Ledger's earlier, more compact bracketed date syntax is also supported: | ||||||
|        [DATE], [DATE=DATE2] or [=DATE2].  hledger will attempt  to  parse  any |        [DATE],  [DATE=DATE2]  or  [=DATE2].  hledger will attempt to parse any | ||||||
|        square-bracketed sequence of the 0123456789/-.= characters in this way. |        square-bracketed sequence of the 0123456789/-.= characters in this way. | ||||||
|        With this syntax, DATE infers its year from the transaction  and  DATE2 |        With  this  syntax, DATE infers its year from the transaction and DATE2 | ||||||
|        infers its year from DATE. |        infers its year from DATE. | ||||||
| 
 | 
 | ||||||
|    Status |    Status | ||||||
|        Transactions,  or  individual postings within a transaction, can have a |        Transactions, or individual postings within a transaction, can  have  a | ||||||
|        status mark,  which  is  a  single  character  before  the  transaction |        status  mark,  which  is  a  single  character  before  the transaction | ||||||
|        description  or  posting  account  name,  separated from it by a space, |        description or posting account name, separated  from  it  by  a  space, | ||||||
|        indicating one of three statuses: |        indicating one of three statuses: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        mark     status |        mark     status | ||||||
|        ------------------ |        ------------------ | ||||||
|                 unmarked |                 unmarked | ||||||
|        !        pending |        !        pending | ||||||
|        *        cleared |        *        cleared | ||||||
| 
 | 
 | ||||||
|        When reporting, you  can  filter  by  status  with  the  -U/--unmarked, |        When  reporting,  you  can  filter  by  status  with the -U/--unmarked, | ||||||
|        -P/--pending,  and  -C/--cleared  flags;  or the status:, status:!, and |        -P/--pending, and -C/--cleared flags; or  the  status:,  status:!,  and | ||||||
|        status:* queries; or the U, P, C keys in hledger-ui. |        status:* queries; or the U, P, C keys in hledger-ui. | ||||||
| 
 | 
 | ||||||
|        Note, in Ledger and in older versions of hledger, the "unmarked"  state |        Note,  in Ledger and in older versions of hledger, the "unmarked" state | ||||||
|        is  called  "uncleared".   As  of  hledger  1.3  we  have renamed it to |        is called "uncleared".  As  of  hledger  1.3  we  have  renamed  it  to | ||||||
|        unmarked for clarity. |        unmarked for clarity. | ||||||
| 
 | 
 | ||||||
|        To replicate Ledger and old hledger's behaviour of also matching  pend- |        To  replicate Ledger and old hledger's behaviour of also matching pend- | ||||||
|        ing, combine -U and -P. |        ing, combine -U and -P. | ||||||
| 
 | 
 | ||||||
|        Status  marks  are optional, but can be helpful eg for reconciling with |        Status marks are optional, but can be helpful eg for  reconciling  with | ||||||
|        real-world accounts.  Some editor modes provide highlighting and short- |        real-world accounts.  Some editor modes provide highlighting and short- | ||||||
|        cuts  for working with status.  Eg in Emacs ledger-mode, you can toggle |        cuts for working with status.  Eg in Emacs ledger-mode, you can  toggle | ||||||
|        transaction status with C-c C-e, or posting status with C-c C-c. |        transaction status with C-c C-e, or posting status with C-c C-c. | ||||||
| 
 | 
 | ||||||
|        What "uncleared", "pending", and "cleared" actually mean is up to  you. |        What  "uncleared", "pending", and "cleared" actually mean is up to you. | ||||||
|        Here's one suggestion: |        Here's one suggestion: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        status       meaning |        status       meaning | ||||||
|        -------------------------------------------------------------------------- |        -------------------------------------------------------------------------- | ||||||
|        uncleared    recorded but not yet reconciled; needs review |        uncleared    recorded but not yet reconciled; needs review | ||||||
|        pending      tentatively  reconciled  (if needed, eg during a big recon- |        pending      tentatively reconciled (if needed, eg during a  big  recon- | ||||||
|                     ciliation) |                     ciliation) | ||||||
|        cleared      complete, reconciled as far  as  possible,  and  considered |        cleared      complete,  reconciled  as  far  as possible, and considered | ||||||
|                     correct |                     correct | ||||||
| 
 | 
 | ||||||
|        With  this scheme, you would use -PC to see the current balance at your |        With this scheme, you would use -PC to see the current balance at  your | ||||||
|        bank, -U to see things which will probably hit  your  bank  soon  (like |        bank,  -U  to  see  things which will probably hit your bank soon (like | ||||||
|        uncashed checks), and no flags to see the most up-to-date state of your |        uncashed checks), and no flags to see the most up-to-date state of your | ||||||
|        finances. |        finances. | ||||||
| 
 | 
 | ||||||
|    Description |    Description | ||||||
|        A transaction's description is the rest of the line following the  date |        A  transaction's description is the rest of the line following the date | ||||||
|        and  status  mark  (or  until  a comment begins).  Sometimes called the |        and status mark (or until a  comment  begins).   Sometimes  called  the | ||||||
|        "narration" in traditional bookkeeping, it can be used for whatever you |        "narration" in traditional bookkeeping, it can be used for whatever you | ||||||
|        wish,  or  left blank.  Transaction descriptions can be queried, unlike |        wish, or left blank.  Transaction descriptions can be  queried,  unlike | ||||||
|        comments. |        comments. | ||||||
| 
 | 
 | ||||||
|    Payee and note |    Payee and note | ||||||
|        You can optionally include a | (pipe) character  in  a  description  to |        You  can  optionally  include  a | (pipe) character in a description to | ||||||
|        subdivide  it  into a payee/payer name on the left and additional notes |        subdivide it into a payee/payer name on the left and  additional  notes | ||||||
|        on the right.  This may be worthwhile if you need to  do  more  precise |        on  the  right.   This may be worthwhile if you need to do more precise | ||||||
|        querying and pivoting by payee. |        querying and pivoting by payee. | ||||||
| 
 | 
 | ||||||
|    Account names |    Account names | ||||||
|        Account  names  typically have several parts separated by a full colon, |        Account names typically have several parts separated by a  full  colon, | ||||||
|        from which hledger derives a hierarchical chart of accounts.  They  can |        from  which hledger derives a hierarchical chart of accounts.  They can | ||||||
|        be  anything  you  like,  but  in  finance there are traditionally five |        be anything you like, but  in  finance  there  are  traditionally  five | ||||||
|        top-level accounts: assets, liabilities, income, expenses, and equity. |        top-level  accounts: assets, liabilities, income, expenses, and equity. | ||||||
| 
 | 
 | ||||||
|        Account names may contain single  spaces,  eg:  assets:accounts receiv- |        Account names may contain single  spaces,  eg:  assets:accounts receiv- | ||||||
|        able.   Because  of  this,  they must always be followed by two or more |        able.   Because  of  this,  they must always be followed by two or more | ||||||
| @ -276,9 +278,22 @@ FILE FORMAT | |||||||
|          commas (in which case period is used for decimal  point)  or  periods |          commas (in which case period is used for decimal  point)  or  periods | ||||||
|          (in which case comma is used for decimal point) |          (in which case comma is used for decimal point) | ||||||
| 
 | 
 | ||||||
|        You  can  use  any  of  these  variations when recording data, but when |        You  can  use  any  of  these variations when recording data.  However, | ||||||
|        hledger displays amounts, it will choose a consistent format  for  each |        there is some ambiguous way of representing  numbers  like  $1.000  and | ||||||
|        commodity.   (Except  for  price amounts, which are always formatted as |        $1,000  both  may  mean  either one thousand or one dollar.  By default | ||||||
|  |        hledger will assume that this is sole delimiter is used only for  deci- | ||||||
|  |        mals.   On  the other hand commodity format declared prior to that line | ||||||
|  |        will help to resolve that ambiguity differently: | ||||||
|  | 
 | ||||||
|  |               commodity $1,000.00 | ||||||
|  | 
 | ||||||
|  |               2017/12/25 New life of Scrooge | ||||||
|  |                   expenses:gifts  $1,000 | ||||||
|  |                   assets | ||||||
|  | 
 | ||||||
|  |        Though journal may contain  mixed  styles  to  represent  amount,  when | ||||||
|  |        hledger  displays  amounts, it will choose a consistent format for each | ||||||
|  |        commodity.  (Except for price amounts, which are  always  formatted  as | ||||||
|        written).  The display format is chosen as follows: |        written).  The display format is chosen as follows: | ||||||
| 
 | 
 | ||||||
|        o if there is a commodity directive specifying the format, that is used |        o if there is a commodity directive specifying the format, that is used | ||||||
| @ -521,30 +536,32 @@ FILE FORMAT | |||||||
|               P 2010/1/1  $1.40 |               P 2010/1/1  $1.40 | ||||||
| 
 | 
 | ||||||
|    Comments |    Comments | ||||||
|        Lines  in  the  journal  beginning  with a semicolon (;) or hash (#) or |        Lines in the journal beginning with a semicolon (;) or hash (#) or star | ||||||
|        asterisk (*) are comments, and will  be  ignored.   (Asterisk  comments |        (*) are comments, and will be ignored.  (Star comments  cause  org-mode | ||||||
|        make it easy to treat your journal like an org-mode outline in emacs.) |        nodes  to  be  ignored, allowing emacs users to fold and navigate their | ||||||
|  |        journals with org-mode or orgstruct-mode.) | ||||||
| 
 | 
 | ||||||
|        Also,   anything  between  comment  and  end comment  directives  is  a |        Also,  anything  between  comment  and  end comment  directives  is   a | ||||||
|        (multi-line) comment.  If there is no end comment, the comment  extends |        (multi-line)  comment.  If there is no end comment, the comment extends | ||||||
|        to the end of the file. |        to the end of the file. | ||||||
| 
 | 
 | ||||||
|        You  can  attach  comments  to  a transaction by writing them after the |        You can attach comments to a transaction  by  writing  them  after  the | ||||||
|        description and/or indented on the following lines  (before  the  post- |        description  and/or  indented  on the following lines (before the post- | ||||||
|        ings).   Similarly, you can attach comments to an individual posting by |        ings).  Similarly, you can attach comments to an individual posting  by | ||||||
|        writing them after the amount and/or indented on the following lines. |        writing  them  after the amount and/or indented on the following lines. | ||||||
|  |        Transaction and posting comments must begin with a semicolon (;). | ||||||
| 
 | 
 | ||||||
|        Some examples: |        Some examples: | ||||||
| 
 | 
 | ||||||
|               # a journal comment |               # a file comment | ||||||
| 
 | 
 | ||||||
|               ; also a journal comment |               ; also a file comment | ||||||
| 
 | 
 | ||||||
|               comment |               comment | ||||||
|               This is a multiline comment, |               This is a multiline file comment, | ||||||
|               which continues until a line |               which continues until a line | ||||||
|               where the "end comment" string |               where the "end comment" string | ||||||
|               appears on its own. |               appears on its own (or end of file). | ||||||
|               end comment |               end comment | ||||||
| 
 | 
 | ||||||
|               2012/5/14 something  ; a transaction comment |               2012/5/14 something  ; a transaction comment | ||||||
| @ -553,7 +570,7 @@ FILE FORMAT | |||||||
|                   posting2 |                   posting2 | ||||||
|                   ; a comment for posting 2 |                   ; a comment for posting 2 | ||||||
|                   ; another comment line for posting 2 |                   ; another comment line for posting 2 | ||||||
|               ; a journal comment (because not indented) |               ; a file comment (because not indented) | ||||||
| 
 | 
 | ||||||
|    Tags |    Tags | ||||||
|        Tags are a way to add extra labels or labelled  data  to  postings  and |        Tags are a way to add extra labels or labelled  data  to  postings  and | ||||||
| @ -623,54 +640,54 @@ FILE FORMAT | |||||||
|        Or, you can use the --alias 'OLD=NEW' option on the command line.  This |        Or, you can use the --alias 'OLD=NEW' option on the command line.  This | ||||||
|        affects all entries.  It's useful for trying out aliases interactively. |        affects all entries.  It's useful for trying out aliases interactively. | ||||||
| 
 | 
 | ||||||
|        OLD and NEW are full account names.  hledger will  replace  any  occur- |        OLD  and  NEW  are full account names.  hledger will replace any occur- | ||||||
|        rence  of  the old account name with the new one.  Subaccounts are also |        rence of the old account name with the new one.  Subaccounts  are  also | ||||||
|        affected.  Eg: |        affected.  Eg: | ||||||
| 
 | 
 | ||||||
|               alias checking = assets:bank:wells fargo:checking |               alias checking = assets:bank:wells fargo:checking | ||||||
|               # rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" |               # rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" | ||||||
| 
 | 
 | ||||||
|    Regex aliases |    Regex aliases | ||||||
|        There is also a more powerful variant that uses a  regular  expression, |        There  is  also a more powerful variant that uses a regular expression, | ||||||
|        indicated by the forward slashes: |        indicated by the forward slashes: | ||||||
| 
 | 
 | ||||||
|               alias /REGEX/ = REPLACEMENT |               alias /REGEX/ = REPLACEMENT | ||||||
| 
 | 
 | ||||||
|        or --alias '/REGEX/=REPLACEMENT'. |        or --alias '/REGEX/=REPLACEMENT'. | ||||||
| 
 | 
 | ||||||
|        REGEX  is  a  case-insensitive regular expression.  Anywhere it matches |        REGEX is a case-insensitive regular expression.   Anywhere  it  matches | ||||||
|        inside an account name, the matched part will be replaced  by  REPLACE- |        inside  an  account name, the matched part will be replaced by REPLACE- | ||||||
|        MENT.   If REGEX contains parenthesised match groups, these can be ref- |        MENT.  If REGEX contains parenthesised match groups, these can be  ref- | ||||||
|        erenced by the usual numeric backreferences in REPLACEMENT.  Eg: |        erenced by the usual numeric backreferences in REPLACEMENT.  Eg: | ||||||
| 
 | 
 | ||||||
|               alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3 |               alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3 | ||||||
|               # rewrites "assets:bank:wells fargo:checking" to  "assets:wells fargo checking" |               # rewrites "assets:bank:wells fargo:checking" to  "assets:wells fargo checking" | ||||||
| 
 | 
 | ||||||
|        Also note that REPLACEMENT continues to the end of line (or on  command |        Also  note that REPLACEMENT continues to the end of line (or on command | ||||||
|        line,  to  end  of  option argument), so it can contain trailing white- |        line, to end of option argument), so it  can  contain  trailing  white- | ||||||
|        space. |        space. | ||||||
| 
 | 
 | ||||||
|    Multiple aliases |    Multiple aliases | ||||||
|        You can define as many aliases as you like  using  directives  or  com- |        You  can  define  as  many aliases as you like using directives or com- | ||||||
|        mand-line  options.  Aliases are recursive - each alias sees the result |        mand-line options.  Aliases are recursive - each alias sees the  result | ||||||
|        of applying previous ones.   (This  is  different  from  Ledger,  where |        of  applying  previous  ones.   (This  is  different from Ledger, where | ||||||
|        aliases are non-recursive by default).  Aliases are applied in the fol- |        aliases are non-recursive by default).  Aliases are applied in the fol- | ||||||
|        lowing order: |        lowing order: | ||||||
| 
 | 
 | ||||||
|        1. alias directives, most recently seen first (recent  directives  take |        1. alias  directives,  most recently seen first (recent directives take | ||||||
|           precedence over earlier ones; directives not yet seen are ignored) |           precedence over earlier ones; directives not yet seen are ignored) | ||||||
| 
 | 
 | ||||||
|        2. alias options, in the order they appear on the command line |        2. alias options, in the order they appear on the command line | ||||||
| 
 | 
 | ||||||
|    end aliases |    end aliases | ||||||
|        You   can  clear  (forget)  all  currently  defined  aliases  with  the |        You  can  clear  (forget)  all  currently  defined  aliases  with   the | ||||||
|        end aliases directive: |        end aliases directive: | ||||||
| 
 | 
 | ||||||
|               end aliases |               end aliases | ||||||
| 
 | 
 | ||||||
|    account directive |    account directive | ||||||
|        The account directive predefines account names, as in Ledger and  Bean- |        The  account directive predefines account names, as in Ledger and Bean- | ||||||
|        count.   This may be useful for your own documentation; hledger doesn't |        count.  This may be useful for your own documentation; hledger  doesn't | ||||||
|        make use of it yet. |        make use of it yet. | ||||||
| 
 | 
 | ||||||
|               ; account ACCT |               ; account ACCT | ||||||
| @ -685,8 +702,8 @@ FILE FORMAT | |||||||
|               ; etc. |               ; etc. | ||||||
| 
 | 
 | ||||||
|    apply account directive |    apply account directive | ||||||
|        You can specify a  parent  account  which  will  be  prepended  to  all |        You  can  specify  a  parent  account  which  will  be prepended to all | ||||||
|        accounts  within  a  section of the journal.  Use the apply account and |        accounts within a section of the journal.  Use  the  apply account  and | ||||||
|        end apply account directives like so: |        end apply account directives like so: | ||||||
| 
 | 
 | ||||||
|               apply account home |               apply account home | ||||||
| @ -703,7 +720,7 @@ FILE FORMAT | |||||||
|                   home:food           $10 |                   home:food           $10 | ||||||
|                   home:cash          $-10 |                   home:cash          $-10 | ||||||
| 
 | 
 | ||||||
|        If end apply account is omitted, the effect lasts to  the  end  of  the |        If  end apply account  is  omitted,  the effect lasts to the end of the | ||||||
|        file.  Included files are also affected, eg: |        file.  Included files are also affected, eg: | ||||||
| 
 | 
 | ||||||
|               apply account business |               apply account business | ||||||
| @ -712,16 +729,16 @@ FILE FORMAT | |||||||
|               apply account personal |               apply account personal | ||||||
|               include personal.journal |               include personal.journal | ||||||
| 
 | 
 | ||||||
|        Prior  to  hledger 1.0, legacy account and end spellings were also sup- |        Prior to hledger 1.0, legacy account and end spellings were  also  sup- | ||||||
|        ported. |        ported. | ||||||
| 
 | 
 | ||||||
|    Multi-line comments |    Multi-line comments | ||||||
|        A line containing just comment starts a multi-line comment, and a  line |        A  line containing just comment starts a multi-line comment, and a line | ||||||
|        containing just end comment ends it.  See comments. |        containing just end comment ends it.  See comments. | ||||||
| 
 | 
 | ||||||
|    commodity directive |    commodity directive | ||||||
|        The  commodity directive predefines commodities (currently this is just |        The commodity directive predefines commodities (currently this is  just | ||||||
|        informational), and also it may define the display format  for  amounts |        informational),  and  also it may define the display format for amounts | ||||||
|        in this commodity (overriding the automatically inferred format). |        in this commodity (overriding the automatically inferred format). | ||||||
| 
 | 
 | ||||||
|        It may be written on a single line, like this: |        It may be written on a single line, like this: | ||||||
| @ -733,8 +750,8 @@ FILE FORMAT | |||||||
|               ; separating thousands with comma. |               ; separating thousands with comma. | ||||||
|               commodity 1,000.0000 AAAA |               commodity 1,000.0000 AAAA | ||||||
| 
 | 
 | ||||||
|        or  on  multiple  lines, using the "format" subdirective.  In this case |        or on multiple lines, using the "format" subdirective.   In  this  case | ||||||
|        the commodity symbol appears twice and  should  be  the  same  in  both |        the  commodity  symbol  appears  twice  and  should be the same in both | ||||||
|        places: |        places: | ||||||
| 
 | 
 | ||||||
|               ; commodity SYMBOL |               ; commodity SYMBOL | ||||||
| @ -747,10 +764,10 @@ FILE FORMAT | |||||||
|                 format INR 9,99,99,999.00 |                 format INR 9,99,99,999.00 | ||||||
| 
 | 
 | ||||||
|    Default commodity |    Default commodity | ||||||
|        The  D  directive  sets a default commodity (and display format), to be |        The D directive sets a default commodity (and display  format),  to  be | ||||||
|        used for amounts without a commodity symbol (ie, plain numbers).  (Note |        used for amounts without a commodity symbol (ie, plain numbers).  (Note | ||||||
|        this  differs from Ledger's default commodity directive.) The commodity |        this differs from Ledger's default commodity directive.) The  commodity | ||||||
|        and display format will be applied  to  all  subsequent  commodity-less |        and  display  format  will  be applied to all subsequent commodity-less | ||||||
|        amounts, or until the next D directive. |        amounts, or until the next D directive. | ||||||
| 
 | 
 | ||||||
|               # commodity-less amounts should be treated as dollars |               # commodity-less amounts should be treated as dollars | ||||||
| @ -758,12 +775,12 @@ FILE FORMAT | |||||||
|               D $1,000.00 |               D $1,000.00 | ||||||
| 
 | 
 | ||||||
|               1/1 |               1/1 | ||||||
|                 a     5    # <- commodity-less amount, becomes $1 |                 a     5    ; <- commodity-less amount, becomes $1 | ||||||
|                 b |                 b | ||||||
| 
 | 
 | ||||||
|    Default year |    Default year | ||||||
|        You  can set a default year to be used for subsequent dates which don't |        You can set a default year to be used for subsequent dates which  don't | ||||||
|        specify a year.  This is a line beginning with Y followed by the  year. |        specify  a year.  This is a line beginning with Y followed by the year. | ||||||
|        Eg: |        Eg: | ||||||
| 
 | 
 | ||||||
|               Y2009      ; set default year to 2009 |               Y2009      ; set default year to 2009 | ||||||
| @ -783,26 +800,27 @@ FILE FORMAT | |||||||
|                 assets |                 assets | ||||||
| 
 | 
 | ||||||
|    Including other files |    Including other files | ||||||
|        You  can  pull in the content of additional journal files by writing an |        You can pull in the content of additional journal files by  writing  an | ||||||
|        include directive, like this: |        include directive, like this: | ||||||
| 
 | 
 | ||||||
|               include path/to/file.journal |               include path/to/file.journal | ||||||
| 
 | 
 | ||||||
|        If the path does not begin with a slash, it is relative to the  current |        If  the path does not begin with a slash, it is relative to the current | ||||||
|        file.  Glob patterns (*) are not currently supported. |        file.  Glob patterns (*) are not currently supported. | ||||||
| 
 | 
 | ||||||
|        The  include  directive  can  only  be  used  in journal files.  It can |        The include directive can only  be  used  in  journal  files.   It  can | ||||||
|        include journal, timeclock or timedot files, but not CSV files. |        include journal, timeclock or timedot files, but not CSV files. | ||||||
| 
 | 
 | ||||||
| EDITOR SUPPORT | EDITOR SUPPORT | ||||||
|        Add-on modes exist for various text editors, to make working with jour- |        Add-on modes exist for various text editors, to make working with jour- | ||||||
|        nal  files  easier.   They add colour, navigation aids and helpful com- |        nal files easier.  They add colour, navigation aids  and  helpful  com- | ||||||
|        mands.  For hledger users who  edit  the  journal  file  directly  (the |        mands.   For  hledger  users  who  edit  the journal file directly (the | ||||||
|        majority), using one of these modes is quite recommended. |        majority), using one of these modes is quite recommended. | ||||||
| 
 | 
 | ||||||
|        These  were  written  with  Ledger  in mind, but also work with hledger |        These were written with Ledger in mind,  but  also  work  with  hledger | ||||||
|        files: |        files: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        Emacs              http://www.ledger-cli.org/3.0/doc/ledger-mode.html |        Emacs              http://www.ledger-cli.org/3.0/doc/ledger-mode.html | ||||||
|        Vim                https://github.com/ledger/ledger/wiki/Get- |        Vim                https://github.com/ledger/ledger/wiki/Get- | ||||||
|                           ting-started |                           ting-started | ||||||
| @ -818,7 +836,7 @@ EDITOR SUPPORT | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 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) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -832,7 +850,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) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger_timeclock.5.info, produced by makeinfo version 6.1 from | This is hledger_timeclock.5.info, produced by makeinfo version 6.0 from | ||||||
| stdin. | stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | |||||||
| @ -7,11 +7,11 @@ NAME | |||||||
|        Timeclock - the time logging format of timeclock.el, as read by hledger |        Timeclock - the time logging format of timeclock.el, as read by hledger | ||||||
| 
 | 
 | ||||||
| DESCRIPTION | DESCRIPTION | ||||||
|        hledger  can read timeclock files.  As with Ledger, these are (a subset |        hledger can read timeclock files.  As with Ledger, these are (a  subset | ||||||
|        of) timeclock.el's format, containing clock-in and clock-out entries as |        of) timeclock.el's format, containing clock-in and clock-out entries as | ||||||
|        in  the  example below.  The date is a simple date.  The time format is |        in the example below.  The date is a simple date.  The time  format  is | ||||||
|        HH:MM[:SS][+-ZZZZ].  Seconds and timezone are optional.  The  timezone, |        HH:MM[:SS][+-ZZZZ].   Seconds and timezone are optional.  The timezone, | ||||||
|        if  present,  must be four digits and is ignored (currently the time is |        if present, must be four digits and is ignored (currently the  time  is | ||||||
|        always interpreted as a local time). |        always interpreted as a local time). | ||||||
| 
 | 
 | ||||||
|               i 2015/03/30 09:00:00 some:account name  optional description after two spaces |               i 2015/03/30 09:00:00 some:account name  optional description after two spaces | ||||||
| @ -19,9 +19,9 @@ DESCRIPTION | |||||||
|               i 2015/03/31 22:21:45 another account |               i 2015/03/31 22:21:45 another account | ||||||
|               o 2015/04/01 02:00:34 |               o 2015/04/01 02:00:34 | ||||||
| 
 | 
 | ||||||
|        hledger treats each clock-in/clock-out pair as  a  transaction  posting |        hledger  treats  each  clock-in/clock-out pair as a transaction posting | ||||||
|        some  number of hours to an account.  Or if the session spans more than |        some number of hours to an account.  Or if the session spans more  than | ||||||
|        one day, it is split into several transactions, one for each day.   For |        one  day, it is split into several transactions, one for each day.  For | ||||||
|        the above time log, hledger print generates these journal entries: |        the above time log, hledger print generates these journal entries: | ||||||
| 
 | 
 | ||||||
|               $ hledger -f t.timeclock print |               $ hledger -f t.timeclock print | ||||||
| @ -42,7 +42,7 @@ DESCRIPTION | |||||||
| 
 | 
 | ||||||
|        To generate time logs, ie to clock in and clock out, you could: |        To generate time logs, ie to clock in and clock out, you could: | ||||||
| 
 | 
 | ||||||
|        o use  emacs  and  the  built-in  timeclock.el,  or  the extended time- |        o use emacs and  the  built-in  timeclock.el,  or  the  extended  time- | ||||||
|          clock-x.el and perhaps the extras in ledgerutils.el |          clock-x.el and perhaps the extras in ledgerutils.el | ||||||
| 
 | 
 | ||||||
|        o at the command line, use these bash aliases: |        o at the command line, use these bash aliases: | ||||||
| @ -51,13 +51,13 @@ DESCRIPTION | |||||||
|                 alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" |                 alias to="echo o `date '+%Y-%m-%d %H:%M:%S'` >>$TIMELOG" | ||||||
| 
 | 
 | ||||||
|        o or use the old ti and to scripts in the ledger 2.x repository.  These |        o or use the old ti and to scripts in the ledger 2.x repository.  These | ||||||
|          rely  on  a "timeclock" executable which I think is just the ledger 2 |          rely on a "timeclock" executable which I think is just the  ledger  2 | ||||||
|          executable renamed. |          executable renamed. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 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) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -71,7 +71,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) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger_timedot.5.info, produced by makeinfo version 6.1 from | This is hledger_timedot.5.info, produced by makeinfo version 6.0 from | ||||||
| stdin. | stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | |||||||
| @ -272,6 +272,11 @@ troubleshooting. | |||||||
| updated file. | updated file. | ||||||
| This allows some basic data entry. | This allows some basic data entry. | ||||||
| .PP | .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]E\f[] runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default | ||||||
| (\f[C]emacsclient\ \-a\ ""\ \-nw\f[]) on the journal file. | (\f[C]emacsclient\ \-a\ ""\ \-nw\f[]) on the journal file. | ||||||
| With some editors (emacs, vi), the cursor will be positioned at the | With some editors (emacs, vi), the cursor will be positioned at the | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger-ui.1.info, produced by makeinfo version 6.1 from stdin. | This is hledger-ui.1.info, produced by makeinfo version 6.0 from stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-ui.1.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | File: hledger-ui.1.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | ||||||
| @ -207,6 +207,10 @@ temporarily can be useful for troubleshooting. | |||||||
|    'a' runs command-line hledger's add command, and reloads the updated |    'a' runs command-line hledger's add command, and reloads the updated | ||||||
| file.  This allows some basic data entry. | file.  This allows some basic data entry. | ||||||
| 
 | 
 | ||||||
|  |    'A' is like 'a', but runs the hledger-iadd tool, which provides a | ||||||
|  | curses-style interface.  This key will be available if 'hledger-iadd' is | ||||||
|  | installed in $PATH. | ||||||
|  | 
 | ||||||
|    'E' runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default ('emacsclient |    'E' runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default ('emacsclient | ||||||
| -a "" -nw') on the journal file.  With some editors (emacs, vi), the | -a "" -nw') on the journal file.  With some editors (emacs, vi), the | ||||||
| cursor will be positioned at the current transaction when invoked from | cursor will be positioned at the current transaction when invoked from | ||||||
| @ -369,15 +373,15 @@ Node: OPTIONS825 | |||||||
| Ref: #options924 | Ref: #options924 | ||||||
| Node: KEYS3861 | Node: KEYS3861 | ||||||
| Ref: #keys3958 | Ref: #keys3958 | ||||||
| Node: SCREENS6754 | Node: SCREENS6917 | ||||||
| Ref: #screens6841 | Ref: #screens7004 | ||||||
| Node: Accounts screen6931 | Node: Accounts screen7094 | ||||||
| Ref: #accounts-screen7061 | Ref: #accounts-screen7224 | ||||||
| Node: Register screen9291 | Node: Register screen9454 | ||||||
| Ref: #register-screen9448 | Ref: #register-screen9611 | ||||||
| Node: Transaction screen11522 | Node: Transaction screen11685 | ||||||
| Ref: #transaction-screen11682 | Ref: #transaction-screen11845 | ||||||
| Node: Error screen12552 | Node: Error screen12715 | ||||||
| Ref: #error-screen12676 | Ref: #error-screen12839 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
|  | |||||||
| @ -195,6 +195,10 @@ KEYS | |||||||
|        a  runs  command-line  hledger's  add  command, and reloads the updated |        a  runs  command-line  hledger's  add  command, and reloads the updated | ||||||
|        file.  This allows some basic data entry. |        file.  This allows some basic data entry. | ||||||
| 
 | 
 | ||||||
|  |        A is  like  a,  but  runs  the  hledger-iadd  tool,  which  provides  a | ||||||
|  |        curses-style  interface.  This key will be available if hledger-iadd is | ||||||
|  |        installed in $PATH. | ||||||
|  | 
 | ||||||
|        E  runs  $HLEDGER_UI_EDITOR,  or   $EDITOR,   or   a   default   (emac- |        E  runs  $HLEDGER_UI_EDITOR,  or   $EDITOR,   or   a   default   (emac- | ||||||
|        sclient -a "" -nw) on the journal file.  With some editors (emacs, vi), |        sclient -a "" -nw) on the journal file.  With some editors (emacs, vi), | ||||||
|        the cursor will be positioned at the current transaction  when  invoked |        the cursor will be positioned at the current transaction  when  invoked | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger-web.1.info, produced by makeinfo version 6.1 from stdin. | This is hledger-web.1.info, produced by makeinfo version 6.0 from stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger-web.1.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | File: hledger-web.1.info,  Node: Top,  Next: OPTIONS,  Up: (dir) | ||||||
|  | |||||||
| @ -57,22 +57,22 @@ DESCRIPTION | |||||||
|        With --file-url you can set a different base url for static  files,  eg |        With --file-url you can set a different base url for static  files,  eg | ||||||
|        for better caching or cookie-less serving on high performance websites. |        for better caching or cookie-less serving on high performance websites. | ||||||
| 
 | 
 | ||||||
|        Note  there  is  no  built-in  access  control (aside from listening on |        Note there is no built-in  access  control  (aside  from  listening  on | ||||||
|        127.0.0.1 by default).  So you will need to hide hledger-web behind  an |        127.0.0.1  by default).  So you will need to hide hledger-web behind an | ||||||
|        authenticating  proxy (such as apache or nginx) if you want to restrict |        authenticating proxy (such as apache or nginx) if you want to  restrict | ||||||
|        who can see and add entries to your journal. |        who can see and add entries to your journal. | ||||||
| 
 | 
 | ||||||
|        Command-line options and arguments may be used to set an initial filter |        Command-line options and arguments may be used to set an initial filter | ||||||
|        on  the  data.  This is not shown in the web UI, but it will be applied |        on the data.  This is not shown in the web UI, but it will  be  applied | ||||||
|        in addition to any search query entered there. |        in addition to any search query entered there. | ||||||
| 
 | 
 | ||||||
|        With journal and timeclock files (but not CSV files, currently) the web |        With journal and timeclock files (but not CSV files, currently) the web | ||||||
|        app  detects  changes made by other means and will show the new data on |        app detects changes made by other means and will show the new  data  on | ||||||
|        the next request.  If a change makes the file unparseable,  hledger-web |        the  next request.  If a change makes the file unparseable, hledger-web | ||||||
|        will show an error until the file has been fixed. |        will show an error until the file has been fixed. | ||||||
| 
 | 
 | ||||||
| OPTIONS | OPTIONS | ||||||
|        Note:  if invoking hledger-web as a hledger subcommand, write -- before |        Note: if invoking hledger-web as a hledger subcommand, write --  before | ||||||
|        options as shown above. |        options as shown above. | ||||||
| 
 | 
 | ||||||
|        --serve |        --serve | ||||||
| @ -85,14 +85,14 @@ OPTIONS | |||||||
|               listen on this TCP port (default: 5000) |               listen on this TCP port (default: 5000) | ||||||
| 
 | 
 | ||||||
|        --base-url=URL |        --base-url=URL | ||||||
|               set the  base  url  (default:  http://IPADDR:PORT).   You  would |               set  the  base  url  (default:  http://IPADDR:PORT).   You would | ||||||
|               change this when sharing over the network, or integrating within |               change this when sharing over the network, or integrating within | ||||||
|               a larger website. |               a larger website. | ||||||
| 
 | 
 | ||||||
|        --file-url=URL |        --file-url=URL | ||||||
|               set the static files url (default: BASEURL/static).  hledger-web |               set the static files url (default: BASEURL/static).  hledger-web | ||||||
|               normally  serves static files itself, but if you wanted to serve |               normally serves static files itself, but if you wanted to  serve | ||||||
|               them from another server for efficiency, you would set  the  url |               them  from  another server for efficiency, you would set the url | ||||||
|               with this. |               with this. | ||||||
| 
 | 
 | ||||||
|        hledger input options: |        hledger input options: | ||||||
| @ -102,7 +102,7 @@ OPTIONS | |||||||
|               $LEDGER_FILE or $HOME/.hledger.journal) |               $LEDGER_FILE or $HOME/.hledger.journal) | ||||||
| 
 | 
 | ||||||
|        --rules-file=RULESFILE |        --rules-file=RULESFILE | ||||||
|               Conversion  rules  file  to  use  when  reading  CSV   (default: |               Conversion   rules  file  to  use  when  reading  CSV  (default: | ||||||
|               FILE.rules) |               FILE.rules) | ||||||
| 
 | 
 | ||||||
|        --alias=OLD=NEW |        --alias=OLD=NEW | ||||||
| @ -140,11 +140,11 @@ OPTIONS | |||||||
|               multiperiod/multicolumn report by year |               multiperiod/multicolumn report by year | ||||||
| 
 | 
 | ||||||
|        -p --period=PERIODEXP |        -p --period=PERIODEXP | ||||||
|               set  start date, end date, and/or reporting interval all at once |               set start date, end date, and/or reporting interval all at  once | ||||||
|               (overrides the flags above) |               (overrides the flags above) | ||||||
| 
 | 
 | ||||||
|        --date2 |        --date2 | ||||||
|               match the secondary date instead (see  command  help  for  other |               match  the  secondary  date  instead (see command help for other | ||||||
|               effects) |               effects) | ||||||
| 
 | 
 | ||||||
|        -U --unmarked |        -U --unmarked | ||||||
| @ -166,11 +166,11 @@ OPTIONS | |||||||
|               show items with zero amount, normally hidden |               show items with zero amount, normally hidden | ||||||
| 
 | 
 | ||||||
|        -B --cost |        -B --cost | ||||||
|               convert  amounts  to  their  cost at transaction time (using the |               convert amounts to their cost at  transaction  time  (using  the | ||||||
|               transaction price, if any) |               transaction price, if any) | ||||||
| 
 | 
 | ||||||
|        -V --value |        -V --value | ||||||
|               convert amounts to their market value on  the  report  end  date |               convert  amounts  to  their  market value on the report end date | ||||||
|               (using the most recent applicable market price, if any) |               (using the most recent applicable market price, if any) | ||||||
| 
 | 
 | ||||||
|        When a reporting option appears more than once in the command line, the |        When a reporting option appears more than once in the command line, the | ||||||
| @ -190,22 +190,22 @@ OPTIONS | |||||||
|               show debug output (levels 1-9, default: 1) |               show debug output (levels 1-9, default: 1) | ||||||
| 
 | 
 | ||||||
|        A @FILE argument will be expanded to the contents of FILE, which should |        A @FILE argument will be expanded to the contents of FILE, which should | ||||||
|        contain  one  command line option/argument per line.  (To prevent this, |        contain one command line option/argument per line.  (To  prevent  this, | ||||||
|        insert a -- argument before.) |        insert a -- argument before.) | ||||||
| 
 | 
 | ||||||
| ENVIRONMENT | ENVIRONMENT | ||||||
|        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). | ||||||
| 
 | 
 | ||||||
| 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). | ||||||
| 
 | 
 | ||||||
| BUGS | BUGS | ||||||
|        The  need  to precede options with -- when invoked from hledger is awk- |        The need to precede options with -- when invoked from hledger  is  awk- | ||||||
|        ward. |        ward. | ||||||
| 
 | 
 | ||||||
|        -f- doesn't work (hledger-web can't read from stdin). |        -f- doesn't work (hledger-web can't read from stdin). | ||||||
| @ -219,7 +219,7 @@ BUGS | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 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) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -233,7 +233,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) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -721,11 +721,32 @@ T{ | |||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
| .PP | .PP | ||||||
|  | Note that \f[C]weekly\f[], \f[C]monthly\f[], \f[C]quarterly\f[] and | ||||||
|  | \f[C]yearly\f[] intervals will always start on the first day on week, | ||||||
|  | month, quarter or year accordingly, and will end on the last day of same | ||||||
|  | period, even if associated period expression specifies different | ||||||
|  | explicit start and end date. | ||||||
|  | .SS For example: | ||||||
|  | .PP | ||||||
|  | \f[C]\-p\ "weekly\ from\ 2009/1/1\ to\ 2009/4/1"\f[] \-\- starts on | ||||||
|  | 2008/12/29, closest preceeding Monday | ||||||
|  | \f[C]\-p\ "monthly\ in\ 2008/11/25"\f[] \-\- starts on 2018/11/01 | ||||||
|  | .PD 0 | ||||||
|  | .P | ||||||
|  | .PD | ||||||
|  | \f[C]\-p\ "quarterly\ from\ 2009\-05\-05\ to\ 2009\-06\-01"\f[] \- | ||||||
|  | starts on 2009/04/01, ends on 2009/06/30, which are first and last days | ||||||
|  | of Q2 2009 \f[C]\-p\ "yearly\ from\ 2009\-12\-29"\f[] \- starts on | ||||||
|  | 2009/01/01, first day of 2009 | ||||||
|  | \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- | ||||||
|  | .PP | ||||||
| The following more complex report intervals are also supported: | The following more complex report intervals are also supported: | ||||||
| \f[C]biweekly\f[], \f[C]bimonthly\f[], | \f[C]biweekly\f[], \f[C]bimonthly\f[], | ||||||
| \f[C]every\ N\ days|weeks|months|quarters|years\f[], | \f[C]every\ day|week|month|quarter|year\f[], | ||||||
| \f[C]every\ Nth\ day\ [of\ month]\f[], | \f[C]every\ N\ days|weeks|months|quarters|years\f[]. | ||||||
| \f[C]every\ Nth\ day\ of\ week\f[]. | .PP | ||||||
|  | All of these will start on the first day of the requested period and end | ||||||
|  | on the last one, as described above. | ||||||
| .PP | .PP | ||||||
| Examples: | Examples: | ||||||
| .PP | .PP | ||||||
| @ -733,13 +754,56 @@ Examples: | |||||||
| tab(@); | tab(@); | ||||||
| l. | l. | ||||||
| T{ | T{ | ||||||
| \f[C]\-p\ "bimonthly\ from\ 2008"\f[] | \f[C]\-p\ "bimonthly\ from\ 2008"\f[] \-\- periods will have boundaries | ||||||
|  | on 2008/01/01, 2008/03/01, ... | ||||||
| T} | T} | ||||||
| T{ | T{ | ||||||
| \f[C]\-p\ "every\ 2\ weeks"\f[] | \f[C]\-p\ "every\ 2\ weeks"\f[] \-\- starts on closest preceeding Monday | ||||||
| T} | T} | ||||||
| T{ | T{ | ||||||
| \f[C]\-p\ "every\ 5\ days\ from\ 1/3"\f[] | \f[C]\-p\ "every\ 5\ month\ from\ 2009/03"\f[] \-\- periods will have | ||||||
|  | boundaries on 2009/03/01, 2009/08/01, ... | ||||||
|  | T} | ||||||
|  | .TE | ||||||
|  | .PP | ||||||
|  | If you want intervals that start on arbitrary day of your choosing and | ||||||
|  | span a week, month or year, you need to use any of the following: | ||||||
|  | .PP | ||||||
|  | \f[C]every\ Nth\ day\ of\ week\f[], \f[C]every\ <weekday>\f[], | ||||||
|  | \f[C]every\ Nth\ day\ [of\ month]\f[], | ||||||
|  | \f[C]every\ Nth\ weekday\ [of\ month]\f[], | ||||||
|  | \f[C]every\ MM/DD\ [of\ year]\f[], \f[C]every\ Nth\ MMM\ [of\ year]\f[], | ||||||
|  | \f[C]every\ MMM\ Nth\ [of\ year]\f[]. | ||||||
|  | .PP | ||||||
|  | Examples: | ||||||
|  | .PP | ||||||
|  | .TS | ||||||
|  | tab(@); | ||||||
|  | l. | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ 2nd\ day\ of\ week"\f[] \-\- periods will go from Tue | ||||||
|  | to Tue | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ Tue"\f[] \-\- same | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ 15th\ day"\f[] \-\- period boundaries will be on 15th | ||||||
|  | of each month | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ 2nd\ Monday"\f[] \-\- period boundaries will be on | ||||||
|  | second Monday of each month | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ 11/05"\f[] \-\- yearly periods with boundaries on 5th | ||||||
|  | of Nov | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ 5th\ Nov"\f[] \-\- same | ||||||
|  | T} | ||||||
|  | T{ | ||||||
|  | \f[C]\-p\ "every\ Nov\ 5th"\f[] \-\- same | ||||||
| T} | T} | ||||||
| .TE | .TE | ||||||
| .PP | .PP | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| This is hledger.1.info, produced by makeinfo version 6.1 from stdin. | This is hledger.1.info, produced by makeinfo version 6.0 from stdin. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Top,  Next: EXAMPLES,  Up: (dir) | File: hledger.1.info,  Node: Top,  Next: EXAMPLES,  Up: (dir) | ||||||
| @ -125,6 +125,7 @@ File: hledger.1.info,  Node: OPTIONS,  Next: QUERIES,  Prev: EXAMPLES,  Up: Top | |||||||
| * Report start & end date:: | * Report start & end date:: | ||||||
| * Report intervals:: | * Report intervals:: | ||||||
| * Period expressions:: | * Period expressions:: | ||||||
|  | * For example:: | ||||||
| * Depth limiting:: | * Depth limiting:: | ||||||
| * Pivoting:: | * Pivoting:: | ||||||
| * Cost:: | * Cost:: | ||||||
| @ -432,7 +433,7 @@ complex intervals may be specified with a period expression.  Report | |||||||
| intervals can not be specified with a query, currently. | intervals can not be specified with a query, currently. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Period expressions,  Next: Depth limiting,  Prev: Report intervals,  Up: OPTIONS | File: hledger.1.info,  Node: Period expressions,  Next: For example,  Prev: Report intervals,  Up: OPTIONS | ||||||
| 
 | 
 | ||||||
| 2.10 Period expressions | 2.10 Period expressions | ||||||
| ======================= | ======================= | ||||||
| @ -486,15 +487,54 @@ start/end dates (if any), the word 'in' is optional.  Examples: | |||||||
| '-p "monthly in 2008"' | '-p "monthly in 2008"' | ||||||
| '-p "quarterly"' | '-p "quarterly"' | ||||||
| 
 | 
 | ||||||
|  |    Note that 'weekly', 'monthly', 'quarterly' and 'yearly' intervals | ||||||
|  | will always start on the first day on week, month, quarter or year | ||||||
|  | accordingly, and will end on the last day of same period, even if | ||||||
|  | associated period expression specifies different explicit start and end | ||||||
|  | date. | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  | File: hledger.1.info,  Node: For example,  Next: Depth limiting,  Prev: Period expressions,  Up: OPTIONS | ||||||
|  | 
 | ||||||
|  | 2.11 For example: | ||||||
|  | ================= | ||||||
|  | 
 | ||||||
|  | '-p "weekly from 2009/1/1 to 2009/4/1"' - starts on 2008/12/29, closest | ||||||
|  | preceeding Monday '-p "monthly in 2008/11/25"' - starts on 2018/11/01 | ||||||
|  | '-p "quarterly from 2009-05-05 to 2009-06-01"' - starts on 2009/04/01, | ||||||
|  | ends on 2009/06/30, which are first and last days of Q2 2009 '-p "yearly | ||||||
|  | from 2009-12-29"' - starts on 2009/01/01, first day of 2009 | ||||||
|  | ---------------------------- | ||||||
|  | 
 | ||||||
|    The following more complex report intervals are also supported: |    The following more complex report intervals are also supported: | ||||||
| 'biweekly', 'bimonthly', 'every N days|weeks|months|quarters|years', | 'biweekly', 'bimonthly', 'every day|week|month|quarter|year', 'every N | ||||||
| 'every Nth day [of month]', 'every Nth day of week'. | days|weeks|months|quarters|years'. | ||||||
|  | 
 | ||||||
|  |    All of these will start on the first day of the requested period and | ||||||
|  | end on the last one, as described above. | ||||||
| 
 | 
 | ||||||
|    Examples: |    Examples: | ||||||
| 
 | 
 | ||||||
| '-p "bimonthly from 2008"' | '-p "bimonthly from 2008"' - periods will have boundaries on 2008/01/01, 2008/03/01, ... | ||||||
| '-p "every 2 weeks"' | '-p "every 2 weeks"' - starts on closest preceeding Monday | ||||||
| '-p "every 5 days from 1/3"' | '-p "every 5 month from 2009/03"' - periods will have boundaries on 2009/03/01, 2009/08/01, ... | ||||||
|  | 
 | ||||||
|  |    If you want intervals that start on arbitrary day of your choosing | ||||||
|  | and span a week, month or year, you need to use any of the following: | ||||||
|  | 
 | ||||||
|  |    'every Nth day of week', 'every <weekday>', 'every Nth day [of | ||||||
|  | month]', 'every Nth weekday [of month]', 'every MM/DD [of year]', 'every | ||||||
|  | Nth MMM [of year]', 'every MMM Nth [of year]'. | ||||||
|  | 
 | ||||||
|  |    Examples: | ||||||
|  | 
 | ||||||
|  | '-p "every 2nd day of week"' - periods will go from Tue to Tue | ||||||
|  | '-p "every Tue"' - same | ||||||
|  | '-p "every 15th day"' - period boundaries will be on 15th of each month | ||||||
|  | '-p "every 2nd Monday"' - period boundaries will be on second Monday of each month | ||||||
|  | '-p "every 11/05"' - yearly periods with boundaries on 5th of Nov | ||||||
|  | '-p "every 5th Nov"' - same | ||||||
|  | '-p "every Nov 5th"' - same | ||||||
| 
 | 
 | ||||||
|    Show historical balances at end of 15th each month (N is exclusive |    Show historical balances at end of 15th each month (N is exclusive | ||||||
| end date): | end date): | ||||||
| @ -507,9 +547,9 @@ start date and exclusive end date): | |||||||
|    'hledger register checking -p "every 3rd day of week"' |    'hledger register checking -p "every 3rd day of week"' | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Depth limiting,  Next: Pivoting,  Prev: Period expressions,  Up: OPTIONS | File: hledger.1.info,  Node: Depth limiting,  Next: Pivoting,  Prev: For example,  Up: OPTIONS | ||||||
| 
 | 
 | ||||||
| 2.11 Depth limiting | 2.12 Depth limiting | ||||||
| =================== | =================== | ||||||
| 
 | 
 | ||||||
| With the '--depth N' option (short form: '-N'), commands like account, | With the '--depth N' option (short form: '-N'), commands like account, | ||||||
| @ -521,7 +561,7 @@ less detail.  This flag has the same effect as a 'depth:' query argument | |||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Pivoting,  Next: Cost,  Prev: Depth limiting,  Up: OPTIONS | File: hledger.1.info,  Node: Pivoting,  Next: Cost,  Prev: Depth limiting,  Up: OPTIONS | ||||||
| 
 | 
 | ||||||
| 2.12 Pivoting | 2.13 Pivoting | ||||||
| ============= | ============= | ||||||
| 
 | 
 | ||||||
| Normally hledger sums amounts, and organizes them in a hierarchy, based | Normally hledger sums amounts, and organizes them in a hierarchy, based | ||||||
| @ -578,7 +618,7 @@ $ hledger balance --pivot member acct:. | |||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Cost,  Next: Market value,  Prev: Pivoting,  Up: OPTIONS | File: hledger.1.info,  Node: Cost,  Next: Market value,  Prev: Pivoting,  Up: OPTIONS | ||||||
| 
 | 
 | ||||||
| 2.13 Cost | 2.14 Cost | ||||||
| ========= | ========= | ||||||
| 
 | 
 | ||||||
| The '-B/--cost' flag converts amounts to their cost at transaction time, | The '-B/--cost' flag converts amounts to their cost at transaction time, | ||||||
| @ -587,7 +627,7 @@ if they have a transaction price specified. | |||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Market value,  Next: Regular expressions,  Prev: Cost,  Up: OPTIONS | File: hledger.1.info,  Node: Market value,  Next: Regular expressions,  Prev: Cost,  Up: OPTIONS | ||||||
| 
 | 
 | ||||||
| 2.14 Market value | 2.15 Market value | ||||||
| ================= | ================= | ||||||
| 
 | 
 | ||||||
| The '-V/--value' flag converts the reported amounts to their market | The '-V/--value' flag converts the reported amounts to their market | ||||||
| @ -636,7 +676,7 @@ directives, not transaction prices (unlike Ledger). | |||||||
|  |  | ||||||
| File: hledger.1.info,  Node: Regular expressions,  Prev: Market value,  Up: OPTIONS | File: hledger.1.info,  Node: Regular expressions,  Prev: Market value,  Up: OPTIONS | ||||||
| 
 | 
 | ||||||
| 2.15 Regular expressions | 2.16 Regular expressions | ||||||
| ======================== | ======================== | ||||||
| 
 | 
 | ||||||
| hledger uses regular expressions in a number of places: | hledger uses regular expressions in a number of places: | ||||||
| @ -2222,129 +2262,131 @@ Node: EXAMPLES1886 | |||||||
| Ref: #examples1988 | Ref: #examples1988 | ||||||
| Node: OPTIONS3634 | Node: OPTIONS3634 | ||||||
| Ref: #options3738 | Ref: #options3738 | ||||||
| Node: General options4038 | Node: General options4054 | ||||||
| Ref: #general-options4165 | Ref: #general-options4181 | ||||||
| Node: Command options6484 | Node: Command options6500 | ||||||
| Ref: #command-options6637 | Ref: #command-options6653 | ||||||
| Node: Command arguments7035 | Node: Command arguments7051 | ||||||
| Ref: #command-arguments7191 | Ref: #command-arguments7207 | ||||||
| Node: Argument files7312 | Node: Argument files7328 | ||||||
| Ref: #argument-files7465 | Ref: #argument-files7481 | ||||||
| Node: Special characters7731 | Node: Special characters7747 | ||||||
| Ref: #special-characters7886 | Ref: #special-characters7902 | ||||||
| Node: Input files9305 | Node: Input files9321 | ||||||
| Ref: #input-files9443 | Ref: #input-files9459 | ||||||
| Node: Smart dates11406 | Node: Smart dates11422 | ||||||
| Ref: #smart-dates11549 | Ref: #smart-dates11565 | ||||||
| Node: Report start & end date12528 | Node: Report start & end date12544 | ||||||
| Ref: #report-start-end-date12700 | Ref: #report-start-end-date12716 | ||||||
| Node: Report intervals13766 | Node: Report intervals13782 | ||||||
| Ref: #report-intervals13931 | Ref: #report-intervals13947 | ||||||
| Node: Period expressions14332 | Node: Period expressions14348 | ||||||
| Ref: #period-expressions14494 | Ref: #period-expressions14507 | ||||||
| Node: Depth limiting16834 | Node: For example16552 | ||||||
| Ref: #depth-limiting16980 | Ref: #for-example16697 | ||||||
| Node: Pivoting17322 | Node: Depth limiting18621 | ||||||
| Ref: #pivoting17442 | Ref: #depth-limiting18760 | ||||||
| Node: Cost19118 | Node: Pivoting19102 | ||||||
| Ref: #cost19228 | Ref: #pivoting19222 | ||||||
| Node: Market value19346 | Node: Cost20898 | ||||||
| Ref: #market-value19483 | Ref: #cost21008 | ||||||
| Node: Regular expressions20783 | Node: Market value21126 | ||||||
| Ref: #regular-expressions20921 | Ref: #market-value21263 | ||||||
| Node: QUERIES22282 | Node: Regular expressions22563 | ||||||
| Ref: #queries22386 | Ref: #regular-expressions22701 | ||||||
| Node: COMMANDS26353 | Node: QUERIES24062 | ||||||
| Ref: #commands26467 | Ref: #queries24166 | ||||||
| Node: accounts27450 | Node: COMMANDS28133 | ||||||
| Ref: #accounts27550 | Ref: #commands28247 | ||||||
| Node: activity28543 | Node: accounts29230 | ||||||
| Ref: #activity28655 | Ref: #accounts29330 | ||||||
| Node: add29014 | Node: activity30323 | ||||||
| Ref: #add29115 | Ref: #activity30435 | ||||||
| Node: balance31773 | Node: add30794 | ||||||
| Ref: #balance31886 | Ref: #add30895 | ||||||
| Node: Flat mode35043 | Node: balance33553 | ||||||
| Ref: #flat-mode35170 | Ref: #balance33666 | ||||||
| Node: Depth limited balance reports35590 | Node: Flat mode36823 | ||||||
| Ref: #depth-limited-balance-reports35793 | Ref: #flat-mode36950 | ||||||
| Node: Multicolumn balance reports36213 | Node: Depth limited balance reports37370 | ||||||
| Ref: #multicolumn-balance-reports36424 | Ref: #depth-limited-balance-reports37573 | ||||||
| Node: Custom balance output41072 | Node: Multicolumn balance reports37993 | ||||||
| Ref: #custom-balance-output41256 | Ref: #multicolumn-balance-reports38204 | ||||||
| Node: Colour support43349 | Node: Custom balance output42852 | ||||||
| Ref: #colour-support43510 | Ref: #custom-balance-output43036 | ||||||
| Node: Output destination43683 | Node: Colour support45129 | ||||||
| Ref: #output-destination43841 | Ref: #colour-support45290 | ||||||
| Node: CSV output44111 | Node: Output destination45463 | ||||||
| Ref: #csv-output44230 | Ref: #output-destination45621 | ||||||
| Node: balancesheet44627 | Node: CSV output45891 | ||||||
| Ref: #balancesheet44765 | Ref: #csv-output46010 | ||||||
| Node: balancesheetequity46733 | Node: balancesheet46407 | ||||||
| Ref: #balancesheetequity46884 | Ref: #balancesheet46545 | ||||||
| Node: cashflow47673 | Node: balancesheetequity48513 | ||||||
| Ref: #cashflow47803 | Ref: #balancesheetequity48664 | ||||||
| Node: check-dates49715 | Node: cashflow49453 | ||||||
| Ref: #check-dates49844 | Ref: #cashflow49583 | ||||||
| Node: check-dupes49961 | Node: check-dates51495 | ||||||
| Ref: #check-dupes50088 | Ref: #check-dates51624 | ||||||
| Node: equity50225 | Node: check-dupes51741 | ||||||
| Ref: #equity50337 | Ref: #check-dupes51868 | ||||||
| Node: help50500 | Node: equity52005 | ||||||
| Ref: #help50603 | Ref: #equity52117 | ||||||
| Node: import51677 | Node: help52280 | ||||||
| Ref: #import51793 | Ref: #help52383 | ||||||
| Node: incomestatement52523 | Node: import53457 | ||||||
| Ref: #incomestatement52659 | Ref: #import53573 | ||||||
| Node: prices54612 | Node: incomestatement54303 | ||||||
| Ref: #prices54729 | Ref: #incomestatement54439 | ||||||
| Node: print54772 | Node: prices56392 | ||||||
| Ref: #print54884 | Ref: #prices56509 | ||||||
| Node: print-unique59730 | Node: print56552 | ||||||
| Ref: #print-unique59858 | Ref: #print56664 | ||||||
| Node: register59926 | Node: print-unique61510 | ||||||
| Ref: #register60055 | Ref: #print-unique61638 | ||||||
| Node: Custom register output64556 | Node: register61706 | ||||||
| Ref: #custom-register-output64687 | Ref: #register61835 | ||||||
| Node: register-match65984 | Node: Custom register output66336 | ||||||
| Ref: #register-match66120 | Ref: #custom-register-output66467 | ||||||
| Node: rewrite66303 | Node: register-match67764 | ||||||
| Ref: #rewrite66422 | Ref: #register-match67900 | ||||||
| Node: stats66491 | Node: rewrite68083 | ||||||
| Ref: #stats66596 | Ref: #rewrite68202 | ||||||
| Node: tags67477 | Node: stats68271 | ||||||
| Ref: #tags67577 | Ref: #stats68376 | ||||||
| Node: test67813 | Node: tags69257 | ||||||
| Ref: #test67899 | Ref: #tags69357 | ||||||
| Node: ADD-ON COMMANDS68267 | Node: test69593 | ||||||
| Ref: #add-on-commands68379 | Ref: #test69679 | ||||||
| Node: Official add-ons69666 | Node: ADD-ON COMMANDS70047 | ||||||
| Ref: #official-add-ons69808 | Ref: #add-on-commands70159 | ||||||
| Node: api69895 | Node: Official add-ons71446 | ||||||
| Ref: #api69986 | Ref: #official-add-ons71588 | ||||||
| Node: ui70038 | Node: api71675 | ||||||
| Ref: #ui70139 | Ref: #api71766 | ||||||
| Node: web70197 | Node: ui71818 | ||||||
| Ref: #web70288 | Ref: #ui71919 | ||||||
| Node: Third party add-ons70334 | Node: web71977 | ||||||
| Ref: #third-party-add-ons70511 | Ref: #web72068 | ||||||
| Node: diff70646 | Node: Third party add-ons72114 | ||||||
| Ref: #diff70745 | Ref: #third-party-add-ons72291 | ||||||
| Node: iadd70844 | Node: diff72426 | ||||||
| Ref: #iadd70960 | Ref: #diff72525 | ||||||
| Node: interest71043 | Node: iadd72624 | ||||||
| Ref: #interest71166 | Ref: #iadd72740 | ||||||
| Node: irr71261 | Node: interest72823 | ||||||
| Ref: #irr71361 | Ref: #interest72946 | ||||||
| Node: Experimental add-ons71439 | Node: irr73041 | ||||||
| Ref: #experimental-add-ons71593 | Ref: #irr73141 | ||||||
| Node: autosync71884 | Node: Experimental add-ons73219 | ||||||
| Ref: #autosync71998 | Ref: #experimental-add-ons73373 | ||||||
| Node: budget72237 | Node: autosync73664 | ||||||
| Ref: #budget72361 | Ref: #autosync73778 | ||||||
| Node: chart72427 | Node: budget74017 | ||||||
| Ref: #chart72546 | Ref: #budget74141 | ||||||
| Node: check72617 | Node: chart74207 | ||||||
| Ref: #check72721 | Ref: #chart74326 | ||||||
|  | Node: check74397 | ||||||
|  | Ref: #check74501 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
|  | |||||||
| @ -286,6 +286,7 @@ OPTIONS | |||||||
|        format automatically based on the file extension, or  if  that  is  not |        format automatically based on the file extension, or  if  that  is  not | ||||||
|        recognised, by trying each built-in "reader" in turn: |        recognised, by trying each built-in "reader" in turn: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        Reader:       Reads:                              Used for file extensions: |        Reader:       Reads:                              Used for file extensions: | ||||||
|        ----------------------------------------------------------------------------- |        ----------------------------------------------------------------------------- | ||||||
|        journal       hledger's  journal  format,  also   .journal    .j    .hledger |        journal       hledger's  journal  format,  also   .journal    .j    .hledger | ||||||
| @ -323,14 +324,16 @@ OPTIONS | |||||||
| 
 | 
 | ||||||
|        Examples: |        Examples: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        2009/1/1,      2009/01/01,   simple dates, several sep- |        2009/1/1,      2009/01/01,   simple dates, several sep- | ||||||
|        2009-1-1, 2009.1.1           arators allowed |        2009-1-1, 2009.1.1           arators allowed | ||||||
|        2009/1, 2009                 same as above - a  missing |        2009/1, 2009                 same as above - a  missing | ||||||
|                                     day or month defaults to 1 |                                     day or month defaults to 1 | ||||||
|        1/1,     january,     jan,   relative  dates,   meaning |  | ||||||
|        this year                    january  1  of the current |  | ||||||
|                                     year |  | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |        1/1,     january,     jan,   relative   dates,  meaning | ||||||
|  |        this year                    january 1 of  the  current | ||||||
|  |                                     year | ||||||
|        next year                    january 1 of next year |        next year                    january 1 of next year | ||||||
|        this month                   the  1st  of  the  current |        this month                   the  1st  of  the  current | ||||||
|                                     month |                                     month | ||||||
| @ -355,6 +358,7 @@ OPTIONS | |||||||
| 
 | 
 | ||||||
|        Examples: |        Examples: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        -b 2016/3/17      begin  on  St.   Patrick's |        -b 2016/3/17      begin  on  St.   Patrick's | ||||||
|                          day 2016 |                          day 2016 | ||||||
|        -e 12/1           end at the start of decem- |        -e 12/1           end at the start of decem- | ||||||
| @ -382,25 +386,27 @@ OPTIONS | |||||||
| 
 | 
 | ||||||
|    Period expressions |    Period expressions | ||||||
|        The  -p/--period  option accepts period expressions, a shorthand way of |        The  -p/--period  option accepts period expressions, a shorthand way of | ||||||
|        expressing a start date, end date, and/or report interval all at once. |        expressing a start date, end date, and/or report interval all at  once. | ||||||
| 
 | 
 | ||||||
|        Here's a basic period expression specifying the first quarter of  2009. |        Here's  a basic period expression specifying the first quarter of 2009. | ||||||
|        Note,  hledger  always treats start dates as inclusive and end dates as |        Note, hledger always treats start dates as inclusive and end  dates  as | ||||||
|        exclusive: |        exclusive: | ||||||
| 
 | 
 | ||||||
|        -p "from 2009/1/1 to 2009/4/1" |        -p "from 2009/1/1 to 2009/4/1" | ||||||
| 
 | 
 | ||||||
|        Keywords like "from" and "to" are optional, and so are the  spaces,  as |        Keywords  like  "from" and "to" are optional, and so are the spaces, as | ||||||
|        long  as you don't run two dates together.  "to" can also be written as |        long as you don't run two dates together.  "to" can also be written  as | ||||||
|        "-".  These are equivalent to the above: |        "-".  These are equivalent to the above: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        -p "2009/1/1 2009/4/1" |        -p "2009/1/1 2009/4/1" | ||||||
|        -p2009/1/1to2009/4/1 |        -p2009/1/1to2009/4/1 | ||||||
|        -p2009/1/1-2009/4/1 |        -p2009/1/1-2009/4/1 | ||||||
| 
 | 
 | ||||||
|        Dates are smart dates, so if the current year is 2009,  the  above  can |        Dates  are  smart  dates, so if the current year is 2009, the above can | ||||||
|        also be written as: |        also be written as: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        -p "1/1 4/1" |        -p "1/1 4/1" | ||||||
|        -p "january-apr" |        -p "january-apr" | ||||||
|        -p "this year to 4/1" |        -p "this year to 4/1" | ||||||
| @ -408,43 +414,91 @@ OPTIONS | |||||||
|        If you specify only one date, the missing start or end date will be the |        If you specify only one date, the missing start or end date will be the | ||||||
|        earliest or latest transaction in your journal: |        earliest or latest transaction in your journal: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        -p "from 2009/1/1"   everything  after  january |        -p "from 2009/1/1"   everything  after  january | ||||||
|                             1, 2009 |                             1, 2009 | ||||||
|        -p "from 2009/1"     the same |        -p "from 2009/1"     the same | ||||||
|        -p "from 2009"       the same |        -p "from 2009"       the same | ||||||
|        -p "to 2009"         everything  before january |        -p "to 2009"         everything before  january | ||||||
|                             1, 2009 |                             1, 2009 | ||||||
| 
 | 
 | ||||||
|        A single date with no "from" or "to" defines both  the  start  and  end |        A  single  date  with  no "from" or "to" defines both the start and end | ||||||
|        date like so: |        date like so: | ||||||
| 
 | 
 | ||||||
|        -p "2009"       the  year 2009; equivalent | 
 | ||||||
|  |        -p "2009"       the year 2009;  equivalent | ||||||
|                        to "2009/1/1 to 2010/1/1" |                        to "2009/1/1 to 2010/1/1" | ||||||
|        -p "2009/1"     the month of jan;  equiva- |        -p "2009/1"     the  month of jan; equiva- | ||||||
|                        lent   to   "2009/1/1   to |                        lent   to   "2009/1/1   to | ||||||
|                        2009/2/1" |                        2009/2/1" | ||||||
|        -p "2009/1/1"   just that day;  equivalent |        -p "2009/1/1"   just  that day; equivalent | ||||||
|                        to "2009/1/1 to 2009/1/2" |                        to "2009/1/1 to 2009/1/2" | ||||||
| 
 | 
 | ||||||
|        The  argument  of  -p  can  also  begin  with, or be, a report interval |        The argument of -p can also  begin  with,  or  be,  a  report  interval | ||||||
|        expression.  The basic report intervals  are  daily,  weekly,  monthly, |        expression.   The  basic  report  intervals are daily, weekly, monthly, | ||||||
|        quarterly, or yearly, which have the same effect as the -D,-W,-M,-Q, or |        quarterly, or yearly, which have the same effect as the -D,-W,-M,-Q, or | ||||||
|        -Y flags.  Between report interval and start/end dates  (if  any),  the |        -Y  flags.   Between  report interval and start/end dates (if any), the | ||||||
|        word in is optional.  Examples: |        word in is optional.  Examples: | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|        -p "weekly from 2009/1/1 to 2009/4/1" |        -p "weekly from 2009/1/1 to 2009/4/1" | ||||||
|        -p "monthly in 2008" |        -p "monthly in 2008" | ||||||
|        -p "quarterly" |        -p "quarterly" | ||||||
| 
 | 
 | ||||||
|  |        Note that weekly, monthly, quarterly and yearly intervals  will  always | ||||||
|  |        start on the first day on week, month, quarter or year accordingly, and | ||||||
|  |        will end on the last day of same  period,  even  if  associated  period | ||||||
|  |        expression specifies different explicit start and end date. | ||||||
|  | 
 | ||||||
|  |    For example: | ||||||
|  |        -p "weekly from 2009/1/1 to 2009/4/1"  -- starts on 2008/12/29, closest | ||||||
|  |        preceeding Monday -p "monthly in 2008/11/25" -- starts on 2018/11/01 | ||||||
|  |        -p "quarterly from 2009-05-05 to 2009-06-01" -  starts  on  2009/04/01, | ||||||
|  |        ends  on  2009/06/30,  which  are  first  and  last  days  of  Q2  2009 | ||||||
|  |        -p "yearly from 2009-12-29" - starts on 2009/01/01, first day  of  2009 | ||||||
|  |        ------------------------------------------ | ||||||
|  | 
 | ||||||
|        The  following  more  complex  report  intervals  are  also  supported: |        The  following  more  complex  report  intervals  are  also  supported: | ||||||
|        biweekly,     bimonthly,      every N days|weeks|months|quarters|years, |        biweekly,         bimonthly,         every day|week|month|quarter|year, | ||||||
|        every Nth day [of month], every Nth day of week. |        every N days|weeks|months|quarters|years. | ||||||
|  | 
 | ||||||
|  |        All  of  these  will start on the first day of the requested period and | ||||||
|  |        end on the last one, as described above. | ||||||
| 
 | 
 | ||||||
|        Examples: |        Examples: | ||||||
| 
 | 
 | ||||||
|        -p "bimonthly from 2008" | 
 | ||||||
|        -p "every 2 weeks" |        -p "bimonthly from 2008"   --   periods | ||||||
|        -p "every 5 days from 1/3" |        will  have  boundaries  on  2008/01/01, | ||||||
|  |        2008/03/01, ... | ||||||
|  |        -p "every 2 weeks" -- starts on closest | ||||||
|  |        preceeding Monday | ||||||
|  |        -p "every 5 month from 2009/03"      -- | ||||||
|  |        periods   will   have   boundaries   on | ||||||
|  |        2009/03/01, 2009/08/01, ... | ||||||
|  | 
 | ||||||
|  |        If  you want intervals that start on arbitrary day of your choosing and | ||||||
|  |        span a week, month or year, you need to use any of the following: | ||||||
|  | 
 | ||||||
|  |        every Nth day of week,    every <weekday>,    every Nth day [of month], | ||||||
|  |        every Nth weekday [of month],                    every MM/DD [of year], | ||||||
|  |        every Nth MMM [of year], every MMM Nth [of year]. | ||||||
|  | 
 | ||||||
|  |        Examples: | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |        -p "every 2nd day of week"  --  periods | ||||||
|  |        will go from Tue to Tue | ||||||
|  |        -p "every Tue" -- same | ||||||
|  |        -p "every 15th day"  --  period  bound- | ||||||
|  |        aries will be on 15th of each month | ||||||
|  |        -p "every 2nd Monday" -- period  bound- | ||||||
|  |        aries  will be on second Monday of each | ||||||
|  |        month | ||||||
|  |        -p "every 11/05" -- yearly periods with | ||||||
|  |        boundaries on 5th of Nov | ||||||
|  |        -p "every 5th Nov" -- same | ||||||
|  |        -p "every Nov 5th" -- same | ||||||
| 
 | 
 | ||||||
|        Show  historical balances at end of 15th each month (N is exclusive end |        Show  historical balances at end of 15th each month (N is exclusive end | ||||||
|        date): |        date): | ||||||
| @ -557,7 +611,7 @@ OPTIONS | |||||||
|               $ hledger -f t.j bal euros -V -e 2016/12/21 |               $ hledger -f t.j bal euros -V -e 2016/12/21 | ||||||
|                            $103.00  assets:euros |                            $103.00  assets:euros | ||||||
| 
 | 
 | ||||||
|        Currently, hledger's -V only uses market prices recorded with P  direc- |        Currently,  hledger's -V only uses market prices recorded with P direc- | ||||||
|        tives, not transaction prices (unlike Ledger). |        tives, not transaction prices (unlike Ledger). | ||||||
| 
 | 
 | ||||||
|        Using -B and -V together is allowed. |        Using -B and -V together is allowed. | ||||||
| @ -565,56 +619,56 @@ OPTIONS | |||||||
|    Regular expressions |    Regular expressions | ||||||
|        hledger uses regular expressions in a number of places: |        hledger uses regular expressions in a number of places: | ||||||
| 
 | 
 | ||||||
|        o query  terms, on the command line and in the hledger-web search form: |        o query terms, on the command line and in the hledger-web search  form: | ||||||
|          REGEX, desc:REGEX, cur:REGEX, tag:...=REGEX |          REGEX, desc:REGEX, cur:REGEX, tag:...=REGEX | ||||||
| 
 | 
 | ||||||
|        o CSV rules conditional blocks: if REGEX ... |        o CSV rules conditional blocks: if REGEX ... | ||||||
| 
 | 
 | ||||||
|        o account alias directives  and  options:  alias /REGEX/ = REPLACEMENT, |        o account  alias  directives  and options: alias /REGEX/ = REPLACEMENT, | ||||||
|          --alias /REGEX/=REPLACEMENT |          --alias /REGEX/=REPLACEMENT | ||||||
| 
 | 
 | ||||||
|        hledger's  regular  expressions  come  from the regex-tdfa library.  In |        hledger's regular expressions come from  the  regex-tdfa  library.   In | ||||||
|        general they: |        general they: | ||||||
| 
 | 
 | ||||||
|        o are case insensitive |        o are case insensitive | ||||||
| 
 | 
 | ||||||
|        o are infix matching (do not need  to  match  the  entire  thing  being |        o are  infix  matching  (do  not  need  to match the entire thing being | ||||||
|          matched) |          matched) | ||||||
| 
 | 
 | ||||||
|        o are POSIX extended regular expressions |        o are POSIX extended regular expressions | ||||||
| 
 | 
 | ||||||
|        o also support GNU word boundaries (\<, \>, \b, \B) |        o also support GNU word boundaries (\<, \>, \b, \B) | ||||||
| 
 | 
 | ||||||
|        o and  parenthesised  capturing  groups  and  numeric backreferences in |        o and parenthesised capturing  groups  and  numeric  backreferences  in | ||||||
|          replacement strings |          replacement strings | ||||||
| 
 | 
 | ||||||
|        o do not support mode modifiers like (?s) |        o do not support mode modifiers like (?s) | ||||||
| 
 | 
 | ||||||
|        Some things to note: |        Some things to note: | ||||||
| 
 | 
 | ||||||
|        o In the alias directive and --alias option, regular  expressions  must |        o In  the  alias directive and --alias option, regular expressions must | ||||||
|          be  enclosed  in  forward  slashes  (/REGEX/).  Elsewhere in hledger, |          be enclosed in forward  slashes  (/REGEX/).   Elsewhere  in  hledger, | ||||||
|          these are not required. |          these are not required. | ||||||
| 
 | 
 | ||||||
|        o In queries, to match a regular expression metacharacter like $  as  a |        o In  queries,  to match a regular expression metacharacter like $ as a | ||||||
|          literal  character,  prepend  a  backslash.  Eg to search for amounts |          literal character, prepend a backslash.  Eg  to  search  for  amounts | ||||||
|          with the dollar sign in hledger-web, write cur:\$. |          with the dollar sign in hledger-web, write cur:\$. | ||||||
| 
 | 
 | ||||||
|        o On the command line, some metacharacters like $ have a special  mean- |        o On  the command line, some metacharacters like $ have a special mean- | ||||||
|          ing to the shell and so must be escaped at least once more.  See Spe- |          ing to the shell and so must be escaped at least once more.  See Spe- | ||||||
|          cial characters. |          cial characters. | ||||||
| 
 | 
 | ||||||
| QUERIES | QUERIES | ||||||
|        One of hledger's strengths is being able to quickly report  on  precise |        One  of  hledger's strengths is being able to quickly report on precise | ||||||
|        subsets  of  your data.  Most commands accept an optional query expres- |        subsets of your data.  Most commands accept an optional  query  expres- | ||||||
|        sion, written as arguments after the command name, to filter  the  data |        sion,  written  as arguments after the command name, to filter the data | ||||||
|        by  date,  account  name or other criteria.  The syntax is similar to a |        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 |        web search: one or more space-separated search terms, quotes to enclose | ||||||
|        whitespace,  prefixes to match specific fields, a not: prefix to negate |        whitespace, prefixes to match specific fields, a not: prefix to  negate | ||||||
|        the match. |        the match. | ||||||
| 
 | 
 | ||||||
|        We do not yet support arbitrary boolean combinations of  search  terms; |        We  do  not yet support arbitrary boolean combinations of search terms; | ||||||
|        instead  most  commands show transactions/postings/accounts which match |        instead most commands show transactions/postings/accounts  which  match | ||||||
|        (or negatively match): |        (or negatively match): | ||||||
| 
 | 
 | ||||||
|        o any of the description terms AND |        o any of the description terms AND | ||||||
| @ -635,32 +689,32 @@ QUERIES | |||||||
| 
 | 
 | ||||||
|        o match all the other terms. |        o match all the other terms. | ||||||
| 
 | 
 | ||||||
|        The following kinds of search terms can be used.   Remember  these  can |        The  following  kinds  of search terms can be used.  Remember these can | ||||||
|        also be prefixed with not:, eg to exclude a particular subaccount. |        also be prefixed with not:, eg to exclude a particular subaccount. | ||||||
| 
 | 
 | ||||||
|        REGEX  match  account  names by this regular expression.  (No prefix is |        REGEX  match account names by this regular expression.  (No  prefix  is | ||||||
|               equivalent to acct:). |               equivalent to acct:). | ||||||
| 
 | 
 | ||||||
|        acct:REGEX |        acct:REGEX | ||||||
|               same as above |               same as above | ||||||
| 
 | 
 | ||||||
|        amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N |        amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N | ||||||
|               match postings with a single-commodity amount that is equal  to, |               match  postings with a single-commodity amount that is equal to, | ||||||
|               less  than, or greater than N.  (Multi-commodity amounts are not |               less than, or greater than N.  (Multi-commodity amounts are  not | ||||||
|               tested, and will always match.) The comparison has two modes: if |               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 |               N is preceded by a + or - sign (or is 0), the two signed numbers | ||||||
|               are compared.  Otherwise, the absolute magnitudes are  compared, |               are  compared.  Otherwise, the absolute magnitudes are compared, | ||||||
|               ignoring sign. |               ignoring sign. | ||||||
| 
 | 
 | ||||||
|        code:REGEX |        code:REGEX | ||||||
|               match by transaction code (eg check number) |               match by transaction code (eg check number) | ||||||
| 
 | 
 | ||||||
|        cur:REGEX |        cur:REGEX | ||||||
|               match  postings or transactions including any amounts whose cur- |               match postings or transactions including any amounts whose  cur- | ||||||
|               rency/commodity symbol is fully matched by REGEX.  (For  a  par- |               rency/commodity  symbol  is fully matched by REGEX.  (For a par- | ||||||
|               tial match, use .*REGEX.*).  Note, to match characters which are |               tial match, use .*REGEX.*).  Note, to match characters which are | ||||||
|               regex-significant, like the dollar sign ($), you need to prepend |               regex-significant, like the dollar sign ($), you need to prepend | ||||||
|               \.   And  when  using  the command line you need to add one more |               \.  And when using the command line you need  to  add  one  more | ||||||
|               level  of  quoting  to  hide  it  from  the  shell,  so  eg  do: |               level  of  quoting  to  hide  it  from  the  shell,  so  eg  do: | ||||||
|               hledger print cur:'\$' or hledger print cur:\\$. |               hledger print cur:'\$' or hledger print cur:\\$. | ||||||
| 
 | 
 | ||||||
| @ -669,20 +723,20 @@ QUERIES | |||||||
| 
 | 
 | ||||||
|        date:PERIODEXPR |        date:PERIODEXPR | ||||||
|               match dates within the specified period.  PERIODEXPR is a period |               match dates within the specified period.  PERIODEXPR is a period | ||||||
|               expression (with  no  report  interval).   Examples:  date:2016, |               expression  (with  no  report  interval).   Examples: date:2016, | ||||||
|               date:thismonth,   date:2000/2/1-2/15,  date:lastweek-.   If  the |               date:thismonth,  date:2000/2/1-2/15,  date:lastweek-.   If   the | ||||||
|               --date2 command line flag is  present,  this  matches  secondary |               --date2  command  line  flag  is present, this matches secondary | ||||||
|               dates instead. |               dates instead. | ||||||
| 
 | 
 | ||||||
|        date2:PERIODEXPR |        date2:PERIODEXPR | ||||||
|               match secondary dates within the specified period. |               match secondary dates within the specified period. | ||||||
| 
 | 
 | ||||||
|        depth:N |        depth:N | ||||||
|               match  (or  display,  depending on command) accounts at or above |               match (or display, depending on command) accounts  at  or  above | ||||||
|               this depth |               this depth | ||||||
| 
 | 
 | ||||||
|        note:REGEX |        note:REGEX | ||||||
|               match transaction notes (part of  description  right  of  |,  or |               match  transaction  notes  (part  of  description right of |, or | ||||||
|               whole description when there's no |) |               whole description when there's no |) | ||||||
| 
 | 
 | ||||||
|        payee:REGEX |        payee:REGEX | ||||||
| @ -696,38 +750,38 @@ QUERIES | |||||||
|               match unmarked, pending, or cleared transactions respectively |               match unmarked, pending, or cleared transactions respectively | ||||||
| 
 | 
 | ||||||
|        tag:REGEX[=REGEX] |        tag:REGEX[=REGEX] | ||||||
|               match by tag name, and optionally also by  tag  value.   Note  a |               match  by  tag  name,  and optionally also by tag value.  Note a | ||||||
|               tag:  query  is  considered to match a transaction if it matches |               tag: query is considered to match a transaction  if  it  matches | ||||||
|               any of the postings.  Also remember that  postings  inherit  the |               any  of  the  postings.  Also remember that postings inherit the | ||||||
|               tags of their parent transaction. |               tags of their parent transaction. | ||||||
| 
 | 
 | ||||||
|        The following special search term is used automatically in hledger-web, |        The following special search term is used automatically in hledger-web, | ||||||
|        only: |        only: | ||||||
| 
 | 
 | ||||||
|        inacct:ACCTNAME |        inacct:ACCTNAME | ||||||
|               tells hledger-web to show  the  transaction  register  for  this |               tells  hledger-web  to  show  the  transaction register for this | ||||||
|               account.  Can be filtered further with acct etc. |               account.  Can be filtered further with acct etc. | ||||||
| 
 | 
 | ||||||
|        Some of these can also be expressed as command-line options (eg depth:2 |        Some of these can also be expressed as command-line options (eg depth:2 | ||||||
|        is equivalent to --depth 2).  Generally you can mix options  and  query |        is  equivalent  to --depth 2).  Generally you can mix options and query | ||||||
|        arguments,  and the resulting query will be their intersection (perhaps |        arguments, and the resulting query will be their intersection  (perhaps | ||||||
|        excluding the -p/--period option). |        excluding the -p/--period option). | ||||||
| 
 | 
 | ||||||
| COMMANDS | COMMANDS | ||||||
|        hledger provides a number of subcommands;  hledger  with  no  arguments |        hledger  provides  a  number  of subcommands; hledger with no arguments | ||||||
|        shows a list. |        shows a list. | ||||||
| 
 | 
 | ||||||
|        If you install additional hledger-* packages, or if you put programs or |        If you install additional hledger-* packages, or if you put programs or | ||||||
|        scripts named hledger-NAME in your PATH, these will also be  listed  as |        scripts  named  hledger-NAME in your PATH, these will also be listed as | ||||||
|        subcommands. |        subcommands. | ||||||
| 
 | 
 | ||||||
|        Run   a   subcommand   by  writing  its  name  as  first  argument  (eg |        Run  a  subcommand  by  writing  its  name  as   first   argument   (eg | ||||||
|        hledger incomestatement).  You can also write one of the standard short |        hledger incomestatement).  You can also write one of the standard short | ||||||
|        aliases  displayed  in  parentheses in the command list (hledger b), or |        aliases displayed in parentheses in the command  list  (hledger b),  or | ||||||
|        any any unambiguous prefix of a command name (hledger inc). |        any any unambiguous prefix of a command name (hledger inc). | ||||||
| 
 | 
 | ||||||
|        Here are all the builtin commands  in  alphabetical  order.   See  also |        Here  are  all  the  builtin  commands in alphabetical order.  See also | ||||||
|        hledger  for  a  more  organised  command  list, and hledger CMD -h for |        hledger for a more  organised  command  list,  and  hledger CMD -h  for | ||||||
|        detailed command help. |        detailed command help. | ||||||
| 
 | 
 | ||||||
|    accounts |    accounts | ||||||
| @ -740,14 +794,14 @@ COMMANDS | |||||||
|        --drop=N |        --drop=N | ||||||
|               in flat mode: omit N leading account name parts |               in flat mode: omit N leading account name parts | ||||||
| 
 | 
 | ||||||
|        This command lists all account names that  are  in  use  (ie,  all  the |        This  command  lists  all  account  names  that are in use (ie, all the | ||||||
|        accounts  which  have  at least one transaction posting to them).  With |        accounts which have at least one transaction posting  to  them).   With | ||||||
|        query arguments, only matched account names are shown. |        query arguments, only matched account names are shown. | ||||||
| 
 | 
 | ||||||
|        It shows a flat list by default.  With --tree, it uses  indentation  to |        It  shows  a flat list by default.  With --tree, it uses indentation to | ||||||
|        show the account hierarchy. |        show the account hierarchy. | ||||||
| 
 | 
 | ||||||
|        In  flat  mode  you can add --drop N to omit the first few account name |        In flat mode you can add --drop N to omit the first  few  account  name | ||||||
|        components. |        components. | ||||||
| 
 | 
 | ||||||
|        Examples: |        Examples: | ||||||
| @ -790,8 +844,8 @@ COMMANDS | |||||||
|    activity |    activity | ||||||
|        Show an ascii barchart of posting counts per interval. |        Show an ascii barchart of posting counts per interval. | ||||||
| 
 | 
 | ||||||
|        The activity command displays an ascii  histogram  showing  transaction |        The  activity  command  displays an ascii histogram showing transaction | ||||||
|        counts  by  day, week, month or other reporting interval (by day is the |        counts by day, week, month or other reporting interval (by day  is  the | ||||||
|        default).  With query arguments, it counts only matched transactions. |        default).  With query arguments, it counts only matched transactions. | ||||||
| 
 | 
 | ||||||
|               $ hledger activity --quarterly |               $ hledger activity --quarterly | ||||||
| @ -804,24 +858,24 @@ COMMANDS | |||||||
|        Prompt for transactions and add them to the journal. |        Prompt for transactions and add them to the journal. | ||||||
| 
 | 
 | ||||||
|        --no-new-accounts |        --no-new-accounts | ||||||
|               don't allow creating new  accounts;  helps  prevent  typos  when |               don't  allow  creating  new  accounts;  helps prevent typos when | ||||||
|               entering account names |               entering account names | ||||||
| 
 | 
 | ||||||
|        Many  hledger users edit their journals directly with a text editor, or |        Many hledger users edit their journals directly with a text editor,  or | ||||||
|        generate them from CSV.  For more interactive data entry, there is  the |        generate  them from CSV.  For more interactive data entry, there is the | ||||||
|        add  command, which prompts interactively on the console for new trans- |        add command, which prompts interactively on the console for new  trans- | ||||||
|        actions, and appends them to the journal file (if  there  are  multiple |        actions,  and  appends  them to the journal file (if there are multiple | ||||||
|        -f FILE options, the first file is used.) Existing transactions are not |        -f FILE options, the first file is used.) Existing transactions are not | ||||||
|        changed.  This is the only hledger command that writes to  the  journal |        changed.   This  is the only hledger command that writes to the journal | ||||||
|        file. |        file. | ||||||
| 
 | 
 | ||||||
|        To use it, just run hledger add and follow the prompts.  You can add as |        To use it, just run hledger add and follow the prompts.  You can add as | ||||||
|        many transactions as you like; when you are finished, enter . or  press |        many  transactions as you like; when you are finished, enter . or press | ||||||
|        control-d or control-c to exit. |        control-d or control-c to exit. | ||||||
| 
 | 
 | ||||||
|        Features: |        Features: | ||||||
| 
 | 
 | ||||||
|        o add  tries  to provide useful defaults, using the most similar recent |        o add tries to provide useful defaults, using the most  similar  recent | ||||||
|          transaction (by description) as a template. |          transaction (by description) as a template. | ||||||
| 
 | 
 | ||||||
|        o You can also set the initial defaults with command line arguments. |        o You can also set the initial defaults with command line arguments. | ||||||
| @ -829,20 +883,20 @@ COMMANDS | |||||||
|        o Readline-style edit keys can be used during data entry. |        o Readline-style edit keys can be used during data entry. | ||||||
| 
 | 
 | ||||||
|        o The tab key will auto-complete whenever possible - accounts, descrip- |        o The tab key will auto-complete whenever possible - accounts, descrip- | ||||||
|          tions,  dates  (yesterday,  today,  tomorrow).   If the input area is |          tions, dates (yesterday, today, tomorrow).   If  the  input  area  is | ||||||
|          empty, it will insert the default value. |          empty, it will insert the default value. | ||||||
| 
 | 
 | ||||||
|        o If the journal defines a default commodity, it will be added  to  any |        o If  the  journal defines a default commodity, it will be added to any | ||||||
|          bare numbers entered. |          bare numbers entered. | ||||||
| 
 | 
 | ||||||
|        o A parenthesised transaction code may be entered following a date. |        o A parenthesised transaction code may be entered following a date. | ||||||
| 
 | 
 | ||||||
|        o Comments and tags may be entered following a description or amount. |        o Comments and tags may be entered following a description or amount. | ||||||
| 
 | 
 | ||||||
|        o If  you make a mistake, enter < at any prompt to restart the transac- |        o If you make a mistake, enter < at any prompt to restart the  transac- | ||||||
|          tion. |          tion. | ||||||
| 
 | 
 | ||||||
|        o Input prompts are displayed in a different colour when  the  terminal |        o Input  prompts  are displayed in a different colour when the terminal | ||||||
|          supports it. |          supports it. | ||||||
| 
 | 
 | ||||||
|        Example (see the tutorial for a detailed explanation): |        Example (see the tutorial for a detailed explanation): | ||||||
| @ -879,7 +933,7 @@ COMMANDS | |||||||
|               show balance change in each period (default) |               show balance change in each period (default) | ||||||
| 
 | 
 | ||||||
|        --cumulative |        --cumulative | ||||||
|               show  balance  change accumulated across periods (in multicolumn |               show balance change accumulated across periods  (in  multicolumn | ||||||
|               reports) |               reports) | ||||||
| 
 | 
 | ||||||
|        -H --historical |        -H --historical | ||||||
| @ -914,17 +968,17 @@ COMMANDS | |||||||
|               select the output format.  Supported formats: txt, csv. |               select the output format.  Supported formats: txt, csv. | ||||||
| 
 | 
 | ||||||
|        -o FILE --output-file=FILE |        -o FILE --output-file=FILE | ||||||
|               write  output  to  FILE.   A  file extension matching one of the |               write output to FILE.  A file  extension  matching  one  of  the | ||||||
|               above formats selects that format. |               above formats selects that format. | ||||||
| 
 | 
 | ||||||
|        --pretty-tables |        --pretty-tables | ||||||
|               Use unicode to display prettier tables. |               Use unicode to display prettier tables. | ||||||
| 
 | 
 | ||||||
|        --sort-amount |        --sort-amount | ||||||
|               Sort by amount (total row amount, or by average if that is  dis- |               Sort  by amount (total row amount, or by average if that is dis- | ||||||
|               played), instead of account name (in flat mode) |               played), instead of account name (in flat mode) | ||||||
| 
 | 
 | ||||||
|        The  balance  command  displays accounts and balances.  It is hledger's |        The balance command displays accounts and balances.   It  is  hledger's | ||||||
|        most featureful and versatile command. |        most featureful and versatile command. | ||||||
| 
 | 
 | ||||||
|               $ hledger balance |               $ hledger balance | ||||||
| @ -941,25 +995,25 @@ COMMANDS | |||||||
|               -------------------- |               -------------------- | ||||||
|                                  0 |                                  0 | ||||||
| 
 | 
 | ||||||
|        More precisely, the balance command shows the change to each  account's |        More  precisely, the balance command shows the change to each account's | ||||||
|        balance caused by all (matched) postings.  In the common case where you |        balance caused by all (matched) postings.  In the common case where you | ||||||
|        do not filter by date and your journal sets the  correct  opening  bal- |        do  not  filter  by date and your journal sets the correct opening bal- | ||||||
|        ances, this is the same as the account's ending balance. |        ances, this is the same as the account's ending balance. | ||||||
| 
 | 
 | ||||||
|        By  default,  accounts  are  displayed hierarchically, with subaccounts |        By default, accounts are  displayed  hierarchically,  with  subaccounts | ||||||
|        indented below their parent.  "Boring" accounts, which contain a single |        indented below their parent.  "Boring" accounts, which contain a single | ||||||
|        interesting subaccount and no balance of their own, are elided into the |        interesting subaccount and no balance of their own, are elided into the | ||||||
|        following line for more compact output.   (Use  --no-elide  to  prevent |        following  line  for  more  compact output.  (Use --no-elide to prevent | ||||||
|        this.   Eliding  of boring accounts is not yet supported in multicolumn |        this.  Eliding of boring accounts is not yet supported  in  multicolumn | ||||||
|        reports.) |        reports.) | ||||||
| 
 | 
 | ||||||
|        Each account's balance is the "inclusive" balance  -  it  includes  the |        Each  account's  balance  is  the "inclusive" balance - it includes the | ||||||
|        balances of any subaccounts. |        balances of any subaccounts. | ||||||
| 
 | 
 | ||||||
|        Accounts  which  have  zero  balance  (and no non-zero subaccounts) are |        Accounts which have zero balance  (and  no  non-zero  subaccounts)  are | ||||||
|        omitted.  Use -E/--empty to show them. |        omitted.  Use -E/--empty to show them. | ||||||
| 
 | 
 | ||||||
|        A final total is displayed by default; use  -N/--no-total  to  suppress |        A  final  total  is displayed by default; use -N/--no-total to suppress | ||||||
|        it: |        it: | ||||||
| 
 | 
 | ||||||
|               $ hledger balance -p 2008/6 expenses --no-total |               $ hledger balance -p 2008/6 expenses --no-total | ||||||
| @ -969,9 +1023,9 @@ COMMANDS | |||||||
| 
 | 
 | ||||||
|    Flat mode |    Flat mode | ||||||
|        To see a flat list of full account names instead of the default hierar- |        To see a flat list of full account names instead of the default hierar- | ||||||
|        chical  display,  use  --flat.   In   this   mode,   accounts   (unless |        chical   display,   use   --flat.    In  this  mode,  accounts  (unless | ||||||
|        depth-clipped) show their "exclusive" balance, excluding any subaccount |        depth-clipped) show their "exclusive" balance, excluding any subaccount | ||||||
|        balances.  In this mode, you can also use --drop N to  omit  the  first |        balances.   In  this  mode, you can also use --drop N to omit the first | ||||||
|        few account name components. |        few account name components. | ||||||
| 
 | 
 | ||||||
|               $ hledger balance -p 2008/6 expenses -N --flat --drop 1 |               $ hledger balance -p 2008/6 expenses -N --flat --drop 1 | ||||||
| @ -979,9 +1033,9 @@ COMMANDS | |||||||
|                                 $1  supplies |                                 $1  supplies | ||||||
| 
 | 
 | ||||||
|    Depth limited balance reports |    Depth limited balance reports | ||||||
|        With  --depth N,  balance  shows  accounts only to the specified depth. |        With --depth N, balance shows accounts only  to  the  specified  depth. | ||||||
|        This is very useful to show  a  complex  charts  of  accounts  in  less |        This  is  very  useful  to  show  a  complex charts of accounts in less | ||||||
|        detail.   In  flat  mode,  balances from accounts below the depth limit |        detail.  In flat mode, balances from accounts  below  the  depth  limit | ||||||
|        will be shown as part of a parent account at the depth limit. |        will be shown as part of a parent account at the depth limit. | ||||||
| 
 | 
 | ||||||
|               $ hledger balance -N --depth 1 |               $ hledger balance -N --depth 1 | ||||||
| @ -991,12 +1045,12 @@ COMMANDS | |||||||
|                                 $1  liabilities |                                 $1  liabilities | ||||||
| 
 | 
 | ||||||
|    Multicolumn balance reports |    Multicolumn balance reports | ||||||
|        With a reporting interval, multiple balance columns will be shown,  one |        With  a reporting interval, multiple balance columns will be shown, one | ||||||
|        for  each report period.  There are three types of multi-column balance |        for each report period.  There are three types of multi-column  balance | ||||||
|        report, showing different information: |        report, showing different information: | ||||||
| 
 | 
 | ||||||
|        1. By default: each column shows the sum of postings in that period, ie |        1. By default: each column shows the sum of postings in that period, ie | ||||||
|           the  account's  change of balance in that period.  This is useful eg |           the account's change of balance in that period.  This is  useful  eg | ||||||
|           for a monthly income statement: |           for a monthly income statement: | ||||||
| 
 | 
 | ||||||
|                   $ hledger balance --quarterly income expenses -E |                   $ hledger balance --quarterly income expenses -E | ||||||
| @ -1011,8 +1065,8 @@ COMMANDS | |||||||
|                   -------------------++--------------------------------- |                   -------------------++--------------------------------- | ||||||
|                                      ||     $-1      $1       0       0 |                                      ||     $-1      $1       0       0 | ||||||
| 
 | 
 | ||||||
|        2. With --cumulative: each column shows the  ending  balance  for  that |        2. With  --cumulative:  each  column  shows the ending balance for that | ||||||
|           period,  accumulating the changes across periods, starting from 0 at |           period, accumulating the changes across periods, starting from 0  at | ||||||
|           the report start date: |           the report start date: | ||||||
| 
 | 
 | ||||||
|                   $ hledger balance --quarterly income expenses -E --cumulative |                   $ hledger balance --quarterly income expenses -E --cumulative | ||||||
| @ -1028,8 +1082,8 @@ COMMANDS | |||||||
|                                      ||         $-1           0           0           0 |                                      ||         $-1           0           0           0 | ||||||
| 
 | 
 | ||||||
|        3. With --historical/-H: each column shows the actual historical ending |        3. With --historical/-H: each column shows the actual historical ending | ||||||
|           balance  for  that  period, accumulating the changes across periods, |           balance for that period, accumulating the  changes  across  periods, | ||||||
|           starting from the actual balance at the report start date.  This  is |           starting  from the actual balance at the report start date.  This is | ||||||
|           useful eg for a multi-period balance sheet, and when you are showing |           useful eg for a multi-period balance sheet, and when you are showing | ||||||
|           only the data after a certain start date: |           only the data after a certain start date: | ||||||
| 
 | 
 | ||||||
| @ -1045,26 +1099,26 @@ COMMANDS | |||||||
|                   ----------------------++------------------------------------- |                   ----------------------++------------------------------------- | ||||||
|                                         ||           0           0           0 |                                         ||           0           0           0 | ||||||
| 
 | 
 | ||||||
|        Multi-column balance reports display accounts in flat mode by  default; |        Multi-column  balance reports display accounts in flat mode by default; | ||||||
|        to see the hierarchy, use --tree. |        to see the hierarchy, use --tree. | ||||||
| 
 | 
 | ||||||
|        With   a  reporting  interval  (like  --quarterly  above),  the  report |        With  a  reporting  interval  (like  --quarterly  above),  the   report | ||||||
|        start/end dates will be adjusted if necessary so  that  they  encompass |        start/end  dates  will  be adjusted if necessary so that they encompass | ||||||
|        the displayed report periods.  This is so that the first and last peri- |        the displayed report periods.  This is so that the first and last peri- | ||||||
|        ods will be "full" and comparable to the others. |        ods will be "full" and comparable to the others. | ||||||
| 
 | 
 | ||||||
|        The -E/--empty flag does two things  in  multicolumn  balance  reports: |        The  -E/--empty  flag  does  two things in multicolumn balance reports: | ||||||
|        first,  the  report  will  show all columns within the specified report |        first, the report will show all columns  within  the  specified  report | ||||||
|        period (without -E, leading and trailing columns with  all  zeroes  are |        period  (without  -E,  leading and trailing columns with all zeroes are | ||||||
|        not  shown).   Second,  all  accounts which existed at the report start |        not shown).  Second, all accounts which existed  at  the  report  start | ||||||
|        date will be considered, not just the ones  with  activity  during  the |        date  will  be  considered,  not just the ones with activity during the | ||||||
|        report period (use -E to include low-activity accounts which would oth- |        report period (use -E to include low-activity accounts which would oth- | ||||||
|        erwise would be omitted). |        erwise would be omitted). | ||||||
| 
 | 
 | ||||||
|        The -T/--row-total flag adds an additional column showing the total for |        The -T/--row-total flag adds an additional column showing the total for | ||||||
|        each row. |        each row. | ||||||
| 
 | 
 | ||||||
|        The  -A/--average  flag adds a column showing the average value in each |        The -A/--average flag adds a column showing the average value  in  each | ||||||
|        row. |        row. | ||||||
| 
 | 
 | ||||||
|        Here's an example of all three: |        Here's an example of all three: | ||||||
| @ -1086,7 +1140,7 @@ 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 | ||||||
| 
 | 
 | ||||||
|    Custom balance output |    Custom balance output | ||||||
|        In simple (non-multi-column) balance reports,  you  can  customise  the |        In  simple  (non-multi-column)  balance  reports, you can customise the | ||||||
|        output with --format FMT: |        output with --format FMT: | ||||||
| 
 | 
 | ||||||
|               $ hledger balance --format "%20(account) %12(total)" |               $ hledger balance --format "%20(account) %12(total)" | ||||||
| @ -1104,7 +1158,7 @@ COMMANDS | |||||||
|                                               0 |                                               0 | ||||||
| 
 | 
 | ||||||
|        The FMT format string (plus a newline) specifies the formatting applied |        The FMT format string (plus a newline) specifies the formatting applied | ||||||
|        to each account/balance pair.  It may contain any suitable  text,  with |        to  each  account/balance pair.  It may contain any suitable text, with | ||||||
|        data fields interpolated like so: |        data fields interpolated like so: | ||||||
| 
 | 
 | ||||||
|        %[MIN][.MAX](FIELDNAME) |        %[MIN][.MAX](FIELDNAME) | ||||||
| @ -1115,14 +1169,14 @@ COMMANDS | |||||||
| 
 | 
 | ||||||
|        o FIELDNAME must be enclosed in parentheses, and can be one of: |        o FIELDNAME must be enclosed in parentheses, and can be one of: | ||||||
| 
 | 
 | ||||||
|          o depth_spacer  - a number of spaces equal to the account's depth, or |          o depth_spacer - a number of spaces equal to the account's depth,  or | ||||||
|            if MIN is specified, MIN * depth spaces. |            if MIN is specified, MIN * depth spaces. | ||||||
| 
 | 
 | ||||||
|          o account - the account's name |          o account - the account's name | ||||||
| 
 | 
 | ||||||
|          o total - the account's balance/posted total, right justified |          o total - the account's balance/posted total, right justified | ||||||
| 
 | 
 | ||||||
|        Also, FMT can begin with an optional prefix to control  how  multi-com- |        Also,  FMT  can begin with an optional prefix to control how multi-com- | ||||||
|        modity amounts are rendered: |        modity amounts are rendered: | ||||||
| 
 | 
 | ||||||
|        o %_ - render on multiple lines, bottom-aligned (the default) |        o %_ - render on multiple lines, bottom-aligned (the default) | ||||||
| @ -1131,7 +1185,7 @@ COMMANDS | |||||||
| 
 | 
 | ||||||
|        o %, - render on one line, comma-separated |        o %, - render on one line, comma-separated | ||||||
| 
 | 
 | ||||||
|        There  are  some  quirks.   Eg in one-line mode, %(depth_spacer) has no |        There are some quirks.  Eg in one-line  mode,  %(depth_spacer)  has  no | ||||||
|        effect, instead %(account) has indentation built in. |        effect, instead %(account) has indentation built in. | ||||||
|         Experimentation may be needed to get pleasing results. |         Experimentation may be needed to get pleasing results. | ||||||
| 
 | 
 | ||||||
| @ -1139,14 +1193,14 @@ COMMANDS | |||||||
| 
 | 
 | ||||||
|        o %(total) - the account's total |        o %(total) - the account's total | ||||||
| 
 | 
 | ||||||
|        o %-20.20(account) - the account's name, left justified, padded  to  20 |        o %-20.20(account)  -  the account's name, left justified, padded to 20 | ||||||
|          characters and clipped at 20 characters |          characters and clipped at 20 characters | ||||||
| 
 | 
 | ||||||
|        o %,%-50(account)  %25(total)  -  account name padded to 50 characters, |        o %,%-50(account)  %25(total) - account name padded to  50  characters, | ||||||
|          total padded to 20 characters, with multiple commodities rendered  on |          total  padded to 20 characters, with multiple commodities rendered on | ||||||
|          one line |          one line | ||||||
| 
 | 
 | ||||||
|        o %20(total)  %2(depth_spacer)%-(account)  - the default format for the |        o %20(total)  %2(depth_spacer)%-(account) - the default format for  the | ||||||
|          single-column balance report |          single-column balance report | ||||||
| 
 | 
 | ||||||
|    Colour support |    Colour support | ||||||
| @ -1157,8 +1211,8 @@ COMMANDS | |||||||
|        o the output is not being redirected or piped anywhere |        o the output is not being redirected or piped anywhere | ||||||
| 
 | 
 | ||||||
|    Output destination |    Output destination | ||||||
|        The balance, print, register and stats commands can write their  output |        The  balance, print, register and stats commands can write their output | ||||||
|        to  a  destination  other  than the console.  This is controlled by the |        to a destination other than the console.  This  is  controlled  by  the | ||||||
|        -o/--output-file option. |        -o/--output-file option. | ||||||
| 
 | 
 | ||||||
|               $ hledger balance -o -     # write to stdout (the default) |               $ hledger balance -o -     # write to stdout (the default) | ||||||
| @ -1166,8 +1220,8 @@ COMMANDS | |||||||
| 
 | 
 | ||||||
|    CSV output |    CSV output | ||||||
|        The balance, print and register commands can write their output as CSV. |        The balance, print and register commands can write their output as CSV. | ||||||
|        This  is  useful  for  exporting data to other applications, eg to make |        This is useful for exporting data to other  applications,  eg  to  make | ||||||
|        charts in a spreadsheet.  This is controlled by the  -O/--output-format |        charts  in a spreadsheet.  This is controlled by the -O/--output-format | ||||||
|        option, or by specifying a .csv file extension with -o/--output-file. |        option, or by specifying a .csv file extension with -o/--output-file. | ||||||
| 
 | 
 | ||||||
|               $ hledger balance -O csv       # write CSV to stdout |               $ hledger balance -O csv       # write CSV to stdout | ||||||
| @ -1181,7 +1235,7 @@ COMMANDS | |||||||
|               balances |               balances | ||||||
| 
 | 
 | ||||||
|        --cumulative |        --cumulative | ||||||
|               show balance change accumulated across periods  (in  multicolumn |               show  balance  change accumulated across periods (in multicolumn | ||||||
|               reports), instead of historical ending balances |               reports), instead of historical ending balances | ||||||
| 
 | 
 | ||||||
|        -H --historical |        -H --historical | ||||||
| @ -1215,8 +1269,8 @@ COMMANDS | |||||||
|        --sort-amount |        --sort-amount | ||||||
|               sort by amount instead of account name |               sort by amount instead of account name | ||||||
| 
 | 
 | ||||||
|        This command displays a simple balance  sheet.   It  currently  assumes |        This  command  displays  a  simple balance sheet.  It currently assumes | ||||||
|        that  you  have  top-level  accounts  named asset and liability (plural |        that you have top-level accounts  named  asset  and  liability  (plural | ||||||
|        forms also allowed.) |        forms also allowed.) | ||||||
| 
 | 
 | ||||||
|               $ hledger balancesheet |               $ hledger balancesheet | ||||||
| @ -1239,19 +1293,19 @@ COMMANDS | |||||||
|                                  0 |                                  0 | ||||||
| 
 | 
 | ||||||
|        With a reporting interval, multiple columns will be shown, one for each |        With a reporting interval, multiple columns will be shown, one for each | ||||||
|        report  period.  As with multicolumn balance reports, you can alter the |        report period.  As with multicolumn balance reports, you can alter  the | ||||||
|        report mode  with  --change/--cumulative/--historical.   Normally  bal- |        report  mode  with  --change/--cumulative/--historical.   Normally bal- | ||||||
|        ancesheet  shows historical ending balances, which is what you need for |        ancesheet shows historical ending balances, which is what you need  for | ||||||
|        a balance sheet; note this means it ignores report begin dates. |        a balance sheet; note this means it ignores report begin dates. | ||||||
| 
 | 
 | ||||||
|    balancesheetequity |    balancesheetequity | ||||||
|        Show a balance sheet including equity.  Alias: bse. |        Show a balance sheet including equity.  Alias: bse. | ||||||
| 
 | 
 | ||||||
|        Other than showing the equity accounts, this  command  is  exactly  the |        Other  than  showing  the  equity accounts, this command is exactly the | ||||||
|        same as the command balancesheet.  Please refer to it for the available |        same as the command balancesheet.  Please refer to it for the available | ||||||
|        options. |        options. | ||||||
| 
 | 
 | ||||||
|        This command displays a balancesheet.  It currently  assumes  that  you |        This  command  displays  a balancesheet.  It currently assumes that you | ||||||
|        have top-level accounts named asset, liability and equity (plural forms |        have top-level accounts named asset, liability and equity (plural forms | ||||||
|        also allowed.) |        also allowed.) | ||||||
| 
 | 
 | ||||||
| @ -1286,7 +1340,7 @@ COMMANDS | |||||||
|               show balance change in each period (default) |               show balance change in each period (default) | ||||||
| 
 | 
 | ||||||
|        --cumulative |        --cumulative | ||||||
|               show balance change accumulated across periods  (in  multicolumn |               show  balance  change accumulated across periods (in multicolumn | ||||||
|               reports), instead of changes during periods |               reports), instead of changes during periods | ||||||
| 
 | 
 | ||||||
|        -H --historical |        -H --historical | ||||||
| @ -1390,7 +1444,7 @@ COMMANDS | |||||||
|               ... |               ... | ||||||
| 
 | 
 | ||||||
|    import |    import | ||||||
|        Read  new  transactions added to each FILE since last run, and add them |        Read new transactions added to each FILE since last run, and  add  them | ||||||
|        to the main journal file. |        to the main journal file. | ||||||
| 
 | 
 | ||||||
|        --dry-run |        --dry-run | ||||||
| @ -1404,7 +1458,7 @@ COMMANDS | |||||||
|        ing transactions are always added to the input files in increasing date |        ing transactions are always added to the input files in increasing date | ||||||
|        order, and by saving .latest.FILE state files. |        order, and by saving .latest.FILE state files. | ||||||
| 
 | 
 | ||||||
|        The --dry-run output is in journal format, so you can filter it, eg  to |        The  --dry-run output is in journal format, so you can filter it, eg to | ||||||
|        see only uncategorised transactions: |        see only uncategorised transactions: | ||||||
| 
 | 
 | ||||||
|               $ hledger import --dry ... | hledger -f- print unknown --ignore-assertions |               $ hledger import --dry ... | hledger -f- print unknown --ignore-assertions | ||||||
| @ -1416,7 +1470,7 @@ COMMANDS | |||||||
|               show balance change in each period (default) |               show balance change in each period (default) | ||||||
| 
 | 
 | ||||||
|        --cumulative |        --cumulative | ||||||
|               show  balance  change accumulated across periods (in multicolumn |               show balance change accumulated across periods  (in  multicolumn | ||||||
|               reports), instead of changes during periods |               reports), instead of changes during periods | ||||||
| 
 | 
 | ||||||
|        -H --historical |        -H --historical | ||||||
| @ -1896,16 +1950,16 @@ TROUBLESHOOTING | |||||||
|        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. | ||||||
| 
 | 
 | ||||||
|        "Illegal byte sequence" or "Invalid or  incomplete  multibyte  or  wide |        "Illegal  byte  sequence"  or  "Invalid or incomplete multibyte or wide | ||||||
|        character" errors |        character" errors | ||||||
|        In order to handle non-ascii letters and symbols (like ), hledger needs |        In order to handle non-ascii letters and symbols (like ), hledger needs | ||||||
|        an appropriate locale.  This is usually configured system-wide; you can |        an appropriate locale.  This is usually configured system-wide; you can | ||||||
|        also configure it temporarily.  The locale may need to be one that sup- |        also configure it temporarily.  The locale may need to be one that sup- | ||||||
|        ports UTF-8, if you built hledger with GHC < 7.2 (or  possibly  always, |        ports  UTF-8,  if you built hledger with GHC < 7.2 (or possibly always, | ||||||
|        I'm not sure yet). |        I'm not sure yet). | ||||||
| 
 | 
 | ||||||
|        Here's  an  example  of  setting  the  locale  temporarily,  on  ubuntu |        Here's  an  example  of  setting  the  locale  temporarily,  on  ubuntu | ||||||
| @ -1924,7 +1978,7 @@ TROUBLESHOOTING | |||||||
|               $ echo "export LANG=en_US.UTF-8" >>~/.bash_profile |               $ echo "export LANG=en_US.UTF-8" >>~/.bash_profile | ||||||
|               $ bash --login |               $ bash --login | ||||||
| 
 | 
 | ||||||
|        If we preferred to use eg fr_FR.utf8, we might  have  to  install  that |        If  we  preferred  to  use eg fr_FR.utf8, we might have to install that | ||||||
|        first: |        first: | ||||||
| 
 | 
 | ||||||
|               $ apt-get install language-pack-fr |               $ apt-get install language-pack-fr | ||||||
| @ -1945,7 +1999,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) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -1959,7 +2013,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) | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user