90 lines
3.7 KiB
Text
90 lines
3.7 KiB
Text
|
|
|||
|
This is the ledger filetype for vim.
|
|||
|
Copy each file to the corresponding directory in your ~/.vim directory.
|
|||
|
Then include the following line in your .vimrc or in ~/.vim/filetype.vim
|
|||
|
au BufNewFile,BufRead *.ldg,*.ledger setf ledger | comp ledger
|
|||
|
You can also use a modeline like this in every ledger file
|
|||
|
vim:filetype=ledger
|
|||
|
|
|||
|
Tips and useful commands
|
|||
|
======================================================================
|
|||
|
• Try account-completion (as explained below)
|
|||
|
• :call LedgerSetDate(line('.'), 'effective')
|
|||
|
will set today's date as the effective date of the current
|
|||
|
transaction. You can use also 'actual' in place of 'effective'
|
|||
|
or pass in a different date measured as seconds since 1st Jan 1970.
|
|||
|
• :call LedgerSetTransactionState(line('.'), '*')
|
|||
|
sets the state of the current transaction to '*'. You can
|
|||
|
use this in custom mappings.
|
|||
|
• :call LedgerToggleTransactionState(line('.'), ' *?!')
|
|||
|
will toggle through the provided transaction states.
|
|||
|
You can map this to double-clicking for example:
|
|||
|
noremap <silent><buffer> <2-LeftMouse>
|
|||
|
\ :call LedgerToggleTransactionState(line('.'), ' *?!')<CR>
|
|||
|
|
|||
|
Configuration
|
|||
|
======================================================================
|
|||
|
Include the following let-statements somewhere in your .vimrc
|
|||
|
to modify the behaviour of the ledger filetype.
|
|||
|
|
|||
|
* Number of colums 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 <C-K> followed by the two-characters key sequence below.
|
|||
|
(in insert-mode)
|
|||
|
'. = ˙ or ': = ¨ --> ˙˙˙˙˙˙ or ¨¨¨¨¨¨
|
|||
|
', = ¸ --> ¸¸¸¸¸¸
|
|||
|
.M = · --> ······
|
|||
|
>> = » --> »»»»»»
|
|||
|
All those look rather unobstrusive
|
|||
|
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
|
|||
|
|
|||
|
Completion
|
|||
|
======================================================================
|
|||
|
Omni completion is currently implemented for account names only.
|
|||
|
|
|||
|
Accounts
|
|||
|
----------------------------------------------------------------------
|
|||
|
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.
|
|||
|
|
|||
|
License
|
|||
|
======================================================================
|
|||
|
Copyright 2011-2009 by Johann Klähn
|
|||
|
Copyright 2009 by Stefan Karrmann
|
|||
|
Copyright 2005 by 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/>.
|
|||
|
|