工作中的一种代码约定是在方括号和括号内包括一个空格的填充。所以list[ index ],而不是list[index]。添加这些空格可能很烦人,所以我尝试编写一个代码段:

# name: Bracket
# key: [
# --
[ ${1:exp} ]

当左方括号前面有空格或行的开头时,此方法有效,但当其前面有标识符时,则无效。我认为做到这一点的一种方法是使触发器成为正则表达式:
# key: "[:ascii:]"[

或类似的东西。这有可能吗?还是有其他聪明的方法可以完成这项工作?
我正在为python编写此代码,但我认为这无关紧要。

谢谢!

最佳答案

次要模式解决方案

我也不得不处理这样的编码标准。我最初的解决方案是相同的
基于自动配对到@Francesco's

但是,实际上我想在某些情况下删除此填充,因此
次要模式更加灵活。我绝对建议与它一起使用
某种配对的定界符插入工具(我最喜欢的是自动配对)。

另请:delim-pad

使用yasnippet

继续使用yasnippet ...(BTW自动配对和
yasnippet都由João Távora编写,两者都非常强大并且
灵活的。对那个家伙表示敬意! )

即使您将“[”识别为 key ,您仍然必须保持
按下触发键以展开代码段。那会很快变得很累。

Yasnippet还允许您将代码片段直接绑定(bind)到键,因此可以使用:

# -*- mode: snippet -*-
# name: beginsquare
# binding: [
# --
[ $0 ]

关于regex - 正则表达式作为触发器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14149491/

10-10 21:15