请教一个 Vim 的 UltiSnips 插件问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cxh116
0.45D
V2EX    Vim

请教一个 Vim 的 UltiSnips 插件问题

  •  
  •   cxh116 2015-10-29 10:59:12 +08:00 2570 次点击
    这是一个创建于 3707 天前的主题,其中的信息可能已经有所发展或是发生改变。

    某些情况下,自动展开代码块功能无法触发.

    在一个 a.html 文件里面试验:

    <tr>td</tr> #在 td 后面按 tab 可以补全 <tr>right</tr> #在 right 后面按 tab 不可以补全 <tr> right</tr> #在 right 前面加一个空格,之后再在 right 后 按 tab 可以补全. 
    3 条回复    2015-10-29 14:11:00 +08:00
    yangyanggnu
        1
    yangyanggnu  
       2015-10-29 12:51:39 +08:00   1
    在定义结对符模板时,你应该考虑加上模板控制参数 i 。默认情况下, UltiSnips 只会当模板名前是空白字符或行首时才进行模板补全,比如,定义 () 的模板如下:
    snippet b "bracket"
    (${1})${2}
    endsnippet

    我要调用函数 printf(),在输入完 printf 后应该接着输入括号模板名 b ,然后输入模板展开快捷键 <leader><tab>,你会发现 UltiSnips 无法帮你补全模板,因为它看到的不是 b 而是 printfb ,这在模板文件中根本未定义。有一种间接解决方式是在 printf 后加个空格,再输入 b<leader><tab> 进行补全,这就成了 printf (),不喜欢这种编码风格。其实, UltiSnips 的作者也注意到这个问题了,他让你可以通过前面提过的模板控制参数 i 进行解决。重新定义 () 的模板如下:
    snippet b "bracket" i
    (${1})${2}
    endsnippet

    这样, UltiSnips 只管光标前 1 个字符是否是 b ,若是则补全 (),不论 b 前是否有其他字符。类似,其他结对符模板都按此加上 i 控制参数。
    tracyone
        2
    tracyone  
       2015-10-29 12:54:26 +08:00 via Android
    换一个快捷键?我默认都是用 CTRL 加 j ,来触发的。
    cxh116
        3
    cxh116  
    OP
       2015-10-29 14:11:00 +08:00
    @yangyanggnu 谢谢,加了 i 选项可以用了,用的是 https://github.com/honza/vim-snippets ,eruby 某些地方不在 i 选项太不好用了.


    @tracyone 已经是 ctrl+j 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5231 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 08:34 PVG 16:34 LAX 00:34 JFK 03:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86