主要是编辑snippets.CSON文件,下面是一些实例代码:
'.text.html.erb':
'if each do end':
'prefix':'doe'
'body':'
<% ${1:condition}.each do |${2:value}| %>
\n\t${3:comment}
\n<% end %>
'
'if any end':
'prefix':'ifany'
'body':'
<% if ${1:condition}.any? %>
\n\t${3:comment}
\n<% end %>
'
自动展开代码如下
<% condition.each do |value| %>
comment
<% end %>
<% if condition.any? %>
comment
<% end %>
- 代码 '.text.html.erb' , 这个是 "scope" ,表示你添加的代码是在文件尾缀为 .erb 中使用。'.source.ruby' ,这个表示可以在文件尾缀为 .rb 中使用。如果你想添加到不同类型的文件中,就需要找到文件对应的scope。
- 如何找到 scope 呢?
- 用快捷键 ⌘, 呼出 settings:2. 在package 的搜索栏中查找 language ,找到你对应需要的如 java/html/ruby 等等;3. 可以在标题 java/html/ruby Grammar 下第一行找到文件对应的 scope 。特别注意当添加多个自定义展开代码的时候,只需要在这个 scope string 下追加。
- prefix 表示你需要用什么名字缩写,代替你自定义的展开代码。当你使用时候,你输入这个名字就能展开。
- \n 表示的是纯文本中默认并不显示的“scope”;
- \t 表示的是 tab(不是 tab 键,而是文本中显示的“缩进” —— 通常相当于两个空格,或者四个空格);
- $1 是展开后光标所在的位置;
- $2 是再次按 ⇥ 键的时候,光标应该所在的下一个位置。
下表是常见的scope:
语言名称 | scope | 文件类型 |
---|---|---|
HTML | text.html.basic | ejs,htm,html,kit,shtml,tmpl,tpl,xhtml |
CSS | source.css | css,css.erb |
javascript | source.js | js,_js,es,es6,gs,htc,jscad,jslib,jsm,json5,jspre,pac,pjs,sjs,xsjs,xsjslib |
python | sourec.python | cpy,gyp,gypi,kv,py,pyw,rpy,SConscript,SConstruct,sconstruct,Snakefile,tac,wsgi |
json | source.json | avsc, babelrc, bowerrc, composer.lock, geojson, gltf, htmlhintrc, ipynb, jscsrc, jshintrc, jslintrc, json, jsonl, jsonld, languagebabel, ldj, ldjson, schema, stylintrc, template, tern-config, tern-project, tfstate, tfstate.backup, topojson, webapp, webmanifest |
sql | source.sql | ddl, dml, dsql, hql, pgsql, psql, q, sql |
git | text.git-commit | COMMIT_EDITMSG, MERGE_MSG |
shell | source.shell | sh, bash, ksh, zsh, zsh-theme, zshenv, zlogin, zlogout, zprofile, zshrc, bashrc, bash_aliases, bash_profile, bash_login, profile, bash_logout, .textmate_init, npmrc, PKGBUILD, install, cygport, bats, ebuild |
网友评论