按键绑定的Atom数据语法

Jac*_*uen 4 atom-editor

有人可以完整解释Atom的data-grammar属性的语法(用于键绑定选择器)吗?

例如,两者之间有什么区别

[data-grammar='source example']
Run Code Online (Sandbox Code Playgroud)

[data-grammar~='source example']
Run Code Online (Sandbox Code Playgroud)

另外,如何指定多个语法?例如,您如何指定键绑定应限制为html或xml格式?

如果某个地方已经有文档,我还没有找到它,但是希望您能找到它。

Mr *_*r G 6

快速示例:

keymap.cson

"atom-text-editor[data-grammar='text tex latex']":
  'f5':'latex:build'
Run Code Online (Sandbox Code Playgroud)

语法信息和文档

我从看file-types包装开始。source并对text语言进行分类- source处理开发语言,同时text处理文档/日志格式。您可以通过阅读飞行手册来添加和自定义语言识别。我已在下面链接了一些特定的部分,对此有帮助。

飞行手册 基本定制:

语言识别

语言特定设置

使用[data-grammar]

在深度的“键盘映射”部分下列出了所提供的文档。

飞行手册 深度键盘映射

选择器和定制包

这也描述了not([...])下面使用的功能以及如何操作各种规则。

尽管在上文中,语法以点格式列出,即需要source.c[data-grammar='<name>']格式空间中使用语法。

这样的例子说明了如何在keymap.cson配置中使用数据语法选项(在这里,我使用的是Latex包):

"atom-text-editor[data-grammar='text tex latex']":
  'f5':'latex:build'
Run Code Online (Sandbox Code Playgroud)

所述~不与数据无关文法所期望的功能的正确的语法。相反,使用类似"atom-text-editor:not([data-grammar='<name>'])":

请注意,你不会使用data-grammar在类似config.cson。特定语言的语法看起来像这样:

# **config.cson**
".latex.tex.text":
  editor:
    softWrap: true
Run Code Online (Sandbox Code Playgroud)

额外有用的信息-已注册语法的列表

Object.keys(atom.grammars.grammarsByScopeName).sort().join('\n')通过开发控制台输出的转储(“视图”>“开发人员”>“切换开发人员选项”>“控制台”)

source.c
source.cake
source.clojure
source.coffee
source.cpp
source.cs
source.css
source.css.less
source.css.scss
source.csx
source.diff
source.gfm
source.git-config
source.go
source.gotemplate
source.java
source.java-properties
source.js
source.js.rails source.js.jquery
source.js.regexp
source.js.regexp.replacement
source.json
source.litcoffee
source.makefile
source.nant-build
source.objc
source.objcpp
source.perl
source.perl6
source.plist
source.python
source.python.django
source.regexp.python
source.ruby
source.ruby.gemfile
source.ruby.rails
source.ruby.rails.rjs
source.sass
source.shell
source.sql
source.sql.mustache
source.sql.ruby
source.strings
source.toml
source.verilog
source.yaml
text.bibtex
text.git-commit
text.git-rebase
text.html.basic
text.html.erb
text.html.gohtml
text.html.jsp
text.html.mustache
text.html.php
text.html.ruby
text.hyperlink
text.junit-test-report
text.log.latex
text.plain
text.plain.null-grammar
text.python.console
text.python.traceback
text.shell-session
text.tex
text.tex.latex
text.tex.latex.beamer
text.tex.latex.memoir
text.todo
text.xml
text.xml.plist
text.xml.xsl
Run Code Online (Sandbox Code Playgroud)