V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
9
V2EX  ›  问与答

VIM 如何实现 Sublime Text 2 中的这种 自动完成 + snippets 一气呵成的功能?

  •  
  •   9 · Jul 3, 2012 · 5781 views
    This topic created in 5053 days ago, the information mentioned may be changed or developed.
    例如在 ST2 下,假设为php,输入 str_repl, 会弹出自动完成,然后选择 str_replace 按回车,就会显示 str_replace(search, replace, subject)。

    请问 VIM 中如何实现这种强大的功能?

    暂时想到的是 neocomplcache + snipMate 。但是仍然没有 ST2 的那么强大:

    1) 首先 snipMate 本身默认的 snippets 少得可怜,甚至可以说鸡肋。并不如 ST2 那样默认就有所有函数的 snippets,难不成要自己一个一个加? 有更好的插件推荐不?

    2) 其次在 VIM 中输入 str_repl 能弹出自动完成,但是选择后还要按一次 TAB 才能完成 str_replace(search, replace, subject)。跟 ST2 的使用体验高下立判。

    习惯使用 VIM 了,虽然 ST2 有 VIM 模式,但毕竟阉割了不少功能,用起来还是各种不爽。

    所以想请教下 ST2 的这个强大的 自动完成 + snippet 输出,在 VIM 中如何实现?
    9 replies    1970-01-01 08:00:00 +08:00
    wwwjfy
        1
    wwwjfy  
       Jul 3, 2012
    我用python,有pydiction,http://www.vim.org/scripts/script.php?script_id=850

    php就不知道了
    9
        2
    9  
    OP
       Jul 4, 2012
    @wwwjfy thanks.

    继续求解答。
    nouh
        3
    nouh  
       Jul 4, 2012
    把这个装上试试,看看snippets够不够用 https://github.com/scrooloose/snipmate-snippets
    9
        4
    9  
    OP
       Jul 4, 2012
    @nouh thanks,不过少得可怜。
    demon386
        5
    demon386  
       Jul 4, 2012
    这方面确实sublime做得好,我用Emacs,找不到一个像sublime中那么流畅的补全方法。

    承认每个编辑器的优缺点吧。
    welsonla
        6
    welsonla  
       Jul 4, 2012
    楼主何不适应sublime
    9
        7
    9  
    OP
       Jul 4, 2012
    @demon386 泪奔

    @welsonla 试过,主要是觉得在 VIM 模式下效率还是没有 VIM 高。
    cooper
        8
    cooper  
       Jul 4, 2012   ❤️ 1
    9
        9
    9  
    OP
       Jul 4, 2012
    @cooper 非常感谢!!! 在里面找到 PIV ( https://github.com/spf13/PIV )。很好用!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1150 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 17:19 · PVG 01:19 · LAX 10:19 · JFK 13:19
    ♥ Do have faith in what you're doing.