gpt4 book ai didi

javascript - 使用变量默认占位符定义 UltiSnip

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:54 24 4
gpt4 key购买 nike

我正在使用优秀的 UltiSnips Vim plugin帮助改进我的开发工作流程。我已经使用它好几年了,它确实帮助我在编码时自动化了很多多余的输入。

无论如何:我正在尝试定义一个片段来帮助我生成 Javascript require 语句。

一个普通的 Javascript require 语句看起来像这样:

let express = require('express');

所以,这是我定义的片段:

snippet req "require a module" b
let ${1} = require('${2}');
endsnippet

这让我输入 req在 Vim 中,它将把我的光标移动到 ${1}片段中的位置,以便我可以定义变量名称。一旦我第二次点击,我的光标将移动到 ${2} 的位置。在代码片段中,这样我就可以定义要导入的实际 Javascript 模块名称。

这工作正常,但我想做的是更进一步。我想制作一个片段:

当我为 ${1} 输入值时, 值 ${2}更新为 ${1} 的值默认情况下。这样,在某些情况下,我可以节省两次输入相同模块名称的时间。

我的想法是我应该能够做这样的事情:

snippet req "require a module" b
let ${1} = require('${2:${1}}');
endsnippet

这样,如果我输入:

req<tab>express

我应该以以下扩展行结束:

let express = require('express');

但是,它在这种情况下也应该有效:

req<tab>exp<tab>express

哪个会输出:

let exp = require('express');

这有意义吗?

无论如何:我们将不胜感激!上面的代码示例并不像我想象的那样工作。 ${2:${1}}位被忽略并且没有按预期工作(它没有将 ${2} 的占位符值设置为 ${1} )。

最佳答案

以下代码段同时满足 req<tab>expressreq<tab>exp<tab>express : (稍微修改你的想法)

snippet req "require a module" b
let ${1} = require('${0:$1}');
endsnippet

$1是占位符的镜像 ${1} .也替换了 20作为片段在此占位符结束。要添加视觉 支持只需添加 ${VISUAL}到占位符。正如@lwassink 提供的说明,我只给出片段:

snippet req "require a module" b
let ${1:${VISUAL}} = require('${0:$1}');
endsnippet

关于javascript - 使用变量默认占位符定义 UltiSnip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38687756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com