工作中的代码约定之一是在方括号和圆括号内包含一个空格的填充。所以list[ index ]
,不是 list[index]
.添加这些空格可能很烦人,所以我尝试写一个片段:
# name: Bracket
# key: [
# --
[ ${1:exp} ]
这在方括号前面有空格或行首时有效,但在其前面有标识符时无效。我认为这样做的一种方法是将触发器设为正则表达式:
# key: "[:ascii:]"[
或类似的东西。这甚至可能吗?或者还有其他一些聪明的方法来完成这项工作吗?
我正在为 python 写这个,但我认为这无关紧要。
谢谢!
最佳答案
我不知道 YASnippet,但是使用 autopair 可以轻松实现您想要的(可以通过打包系统安装):
(defun autopair-space-after-bracket (action pair pos-before)
(when (and (eq action 'opening)
(eq pair ?\]))
(insert " ")
(backward-char)))
(setq autopair-handle-action-fns (list #'autopair-default-handle-action
#'autopair-space-after-bracket))
使用这个,并从以下情况开始(
|
标记点位置):
list|
然后插入
[
产量:
list[ | ]
关于regex - 正则表达式作为触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149491/