<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>$archiver</key> <string>NSKeyedArchiver</string> <key>$objects</key> <array> <string>$null</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>37</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> <integer>2</integer> </dict> </array> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>33</integer> </dict> <key>NS.keys</key> <array> <dict> <key>CF$UID</key> <integer>3</integer> </dict> <dict> <key>CF$UID</key> <integer>4</integer> </dict> <dict> <key>CF$UID</key> <integer>5</integer> </dict> </array> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> <integer>6</integer> </dict> <dict> <key>CF$UID</key> <integer>7</integer> </dict> <dict> <key>CF$UID</key> <integer>35</integer> </dict> </array> </dict> <string>Title</string> <string>Text</string> <string>Date</string> <string>Untitled Snapshot</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>34</integer> </dict> <key>NSAttributes</key> <dict> <key>CF$UID</key> <integer>10</integer> </dict> <key>NSDelegate</key> <dict> <key>CF$UID</key> <integer>0</integer> </dict> <key>NSString</key> <dict> <key>CF$UID</key> <integer>8</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>9</integer> </dict> <key>NS.string</key> <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</string> </dict> <dict> <key>$classes</key> <array> <string>NSMutableString</string> <string>NSString</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSMutableString</string> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>33</integer> </dict> <key>NS.keys</key> <array> <dict> <key>CF$UID</key> <integer>11</integer> </dict> <dict> <key>CF$UID</key> <integer>12</integer> </dict> </array> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> <integer>13</integer> </dict> <dict> <key>CF$UID</key> <integer>30</integer> </dict> </array> </dict> <string>NSParagraphStyle</string> <string>NSFont</string> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>29</integer> </dict> <key>NSAlignment</key> <integer>4</integer> <key>NSLineHeightMultiple</key> <real>1.1000000238418579</real> <key>NSTabStops</key> <dict> <key>CF$UID</key> <integer>14</integer> </dict> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>28</integer> </dict> <key>NS.objects</key> <array> <dict> <key>CF$UID</key> <integer>15</integer> </dict> <dict> <key>CF$UID</key> <integer>17</integer> </dict> <dict> <key>CF$UID</key> <integer>18</integer> </dict> <dict> <key>CF$UID</key> <integer>19</integer> </dict> <dict> <key>CF$UID</key> <integer>20</integer> </dict> <dict> <key>CF$UID</key> <integer>21</integer> </dict> <dict> <key>CF$UID</key> <integer>22</integer> </dict> <dict> <key>CF$UID</key> <integer>23</integer> </dict> <dict> <key>CF$UID</key> <integer>24</integer> </dict> <dict> <key>CF$UID</key> <integer>25</integer> </dict> <dict> <key>CF$UID</key> <integer>26</integer> </dict> <dict> <key>CF$UID</key> <integer>27</integer> </dict> </array> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>28</real> </dict> <dict> <key>$classes</key> <array> <string>NSTextTab</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSTextTab</string> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>56</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>84</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>112</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>140</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>168</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>196</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>224</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>252</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>280</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>308</real> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>16</integer> </dict> <key>NSLocation</key> <real>336</real> </dict> <dict> <key>$classes</key> <array> <string>NSArray</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSArray</string> </dict> <dict> <key>$classes</key> <array> <string>NSParagraphStyle</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSParagraphStyle</string> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>32</integer> </dict> <key>NSName</key> <dict> <key>CF$UID</key> <integer>31</integer> </dict> <key>NSSize</key> <real>14</real> <key>NSfFlags</key> <integer>16</integer> </dict> <string>Courier</string> <dict> <key>$classes</key> <array> <string>NSFont</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSFont</string> </dict> <dict> <key>$classes</key> <array> <string>NSDictionary</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSDictionary</string> </dict> <dict> <key>$classes</key> <array> <string>KBWordCountingTextStorage</string> <string>NSTextStorage</string> <string>NSMutableAttributedString</string> <string>NSAttributedString</string> <string>NSObject</string> </array> <key>$classname</key> <string>KBWordCountingTextStorage</string> </dict> <dict> <key>$class</key> <dict> <key>CF$UID</key> <integer>36</integer> </dict> <key>NS.time</key> <real>267380388.79372501</real> </dict> <dict> <key>$classes</key> <array> <string>NSDate</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSDate</string> </dict> <dict> <key>$classes</key> <array> <string>NSMutableArray</string> <string>NSArray</string> <string>NSObject</string> </array> <key>$classname</key> <string>NSMutableArray</string> </dict> </array> <key>$top</key> <dict> <key>Snapshots</key> <dict> <key>CF$UID</key> <integer>1</integer> </dict> </dict> <key>$version</key> <integer>100000</integer> </dict> </plist>