This is the ledger filetype for Vim.
Copy each file to the corresponding directory in your ~/.vim
directory or
install using Pathogen.
You can also use a modeline like this in every ledger file:
vim:filetype=ledger
-
Try account-completion (as explained below)
-
:call ledger#transaction_date_set(line('.'), 'auxiliary')
will set today's date as the auxiliary date of the current transaction. You can use also
primary
orunshift
in place ofauxiliary
. When you pass "unshift" the old primary date will be set as the auxiliary date and today's date will be set as the new primary date. To use a different date pass a date measured in seconds since 1st Jan 1970 as the third argument. -
:call ledger#transaction_state_set(line('.'), '*')
sets the state of the current transaction to '*'. You can use this in custom mappings.
-
:call ledger#transaction_state_toggle(line('.'), ' *?!')
will toggle through the provided transaction states. You can map this to double-clicking for example:
noremap <silent><buffer> <2-LeftMouse>\ :call ledger#transaction_state_toggle(line('.'), ' *?!')<CR>
Include the following let-statements somewhere in your .vimrc
to modify the
behaviour of the ledger filetype.
-
Number of columns that will be used to display the foldtext. Set this when you think that the amount is too far off to the right.
let g:ledger_maxwidth = 80
-
String that will be used to fill the space between account name and amount in the foldtext. Set this to get some kind of lines or visual aid.
let g:ledger_fillstring = ' -'
My special tip is to use so-called digraphs: Press followed by the two-characters key sequence below. (in insert-mode)
'. = ˙ or ': = ¨ --> ˙˙˙˙˙˙ or ¨¨¨¨¨¨ ', = ¸ --> ¸¸¸¸¸¸ .M = · --> ······ >> = » --> »»»»»»
All those look rather unobtrusive and provide a good visual aid to find the correct amount.
-
If you want the account completion to be sorted by level of detail/depth instead of alphabetical, include the following line:
let g:ledger_detailed_first = 1
Omni completion is currently implemented for account names only.
Account names are matched by the start of every sub-level. 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.
When you want to complete on a virtual transaction, it's currently best to keep the cursor in front of the closing bracket. Of course you can insert the closing bracket after calling the completion, too.
Copyright 2009-2013 Johann Klähn
Copyright 2009 Stefan Karrmann
Copyright 2005 Wolfgang Oertl
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.