129 lines
4.0 KiB
Markdown
129 lines
4.0 KiB
Markdown
|
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 <silent><buffer> <2-LeftMouse>\
|
|||
|
:call ledger#transaction_state_toggle(line('.'), ' *?!')<CR>
|
|||
|
|
|||
|
* 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<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 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 <https://www.gnu.org/licenses/>.
|