我喜欢leetcode vim自动关闭大括号的方式。
" ' ( { [时,它会关闭,这可以用简单的vim映射来完成。"、'、)、}、]和skip。大多数vim插件都是这样工作的。{<cursor>}当我按enter键,它就变成
{
cursor
}我不知道哪个插件像leetcode vim一样工作。
另外,什么是解决第二问题的香草方式?
我试图通过查看插件来进行分析,但它太复杂了。
发布于 2019-07-29 14:41:46
@dlmeetei的答案将在我输入()时打印(),而转义映射则是累赘的。
因此,我改进了上面的答案,通过创建一个简单的函数,所以请纠正和改进我的想法。
"" check whether current charcter (on cursor) equals parameter
"" then decide whether to put new parenthesis
func! AutoClose(...)
let cur = getline(".")[col(".")]
if cur != a:1
if a:1 == "'" || a:1 == '"'
execute "normal!a".a:1.a:1
else
execute "normal!a".a:1
endif
execute "normal!h"
else
execute "normal!l"
endif
endfunc
inoremap ( ()<left>
inoremap [ []<left>
inoremap { {}<left>
inoremap ) <ESC>:call AutoClose(')') <CR>a
inoremap ] <ESC>:call AutoClose(']') <CR>a
inoremap } <ESC>:call AutoClose('}') <CR>a
inoremap " <ESC>:call AutoClose('"') <CR>a
inoremap ' <ESC>:call AutoClose("'") <CR>a
inoremap {<CR> {<CR>}<ESC>O
inoremap {;<CR> {<CR>};<ESC>Ohttps://stackoverflow.com/questions/57214641
复制相似问题