在Atom里面配置Snippets

想当初邮件申请试用的时候Atom没有理我,感觉好失落,同时也就把它抛到脑后了。 现在Atom公测版也推出了一段时间了,最近心血来潮就想到把它下下来玩一下。

第一印象是这玩意跟Sublime差不多的风格,跟Sublime不同的是Atom这玩意是用Node.js做的一个本地应用, 像Android Studio一样支持即时渲染,Web前端的猿们又能get一大利器了,而且由于Web特性,一切设置的修改都是不需要重启编辑器的。

比较蛋疼的一点是不能支持自动换行TAT,markdown还好,其他的要输入一大段字符的话, 它就直接全部挤在一行里了。不过相信由于Atom的开源特性,早就有解决这个问题的插件,只不过是我还没有去找而已。(这个问题在官方最新的版本里面已经得到了解决.果然效率)


我切切切切~

好,不多说废话,开始进入主题。

Github最初在宣传Atom的时候称这是一款集成了SublimeEmacs优秀特性的编辑器。

那自然少不了优秀的Snippets.

不知道Snippets是什么的可以点这里喔。

  • Atom中菜单栏的Edit -> Preferences -> 搜索框输入Snippets 就能找到 Snippets包了。

你会发现为什么里面的Snippets为什么这么少,而且没有根据语言来分类?

经过长时间的翻文档工作(真是找了好久TAT,主要是思维被YSnippets给圈起来了),后来发现 其实Atom这里是将Snippets全部整合到它的各个语言包里面去了。

例如language-c里面就有专门一个文件夹放相应的Snippets

  • 注:Linux下Atom的默认安装目录是 /usr/share/atom 而 language包文件都放在 /usr/share/atom/resources/app/node_modules 下。 
  • 所以修改Snippets文件需要root权限,不过Atom有个bug,我用sudo 打开Atom好像没有获取到root权限,还是不能改写Snippets。后来还是用emacs改的。=,= (已查清原因:一个Atom大窗口只对应一种权限,如果用sudo打开的话会默认在之前的Atom里面创建小窗口,而这个小窗口是没有获得root权限的,bug已在github里上报)

如果你想针对语言配置Snippets的话就可以直接在每个language的包里修改Snippets文件。

AtomSnippets支持csonjson两种格式,这里分别给出一个例子:

.cson

'.source.js':
  'if, else if, else':
    'prefix': 'ieie'
    'body': """
      if (${1:true}) {
        $2
      } else if (${3:false}) {
        $4
      } else {
        $5
      }
    """

这里补充一点,之前我好长时间用CSON都没有配成功,后来发现是'.source.js'那一块的问题. 之前以为那里是引用了什么js文件,后来才发现那个是对应Snippets的作用域. 所以要在.java文件里生效就得改为'.source.java',以此类推. 注:.source.后面跟的是跟atom语言包相关的名称,例如markdown文件是.source.gfm. (妈蛋,这地方坑了我好久,又没有一个统一的文档.=,=坑爹)

.json

"jekyll yaml": {
      "prefix": "ya",
      "body": "---\nlayout: post\ntitle:  $1\ndate:   $2 $3\ncategories: $4\n---\n$5"
    },

里面最开始的是Snippets的名字,prefix是触发器,body就是模板展开之后的内容了。

这样配好自己要的Snippets后就能开开心心的继续Atom探索之旅了>,<

Loading Disqus comments...
Table of Contents