Thanks to Chad Voegele, see mailing list ledger-cli@googlegroups.com:
Whenever I had a transaction such as
2010/09/10 * castle bar, nyc (beer)
the transaction.from_lnum function would recognize (beer) as the code
for the transaction which is incorrect since it comes at the end of
the line.
Message ID:
73e397f4-234e-46fe-87e5-45f86f934bf1@k30g2000vbn.googlegroups.com
By using
call LedgerToggleTransactionState(line('.'), ' *?')
the state of the transaction will toggle through:
no state -> * -> ? -> no state -> …
beginning at what ever state it currently has.
Adjust to your liking.
Thanks to Chad Voegele for the suggestion.
This allows you to set the effective date in a convenient way.
Maybe I will add date selection using calendar.vim by Yasuhiro
Matsumoto. Until then, you can map this to use today's date:
call LedgerSetDate(line('.'), 'effective')
To try this, map or call the following function:
LedgerSetTransactionState('') – removes state
LedgerSetTransactionState('*') – sets 'checked' state
…
The logic used to distinguish the different parts
of the first line of a transaction is rather basic
but proved to work so far.
That is a completion which is aware of what it should complete.
Currently only account names are supported.
When you insert an account name like this:
Asse<C-X><C-O>
You will get a list of top-level accounts that start like this.
Go ahead and try something like:
As:Ban:Che<C-X><C-O>
When you have an account like this, 'Assets:Bank:Checking'
should show up.
The problem at this point is that it's recording prices in the price
database multiple times; it should only need to download a price for
each commodity once per day.
This helps to avoid confusion when an account is not
seperated from the amount by two spaces or a tab but only by one space.
In these cases the amount will now be highlighted
as if it belongs to the account name.
Thanks to user 'plaindocs' for reporting this.