lexima.vim


Ⅰ. 插件描述

Auto close parentheses and repeat by dot dot dot...

Ⅱ. 基本信息

创建日期:  2014-08-28
使用用户:  487
Github星:  472
插件作者:  cohama

Ⅲ. 安装方法

使用Vundle管理器安装

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

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

使用NeoBundle管理器安装

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

使用VimPlug管理器安装

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

使用Pathogen管理器安装

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

Ⅳ. 文档说明

lexima.vim

Build Status

Auto close parentheses and repeat by dot dot dot...

Basically, you can automatically close pairs such as (), {}, "", ...
But in advance, you can also customize the rule to automatically input
any character on any context.

Screen Shots

Screen Shot

DEFAULT RULES

lexima.vim provides some default rules to input pairs.
(the cursor position is represented by |)

Basic Rules

If g:lexima_enable_basic_rules is 1, the following rules are enabled.
(default value: 1)

Before        Input         After
------------------------------------
|             (             (|)
------------------------------------
|             "             "|"
------------------------------------
""|           "             """|"""
------------------------------------
''|           '             '''|'''
------------------------------------
\|            [             \[|
------------------------------------
\|            "             \"|
------------------------------------
\|            '             \'|
------------------------------------
I|            'm            I'm|
------------------------------------
(|)           )             ()|
------------------------------------
'|'           '             ''|
------------------------------------
(|)           <BS>          |
------------------------------------
'|'           <BS>          |
------------------------------------

and much more... (See g:lexima#default_rules at autoload/lexima.vim)

New Line Rules

If g:lexima_enable_newline_rules is 1, the following rules are enabled.
(default value: 1)

Before        Input         After
------------------------------------
{|}           <CR>          {
                                |
                            }
------------------------------------
{|            <CR>          {
                                |
                            }
------------------------------------

Same as () and [].

Endwise Rules

If g:lexima_enable_endwise_rules is 1, the following rules are enabled.
(default value: 1)

For example, in ruby filetype

Before        Input         After
--------------------------------------
if x == 42|   <CR>          if x == 42
                                |
                            end
--------------------------------------
def foo()|    <CR>          def foo()
                                |
                            end
--------------------------------------
bar.each do|  <CR>          bar.each do
                                |
                            end
--------------------------------------

and same as module, class, while and so on.

In vim filetype, function, if, while ... rules are available.
And also you can use in sh (zsh) such as if, case.

CUSTOMIZATION

lexima.vim provides highly customizable interface.
You can define your own rule by using lexima#add_rule().

" Please add below in your vimrc
call lexima#add_rule({'char': '$', 'input_after': '$', 'filetype': 'latex'})
call lexima#add_rule({'char': '$', 'at': '\%#\$', 'leave': 1, 'filetype': 'latex'})
call lexima#add_rule({'char': '<BS>', 'at': '\$\%#\$', 'delete': 1, 'filetype': 'latex'})

You will get

Before  Input   After
---------------------
|       $       $|$
---------------------
$|$     $       $$|
---------------------
$|$     <BS>    |
---------------------

These rules are enabled at only latex filetype.
For more information, please see :help lexima-customization

DOT REPEATABLE

If you type foo("bar, you get

foo("bar")

and once you type 0., you finally get

foo("bar")foo("bar")

添加新评论