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.
lexima.vim provides some default rules to input pairs.
(the cursor position is represented by |
)
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
)
If g:lexima_enable_newline_rules
is 1
, the following rules are enabled.
(default value: 1
)
Before Input After
------------------------------------
{|} <CR> {
|
}
------------------------------------
{| <CR> {
|
}
------------------------------------
Same as ()
and []
.
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
.
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
If you type foo("bar
, you get
foo("bar")
and once you type 0.
, you finally get
foo("bar")foo("bar")