制作* .sublime-completions文件,我找到了" bug"键入长函数时会发生这种情况,如:
one.two.one.two.three.four.five(One := One_var, Two := Two_Var);
所以如果你输入整个函数:
" one.two.three.four.five"然后按Tab键 - 它会粘贴另一部分功能而没有问题。
但是,如果你键入" one.two.thr" - 然后在弹出提示中看到该功能并点击" Enter"它将取代如下:
http://gestor.samfbas.com.br/index.php?p=something
{ "trigger": "one.two.three.four.five", "contents": "${TM_CURRENT_LINE/(.*)/(one.two.three.four.five)/}(One := One_var, Two := Two_Var);" },
如何配置触发器以替换" one.two.thr"纠正功能格式?
http://gestor.samfbas.com.br/something
这是我的触发器。
jQuery(function($) {
var calculate = function(n) {
var expr = n.attr('data-equation')
, ret = expr;
if (expr) {
try {
ret = math.eval(expr);
} catch(e) {
ret = 'Syntax error in equation!';
}
}
var obj = {};
obj[n.attr('id')] = ret;
math.import(obj, { override: true });
return ret;
};
$.fn.equations = function() {
$(this).each(function() {
var n = $(this);
n.focus(function() {
n.val(n.attr('data-equation'));
});
n.blur(function() {
n.attr('data-equation', n.val());
n.attr('title', n.val());
n.val(calculate(n));
});
if (!n.attr('data-equation')) {
n.blur();
}
n.val(calculate(n));
});
};
$('input').equations();
});
答案 0 :(得分:1)
这不是错误,而是Sublime Text的默认设置。默认情况下,点被视为word_separators
。因此,每次键入.
时,都将重置完成触发器。
示例:强>
我们假设我们只有以下完成项:
{
"trigger": "one.two.three",
"contents": "one.two.three.four.five"
},
{
"trigger": "two",
"contents": "it_takes_two"
}
现在,让我们在Sublime Text中键入它们(|
标记光标位置!)
one| -> will trigger "one.two.three.four.five"
one.| -> new word, forgot about "one.two.three.four.five"
one.two| -> will trigger "it_takes_two"
在最后一种情况下,两个完成将在完成弹出窗口中列出为“两个”的模糊匹配。但是,越接近匹配“两个”将具有更高的优先级。
要解决此问题,您可以在程序包设置或全局用户设置中编辑word_separators
设置。默认情况下,该设置将以下字符视为单词分隔符:
./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?
或者,您可以省略完成触发器中的点,例如使用one-two-three
代替one.two.three
。