Sublime Text 2 补全
Sublime text 2 completions
在制作 *.sublime-completions 文件时,我发现 "bug" 是在输入长函数时出现的,例如:
one.two.three.four.five(One := One_var, Two := Two_Var);
因此,如果您键入整个函数:
"one.two.three.four.five" 然后按 Tab 键 - 它会毫无问题地粘贴另一部分函数。
但是,如果您键入 "one.two.thr" - 然后在弹出提示中看到该函数并点击 "Enter",它将替换为:
one.two.one.two.three.four.five(One := One_var, Two := Two_Var);
如何配置触发器以替换 "one.two.thr" 以更正函数格式?
这是我的触发器。
{ "trigger": "one.two.three.four.five", "contents": "${TM_CURRENT_LINE/(.*)/(one.two.three.four.five)/}(One := One_var, Two := Two_Var);" },
这不是错误,而是 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"
在最后一种情况下,两个补全都将列在补全弹出窗口中,以模糊匹配“two”。但是,更接近匹配的“two”将具有更高的优先级。
要解决此问题,您可以在程序包设置或全局用户设置中编辑 word_separators
设置。默认情况下,该设置将以下字符视为单词分隔符:
./\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?
或者,您可以省略完成触发器中的点,例如使用 one-two-three
而不是 one.two.three
.
在制作 *.sublime-completions 文件时,我发现 "bug" 是在输入长函数时出现的,例如:
one.two.three.four.five(One := One_var, Two := Two_Var);
因此,如果您键入整个函数:
"one.two.three.four.five" 然后按 Tab 键 - 它会毫无问题地粘贴另一部分函数。
但是,如果您键入 "one.two.thr" - 然后在弹出提示中看到该函数并点击 "Enter",它将替换为:
one.two.one.two.three.four.five(One := One_var, Two := Two_Var);
如何配置触发器以替换 "one.two.thr" 以更正函数格式?
这是我的触发器。
{ "trigger": "one.two.three.four.five", "contents": "${TM_CURRENT_LINE/(.*)/(one.two.three.four.five)/}(One := One_var, Two := Two_Var);" },
这不是错误,而是 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"
在最后一种情况下,两个补全都将列在补全弹出窗口中,以模糊匹配“two”。但是,更接近匹配的“two”将具有更高的优先级。
要解决此问题,您可以在程序包设置或全局用户设置中编辑 word_separators
设置。默认情况下,该设置将以下字符视为单词分隔符:
./\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?
或者,您可以省略完成触发器中的点,例如使用 one-two-three
而不是 one.two.three
.