$archiver NSKeyedArchiver $objects $null $class CF$UID 37 NS.objects CF$UID 2 $class CF$UID 33 NS.keys CF$UID 3 CF$UID 4 CF$UID 5 NS.objects CF$UID 6 CF$UID 7 CF$UID 35 Title Text Date Untitled Snapshot $class CF$UID 34 NSAttributes CF$UID 10 NSDelegate CF$UID 0 NSString CF$UID 8 $class CF$UID 9 NS.string The @command{xact} commands simplifies the creation of new transactions. It works on the principle that 80% of all postings are variants of earlier postings. Here's how it works: Say you currently have this posting in your ledger file: @smallexample 2004/03/15 * Viva Italiano Expenses:Food $12.45 Expenses:Tips $2.55 Liabilities:MasterCard $-15.00 @end smallexample Now it's @samp{2004/4/9}, and you've just eating at @samp{Viva Italiano} again. The epost amounts are different, but the overall form is the same. With the @command{xact} command you can type: @example ledger xact 2004/4/9 viva food 11 tips 2.50 @end example This produces the following output: @smallexample 2004/04/09 Viva Italiano Expenses:Food $11.00 Expenses:Tips $2.50 Liabilities:MasterCard $-13.50 @end smallexample It works by finding a past posting matching the regular expression @samp{viva}, and assuming that any accounts or amounts specified will be similar to that earlier posting. If Ledger does not succeed in generating a new transaction, an error is printed and the exit code is set to @samp{1}. There is a shell script in the distribution's @file{scripts} directory called @file{xact}, which simplifies the task of adding a new transaction to your ledger. It launches @command{vi} to confirm that the transaction looks appropriate. Here are a few more examples of the @command{xact} command, assuming the above journal transaction: @example ledger xact 4/9 viva 11.50 ledger xact 4/9 viva 11.50 checking # (from `checking') ledger xact 4/9 viva food 11.50 tips 8 ledger xact 4/9 viva food 11.50 tips 8 cash ledger xact 4/9 viva food $11.50 tips $8 cash ledger xact 4/9 viva dining "DM 11.50" @end example $classes NSMutableString NSString NSObject $classname NSMutableString $class CF$UID 33 NS.keys CF$UID 11 CF$UID 12 NS.objects CF$UID 13 CF$UID 30 NSParagraphStyle NSFont $class CF$UID 29 NSAlignment 4 NSLineHeightMultiple 1.1000000238418579 NSTabStops CF$UID 14 $class CF$UID 28 NS.objects CF$UID 15 CF$UID 17 CF$UID 18 CF$UID 19 CF$UID 20 CF$UID 21 CF$UID 22 CF$UID 23 CF$UID 24 CF$UID 25 CF$UID 26 CF$UID 27 $class CF$UID 16 NSLocation 28 $classes NSTextTab NSObject $classname NSTextTab $class CF$UID 16 NSLocation 56 $class CF$UID 16 NSLocation 84 $class CF$UID 16 NSLocation 112 $class CF$UID 16 NSLocation 140 $class CF$UID 16 NSLocation 168 $class CF$UID 16 NSLocation 196 $class CF$UID 16 NSLocation 224 $class CF$UID 16 NSLocation 252 $class CF$UID 16 NSLocation 280 $class CF$UID 16 NSLocation 308 $class CF$UID 16 NSLocation 336 $classes NSArray NSObject $classname NSArray $classes NSParagraphStyle NSObject $classname NSParagraphStyle $class CF$UID 32 NSName CF$UID 31 NSSize 14 NSfFlags 16 Courier $classes NSFont NSObject $classname NSFont $classes NSDictionary NSObject $classname NSDictionary $classes KBWordCountingTextStorage NSTextStorage NSMutableAttributedString NSAttributedString NSObject $classname KBWordCountingTextStorage $class CF$UID 36 NS.time 267380388.79372501 $classes NSDate NSObject $classname NSDate $classes NSMutableArray NSArray NSObject $classname NSMutableArray $top Snapshots CF$UID 1 $version 100000