我正在使用Sublime Text来编码我的网站,其中我有一个包含许多功能的JavaScript文件.我经常使用这些功能,每次我都这样做,我必须输出整个功能.
我注意到,对于每个函数,我都可以创建一个带有快捷方式的Sublime Text片段.然而,有一个巨大的功能列表,他们不断变化.
有没有办法在我可以导入这个JavaScript文件并创建这个片段文件,这样我就可以使用我的自动填充功能了?
我想为Sublime Text 2或3制作片段,它将产生以下代码:
initial - somename
with upper case - Somename
Run Code Online (Sandbox Code Playgroud)
并且somename是总是不同的文本.
我的草稿:
<snippet>
<content><![CDATA[
initial - ${2:somename}
with upper case - ${2:somename}
]]></content>
</snippet>
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能在参数中仅大写第一个字母?
我正在尝试为javascript 语句编写SublimeText 代码段import.我希望格式格式如下:
import MyFooBar from 'my-foo-bar';
Run Code Online (Sandbox Code Playgroud)
我的正则表达式的输入是MyFooBar,输出需要my-foo-bar.我找到了一个几乎可以在Regex中使用的答案- CamelCase用下划线小写:
搜索
((?<=.)[A-Z][a-zA-Z]*)|((?<=[a-zA-Z])\d+)用...来代替
-$1$2
答案说只是使用javascript的.toLowerCase()方法进行小写,但SublimeText片段使用perl,其中我有最简洁的知识.快速搜索说,对于小写,我可以\L在我更换的开始使用.
/((?<=.)[A-Z][a-zA-Z0-9]*)|((?<=[a-zA-Z])\d+)/\L-\1\2/g
Run Code Online (Sandbox Code Playgroud)
这适用于除第一段的角色以外的所有角色,因此MyFooBar变为My-foo-bar.
我想也许我可以按顺序运行两个正则表达式,但perl或Sublime都无法识别.
思考?
编辑:
当我说它使用perl时,我只是说它使用perl正则表达式.据我所知,我实际上无法执行任意代码; 我只能指定perl可以执行的正则表达式.
这是我的代码段的全文:
<snippet>
<content><![CDATA[
import ${1:module} from '${2:./path/}${1/((?<=.)[A-Z][a-zA-Z0-9]*)|((?<=[a-zA-Z])\d+)/\L-\1\2/g}';
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>import</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.js</scope>
</snippet>
Run Code Online (Sandbox Code Playgroud) 默认情况下,Sublime能够在突出显示的文本中添加括号,方括号(卷曲和正方形),撇号和引号。我已经尝试过了,但是似乎找不到一种将其删除的方法。我想做的是突出显示一些用括号括起来的文本,并将其删除。是否有使用片段实现此目的的好方法?
我怀疑这可以通过使用allFollowingCharacter和allPrecedingCharacter来完成,但是当它们使用XML而不是当前的JSON时,似乎这些可能来自Sublime的先前版本...?
任何帮助,将不胜感激!
我正在尝试创建一个用于启动 LaTex 文档的片段,其中包和所有内容都已填写,但我也希望它自动填写日期。我有 insertdate 包,但我不明白如何使用它。我有片段代码:
<snippet>
<content><![CDATA[
\documentclass{article}
\usepackage{amsmath}
\title{${1:title}}
\author{...}
\date{[Todays date here automatically]}
\begin{document}
\maketitle
$0
\end{document}
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>document</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>text.tex.latex</scope> -->
</snippet>
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个片段,该片段将根据一个变量(路由器接口名称)的输入执行 3 件事。我已经使正则表达式正常工作,但它是单独工作的。
remove xx- >>>>> IS-${310/\w{2}-//g}-BUSINESS
replace / with _ >>>>> IS-${310/\//_/g}-BUSINESS
ae make it capital >>>>> IS-${310/(ae)/\U$1/g}-BUSINESS
Run Code Online (Sandbox Code Playgroud)
所以如果我进入一个普通的路由器接口,比如 ge-1/2/21
结果应该是 > IS-1_2_21-BUSINESS
但是如果我进入像ae31这样的界面
它应该使它成为资本 >>>> IS-AE31-BUSINESS
我想为我的开发添加一些自定义标签 - 但我不知道该怎么做.
我尝试过片段,但它不起作用,因为我的标签有一些特殊的符号.如何添加标签以使代码段有效?
例如:当我填写z_zsublime文本时,它会自动填充:
print("<pre>".print_r($files,true)."</pre>");
Run Code Online (Sandbox Code Playgroud)
当我填写时z_d,它将自动填充:
echo "<pre>" . preg_replace("/\]\=\>\n(\s+)/m", "] => ", $dump) . "</pre>";
Run Code Online (Sandbox Code Playgroud) 我的关于 .vue 类型苍蝇的 sublime 片段有一个非常烦人的问题。
假设我想自己在 sublime 中添加一个 vue 片段,并且我希望下面的 vue tabtrigger 仅适用于 vue 类型文件。
我将这些代码添加到我的vue.sublime-snippet:
<snippet>
<content><![CDATA[
Some text
]]></content>
<tabTrigger>vue</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.vue</scope>
</snippet>
Run Code Online (Sandbox Code Playgroud)
将此文件保存在我的 sublime 文件夹中后,我创建一个test.vue文件并键入vue,然后按 Tab。
但什么也没发生。我期望的是Some text在test.vue文件中切换后可能会出现。
为什么我的代码段不适用于 vue 文件?
PS:我在我的代码片段中更改source.vue为source.js source.php,etc 并在相应的 js、php 文件中进行了测试,它们都可以正常工作。只有 vue 没有成功。sublime 识别 vue 类型文件有什么问题吗?如何解决这个问题呢?
有谁知道我如何识别Sublime Text 3代码片段的来源?Rails有一个我认为来自某个包的东西.我已经卸载了所说的软件包,但代码片段仍可供使用.这让我疯了
sublimetext3 ×6
regex ×2
sublimetext ×2
autocomplete ×1
latex ×1
pcre ×1
sublimetext2 ×1
vue.js ×1