All Projects → ledger → Vim Ledger

ledger / Vim Ledger

Licence: gpl-2.0
Vim plugin for Ledger

Projects that are alternatives of or similar to Vim Ledger

Vim Thematic
Alter Vim's appearance to suit your task & environ
Stars: ✭ 204 (-19.37%)
Mutual labels:  vim-plugin
Wavelet
Write once, run forever. Deploy robust, scalable, decentralized WebAssembly applications on Wavelet.
Stars: ✭ 224 (-11.46%)
Mutual labels:  ledger
Vim Lsp Cxx Highlight
Vim plugin for C/C++/ObjC semantic highlighting using cquery, ccls, or clangd
Stars: ✭ 231 (-8.7%)
Mutual labels:  vim-plugin
Validator.vim
Check syntax on the fly asynchronously.
Stars: ✭ 210 (-17%)
Mutual labels:  vim-plugin
Neomake
Asynchronous linting and make framework for Neovim/Vim
Stars: ✭ 2,512 (+892.89%)
Mutual labels:  vim-plugin
Vim Color Spring Night
Low-contrast calm color scheme for Vim
Stars: ✭ 227 (-10.28%)
Mutual labels:  vim-plugin
Vifm.vim
Vim plugin that allows use of vifm as a file picker
Stars: ✭ 197 (-22.13%)
Mutual labels:  vim-plugin
Vim Ghost
Vim/Nvim client for GhostText - Edit browser text areas in Vim/Neovim
Stars: ✭ 245 (-3.16%)
Mutual labels:  vim-plugin
Vim Lexical
Build on Vim’s spell/thes/dict completion
Stars: ✭ 223 (-11.86%)
Mutual labels:  vim-plugin
Indent Blankline.nvim
Indent guides for Neovim
Stars: ✭ 203 (-19.76%)
Mutual labels:  vim-plugin
Nova Vim
Nova color scheme plugin for Vim
Stars: ✭ 211 (-16.6%)
Mutual labels:  vim-plugin
Vim Sayonara
👺 Sane buffer/window deletion.
Stars: ✭ 219 (-13.44%)
Mutual labels:  vim-plugin
Pathfinder.vim
Vim plugin to suggest better movements
Stars: ✭ 228 (-9.88%)
Mutual labels:  vim-plugin
8cc.vim
C Compiler written in Vim script
Stars: ✭ 205 (-18.97%)
Mutual labels:  vim-plugin
Vim Vsnip
Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format.
Stars: ✭ 224 (-11.46%)
Mutual labels:  vim-plugin
Kronos.vim
A simple task and time manager. Project moved here:
Stars: ✭ 205 (-18.97%)
Mutual labels:  vim-plugin
Frame
System-wide Web3 for macOS, Windows and Linux
Stars: ✭ 225 (-11.07%)
Mutual labels:  ledger
Lusty
LustyExplorer / LustyJuggler for Vim
Stars: ✭ 246 (-2.77%)
Mutual labels:  vim-plugin
Vim Fibo Indent
Fibonacci Indentation for Vim.
Stars: ✭ 244 (-3.56%)
Mutual labels:  vim-plugin
Plaintextaccounting.github.io
The plaintextaccounting.org website, a portal to Ledger, hledger, beancount and co.
Stars: ✭ 230 (-9.09%)
Mutual labels:  ledger

vim-ledger

Vint Vader

Filetype detection, syntax highlighting, auto-formatting, auto-completion, and other tools for working with ledger files. Compatible with both ledger and hledger. See plaintextaccounting.org for background information and other useful links.

Usage

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

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 implemented for transactions descriptions and posting account names.

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/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].