Vim 魔术闭合支架
如果我能在vim中键入Vim 魔术闭合支架,vim,Vim,如果我能在vim中键入](或其他字符,可能是),并让它自动插入正确关闭开头括号的括号,那将是一件非常棒的事情。如果我的缓冲区中有这个: object(function(x) { x+[1,2,3 我按下]],字符]}将被插入。如何实现这一点?您可以将其添加到.vimrc中,它将自动关闭括号 inoremap ( ()<Left> inoremap [ []<Left> inoremap { {}<Left> inoremap() inoremap[] in
]
(或其他字符,可能是
),并让它自动插入正确关闭开头括号的括号,那将是一件非常棒的事情。如果我的缓冲区中有这个:
object(function(x) { x+[1,2,3
我按下
]]
,字符]}
将被插入。如何实现这一点?您可以将其添加到.vimrc中,它将自动关闭括号
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap { {}<Left>
inoremap()
inoremap[]
inoremap{{}
这是您可能想要的东西的草图。内置函数searchpair
和searchpairpos
对各种文本编辑任务都有很大帮助:)
要舒适地使用它,请对其进行imap
:
imap <C-e> <C-r>=CloseParen()<CR>
imap=CloseParen()
编辑:跳过了搜索regexp,因此搜索中包含了\
。现在少了一个问题。结合插件,您可以设置:
imap <c-l> <c-o>l
imap l
Autoclose将插入匹配的括号,然后ctrl-L将跳过它而不离开插入模式。对我来说,ctrl-L比ctrl-]更有意义
这是我能说的最接近你要求的:“让我每次按同一个键跳过输入正确的括号,不管括号是什么。”我不会imap](没有修饰符)你试过了吗?@khachik-
autoclose
会立即关闭括号,至少对我来说,这是相当烦人的。当我第一次被教编程时,很多理发师都告诉我一打开括号就要关闭括号。从那时起,它就一直困扰着我ks在任何编辑器中:-)我已经将nperson325681的答案扩展到了。是的,当编辑器这么做时,我总是觉得有点烦人。很难说我的上下文是什么或是什么……谢谢。没错,我在我的.vimrc:)中已经注释了这些内容。我之前已经为封闭的LaTeX环境编写了类似的解决方案。它有点笨拙,更像宏比这更有效。当有合理的事情要做的时候才有效。否则会让硬核呕吐。不过,这会让我开始的,谢谢!@luqui:真的吗?我尝试了一些无操作的情况,它对我做了正确的事情。@luqui:我现在明白了。确实有些东西需要调试。@progo:这太棒了。我对它进行了一些改进,并将其作为插件发布。你知道吗我把它放在下面有什么问题吗?
imap <c-l> <c-o>l