config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

ledger-mode.info (68938B)


      1 This is ledger-mode.info, produced by makeinfo version 6.7 from
      2 ledger-mode.texi.
      3 
      4 Copyright © 2013, Craig Earls.  All rights reserved.
      5 
      6    Redistribution and use in source and binary forms, with or without
      7 modification, are permitted provided that the following conditions are
      8 met:
      9 
     10    • Redistributions of source code must retain the above copyright
     11      notice, this list of conditions and the following disclaimer.
     12 
     13    • Redistributions in binary form must reproduce the above copyright
     14      notice, this list of conditions and the following disclaimer in the
     15      documentation and/or other materials provided with the
     16      distribution.
     17 
     18    • Neither the name of New Artisans LLC nor the names of its
     19      contributors may be used to endorse or promote products derived
     20      from this software without specific prior written permission.
     21 
     22    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     23 “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     24 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
     25 PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
     26 OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
     27 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
     28 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
     29 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
     30 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
     31 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     32 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     33 
     34 INFO-DIR-SECTION Emacs
     35 START-INFO-DIR-ENTRY
     36 * Ledger Mode: (ledger-mode).           Command-Line Accounting
     37 END-INFO-DIR-ENTRY
     38 
     39 
     40 File: ledger-mode.info,  Node: Top,  Next: Introduction to Ledger-mode,  Prev: (dir),  Up: (dir)
     41 
     42 Overview
     43 ********
     44 
     45 Ledger is a command line accounting tool that provides double-entry
     46 accounting based on a text journal.  It provides no bells or whistles,
     47 and returns the user to the days before user interfaces were even a
     48 twinkling in their father’s CRT.
     49 
     50    Ledger-mode assists you in maintaining input files for Ledger,
     51 running reports and much more...
     52 
     53 * Menu:
     54 
     55 * Introduction to Ledger-mode::
     56 * The Ledger Buffer::
     57 * The Reconcile Buffer::
     58 * The Report Buffer::
     59 * Scheduling Transactions::
     60 * Customizing Ledger-mode::
     61 * Generating Ledger Regression Tests::
     62 * Embedding Example results in Ledger Documentation::
     63 * Hacking Ledger-mode::
     64 * Concept Index::
     65 * Command & Variable Index::
     66 * Keystroke Index::
     67 
     68 
     69 File: ledger-mode.info,  Node: Introduction to Ledger-mode,  Next: The Ledger Buffer,  Prev: Top,  Up: Top
     70 
     71 1 Introduction to Ledger-mode
     72 *****************************
     73 
     74 * Menu:
     75 
     76 * Quick Installation::
     77 * Menus::
     78 * Quick Demo::
     79 
     80 
     81 File: ledger-mode.info,  Node: Quick Installation,  Next: Menus,  Prev: Introduction to Ledger-mode,  Up: Introduction to Ledger-mode
     82 
     83 1.1 Quick Installation
     84 ======================
     85 
     86 The Emacs lisp source for Ledger-mode is included with the source
     87 distribution of Ledger.  It is entirely included in the ‘lisp’
     88 subdirectory.  To use Ledger-mode, include the following in your Emacs
     89 initialization file (‘~/.emacs’, ‘~/.emacs.d/init.el’, or
     90 ‘~/.Aquamacs/Preferences.el’).
     91 
     92      (autoload 'ledger-mode "ledger-mode" "A major mode for Ledger" t)
     93      (add-to-list 'load-path
     94                   (expand-file-name "/path/to/ledger/source/lisp/"))
     95      (add-to-list 'auto-mode-alist '("\\.ledger$" . ledger-mode))
     96 
     97    This sets up Emacs to automatically recognize files that end with
     98 ‘.ledger’ and start Ledger-mode.  Nothing else should be required as
     99 long as the ledger command line utility is properly installed.
    100 
    101 
    102 File: ledger-mode.info,  Node: Menus,  Next: Quick Demo,  Prev: Quick Installation,  Up: Introduction to Ledger-mode
    103 
    104 1.2 Menus
    105 =========
    106 
    107 The vast majority of Ledger-mode functionality is available from the
    108 Emacs menu system.  The keystrokes are shown in the menu to help you
    109 learn the faster keyboard methods.
    110 
    111 
    112 File: ledger-mode.info,  Node: Quick Demo,  Prev: Menus,  Up: Introduction to Ledger-mode
    113 
    114 1.3 Quick Demo
    115 ==============
    116 
    117 Load the demo file ‘demo.ledger’ from the Ledger source ‘test/input’
    118 directory.  The ledger will be loaded and font highlighted.  At this
    119 point you could manually edit transactions and run Ledger from a
    120 convenient command line.
    121 
    122 * Menu:
    123 
    124 * Quick Add::
    125 * Reconciliation::
    126 * Reports::
    127 * Narrowing::
    128 
    129 
    130 File: ledger-mode.info,  Node: Quick Add,  Next: Reconciliation,  Prev: Quick Demo,  Up: Quick Demo
    131 
    132 1.3.1 Quick Add
    133 ---------------
    134 
    135 As simple as the Ledger transaction format is, it can still be daunting
    136 to add many transactions manually.  Ledger provides two ways to add
    137 transactions with minimal typing.  Both are based on the idea that most
    138 transactions are repetitions of earlier transactions.
    139 
    140    In the ‘demo.ledger’ buffer enter a date using the correct format.
    141 Then type the first few characters of another payee in the ‘demo.ledger’
    142 buffer.  Type ‘C-c TAB’.  Ledger-mode will search for a Payee that has
    143 the same beginning and copy the rest of the transaction to you new
    144 entry.
    145 
    146    Additionally you can use the ledger ‘xact’ command, by either typing
    147 ‘C-c C-a’ or using ‘Add Transaction’ menu entry.  Then typing a close
    148 match to the payee.  Ledger-mode will call ‘ledger xact’ with the data
    149 you enter and place the transaction in the proper chronological place in
    150 the ledger.  The date format can be changed by modifying
    151 ‘ledger-default-date-format’.
    152 
    153 
    154 File: ledger-mode.info,  Node: Reconciliation,  Next: Reports,  Prev: Quick Add,  Up: Quick Demo
    155 
    156 1.3.2 Reconciliation
    157 --------------------
    158 
    159 The biggest task of maintaining a ledger is ensuring that it matches the
    160 outside world.  This process is called reconciliation (*note Basics of
    161 Reconciliation::) and can be quite onerous.  Ledger-mode attempts to
    162 make it as painless as possible.
    163 
    164    In the ‘demo.ledger’ buffer type ‘C-c C-r’.  If cursor is on an
    165 account, Ledger-mode will propose this account, or in the Minibuffer,
    166 will prompt for an account to reconcile.  Hit ‘RET’ if you are happy
    167 with proposed account, or enter ‘Checking’ as example.  Emacs will then
    168 prompt for a target value.  The target value is the amount you want the
    169 cleared transactions in the buffer to total.  Normally this would be the
    170 ending value from your bank statement, or the latest value in your
    171 on-line transaction summary.  Enter ‘1710’.  Note that Ledger-mode
    172 assumes you are using ‘$’ (USD) as your default commodity, this can be
    173 easily changed in the customization variables.  *Note Ledger-mode
    174 Customization::.
    175 
    176    You now see a list of uncleared transactions in a buffer below the
    177 ‘demo.ledger’ buffer.  Touching the ‘SPC’ bar will mark a transaction as
    178 pending and display the current cleared (and pending) balance, along
    179 with the difference remaining to meet your target.  Clear the first
    180 three transactions, and you will see the difference to target reach
    181 ‘$0’.  End the reconciliation by typing ‘C-c C-c’.  This saves the
    182 ‘demo.ledger’ buffer and marks the transactions and finally cleared.
    183 Type ‘q’ to close out the reconciliation buffer.
    184 
    185 
    186 File: ledger-mode.info,  Node: Reports,  Next: Narrowing,  Prev: Reconciliation,  Up: Quick Demo
    187 
    188 1.3.3 Reports
    189 -------------
    190 
    191 The real power of Ledger is in its reporting capabilities.  Reports can
    192 be run and displayed in a separate Emacs buffer.  In the ‘demo.ledger’
    193 buffer, type ‘C-c C-o C-r’.  In the Minibuffer Emacs will prompt for a
    194 report name.  There are a few built-in reports, and you can add any
    195 report you need *Note Adding and Editing Reports::.
    196 
    197    In the Minibuffer type ‘account’.  When prompted for an account type
    198 ‘checking’.  In a buffer named ‘*Ledger Report*’, you will see a Ledger
    199 register report.  You can move around the buffer, with the point on a
    200 transaction, type ‘RET’.  Ledger-mode will take you directly to that
    201 transaction in the ‘demo.ledger’ buffer.
    202 
    203    Another built-in report is the balance report.  In the ‘demo.ledger’
    204 buffer, type ‘C-c C-o C-r’.  When prompted for a report to run, type
    205 ‘bal’, and a balance report of all accounts will be shown.
    206 
    207 
    208 File: ledger-mode.info,  Node: Narrowing,  Prev: Reports,  Up: Quick Demo
    209 
    210 1.3.4 Narrowing
    211 ---------------
    212 
    213 A ledger file can get very large.  It can be helpful to collapse the
    214 buffer to display only the transactions you are interested in.
    215 Ledger-mode copies the ‘occur’ mode functionality.  Typing ‘C-c C-f’ and
    216 entering any regex in the Minibuffer will show only transactions that
    217 match the regex.  The regex can be on any field, or amount.  Use ‘C-c
    218 C-g’ after editing transactions to re-apply the current regex.  Cancel
    219 the narrowing by typing ‘C-c C-f’ again.
    220 
    221 
    222 File: ledger-mode.info,  Node: The Ledger Buffer,  Next: The Reconcile Buffer,  Prev: Introduction to Ledger-mode,  Up: Top
    223 
    224 2 The Ledger Buffer
    225 *******************
    226 
    227 * Menu:
    228 
    229 * Navigating Transactions::
    230 * Adding Transactions::
    231 * Copying Transactions::
    232 * Editing Amounts::
    233 * Marking Transactions::
    234 * Formatting Transactions::
    235 * Deleting Transactions::
    236 * Sorting Transactions::
    237 * Narrowing Transactions::
    238 
    239 
    240 File: ledger-mode.info,  Node: Navigating Transactions,  Next: Adding Transactions,  Prev: The Ledger Buffer,  Up: The Ledger Buffer
    241 
    242 2.1 Navigating Transactions
    243 ===========================
    244 
    245 In addition to the usual Emacs navigation commands, ledger-mode offers
    246 several additional commands to ease navigation.  ‘M-n’ and ‘M-p’
    247 navigate between next and previous xacts or directives.
    248 
    249    Additionally, ‘M-x ledger-navigate-next-uncleared’ and ‘M-x
    250 ledger-navigate-previous-uncleared’ navigate to the next and previous
    251 uncleared transactions.
    252 
    253 
    254 File: ledger-mode.info,  Node: Adding Transactions,  Next: Copying Transactions,  Prev: Navigating Transactions,  Up: The Ledger Buffer
    255 
    256 2.2 Adding Transactions
    257 =======================
    258 
    259 Beyond the two ways of quickly adding transactions (*note Quick Add::)
    260 Ledger-mode assists you by providing robust ‘TAB’ completion for payees
    261 and accounts.  Ledger-mode will scan the existing buffer for payees and
    262 accounts.  Included files are not currently included in the completion
    263 scan.  Ledger-mode respects Emacs’s variables that govern ‘TAB’
    264 completion, see especially ‘tab-always-indent’.
    265 
    266    To cycle between completions when hitting ‘TAB’ multiple times, you
    267 can adjust the standard completion configuration like this:
    268 
    269      (add-hook 'ledger-mode-hook
    270                (lambda ()
    271                  (setq-local tab-always-indent 'complete)
    272                  (setq-local completion-cycle-threshold t)
    273                  (setq-local ledger-complete-in-steps t)))
    274 
    275    Ledger-mode will help you keep your amounts aligned.  When indenting
    276 or completing, Ledger-mode will automatically place any amounts such
    277 that their last digit is aligned to the column specified by
    278 ‘ledger-post-amount-alignment-column’, which defaults to ‘52’.  *Note
    279 Ledger Post Customization Group::.
    280 
    281    To prevent the automatic realignment of amounts, disable
    282 ‘ledger-post-auto-align’.  *Note Ledger Post Customization Group::.
    283 
    284 * Menu:
    285 
    286 * Setting a Transactions Effective Date::
    287 * Quick Balance Display::
    288 
    289 
    290 File: ledger-mode.info,  Node: Setting a Transactions Effective Date,  Next: Quick Balance Display,  Prev: Adding Transactions,  Up: Adding Transactions
    291 
    292 2.2.1 Setting a Transactions Effective Date
    293 -------------------------------------------
    294 
    295 Ledger provides for adding information to a transaction that add details
    296 to the dates.  For example, you can specify when the transaction was
    297 entered, when the transaction was cleared, or when individual postings
    298 were cleared.  Ledger-mode refers to these additional dates as
    299 _effective_ dates.  To set the effective date of a transaction, place
    300 the point in the first line of a transaction and type ‘C-c C-t’.  The
    301 effective date will be added to the transaction.  To set the effective
    302 date for an individual posting, place point in the posting and type ‘C-c
    303 C-t’ and the effective date for that posting will be added at the end of
    304 the posting.
    305 
    306 
    307 File: ledger-mode.info,  Node: Quick Balance Display,  Prev: Setting a Transactions Effective Date,  Up: Adding Transactions
    308 
    309 2.2.2 Quick Balance Display
    310 ---------------------------
    311 
    312 You will often want to quickly check the balance of an account.  The
    313 easiest way is to position point on the account you are interested in,
    314 and type ‘C-c C-p’.  The Minibuffer will ask you to verify the name of
    315 the account you want, if it is already correct hit ‘RET’, then the
    316 balance of the account will be displayed in the Minibuffer.
    317 
    318 
    319 File: ledger-mode.info,  Node: Copying Transactions,  Next: Editing Amounts,  Prev: Adding Transactions,  Up: The Ledger Buffer
    320 
    321 2.3 Copying Transactions
    322 ========================
    323 
    324 An easy way to copy a transaction is to type ‘C-c C-k’ or menu entry
    325 ‘Copy Trans at Point’.  You will be prompted the new date for the copied
    326 transaction, and after having confirmed with ‘RET’, new transaction will
    327 be inserted at _date_ position in buffer.
    328 
    329    If you prefer to keep blank lines between your transactions, you can
    330 change the default in ‘ledger-copy-transaction-insert-blank-line-after’.
    331 
    332 
    333 File: ledger-mode.info,  Node: Editing Amounts,  Next: Marking Transactions,  Prev: Copying Transactions,  Up: The Ledger Buffer
    334 
    335 2.4 Editing Amounts
    336 ===================
    337 
    338 GNU Emacs Calculator, aka ‘Calc’, is a very powerful Reverse Polish
    339 Notation calculator built into all recent version of Emacs.  Ledger-mode
    340 makes it easy to calculate values for amount by integrating ‘Calc’.
    341 With the point anywhere in the same line as a posting, typing ‘C-c C-b’
    342 will bring up the ‘Calc’ buffer, and push the current amount for the
    343 posting onto the top of the ‘Calc’ stack.  Perform any calculations you
    344 need to arrive at the final value, then type ‘y’ to yank the value at
    345 the top of stack back into the ledger buffer.  Note: ‘Calc’ does not
    346 directly support commas as decimal separators.  Ledger-mode will
    347 translate values from decimal-comma format to decimal-period format for
    348 use in ‘Calc’, but it cannot intercept the value being yanked from the
    349 ‘Calc’ stack, so decimal-comma users will have to manually replace the
    350 period with a comma.
    351 
    352 
    353 File: ledger-mode.info,  Node: Marking Transactions,  Next: Formatting Transactions,  Prev: Editing Amounts,  Up: The Ledger Buffer
    354 
    355 2.5 Marking Transactions
    356 ========================
    357 
    358 Ledger considers transaction or posting to be in one of three states:
    359 uncleared, cleared, and pending.  For calculation Ledger ignores these
    360 states unless specifically instructed to use them.  Ledger-mode assigns
    361 some additional meaning to the states:
    362 
    363    • Uncleared.  No state.  This is equivalent to sticking a check in
    364      the mail.  It has been obligated, but not been cashed by the
    365      recipient.  It could also apply to credit/debit card transactions
    366      that have not been cleared into your account balance.  You bank may
    367      call these transactions _pending_, but Ledger-mode uses a slightly
    368      different meaning.
    369 
    370    • Pending.  Ledger-mode’s reconciliation function see pending
    371      transactions as an intermediate step in reconciling an account.
    372      When doing a reconciliation (*note Reconciliation::), marking a
    373      transaction as pending means that you have seen the transaction
    374      finally recorded by the recipient, but you have not completely
    375      reconciled the account.
    376 
    377    • Cleared.  The transaction has been completely recognized by all
    378      parties to the transaction.
    379 
    380    Typing ‘C-c C-c’, depending where is the point, will clear the
    381 complete transaction, or an individual posting.  This places an asterisk
    382 ‘*’ prior to the payee for the complete transaction, or prior to the
    383 account for an individual posting.  When point is inside a transaction,
    384 specifically on an individual posting, you can still clear the complete
    385 transaction by typing ‘C-c C-e’.
    386 
    387 
    388 File: ledger-mode.info,  Node: Formatting Transactions,  Next: Deleting Transactions,  Prev: Marking Transactions,  Up: The Ledger Buffer
    389 
    390 2.6 Formatting Transactions
    391 ===========================
    392 
    393 When editing a transaction, liberal use of the ‘TAB’ key can keep the
    394 transaction well formatted.  If you want to have Ledger-mode cleanup the
    395 formatting of a transaction you can use ‘Align Transaction’ or ‘Align
    396 Region’ from the menu bar.
    397 
    398    The menu item ‘Clean-up Buffer’ sorts all transactions in the buffer
    399 by date, removes extraneous empty lines and aligns every transaction.
    400 
    401 
    402 File: ledger-mode.info,  Node: Deleting Transactions,  Next: Sorting Transactions,  Prev: Formatting Transactions,  Up: The Ledger Buffer
    403 
    404 2.7 Deleting Transactions
    405 =========================
    406 
    407 Along with normal buffer editing methods to delete text, Ledger-mode
    408 provides an easy way to delete the transaction under point: ‘C-c C-d’.
    409 The advantage to using this method is that the complete transaction
    410 operation is in the undo buffer.
    411 
    412 
    413 File: ledger-mode.info,  Node: Sorting Transactions,  Next: Narrowing Transactions,  Prev: Deleting Transactions,  Up: The Ledger Buffer
    414 
    415 2.8 Sorting Transactions
    416 ========================
    417 
    418 As you operating on the Ledger files, they may become disorganized.  For
    419 the most part, Ledger doesn’t care, but our human brains prefer a bit of
    420 order.  Sorting the transactions in a buffer into chronological order
    421 can help bring order to chaos.  Either using ‘Sort Region’ menu entry or
    422 typing ‘C-c C-s’ will sort all of the transactions in a region by date.
    423 Ledger-mode isn’t particularly smart about handling dates and it simply
    424 sorts the transactions using the string at the beginning of the
    425 transaction.  So, you should use the preferred ISO 8601 standard date
    426 format ‘YYYY/MM/DD’ which easily sorts.
    427 
    428    Note, there is a menu entry ‘Sort Buffer’ to sort the entire buffer.
    429 Special transactions like automated transaction, will be moved in the
    430 sorting process and may not function correctly afterwards.  For this
    431 reason there is no key sequence.
    432 
    433    You can limit the allowed sort region by using embedded Ledger-mode
    434 markup within your ledger.  For example:
    435 
    436      <<< information to not sort >>>
    437 
    438      ; Ledger-mode: Start sort
    439 
    440      <<< transactions to sort >>>
    441 
    442      ; Ledger-mode: End sort
    443 
    444      <<< information to not sort >>>
    445 
    446    You can use menu entries ‘Mark Sort Beginning’ to insert start and
    447 ‘Mark Sort End’ to insert end markers.  These functions will
    448 automatically delete old markers and put new marker at point.
    449 
    450 
    451 File: ledger-mode.info,  Node: Narrowing Transactions,  Prev: Sorting Transactions,  Up: The Ledger Buffer
    452 
    453 2.9 Narrowing Transactions
    454 ==========================
    455 
    456 Often you will want to run Ledger register reports just to look at a
    457 specific set of transactions.  If you don’t need the running total
    458 calculation handled by Ledger, Ledger-mode provides a rapid way of
    459 narrowing what is displayed in the buffer in a way that is simpler than
    460 the Ledger register command.
    461 
    462    Based on the Emacs Occur mode by Alexey Veretennikov, Ledger-occur
    463 hides all transactions that do _not_ meet a specific regular expression.
    464 The regular expression can match on any part of the transaction.  If you
    465 want to find all transactions whose amount ends in ‘.37’, you can do
    466 that (I don’t know why, but hey, whatever ever floats you aerostat).
    467 
    468    Using ‘C-c C-f’ or the ‘Narrow to Regex’ menu entry, enter a regular
    469 expression in the Minibuffer.  Ledger-mode will hide all other
    470 transactions.  For details of the regular expression syntax, see your
    471 Emacs documentation.  A few examples using the ‘demo.ledger’ are given
    472 here:
    473 
    474 ‘Groceries’
    475      Show only transactions that have a posting to the ‘Groceries’
    476      account.
    477 
    478 ‘^2011/01’
    479      Show only transactions occurring in January of 2011.
    480 
    481 ‘^2011/.*/25’
    482      Show only transactions occurring on the 25th of the month in 2011.
    483 
    484 ‘auto’
    485      Show only transactions with payees or accounts or comments
    486      containing.  ‘auto’
    487 
    488 ‘harley$’
    489      Show only transactions with any line ending with ‘harley’.
    490 
    491    To show back all transactions simply invoke ‘Narrow to Regex’ or ‘C-c
    492 C-f’ again.
    493 
    494    If you’ve edited some transactions after narrowing such that they
    495 would no longer match the regular expression, you can refresh the
    496 narrowed view using ‘C-c C-g’.
    497 
    498 
    499 File: ledger-mode.info,  Node: The Reconcile Buffer,  Next: The Report Buffer,  Prev: The Ledger Buffer,  Up: Top
    500 
    501 3 The Reconcile Buffer
    502 **********************
    503 
    504 * Menu:
    505 
    506 * Basics of Reconciliation::
    507 * Starting a Reconciliation::
    508 * Mark Transactions Pending::
    509 * Edit Transactions During Reconciliation::
    510 * Finalize Reconciliation::
    511 * Adding and Deleting Transactions during Reconciliation::
    512 * Changing Reconciliation Account::
    513 * Changing Reconciliation Target::
    514 
    515 
    516 File: ledger-mode.info,  Node: Basics of Reconciliation,  Next: Starting a Reconciliation,  Prev: The Reconcile Buffer,  Up: The Reconcile Buffer
    517 
    518 3.1 Basics of Reconciliation
    519 ============================
    520 
    521 Even in this relatively modern era, financial transactions do not happen
    522 instantaneously, unless you are paying cash.  When you swipe your debit
    523 card the money may take several days to actually come out of your
    524 account, or a check may take several days to _clear_.  That is the root
    525 of the difference between _obligating_ funds and _expending_ funds.
    526 Obligation says you have agreed to pay it, the expenditure doesn’t
    527 happen until the money actually leaves your account.  Or in the case of
    528 receiving payment, you have an account receivable until the money has
    529 actually made it to you.
    530 
    531    After an account has been reconciled you have verified that all the
    532 transactions in that account have been correctly recorded and all
    533 parties agree.
    534 
    535 
    536 File: ledger-mode.info,  Node: Starting a Reconciliation,  Next: Mark Transactions Pending,  Prev: Basics of Reconciliation,  Up: The Reconcile Buffer
    537 
    538 3.2 Starting a Reconciliation
    539 =============================
    540 
    541 To start reconciling an account you must have a target, both the
    542 transactions that you know about and the transactions the bank knows
    543 about.  You can get this from a monthly statement, or from checking your
    544 on-line transaction history.  It also helps immensely to know the final
    545 cleared balance you are aiming for.
    546 
    547    Use menu ‘Reconcile Account’ or keyboard shortcut ‘C-c C-r’ to start
    548 reconciliation.
    549 
    550    If cursor is on an account, Ledger-mode will propose this account, or
    551 in the Minibuffer, will prompt for an account to reconcile.  Hit ‘RET’
    552 if you are happy with proposed account, or enter ‘Checking’ as example.
    553 Ledger-mode is not particular about what you enter for the account.  You
    554 can leave it blank and ‘*Reconcile*’ buffer will show you _all_
    555 uncleared transactions.
    556 
    557    After you enter the account enter the target amount.  It is helpful
    558 to enter an amount with a commodity.  You can also leave it blank, you
    559 will be able to clear transactions but not benefit from balance
    560 calculations.  It assumes initially that you are using ‘$’ (USD) as your
    561 default commodity.  If you are working in a different currency you can
    562 change the default in variable ‘ledger-reconcile-default-commodity’ to
    563 whatever you need.  If you work in multiple commodities simply enter the
    564 commoditized amount (for example ‘340 VSDX’, for 340 shares of VSDX).
    565 
    566    Ledger-mode reconcile cannot currently reconcile accounts that have
    567 multiple commodities, such as brokerage accounts.  You may use
    568 reconciliation mode to clear transactions, but balance calculations will
    569 not display the complete list of commodities.
    570 
    571 
    572 File: ledger-mode.info,  Node: Mark Transactions Pending,  Next: Edit Transactions During Reconciliation,  Prev: Starting a Reconciliation,  Up: The Reconcile Buffer
    573 
    574 3.3 Mark Transactions Pending
    575 =============================
    576 
    577 The ‘*Reconcile*’ buffer will show all the uncleared transactions that
    578 meet the criteria set in the regex.  By default uncleared transactions
    579 are shown in red.  When you have verified that a transaction has been
    580 correctly and completely recorded by the opposing party, mark the
    581 transaction as pending using the ‘SPC’ bar.  Continue this process until
    582 you agree with the opposing party and the difference from your target is
    583 zero.
    584 
    585 
    586 File: ledger-mode.info,  Node: Edit Transactions During Reconciliation,  Next: Finalize Reconciliation,  Prev: Mark Transactions Pending,  Up: The Reconcile Buffer
    587 
    588 3.4 Edit Transactions during Reconciliation
    589 ===========================================
    590 
    591 If you find errors during reconciliation.  You can visit the transaction
    592 under point in the ‘*Reconcile*’ buffer by hitting the ‘RET’ key.  This
    593 will take you to the transaction in the Ledger buffer.  When you have
    594 finished editing the transaction, saving the buffer will automatically
    595 return you to the ‘*Reconcile*’ buffer and you can mark the transaction
    596 if appropriate.
    597 
    598 
    599 File: ledger-mode.info,  Node: Finalize Reconciliation,  Next: Adding and Deleting Transactions during Reconciliation,  Prev: Edit Transactions During Reconciliation,  Up: The Reconcile Buffer
    600 
    601 3.5 Finalize Reconciliation
    602 ===========================
    603 
    604 Once you have marked all transactions as pending and the cleared balance
    605 is correct.  Finish the reconciliation by typing ‘C-c C-c’.  This marks
    606 all pending transactions as cleared and saves the ledger buffer.
    607 
    608    Type ‘q’ to close out the reconciliation buffer.  If variable
    609 LEDGER-RECONCILE-FINISH-FORCE-QUIT is set, the reconciliation buffer
    610 will be killed automatically after ‘C-c C-c’.
    611 
    612 
    613 File: ledger-mode.info,  Node: Adding and Deleting Transactions during Reconciliation,  Next: Changing Reconciliation Account,  Prev: Finalize Reconciliation,  Up: The Reconcile Buffer
    614 
    615 3.6 Adding and Deleting Transactions during Reconciliation
    616 ==========================================================
    617 
    618 While reconciling, you may find new transactions that need to be entered
    619 into your ledger.  Simply type ‘a’ to bring up the quick add for the
    620 ledger buffer.
    621 
    622    Typing ‘d’ will delete the transaction under point in the
    623 ‘*Reconcile*’ buffer from the ledger buffer.
    624 
    625 
    626 File: ledger-mode.info,  Node: Changing Reconciliation Account,  Next: Changing Reconciliation Target,  Prev: Adding and Deleting Transactions during Reconciliation,  Up: The Reconcile Buffer
    627 
    628 3.7 Changing Reconciliation Account
    629 ===================================
    630 
    631 You can conveniently switch the account being reconciled by typing ‘g’,
    632 and entering a new account to reconcile.  This simply restarts the
    633 reconcile process.  Any transactions that were marked _pending_ in the
    634 ledger buffer are left in that state when the account is switched.
    635 
    636 
    637 File: ledger-mode.info,  Node: Changing Reconciliation Target,  Prev: Changing Reconciliation Account,  Up: The Reconcile Buffer
    638 
    639 3.8 Changing Reconciliation Target
    640 ==================================
    641 
    642 If for some reason during reconciliation your target amount changes,
    643 type ‘t’ and enter the new target value.
    644 
    645 
    646 File: ledger-mode.info,  Node: The Report Buffer,  Next: Scheduling Transactions,  Prev: The Reconcile Buffer,  Up: Top
    647 
    648 4 The Report Buffer
    649 *******************
    650 
    651 * Menu:
    652 
    653 * Running Basic Reports::
    654 * Adding and Editing Reports::
    655 * Reversing Report Order::
    656 
    657 
    658 File: ledger-mode.info,  Node: Running Basic Reports,  Next: Adding and Editing Reports,  Prev: The Report Buffer,  Up: The Report Buffer
    659 
    660 4.1 Running Reports
    661 ===================
    662 
    663 The real power behind Ledger is in its amazing reporting capability.
    664 Ledger-mode provides easy facility to run reports directly from Emacs.
    665 It has four reports built-in and facilities for adding custom reports.
    666 
    667    Typing ‘C-c C-o C-r’ or using menu ‘Run Report’ prompts for the name
    668 of a saved report.  The built-in reports are:
    669 
    670 BAL
    671      Produce a balance reports of all accounts.
    672 
    673 REG
    674      Produce a register report of all transactions.
    675 
    676 PAYEE
    677      Prompt for a payee, then produce a register report of all
    678      transactions involving that payee.
    679 
    680 ACCOUNT
    681      Prompt for an account, then produce a register report of all
    682      transactions involving that account.
    683 
    684    While viewing reports you can easily switch back and forth between
    685 the ledger buffer and the ‘*Ledger Report*’ buffer.  In ‘*Ledger
    686 Report*’ buffer, typing ‘RET’ will take you to that transaction in the
    687 ledger buffer.  While in the ledger buffer ‘C-c C-o C-g’ returns you to
    688 the ‘*Ledger Report*’ buffer.
    689 
    690    By default Ledger-mode will refresh the report buffer when the ledger
    691 buffer is saved.  If you want to rerun the report at another time ‘C-c
    692 C-o C-a’.  This is useful if you have other programs altering your
    693 ledger file outside of Emacs.
    694 
    695 
    696 File: ledger-mode.info,  Node: Adding and Editing Reports,  Next: Reversing Report Order,  Prev: Running Basic Reports,  Up: The Report Buffer
    697 
    698 4.2 Adding and Editing Reports
    699 ==============================
    700 
    701 * Menu:
    702 
    703 * Expansion Formats::
    704 * Make Report Transactions Active::
    705 
    706 If you type a report name that Ledger-mode doesn’t recognize it will
    707 prompt you for a ledger command line to run.  That command is
    708 automatically saved with the name given and you can re-run it at any
    709 time.
    710 
    711    There are two ways to edit the command line for a report.  The first
    712 is to provide a prefix argument to the run-report command.  For example,
    713 type ‘M-1 C-c C-o C-r’.  This will prompt you for the report name, then
    714 present the report command line to be edited.  When you hit ‘RET’, the
    715 report will be run, but it will not be permanently saved.  If you want
    716 to save it, type ‘S’ in the ‘*Ledger Report*’ buffer you will have the
    717 option to give it a new name, or overwrite the old report.
    718 
    719    Deleting reports is accomplished by typing ‘C-c C-o C-e’ or using
    720 ‘Edit Report’ menu in the ledger buffer, or typing ‘e’ in the ‘*Ledger
    721 Report*’ buffer.  This takes you to the Emacs customization window for
    722 the Ledger Reports variables.  Use the widgets to delete the report you
    723 want removed.
    724 
    725    Typing ‘C-c C-o C-s’ will prompt for a name and save the current
    726 report.
    727 
    728 
    729 File: ledger-mode.info,  Node: Expansion Formats,  Next: Make Report Transactions Active,  Prev: Adding and Editing Reports,  Up: Adding and Editing Reports
    730 
    731 4.2.1 Expansion Formats
    732 -----------------------
    733 
    734 It is sometimes convenient to leave room to customize a report without
    735 saving the command line every time.  For example running a register
    736 report for a specific account entered at runtime by the user.  The
    737 built-in report ACCOUNT does exactly that, using a variable expansion to
    738 prompt the user for the account to use.  There are four variables that
    739 can be expanded to run a report:
    740 
    741 LEDGER-FILE
    742      Returns the file to be operated on.
    743 
    744 PAYEE
    745      Prompts for a payee.
    746 
    747 ACCOUNT
    748      Prompt for an account.
    749 
    750 TAGNAME
    751      Prompt for a meta-data tag name.
    752 
    753 TAGVALUE
    754      Prompt for a meta-data tag value.
    755 
    756 MONTH
    757      Return the current month.
    758 
    759    You can use these expansion values in your ledger report commands.
    760 For example, if you wanted to specify a register report the displayed
    761 transactions from a user-determined account with a particular meta-data
    762 tag value, you specify the following command line:
    763 
    764      ledger -f %(ledger-file) reg %(account) \
    765        --limit \"tag('my-tag') =~/%(value)/\"
    766 
    767    Note how the double-quotes are escaped with back-slashes.
    768 
    769    Additionally, if you want a report showing a particular month and be
    770 able to easily change that month, you can specify a period using the
    771 ‘%(month)’ specifier like this:
    772 
    773      ledger -f %(ledger-file) balance --period %(month) ^Income ^Expenses
    774 
    775    When you do this, you can use ‘M-p’ or ‘M-n’ to re-open the same
    776 report with the previous or next month.
    777 
    778 
    779 File: ledger-mode.info,  Node: Make Report Transactions Active,  Prev: Expansion Formats,  Up: Adding and Editing Reports
    780 
    781 4.2.2 Make Report Transactions Active
    782 -------------------------------------
    783 
    784 In a large register report it is convenient to be able to jump to the
    785 source transaction.  Ledger-mode will automatically include source
    786 information in every register file that doesn’t contain a ‘--subtotal’
    787 option.  It does this by adding
    788 ‘--prepend-format='%(filename):%(beg_line):'’ to the register report
    789 command-line you specify.  You should never have to see this, but if
    790 there is an error in your ledger output this additional information may
    791 not get stripped out of the visible report.
    792 
    793 
    794 File: ledger-mode.info,  Node: Reversing Report Order,  Prev: Adding and Editing Reports,  Up: The Report Buffer
    795 
    796 4.3 Reversing Report Order
    797 ==========================
    798 
    799 Often, banks show their on-line transaction histories with the most
    800 recent transaction at the top.  Ledger itself cannot do a sensible
    801 ledger report in reverse chronological order, if you sort on reverse
    802 date the calculation will also run in the opposite direction.  If you
    803 want to compare a ledger register report to a bank report with the most
    804 recent transactions at the top, type ‘R’ in the ‘*Ledger Report*’ buffer
    805 and it will reverse the order of the transactions and maintain the
    806 proper mathematical sense.
    807 
    808 
    809 File: ledger-mode.info,  Node: Scheduling Transactions,  Next: Customizing Ledger-mode,  Prev: The Report Buffer,  Up: Top
    810 
    811 5 Scheduling Transactions
    812 *************************
    813 
    814 The Ledger program provides for automating transactions but these
    815 transaction aren’t _real_, they only exist inside a ledger session and
    816 are not reflected in the actual data file.  Many transactions are very
    817 repetitive, but may vary slightly in the date they occur on, or the
    818 amount.  Some transactions are weekly, monthly, quarterly or annually.
    819 Ledger mode provides a way to schedule upcoming transaction with a
    820 flexible scheduler that allows you to specify the transactions in a
    821 separate ledger file and calculate the upcoming occurrences of those
    822 transactions.  You can then copy the transactions into your live data
    823 file.
    824 
    825 * Menu:
    826 
    827 * Specifying Upcoming Transactions::
    828 
    829 
    830 File: ledger-mode.info,  Node: Specifying Upcoming Transactions,  Prev: Scheduling Transactions,  Up: Scheduling Transactions
    831 
    832 5.1 Specifying Upcoming Transactions
    833 ====================================
    834 
    835 The format for specifying transactions is identical to Ledger’s file
    836 format with the exception of the date field.  The data field is modified
    837 by surrounding it with brackets and using wild cards and special
    838 characters to specify when the transactions should appear.
    839 
    840 * Menu:
    841 
    842 * Transactions that occur on specific dates::
    843 * Transactions that occur on specific days::
    844 
    845 
    846 File: ledger-mode.info,  Node: Transactions that occur on specific dates,  Next: Transactions that occur on specific days,  Prev: Specifying Upcoming Transactions,  Up: Specifying Upcoming Transactions
    847 
    848 5.1.1 Transactions that occur on specific dates
    849 -----------------------------------------------
    850 
    851 Many times you will enter repetitive transactions that occur on the same
    852 day of the month each month.  These can be specified using a wild card
    853 in the year and month with a fixed date in the day.  The following entry
    854 specifies a transaction that occurs on the first and fifteenth of every
    855 month in every year.
    856      [*/*/1,15] Paycheck
    857          Income:Job       $1000.00
    858          Assets:Checking
    859 
    860    Some transactions do not occur every month.  Comma separated lists of
    861 the months, or ‘E’ for even, or ‘O’ for odd number months can also be
    862 specified.  The following entry specifies a bi-monthly exterminator bill
    863 that occurs in the even months:
    864      [*/E/01]  Exterminator
    865          Expenses:Home   $100.00
    866          Assets:Checking
    867 
    868 
    869 File: ledger-mode.info,  Node: Transactions that occur on specific days,  Prev: Transactions that occur on specific dates,  Up: Specifying Upcoming Transactions
    870 
    871 5.1.2 Transactions that occur on specific days
    872 ----------------------------------------------
    873 
    874 Some transactions occur every relative to the day of the week rather
    875 than the date of the month.  For example, many people are paid every two
    876 weeks without regard to the day of the month.  Other events may occur on
    877 specific days regardless of the date.  For example the following
    878 transactions creates a transaction every other Thursday:
    879 
    880      [2014/11/27+2Th]  Paycheck
    881          Income:Job       $1000.00
    882          Assets:Checking
    883 
    884    It is necessary to specify a starting date in order for this type of
    885 recurrence relation to be specified.  The day names are two character
    886 codes that default to Mo, Tu, We, Th, Fr, Sa, Su, for Monday, Tuesday,
    887 Wednesday, Thursday, Friday, Saturday, Sunday respectively.  You can
    888 change the codes to something more convenient for your locale by
    889 customizing the ledger ‘ledger-schedule-week-days’.  They must be two
    890 characters long.
    891 
    892 
    893 File: ledger-mode.info,  Node: Customizing Ledger-mode,  Next: Generating Ledger Regression Tests,  Prev: Scheduling Transactions,  Up: Top
    894 
    895 6 Customizing Ledger-mode
    896 *************************
    897 
    898 * Menu:
    899 
    900 * Ledger-mode Customization::
    901 * Customization Variables::
    902 
    903 
    904 File: ledger-mode.info,  Node: Ledger-mode Customization,  Next: Customization Variables,  Prev: Customizing Ledger-mode,  Up: Customizing Ledger-mode
    905 
    906 6.1 Ledger-mode Customization
    907 =============================
    908 
    909 Ledger-mode has several options available for configuration.  All
    910 options can be configured through the Emacs customization menus, or
    911 specified in your Emacs initialization file.  The complete list of
    912 options is shown below.  To change the option using the Emacs
    913 customization menu, simply choose customize in the Options menu and look
    914 for Ledger under the data options.  Alternatively you can choose
    915 ‘Customize Specific Group’ and enter ‘Ledger’ as the group.
    916 
    917 
    918 File: ledger-mode.info,  Node: Customization Variables,  Prev: Ledger-mode Customization,  Up: Customizing Ledger-mode
    919 
    920 6.2 Customization Variables
    921 ===========================
    922 
    923 * Menu:
    924 
    925 * Ledger Customization Group::
    926 * Ledger Reconcile Customization Group::
    927 * Ledger Report Customization Group::
    928 * Ledger Faces Customization Group::
    929 * Ledger Post Customization Group::
    930 * Ledger Exec Customization Group::
    931 * Ledger Test Customization Group::
    932 * Ledger Texi Customization Group::
    933 
    934 
    935 File: ledger-mode.info,  Node: Ledger Customization Group,  Next: Ledger Reconcile Customization Group,  Prev: Customization Variables,  Up: Customization Variables
    936 
    937 6.2.1 Ledger Customization Group
    938 --------------------------------
    939 
    940 ‘ledger-occur-use-face-shown’
    941      If non-nil, use a custom face for transactions shown in
    942      ‘ledger-occur’ mode using ‘ledger-occur-xact-face’.
    943 
    944 ‘ledger-clear-whole-transactions’
    945      If non-nil, clear whole transactions, not individual postings.
    946 
    947 ‘ledger-highlight-xact-under-point’
    948      If non-nil, highlight transaction under point using
    949      ‘ledger-font-highlight-face’.
    950 
    951 
    952 File: ledger-mode.info,  Node: Ledger Reconcile Customization Group,  Next: Ledger Report Customization Group,  Prev: Ledger Customization Group,  Up: Customization Variables
    953 
    954 6.2.2 Ledger Reconcile Customization Group
    955 ------------------------------------------
    956 
    957 ‘ledger-reconcile-buffer-name’
    958      Name to use for reconciliation buffer.  Defaults to ‘*Reconcile*’.
    959 
    960 ‘ledger-narrow-on-reconcile’
    961      If t, limit transactions shown in main buffer to those matching the
    962      reconcile regex.
    963 
    964 ‘ledger-buffer-tracks-reconcile-buffer’
    965      If t, then when the cursor is moved to a new transaction in the
    966      ‘*Reconcile*’ buffer.  Then that transaction will be shown in its
    967      source buffer.
    968 
    969 ‘ledger-reconcile-force-window-bottom’
    970      If t, make the ‘*Reconcile*’ window appear along the bottom of the
    971      register window and resize.
    972 
    973 ‘ledger-reconcile-toggle-to-pending’
    974      If t, then toggle between uncleared and pending ‘!’.  If false
    975      toggle between uncleared and cleared ‘*’.
    976 
    977 ‘ledger-reconcile-default-date-format’
    978      Date format for the reconcile buffer.  Defaults to
    979      ‘ledger-default-date-format’.
    980 
    981 ‘ledger-reconcile-target-prompt-string’
    982      Prompt for reconcile target.  Defaults to "Target amount for
    983      reconciliation ".
    984 
    985 ‘ledger-reconcile-buffer-header’
    986      Header string for the reconcile buffer.  If non-nil, the name of
    987      the account being reconciled will be substituted into the ’%s’.  If
    988      nil, no header will be displayed.  Defaults to "Reconciling account
    989      %s\n\n".
    990 
    991 ‘ledger-reconcile-buffer-line-format’
    992      Format string for the ledger reconcile posting format.  Available
    993      fields are date, status, code, payee, account, amount.  The format
    994      for each field is %WIDTH(FIELD), WIDTH can be preceded by a minus
    995      sign which mean to left justify and pad the field.  WIDTH is the
    996      minimum number of characters to display; if string is longer, it is
    997      not truncated unless ‘ledger-reconcile-buffer-payee-max-chars’ or
    998      ‘ledger-reconcile-buffer-account-max-chars’ is defined.  Defaults
    999      to "%(date)s %-4(code)s %-50(payee)s %-30(account)s %15(amount)s\n"
   1000 
   1001 ‘ledger-reconcile-buffer-payee-max-chars’
   1002      If positive, truncate payee name right side to max number of
   1003      characters.
   1004 
   1005 ‘ledger-reconcile-buffer-account-max-chars’
   1006      If positive, truncate account name left side to max number of
   1007      characters.
   1008 
   1009 ‘ledger-reconcile-sort-key’
   1010      Key for sorting reconcile buffer.  Possible values are ’(date)’,
   1011      ’(amount)’, ’(payee)’ or ’(0)’ for no sorting, i.e.  using ledger
   1012      file order.  Defaults to ’(0)’.
   1013 
   1014 ‘ledger-reconcile-insert-effective-date nil’
   1015      If t, prompt for effective date when clearing transactions during
   1016      reconciliation.
   1017 
   1018 ‘ledger-reconcile-finish-force-quit nil’
   1019      If t, will force closing reconcile window after ‘C-c C-c’.
   1020 
   1021 
   1022 File: ledger-mode.info,  Node: Ledger Report Customization Group,  Next: Ledger Faces Customization Group,  Prev: Ledger Reconcile Customization Group,  Up: Customization Variables
   1023 
   1024 6.2.3 Ledger Report Customization Group
   1025 ---------------------------------------
   1026 
   1027 ‘ledger-reports’
   1028      Definition of reports to run.
   1029 
   1030 ‘ledger-report-format-specifiers’
   1031      An alist mapping ledger report format specifiers to implementing
   1032      functions.
   1033 
   1034 ‘ledger-report-use-native-highlighting’
   1035      Whether reports should be displayed using the same colors as when
   1036      calling ledger on the command line.
   1037 
   1038 ‘ledger-report-auto-width’
   1039      Whether reports should fill the whole width of the ‘*Report*’
   1040      window
   1041 
   1042 
   1043 File: ledger-mode.info,  Node: Ledger Faces Customization Group,  Next: Ledger Post Customization Group,  Prev: Ledger Report Customization Group,  Up: Customization Variables
   1044 
   1045 6.2.4 Ledger Faces Customization Group
   1046 --------------------------------------
   1047 
   1048 Ledger Faces: Ledger-mode highlighting
   1049 
   1050 ‘ledger-font-uncleared-face’
   1051      Default face for Ledger.
   1052 
   1053 ‘ledger-font-cleared-face’
   1054      Default face for cleared ‘*’ transactions.
   1055 
   1056 ‘ledger-font-highlight-face’
   1057      Default face for transaction under point.
   1058 
   1059 ‘ledger-font-pending-face’
   1060      Default face for pending ‘!’ transactions.
   1061 
   1062 ‘ledger-font-other-face’
   1063      Default face for other transactions.
   1064 
   1065 ‘ledger-font-posting-account-face’
   1066      Face for Ledger accounts.
   1067 
   1068 ‘ledger-font-posting-account-cleared-face’
   1069      Face for cleared Ledger accounts.
   1070 
   1071 ‘ledger-font-posting-account-pending-face’
   1072      Face for Ledger pending accounts.
   1073 
   1074 ‘ledger-font-posting-amount-face’
   1075      Face for Ledger amounts.
   1076 
   1077 ‘ledger-occur-narrowed-face’
   1078      Default face for Ledger occur mode hidden transactions.
   1079 
   1080 ‘ledger-occur-xact-face’
   1081      Default face for Ledger occur mode shown transactions.
   1082 
   1083 ‘ledger-font-comment-face’
   1084      Face for Ledger comments.
   1085 
   1086 ‘ledger-font-reconciler-uncleared-face’
   1087      Default face for uncleared transactions in the ‘*Reconcile*’
   1088      buffer.
   1089 
   1090 ‘ledger-font-reconciler-cleared-face’
   1091      Default face for cleared ‘*’ transactions in the ‘*Reconcile*’
   1092      buffer.
   1093 
   1094 ‘ledger-font-reconciler-pending-face’
   1095      Default face for pending ‘!’ transactions in the ‘*Reconcile*’
   1096      buffer.
   1097 
   1098 ‘ledger-font-report-clickable-face’
   1099      Face applied to clickable entries in the ‘*Report*’ buffer.
   1100 
   1101 
   1102 File: ledger-mode.info,  Node: Ledger Post Customization Group,  Next: Ledger Exec Customization Group,  Prev: Ledger Faces Customization Group,  Up: Customization Variables
   1103 
   1104 6.2.5 Ledger Post Customization Group
   1105 -------------------------------------
   1106 
   1107 Ledger Post:
   1108 
   1109 ‘ledger-post-account-alignment-column’
   1110      The column Ledger-mode attempts to align accounts to.
   1111 
   1112 ‘ledger-post-amount-alignment-at’
   1113      Position at which the amount is aligned.
   1114 
   1115      Can be ‘:end’ to align on the last number of the amount (can be
   1116      followed by unaligned commodity) or ‘:decimal’ to align at the
   1117      decimal separator.
   1118 
   1119 ‘ledger-post-amount-alignment-column’
   1120      The column Ledger-mode attempts to align amounts to.
   1121 
   1122 ‘ledger-post-auto-align’
   1123      When non-nil, realign post amounts when indenting or completing.
   1124 
   1125 
   1126 File: ledger-mode.info,  Node: Ledger Exec Customization Group,  Next: Ledger Test Customization Group,  Prev: Ledger Post Customization Group,  Up: Customization Variables
   1127 
   1128 6.2.6 Ledger Exec Customization Group
   1129 -------------------------------------
   1130 
   1131 Ledger Exec: Interface to the Ledger command-line accounting program.
   1132 
   1133 ‘ledger-binary-path’
   1134      Path to the ledger executable.
   1135 
   1136 ‘ledger-init-file-name’
   1137      Location of the ledger initialization file.  nil if you don’t have
   1138      one.
   1139 
   1140 
   1141 File: ledger-mode.info,  Node: Ledger Test Customization Group,  Next: Ledger Texi Customization Group,  Prev: Ledger Exec Customization Group,  Up: Customization Variables
   1142 
   1143 6.2.7 Ledger Test Customization Group
   1144 -------------------------------------
   1145 
   1146 ‘ledger-source-directory’
   1147      Directory where the Ledger sources are located.
   1148 
   1149 ‘ledger-test-binary’
   1150      Directory where the debug binary.
   1151 
   1152 
   1153 File: ledger-mode.info,  Node: Ledger Texi Customization Group,  Prev: Ledger Test Customization Group,  Up: Customization Variables
   1154 
   1155 6.2.8 Ledger Texi Customization Group
   1156 -------------------------------------
   1157 
   1158 ‘ledger-texi-sample-doc-path’
   1159      Location for sample data to be used in texi tests, defaults to
   1160      ‘~/ledger/doc/sample.dat’.
   1161 
   1162 ‘ledger-texi-normalization-args’
   1163      texi normalization for producing ledger output, defaults to
   1164      ‘--args-only --columns 80’.
   1165 
   1166 
   1167 File: ledger-mode.info,  Node: Generating Ledger Regression Tests,  Next: Embedding Example results in Ledger Documentation,  Prev: Customizing Ledger-mode,  Up: Top
   1168 
   1169 7 Generating Ledger Regression Tests
   1170 ************************************
   1171 
   1172 Work in Progress.
   1173 
   1174 
   1175 File: ledger-mode.info,  Node: Embedding Example results in Ledger Documentation,  Next: Hacking Ledger-mode,  Prev: Generating Ledger Regression Tests,  Up: Top
   1176 
   1177 8 Embedding Example results in Ledger Documentation
   1178 ***************************************************
   1179 
   1180 Work in Progress.
   1181 
   1182 
   1183 File: ledger-mode.info,  Node: Hacking Ledger-mode,  Next: Concept Index,  Prev: Embedding Example results in Ledger Documentation,  Up: Top
   1184 
   1185 9 Hacking Ledger-mode
   1186 *********************
   1187 
   1188 * Menu:
   1189 
   1190 * Use org-like outlines::
   1191 
   1192 
   1193 File: ledger-mode.info,  Node: Use org-like outlines,  Prev: Hacking Ledger-mode,  Up: Hacking Ledger-mode
   1194 
   1195 9.1 Use org-like outlines
   1196 =========================
   1197 
   1198 Some users like to have org-like outlines for their ledger files.  A
   1199 suggested customization is to include something like the following in
   1200 your Emacs configuration:
   1201 
   1202      (eval-after-load 'ledger-mode
   1203        (progn
   1204          ;; org-cycle allows completion to work whereas outline-toggle-children does not
   1205          (define-key ledger-mode-map (kbd "TAB") #'org-cycle)
   1206          (add-hook 'ledger-mode-hook #'outline-minor-mode)
   1207          (font-lock-add-keywords 'ledger-mode outline-font-lock-keywords)))
   1208 
   1209 
   1210 File: ledger-mode.info,  Node: Concept Index,  Next: Command & Variable Index,  Prev: Hacking Ledger-mode,  Up: Top
   1211 
   1212 Concept Index
   1213 *************
   1214 
   1215 
   1216 * Menu:
   1217 
   1218 * balance:                               Quick Balance Display.
   1219                                                                (line  6)
   1220 * Calc:                                  Editing Amounts.      (line  6)
   1221 * cleared:                               Marking Transactions. (line  6)
   1222 * customization, executable:             Ledger Exec Customization Group.
   1223                                                                (line  6)
   1224 * customization, faces:                  Ledger Faces Customization Group.
   1225                                                                (line  6)
   1226 * customization, ledger-mode:            Ledger Customization Group.
   1227                                                                (line  6)
   1228 * customization, post:                   Ledger Post Customization Group.
   1229                                                                (line  6)
   1230 * customization, reconcile:              Ledger Reconcile Customization Group.
   1231                                                                (line  6)
   1232 * customization, report:                 Ledger Report Customization Group.
   1233                                                                (line  6)
   1234 * customization, test:                   Ledger Test Customization Group.
   1235                                                                (line  6)
   1236 * customization, texi:                   Ledger Texi Customization Group.
   1237                                                                (line  6)
   1238 * demo:                                  Quick Demo.           (line  6)
   1239 * effective date:                        Setting a Transactions Effective Date.
   1240                                                                (line  6)
   1241 * folding:                               Use org-like outlines.
   1242                                                                (line 10)
   1243 * GNU Emacs Calculator:                  Editing Amounts.      (line  6)
   1244 * installation:                          Quick Installation.   (line  6)
   1245 * menu:                                  Menus.                (line  6)
   1246 * org:                                   Use org-like outlines.
   1247                                                                (line 10)
   1248 * outline:                               Use org-like outlines.
   1249                                                                (line 10)
   1250 * pending:                               Marking Transactions. (line  6)
   1251 * reconciliation, account changing:      Changing Reconciliation Account.
   1252                                                                (line  6)
   1253 * reconciliation, basics:                Basics of Reconciliation.
   1254                                                                (line  6)
   1255 * reconciliation, finalizing:            Finalize Reconciliation.
   1256                                                                (line  6)
   1257 * reconciliation, starting:              Starting a Reconciliation.
   1258                                                                (line  6)
   1259 * reconciliation, target changing:       Changing Reconciliation Target.
   1260                                                                (line  6)
   1261 * reconciliation, transaction adding and deleting: Adding and Deleting Transactions during Reconciliation.
   1262                                                                (line  6)
   1263 * reconciliation, transaction editing:   Edit Transactions During Reconciliation.
   1264                                                                (line  6)
   1265 * reconciliation, transaction marking:   Mark Transactions Pending.
   1266                                                                (line  6)
   1267 * report, adding and editing:            Adding and Editing Reports.
   1268                                                                (line  6)
   1269 * report, custom command:                Make Report Transactions Active.
   1270                                                                (line  6)
   1271 * report, custom variable:               Expansion Formats.    (line  6)
   1272 * report, order reversing:               Reversing Report Order.
   1273                                                                (line  6)
   1274 * report, running:                       Running Basic Reports.
   1275                                                                (line  6)
   1276 * transaction, adding:                   Adding Transactions.  (line  6)
   1277 * transaction, copying:                  Copying Transactions. (line  6)
   1278 * transaction, deleting:                 Deleting Transactions.
   1279                                                                (line  6)
   1280 * transaction, display filtering:        Narrowing Transactions.
   1281                                                                (line  6)
   1282 * transaction, editing amounts:          Editing Amounts.      (line  6)
   1283 * transaction, formatting:               Formatting Transactions.
   1284                                                                (line  6)
   1285 * transaction, marking:                  Marking Transactions. (line  6)
   1286 * transaction, narrowing:                Narrowing Transactions.
   1287                                                                (line  6)
   1288 * transaction, navigation:               Navigating Transactions.
   1289                                                                (line  6)
   1290 * transaction, sorting:                  Sorting Transactions. (line  6)
   1291 * uncleared:                             Marking Transactions. (line  6)
   1292 
   1293 
   1294 File: ledger-mode.info,  Node: Command & Variable Index,  Next: Keystroke Index,  Prev: Concept Index,  Up: Top
   1295 
   1296 Command & Variable Index
   1297 ************************
   1298 
   1299 
   1300 * Menu:
   1301 
   1302 * ledger-binary-path:                    Ledger Exec Customization Group.
   1303                                                                (line  8)
   1304 * ledger-buffer-tracks-reconcile-buffer: Ledger Reconcile Customization Group.
   1305                                                                (line 13)
   1306 * ledger-clear-whole-transactions:       Ledger Customization Group.
   1307                                                                (line 10)
   1308 * ledger-font-cleared-face:              Ledger Faces Customization Group.
   1309                                                                (line 11)
   1310 * ledger-font-comment-face:              Ledger Faces Customization Group.
   1311                                                                (line 41)
   1312 * ledger-font-highlight-face:            Ledger Faces Customization Group.
   1313                                                                (line 14)
   1314 * ledger-font-other-face:                Ledger Faces Customization Group.
   1315                                                                (line 20)
   1316 * ledger-font-pending-face:              Ledger Faces Customization Group.
   1317                                                                (line 17)
   1318 * ledger-font-posting-account-cleared-face: Ledger Faces Customization Group.
   1319                                                                (line 26)
   1320 * ledger-font-posting-account-face:      Ledger Faces Customization Group.
   1321                                                                (line 23)
   1322 * ledger-font-posting-account-pending-face: Ledger Faces Customization Group.
   1323                                                                (line 29)
   1324 * ledger-font-posting-amount-face:       Ledger Faces Customization Group.
   1325                                                                (line 32)
   1326 * ledger-font-reconciler-cleared-face:   Ledger Faces Customization Group.
   1327                                                                (line 48)
   1328 * ledger-font-reconciler-pending-face:   Ledger Faces Customization Group.
   1329                                                                (line 52)
   1330 * ledger-font-reconciler-uncleared-face: Ledger Faces Customization Group.
   1331                                                                (line 44)
   1332 * ledger-font-report-clickable-face:     Ledger Faces Customization Group.
   1333                                                                (line 56)
   1334 * ledger-font-uncleared-face:            Ledger Faces Customization Group.
   1335                                                                (line  8)
   1336 * ledger-highlight-xact-under-point:     Ledger Customization Group.
   1337                                                                (line 13)
   1338 * ledger-init-file-name:                 Ledger Exec Customization Group.
   1339                                                                (line 11)
   1340 * ledger-narrow-on-reconcile:            Ledger Reconcile Customization Group.
   1341                                                                (line  9)
   1342 * ledger-navigate-next-uncleared:        Navigating Transactions.
   1343                                                                (line 10)
   1344 * ledger-navigate-next-xact-or-directive: Navigating Transactions.
   1345                                                                (line  6)
   1346 * ledger-navigate-prev-xact-or-directive: Navigating Transactions.
   1347                                                                (line  6)
   1348 * ledger-navigate-previous-uncleared:    Navigating Transactions.
   1349                                                                (line 10)
   1350 * ledger-occur-narrowed-face:            Ledger Faces Customization Group.
   1351                                                                (line 35)
   1352 * ledger-occur-use-face-shown:           Ledger Customization Group.
   1353                                                                (line  6)
   1354 * ledger-occur-xact-face:                Ledger Faces Customization Group.
   1355                                                                (line 38)
   1356 * ledger-post-account-alignment-column:  Ledger Post Customization Group.
   1357                                                                (line  8)
   1358 * ledger-post-amount-alignment-at:       Ledger Post Customization Group.
   1359                                                                (line 11)
   1360 * ledger-post-amount-alignment-column:   Adding Transactions.  (line  6)
   1361 * ledger-post-amount-alignment-column <1>: Ledger Post Customization Group.
   1362                                                                (line 18)
   1363 * ledger-post-auto-align:                Ledger Post Customization Group.
   1364                                                                (line 21)
   1365 * ledger-reconcile-buffer-account-max-chars: Ledger Reconcile Customization Group.
   1366                                                                (line 54)
   1367 * ledger-reconcile-buffer-header:        Ledger Reconcile Customization Group.
   1368                                                                (line 34)
   1369 * ledger-reconcile-buffer-line-format:   Ledger Reconcile Customization Group.
   1370                                                                (line 40)
   1371 * ledger-reconcile-buffer-name:          Ledger Reconcile Customization Group.
   1372                                                                (line  6)
   1373 * ledger-reconcile-buffer-payee-max-chars: Ledger Reconcile Customization Group.
   1374                                                                (line 50)
   1375 * ledger-reconcile-default-commodity:    Starting a Reconciliation.
   1376                                                                (line  6)
   1377 * ledger-reconcile-default-date-format:  Ledger Reconcile Customization Group.
   1378                                                                (line 26)
   1379 * ledger-reconcile-finish-force-quit nil: Ledger Reconcile Customization Group.
   1380                                                                (line 67)
   1381 * ledger-reconcile-force-window-bottom:  Ledger Reconcile Customization Group.
   1382                                                                (line 18)
   1383 * ledger-reconcile-insert-effective-date nil: Ledger Reconcile Customization Group.
   1384                                                                (line 63)
   1385 * ledger-reconcile-sort-key:             Ledger Reconcile Customization Group.
   1386                                                                (line 58)
   1387 * ledger-reconcile-target-prompt-string: Ledger Reconcile Customization Group.
   1388                                                                (line 30)
   1389 * ledger-reconcile-toggle-to-pending:    Ledger Reconcile Customization Group.
   1390                                                                (line 22)
   1391 * ledger-report-auto-width:              Ledger Report Customization Group.
   1392                                                                (line 17)
   1393 * ledger-report-format-specifiers:       Ledger Report Customization Group.
   1394                                                                (line  9)
   1395 * ledger-report-use-native-highlighting: Ledger Report Customization Group.
   1396                                                                (line 13)
   1397 * ledger-reports:                        Adding and Editing Reports.
   1398                                                                (line  6)
   1399 * ledger-reports <1>:                    Ledger Report Customization Group.
   1400                                                                (line  6)
   1401 * ledger-source-directory:               Ledger Test Customization Group.
   1402                                                                (line  6)
   1403 * ledger-test-binary:                    Ledger Test Customization Group.
   1404                                                                (line  9)
   1405 * ledger-texi-normalization-args:        Ledger Texi Customization Group.
   1406                                                                (line 10)
   1407 * ledger-texi-sample-doc-path:           Ledger Texi Customization Group.
   1408                                                                (line  6)
   1409 
   1410 
   1411 File: ledger-mode.info,  Node: Keystroke Index,  Prev: Command & Variable Index,  Up: Top
   1412 
   1413 Keystroke Index
   1414 ***************
   1415 
   1416 
   1417 * Menu:
   1418 
   1419 * a:                                     Adding and Deleting Transactions during Reconciliation.
   1420                                                                (line  6)
   1421 * C-c C-a:                               Quick Add.            (line  6)
   1422 * C-c C-b:                               Editing Amounts.      (line  6)
   1423 * C-c C-c:                               Reconciliation.       (line  6)
   1424 * C-c C-c <1>:                           Reports.              (line  6)
   1425 * C-c C-c <2>:                           Marking Transactions. (line 28)
   1426 * C-c C-c <3>:                           Edit Transactions During Reconciliation.
   1427                                                                (line  6)
   1428 * C-c C-c <4>:                           Finalize Reconciliation.
   1429                                                                (line  6)
   1430 * C-c C-d:                               Deleting Transactions.
   1431                                                                (line  6)
   1432 * C-c C-e:                               Marking Transactions. (line 28)
   1433 * C-c C-f:                               Narrowing.            (line  6)
   1434 * C-c C-f <1>:                           Narrowing Transactions.
   1435                                                                (line  6)
   1436 * C-c C-g:                               Narrowing.            (line  6)
   1437 * C-c C-g <1>:                           Narrowing Transactions.
   1438                                                                (line  6)
   1439 * C-c C-k:                               Copying Transactions. (line  6)
   1440 * C-c C-o C-a:                           Running Basic Reports.
   1441                                                                (line  6)
   1442 * C-c C-o C-e:                           Adding and Editing Reports.
   1443                                                                (line  6)
   1444 * C-c C-o C-g:                           Running Basic Reports.
   1445                                                                (line  6)
   1446 * C-c C-o C-r:                           Reports.              (line  6)
   1447 * C-c C-o C-r <1>:                       Running Basic Reports.
   1448                                                                (line  6)
   1449 * C-c C-p:                               Quick Balance Display.
   1450                                                                (line  6)
   1451 * C-c C-r:                               Reconciliation.       (line  6)
   1452 * C-c C-r <1>:                           Starting a Reconciliation.
   1453                                                                (line  6)
   1454 * C-c C-s:                               Sorting Transactions. (line  6)
   1455 * C-c C-t:                               Setting a Transactions Effective Date.
   1456                                                                (line  6)
   1457 * C-c TAB:                               Quick Add.            (line  6)
   1458 * d:                                     Adding and Deleting Transactions during Reconciliation.
   1459                                                                (line  6)
   1460 * e:                                     Adding and Editing Reports.
   1461                                                                (line  6)
   1462 * g:                                     Changing Reconciliation Account.
   1463                                                                (line  6)
   1464 * M-1 C-c C-o C-r:                       Adding and Editing Reports.
   1465                                                                (line  6)
   1466 * M-n:                                   Navigating Transactions.
   1467                                                                (line  6)
   1468 * M-p:                                   Navigating Transactions.
   1469                                                                (line  6)
   1470 * q:                                     Reconciliation.       (line  6)
   1471 * q <1>:                                 Finalize Reconciliation.
   1472                                                                (line  6)
   1473 * R:                                     Reversing Report Order.
   1474                                                                (line  6)
   1475 * RET:                                   Edit Transactions During Reconciliation.
   1476                                                                (line  6)
   1477 * S:                                     Adding and Editing Reports.
   1478                                                                (line  6)
   1479 * SPC:                                   Reconciliation.       (line  6)
   1480 * SPC <1>:                               Mark Transactions Pending.
   1481                                                                (line  6)
   1482 * t:                                     Changing Reconciliation Target.
   1483                                                                (line  6)
   1484 * TAB:                                   Adding Transactions.  (line  6)
   1485 * y:                                     Editing Amounts.      (line  6)
   1486 
   1487 
   1488 
   1489 Tag Table:
   1490 Node: Top1742
   1491 Node: Introduction to Ledger-mode2555
   1492 Node: Quick Installation2784
   1493 Node: Menus3716
   1494 Node: Quick Demo4031
   1495 Node: Quick Add4461
   1496 Node: Reconciliation5559
   1497 Node: Reports7243
   1498 Node: Narrowing8273
   1499 Node: The Ledger Buffer8857
   1500 Node: Navigating Transactions9263
   1501 Node: Adding Transactions9823
   1502 Node: Setting a Transactions Effective Date11322
   1503 Node: Quick Balance Display12222
   1504 Node: Copying Transactions12754
   1505 Node: Editing Amounts13356
   1506 Node: Marking Transactions14427
   1507 Node: Formatting Transactions16122
   1508 Node: Deleting Transactions16720
   1509 Node: Sorting Transactions17160
   1510 Node: Narrowing Transactions18712
   1511 Node: The Reconcile Buffer20562
   1512 Node: Basics of Reconciliation21027
   1513 Node: Starting a Reconciliation21976
   1514 Node: Mark Transactions Pending23825
   1515 Node: Edit Transactions During Reconciliation24494
   1516 Node: Finalize Reconciliation25137
   1517 Node: Adding and Deleting Transactions during Reconciliation25794
   1518 Node: Changing Reconciliation Account26378
   1519 Node: Changing Reconciliation Target26928
   1520 Node: The Report Buffer27246
   1521 Node: Running Basic Reports27504
   1522 Node: Adding and Editing Reports28937
   1523 Node: Expansion Formats30324
   1524 Node: Make Report Transactions Active31965
   1525 Node: Reversing Report Order32672
   1526 Node: Scheduling Transactions33365
   1527 Node: Specifying Upcoming Transactions34221
   1528 Node: Transactions that occur on specific dates34795
   1529 Node: Transactions that occur on specific days35836
   1530 Node: Customizing Ledger-mode36965
   1531 Node: Ledger-mode Customization37229
   1532 Node: Customization Variables37914
   1533 Node: Ledger Customization Group38394
   1534 Node: Ledger Reconcile Customization Group39034
   1535 Node: Ledger Report Customization Group41985
   1536 Node: Ledger Faces Customization Group42704
   1537 Node: Ledger Post Customization Group44451
   1538 Node: Ledger Exec Customization Group45278
   1539 Node: Ledger Test Customization Group45777
   1540 Node: Ledger Texi Customization Group46179
   1541 Node: Generating Ledger Regression Tests46671
   1542 Node: Embedding Example results in Ledger Documentation46934
   1543 Node: Hacking Ledger-mode47223
   1544 Node: Use org-like outlines47448
   1545 Node: Concept Index48113
   1546 Node: Command & Variable Index53629
   1547 Node: Keystroke Index61739
   1548 
   1549 End Tag Table
   1550 
   1551 
   1552 Local Variables:
   1553 coding: utf-8
   1554 End: