regex - 正则表达式作为触发器

标签 regex emacs yasnippet

工作中的代码约定之一是在方括号和圆括号内包含一个空格的填充。所以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/

相关文章:

java - Xpath 编译正则表达式不显示 xml 注释

Mysql SQL for "replace everything but this"where xxx

Emacs 外壳。如何在按 RET 时读取命令行的内容

emacs 24自动完成yasnippet

javascript - 在web模式下使用其他模式的yasnippets

javascript - 使用js验证邮件

emacs - 在 "Slime"(最新版本)中设置 "emacs"时,我如何告诉它更快地加载 swank?

opengl - Clojure 运行时编辑代码拆分为不同的文件

macos - 关于emacs中的自动完成和yasnippet

javascript - 匹配 CSS "<property>: <value>"的正则表达式