vim-ledger


Ⅰ. 插件描述

Vim plugin for Ledger

Ⅱ. 基本信息

创建日期:  2009-06-15
使用用户:  226
Github星:  220
插件作者:  Ledger

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'ledger/vim-ledger'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'ledger/vim-ledger'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'ledger/vim-ledger'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/ledger/vim-ledger

Ⅳ. 文档说明

vim-ledger

Vint

Filetype detection, syntax highlighting, auto-formatting, auto-completion, and
other tools for working with ledger files. Compatible with both [ledger
][ledgercli] 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

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

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

添加新评论