如何修改Sublime text 3 的默认自动补全?

2014-01-12 00:02:32 +08:00
 hhrmatata
本来在Sublime text 2 中是可以直接修改的,但是3中的默认补全是在cache文件中,如何修改?
比如,C++ 中的 if 语句的自动补全为:

if (/* condition */)
{
/* code */
}

但是我想修改为这样(大家懂的,不要讨论哪个好):

if (/* condition */) {
/* code */
}

现在有一种不完美的解决办法是自己再定义一个 snippet, 但是原来的自动补全还是会存在。

所以请问,如何直接修改默认自动补全?
19156 次点击
所在节点    Sublime Text
9 条回复
liberize
2014-01-12 09:57:25 +08:00
直接改默认的snippet? 不过这样升级后修改会丢失。
liberize
2014-01-12 10:03:19 +08:00
{SUBLIME_PATH}/Packages/C++.sublime-package
这是一个zip文件,解压后找到if-..-(if).sublime-snippet,修改即可
bearcat001
2014-01-12 14:10:17 +08:00
我赶脚修改3里面自带的东西很危险,随时可能被覆盖,还是自己定义的好,st的好处不就是自定义容易?
liberize
2014-01-12 14:49:37 +08:00
额,将修改以后的if-..-(if).sublime-snippet扔到用户的Packages/C++目录里面,应该可以覆盖默认的snippet,楼主可以试一下
hhrmatata
2014-01-12 22:22:49 +08:00
@liberize sublime text 3 里面的的Packages下已经没有C++文件夹了,这点和2不一样。所有的语法相关的文件好像都在Cache文件夹中,所有文件都是Cache文件。

将修改以后的if-..-(if).sublime-snippet扔到用户的Packages/User目录里面并没有覆盖默认的snippet,而是两个snippet同时出现在自动补全中。
hhrmatata
2014-01-12 22:23:44 +08:00
@bearcat001 自定义是挺容易的,我就是想问如何用自定义覆盖默认的snippet。
liberize
2014-01-12 23:31:59 +08:00
@hhrmatata 刚测试了一下,用户目录的snippet确实不能覆盖默认snippet,但是修改**sublime安装目录**下的Packages/C++.sublime-package压缩包里面的snippet(即默认snippet)是可以的。
ST3中自带的包都以sublime-package形式存在于安装目录下的Packages文件夹中,在用户的Packages文件夹中是没有的。
再强调一次,我说的是安装目录下。
hhrmatata
2014-01-15 10:03:15 +08:00
@liberize V2EX 自动提醒好像出问题了,现在才看到你的回复。
果然修改安装目录下的Packages/C++.sublime-package就可以了。非常感谢。

如果能在用户目录下覆盖就好了。
Troland
2014-04-07 01:17:15 +08:00
怎么我复制到安装目录下是不行的。我复制到了用户目录下了。就是选择st3中的browser packages打开的那个目录是可以用的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/96636

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX