我正在尝试将自己的autocompelte单词添加到sublime文本中,但它似乎无法正常工作。
我从中得到了一些帮助 http://docs.sublimetext.info/en/latest/reference/completions.html
并将我的自动完成代码写为:
{
"scope": "source.cpp",
"completions":
[
{ "trigger": "cout", "contents": "std::cout << $1" },
{ "trigger": "endl", "contents": "<< std::endl $1" },
{ "trigger": "cin", "contents": "std::cin >> $1" }
]
}
我希望每次都将cout
替换为std::cout
。
有人可以告诉我如何纠正这个问题吗?
该文件名为cpp.sublime-completions
,位于
/home/user/.config/sublime-text-3/Packages/User
答案 0 :(得分:1)
您的整体问题是C ++文件的顶级范围不是source.cpp
,而是source.c++
。因此,如果定义您的完成功能不起作用,因为Sublime没有意识到它应该应用它们。
您可以使用菜单中的Tools > Developer > Show Scope Name
或按下菜单中显示的相关键盘快捷键来检查任何给定点的范围。
另外需要注意的是,当您在此处使用仅包含单个占位符变量的片段/完成时,您可能需要将$1
替换为{{1} }}
Sublime按数字顺序在完成字段中移动,要求您按 Tab 转到下一个字段,然后按 Tab 最后一个字段&#34;退出&#34;通过将光标跳到$0
点(如果您没有明确指定它,则假定为片段中的最后一项)。
如您的示例中所定义,如果您触发示例$0
,则光标将位于cout
上,并且您将在状态行中看到$1
以提醒您你在一个片段中。键入占位符后,必须按 Tab 或 Esc 才能将片段退回正常编辑模式(各种光标操作也会取消片段模式)同样)。
这可能是你想要的,但如果你不期待它,它也会导致奇怪的莫名其妙的问题(例如,当你按<时,无法立即扩展片段或光标跳到其他地方KBD>标签)。