Visual studio code vs代码中重新构造的文本中的标题片段

Visual studio code vs代码中重新构造的文本中的标题片段,visual-studio-code,emacs,restructuredtext,vscode-snippets,yasnippet,Visual Studio Code,Emacs,Restructuredtext,Vscode Snippets,Yasnippet,在重新构造的文本中,标题以相同数量的非字母数字7位ASCII书写 字符作为标题文本。下划线和上划线(如果两者都使用)应相等,且至少与标题文本一样长。从: 标题加下划线(或超过)- (和下划线)带有打印 非数字7位ASCII码 性格推荐的选择 是“=-`:'”~^+”。 下划线/上划线必须位于 至少与标题文本一样长 标题的示例 ========================================================= Main titles are written usin

在重新构造的文本中,标题以相同数量的非字母数字7位ASCII书写 字符作为标题文本。下划线和上划线(如果两者都使用)应相等,且至少与标题文本一样长。从:

标题加下划线(或超过)- (和下划线)带有打印 非数字7位ASCII码 性格推荐的选择 是“
=-`:'”~^+
”。 下划线/上划线必须位于 至少与标题文本一样长

标题的示例

=========================================================
Main titles are written using equals signs over and under
=========================================================
我想为此创建一个VS代码段。我能做的只是

"Title RST": {
    "prefix": "title",
    "body": [
      "="
      "$1"
      "=\n"
      "$0"
    ],
    "description": "Title for restructured text"
  }
有没有办法知道要键入的文本的长度,并相应地插入相同数量的上划线和下划线
=

在这方面,他们的做法如下:

${1:$(make-string (string-width yas-text) ?\=)}
${1:Title}
${1:$(make-string (string-width yas-text) ?\=)}

$0
如何在VS code中实现这样的代码片段,有什么帮助吗?我在
重组文本
扩展中的代码片段下查找了VS code,但找不到适合我需要的代码片段

  "Title RST": {
    "prefix": "title",
    "body": [
      "${1/./=/g}",
      "$1",
      "${1/./=/g}",
      "$0"
    ],
    "description": "Title for restructured text"
  },
转换
${1//=/g}
只需将文本
$1
中的每个字符替换为文本上方和下方行中的
=

代码段条目末尾需要逗号,不需要换行符,因为代码段正文中的另一行已经是换行符

当您键入文本时,点击Tab,转换将完成


您询问是否可以在键入标题文本后立即将over/下划线显示为
=
s。但是,对于vscode代码段,这是不可能的,需要进行转换,直到选项卡出现

可以使用版本进行设置(设置起来比普通vscode片段要麻烦一些,但不多):


很好的解决方法。但是有没有办法在三行后键入标题并按
选项卡时,在上方和下方加下划线?没有,不是简单的vscode片段,到
=
的转换只能在选项卡上进行。有一个扩展名HyperSnips,可以满足您的需要。我编辑了我发誓要展示一个HyperSnips版本。它们比vscode代码片段更强大,因为它们可以运行javascript。这正是我想要的。谢谢。
snippet title "Title" A
``rv =  '='.repeat(t[0].length)``
$1
``rv = '='.repeat(t[0].length)``
endsnippet