ledger-mode.info (68938B)
1 This is ledger-mode.info, produced by makeinfo version 6.8 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: