vim-ledger ========== This is the ledger filetype for Vim. Usage ----- Copy each file to the corresponding directory in your `~/.vim` directory or install using [Pathogen](https://github.com/tpope/vim-pathogen). 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 ledger#transaction_date_set(line('.'), 'auxiliary')` will set today's date as the auxiliary date of the current transaction. You can use also `primary` or `unshift` in place of `auxiliary`. 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 <2-LeftMouse>\ :call ledger#transaction_state_toggle(line('.'), ' *?!') * Align commodities at the decimal point. See `help ledger-tips`. * `:call ledger#entry()` will replace the text on the current line with a new transaction based on the replaced text. Configuration ------------- 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 = ' -' * 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 * By default vim will fold ledger transactions, leaving surrounding blank lines unfolded. You can use `g:ledger_fold_blanks` to hide blank lines following a transaction. let g:ledger_fold_blanks = 0 A value of 0 will disable folding of blank lines, 1 will allow folding of a single blank line between transactions; any larger value will enable folding undconditionally. Note that only lines containing no trailing spaces are considered for folding. You can take advantage of this to disable this feature on a case-by-case basis. 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 You will get a list of top-level accounts that start like this. Go ahead and try something like: As:Ban:Che 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 2019 Caleb Maclennan Copyright 2009–2017 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 .