Sublime Text 3 Snippet 快捷字元段輸出設定
1. 自定義sublime程式碼片段
sublime text 已經有一些他們內建的一些程式碼片段,但是有時候,這些並不能滿足我們,這就需要我們自定義一些程式碼片段。步驟如下:
1、開啟sublime text
2、選擇 tools -> new snippet 就會開啟一個未命名的檔案,程式碼如下:
<snippet> <content><![CDATA[ Hello, ${1:this} is a ${2:snippet}. ]]></content> <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <!-- <tabTrigger>hello</tabTrigger> --> <!-- Optional: Set a scope to limit where the snippet will trigger --> <!-- <scope>source.python</scope> --><br> <!-- <description>my snippet</description> </snippet>
解釋如下:
<![CDATA[
和 ]>
中間則是要輸出的程式碼片段,中間的 ${1:this}
中的this是當前${1}
位置預設用this,按tab鍵會切換到 ${2}
處,依次類推。同一個${num}
可以出現多次。
tabTrigger 可選,觸發該片段的字串,比如下面用hello觸發該片段,在頁面輸入hello按tab就會輸出 <![CDATA[
和 ]]>
中間的字串
scope 可選,設定該程式碼片段對什麼型別的檔案生效,不設定,則對所有型別生效。比如下面設定對html和js生效,在css下面輸入 hello按tab不會有其他任何輸出。過個程式碼片段用逗號(,)隔開。
description 可選,設定該片段的說明,不定義,則顯示檔名稱。PS:Sublime Text 3沒有。
現在我們來建立一個自己的程式碼片段吧:
<snippet> <content> <![CDATA[ <footer> <p>Copyright © 2012 ${1:feige}.com</p> <p>增值電信業務經營許可證 贛A2-${2} <a href="#">贛ICP備號${3}</a></p> </footer> ]]> </content> <tabTrigger>cft</tabTrigger> <description>custom-footer</description> <scope>text.html,source.js</scope> </snippet>
建立完畢以後,儲存在\Packages\User目錄下(例C:\Users[使用者]\AppData\Roaming\Sublime Text 2\Packages\User\),字尾名.sublime-snippet。
重啟sublime text 2,該snippet即可使用了。
2. Scope 索引及查詢方式
Place your cursor in the file where you wish to know the scope.
Use this keyboard-shortcut:
Windows: ctrl+shift+alt+p
Mac: ctrl+shift+p
The current scope will be displayed in the left side of the status bar on Windows, or in a popup window on Mac.
Use these as the <scope>
key in your foo.sublime-snippet
file.
The returned scopes are listed generic to specific. Choose the scope(s) which best “scoped” the snippet to where it should be available to tab trigger.
注意,就算是同一篇文件,不同位置出來的scope也是不一樣的,所以定位之精確到某一種文件的某一種位置的。
對於markdown只要text.html.markdown 就可以全篇通用。
Here is a list of scopes to use in Sublime Text 2 snippets -
ActionScript: source.actionscript.2
AppleScript: source.applescript
ASP: source.asp
Batch FIle: source.dosbatch
C#: source.cs
C++: source.c++
Clojure: source.clojure
CoffeeScript: source.coffee
CSS: source.css
D: source.d
Diff: source.diff
Erlang: source.erlang
Go: source.go
GraphViz: source.dot
Groovy: source.groovy
Haskell: source.haskell
HTML: text.html(.basic)
JSP: text.html.jsp
Java: source.java
Java Properties: source.java-props
Java Doc: text.html.javadoc
JSON: source.json
Javascript: source.js
BibTex: source.bibtex
Latex Log: text.log.latex
Latex Memoir: text.tex.latex.memoir
Latex: text.tex.latex
LESS: source.css.less
TeX: text.tex
Lisp: source.lisp
Lua: source.lua
MakeFile: source.makefile
Markdown: text.html.markdown
Multi Markdown: text.html.markdown.multimarkdown
Matlab: source.matlab
Objective-C: source.objc
Objective-C++: source.objc++
OCaml campl4: source.camlp4.ocaml
OCaml: source.ocaml
OCamllex: source.ocamllex
Perl: source.perl
PHP: source.php
Regular Expression(python): source.regexp.python
Python: source.python
R Console: source.r-console
R: source.r
Ruby on Rails: source.ruby.rails
Ruby HAML: text.haml
SQL(Ruby): source.sql.ruby
Regular Expression: source.regexp
RestructuredText: text.restructuredtext
Ruby: source.ruby
SASS: source.sass
Scala: source.scala
Shell Script: source.shell
SQL: source.sql
Stylus: source.stylus
TCL: source.tcl
HTML(TCL): text.html.tcl
Plain text: text.plain
Textile: text.html.textile
XML: text.xml
XSL: text.xml.xsl
YAML: source.yaml