这是我正在使用的当前片段
snippet req
const ${1:} = require('$1');
您可能已经猜到它适用于我从npm
安装的软件包,但对本地文件不太好。假设我有../user.js
的文件,我希望将其包含在我的nodejs项目中,而不是显示为
const ../user.js = require('../user.js');
我希望它成为
const user = require('../user.js');
从我的假设我将以某种方式必须使用/
分割文件路径获取最后一个元素并在使用.
爆炸后再次获得第一个元素,这将适用于全局安装和本地文件包含。问题是我是snipmate
的新手,并且没有想出如何实现这一目标。非常感谢任何正确方向的推动。在此先感谢帮助我。
参考snipmate文档here,我发现我可以使用system
来利用标准的unix命令对字符串执行操作。现在我仍然坚持如何在系统内完全传递$1
。这是我有的更新代码
snippet req
const `system('echo $1')` = require('${1:}');
答案 0 :(得分:3)
原始的snipMate无法操作镜像的tabstops;我认为UltiSnips允许这样做。 (`...`
插值仅在代码段扩展期间执行;您无法将$1
传递到其中。)
如果您不想切换,可以将包含文件的定义拆分为路径和模块名称,并仅将后者镜像到变量名称中:
snippet req
const $2 = require('${1:path/}${2:module}');
答案 1 :(得分:1)
我没有设置您的代码段,但现在您可以将其发送给bash,我假设您可以通过grep
管理它以获取值的一部分你要。如果您输入../models/user.js
之类的内容,则只需将user.js
拉出来。
snippet req
const `system('echo $1 | grep -Po "(?<=/)[^/]*$"')` = require('${1:}');