资讯专栏INFORMATION COLUMN

vim中括号的自动补全

EdwardUp / 3148人阅读

摘要:终于深刻地理解了括号自动补全的这一功能是需要手动配置的,在豆瓣上找到了一个比较完美的版本,赶紧偷了过来。因为懒,我还添加了引号的补全功能。将以下代码粘贴到文件中传送门为什么编辑器会有括号补全这个功能括号补全小技巧

终于深刻地理解了括号自动补全[1]!vim的这一功能是需要手动配置的,在豆瓣上找到了一个比较完美的版本[2],赶紧偷了过来。因为懒,我还添加了引号的补全功能。有了这段代码,vim的括号补全就和Sublime Text 2一样一样的了(其实引号的匹配效果还是有些差距的)。

将以下代码粘贴到.vimrc文件中:

function! AutoPair(open, close)
        let line = getline(".")
        if col(".") > strlen(line) || line[col(".") - 1] == " "
                return a:open.a:close."i"
        else
                return a:open
        endif
endf

function! ClosePair(char)
        if getline(".")[col(".") - 1] == a:char
                return ""
        else
                return a:char
        endif
endf

function! SamePair(char)
        let line = getline(".")
        if col(".") > strlen(line) || line[col(".") - 1] == " "
                return a:char.a:char."i"
        elseif line[col(".") - 1] == a:char
                return ""
        else
                return a:char
        endif
endf

inoremap ( =AutoPair("(", ")")
inoremap ) =ClosePair(")")
inoremap { =AutoPair("{", "}")
inoremap } =ClosePair("}")
inoremap [ =AutoPair("[", "]")
inoremap ] =ClosePair("]")
inoremap " =SamePair(""")
inoremap " =SamePair(""")
inoremap ` =SamePair("`")
传送门

[1] 为什么编辑器会有“括号补全”这个功能?
[2] vim 括号补全小技巧

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/24804.html

相关文章

  • Vim-Auto-pairs总结

    摘要:这个时候,它和是同样的意思。但是,自动补全括号中,有一个功能,需要用到键,即键。,也就是按,再按即可。 用过Sublime的都知道,写引号、括号之类配对的文字时,它都会智能的自动补全另一边括号。同样,VIM也有很多实现它的插件。 其中比较轻量好用的有autoclose和auto-pairs,而auto-pairs更智能、更全面。 参考官网:jiangmiao/auto-pairs 官方...

    iOS122 评论0 收藏0
  • 如何优雅使用 Vim(二):插件介绍

    摘要:如何优雅的使用二插件介绍插件使用管理。文件管理器树形结构的文件管理器,目前使用。不同层次的括号颜色不一样,如下图另见然而这些彩虹括号插件,都免不了与冲突会使语法高亮失效,只好放弃了。 如何优雅的使用 Vim(二):插件介绍 插件使用 vim-plug 管理。很长一段时间,我都在用 Vundle,切换到 vim-plug 并非完全必要。 插件定义开始 call plug#begin(~...

    yeooo 评论0 收藏0
  • 征服恐惧!用 Vim 写 iOS App

    摘要:我们都知道和都是文本编辑器中的上古神器,你也许用,配合完成过大型或者的开发,你也许配合过其他插件,完成过,代码的开发,但是很少有人试过的开发吧,毕竟的框架包含了很多东西,以及天生很长的名字,让我们没办法把此神器用起来,今天我就来给大家讲下 我们都知道 Vim 和 Emacs 都是文本编辑器中的上古神器,你也许用 ctags,cscopes 配合 Vim 完成过大型 C 或者 C++ 的...

    endless_road 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<