V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hhrmatata
V2EX  ›  Sublime Text

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

  •  
  •   hhrmatata · 2014-01-12 00:02:32 +08:00 · 19180 次点击
    这是一个创建于 4000 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本来在Sublime text 2 中是可以直接修改的,但是3中的默认补全是在cache文件中,如何修改?
    比如,C++ 中的 if 语句的自动补全为:

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

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

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

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

    所以请问,如何直接修改默认自动补全?
    9 条回复    1970-01-01 08:00:00 +08:00
    liberize
        1
    liberize  
       2014-01-12 09:57:25 +08:00
    直接改默认的snippet? 不过这样升级后修改会丢失。
    liberize
        2
    liberize  
       2014-01-12 10:03:19 +08:00
    {SUBLIME_PATH}/Packages/C++.sublime-package
    这是一个zip文件,解压后找到if-..-(if).sublime-snippet,修改即可
    bearcat001
        3
    bearcat001  
       2014-01-12 14:10:17 +08:00 via iPhone
    我赶脚修改3里面自带的东西很危险,随时可能被覆盖,还是自己定义的好,st的好处不就是自定义容易?
    liberize
        4
    liberize  
       2014-01-12 14:49:37 +08:00
    额,将修改以后的if-..-(if).sublime-snippet扔到用户的Packages/C++目录里面,应该可以覆盖默认的snippet,楼主可以试一下
    hhrmatata
        5
    hhrmatata  
    OP
       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
        6
    hhrmatata  
    OP
       2014-01-12 22:23:44 +08:00
    @bearcat001 自定义是挺容易的,我就是想问如何用自定义覆盖默认的snippet。
    liberize
        7
    liberize  
       2014-01-12 23:31:59 +08:00   ❤️ 2
    @hhrmatata 刚测试了一下,用户目录的snippet确实不能覆盖默认snippet,但是修改**sublime安装目录**下的Packages/C++.sublime-package压缩包里面的snippet(即默认snippet)是可以的。
    ST3中自带的包都以sublime-package形式存在于安装目录下的Packages文件夹中,在用户的Packages文件夹中是没有的。
    再强调一次,我说的是安装目录下。
    hhrmatata
        8
    hhrmatata  
    OP
       2014-01-15 10:03:15 +08:00
    @liberize V2EX 自动提醒好像出问题了,现在才看到你的回复。
    果然修改安装目录下的Packages/C++.sublime-package就可以了。非常感谢。

    如果能在用户目录下覆盖就好了。
    Troland
        9
    Troland  
       2014-04-07 01:17:15 +08:00
    怎么我复制到安装目录下是不行的。我复制到了用户目录下了。就是选择st3中的browser packages打开的那个目录是可以用的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1097 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:48 · PVG 02:48 · LAX 10:48 · JFK 13:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.