V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wentian
V2EX  ›  Vim

Vim 如何做到「括号等符号的补全」?(如同 IDE 那般智能)

  •  
  •   wentian · 2016-02-22 20:55:21 +08:00 · 3394 次点击
    这是一个创建于 2987 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有如下需求(基本就是 IDE 中那些功能)
    1 自动出右半边
    2 删除时,自动删除配套的右半边
    3 能够跳出
    4 智能识别(如果右边已经有一个了,那么不自动补全)

    我自己实现了一个(但是很不够用)
    inoremap ( ()<left>
    inoremap [ []<left>
    inoremap " ""<left>
    inoremap ' ''<left>
    inoremap { {}<left>

    搜索了一圈,也没有理想结果(可能是关键词组织不对)
    8 条回复    2016-02-23 18:36:14 +08:00
    Frapples
        1
    Frapples  
       2016-02-22 22:06:43 +08:00   ❤️ 1
    推荐 delimitMate 插件:
    https://github.com/Raimondi/delimitMate

    注:记得打开以下选项。在输入{之后,会补全}。之后你如果再按回车的话,该选项能自动添加一行并自动缩进。你试试就知道了。
    let g:delimitMate_expand_cr = 1
    Neveroldmilk
        2
    Neveroldmilk  
       2016-02-22 22:54:17 +08:00
    装插件啊, VIM 就是靠这个为生的。
    wentian
        3
    wentian  
    OP
       2016-02-22 22:56:55 +08:00
    @Frapples Thanks. 果然是关键词组织不好,「 auto completion quotes 」,一下找到好多现成的
    ;)
    epkT6QJ3RSaz6AnJ
        4
    epkT6QJ3RSaz6AnJ  
       2016-02-23 00:32:45 +08:00
    可以试试这个
    The ultimate vim distribution http://vim.spf13.com
    yangyanggnu
        5
    yangyanggnu  
       2016-02-23 10:34:53 +08:00
    平时,最让我头痛的字符莫过于 {}、""、[] 等这类结对符,输入它们之所以麻烦,主要因为 A )盲打很难找准它们位置, B )还得同时按住 shift 键。两者再一叠加,非常影响我的思维。要高效输入结对符,应该是输入少量几个字母(对,字母,不是字符)后 vim 自动为你输入完整结对符,而非是我输入一半 vim 输入另一半(不用 delimitMate 的原因)。刚好,这在 UltiSnips 能力范围内,只要定义好模板,可完美地解决这类问题

    https://github.com/yangyangwithgnu/use_vim_as_ide#8.1
    knightdf
        6
    knightdf  
       2016-02-23 11:41:35 +08:00
    成对的符号我都是手打。。。习惯了
    wentian
        7
    wentian  
    OP
       2016-02-23 11:44:41 +08:00
    @yangyanggnu 昨晚试了 deleteMate,感觉问题解决了
    UltiSips 非常棒,但是要花点时间
    btw, UltiSnips 与 snipMate 有什么不同吗
    suixn
        8
    suixn  
       2016-02-23 18:36:14 +08:00
    原来自己折腾,后来用了别人的,基本也就不折腾了。
    https://github.com/ma6174/vim
    这个不错。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1035 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:48 · PVG 02:48 · LAX 11:48 · JFK 14:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.