如何使Ultisnips(vim)仅在“>`字符后触发?

如何使Ultisnips(vim)仅在“>`字符后触发?,vim,ultisnips,Vim,Ultisnips,我想制作一个只在>符号后触发的代码段,这样,如果我在x中,我点击tab,它不会触发,但如果它在html标记(如x)后,它会触发。您可以使用插入模式映射: inoremap > ><c-o>:echoe "inside tag"<cr> inoremap < <<c-o>:echoe "outside tag"<cr> 如果你有SuperTab插件,这应该是可行的。第一个命令在键入>时禁用标记完成。第二个命令是renable

我想制作一个只在>符号后触发的代码段,这样,如果我在x中,我点击tab,它不会触发,但如果它在html标记(如x)后,它会触发。

您可以使用插入模式映射:

inoremap > ><c-o>:echoe "inside tag"<cr>
inoremap < <<c-o>:echoe "outside tag"<cr>

如果你有SuperTab插件,这应该是可行的。第一个命令在键入>时禁用标记完成。第二个命令是renables tab completion,输入Sorry时我应该更清楚,我希望tab completion字母是x,但如果前面有一个>字符,我不希望它展开。这样的话,如果我把x放在一个参数中,当我点击tab时,它不会扩展,但当我做x时,它会扩展。。我很感激你的回答,但我更愿意在我给你的Ultisnips插件中做这件事!。我有大约50个扩展,我想用它。看起来我可以用一个“trigger”正则表达式来解决这个问题,但我找不到任何实际的例子。我想在UltiSnips中解决这个问题的最好方法是使用一个上下文敏感的代码片段,见文档的第4.9节。上下文可以是计算结果为true/false的任何python表达式。因此,编写一个表达式来比较开始<和结束>的数量,并让您的代码片段仅在它们相等时触发。
inoremap > ><c-o>:silent! iunmap <c-v><tab<c-v>><cr>              
inoremap < <<c-o>:silent! imap <c-v><tab<c-v>> <Plug>SuperTabForward<cr>