sublimetext-markdown实践

sublimetext-markdown实践

1. 所需插件

SublimeText自带有markdown格式,但第三方插件提供了更多的选择,如支持GFM等。这里用到的的插件主要有MarkdownEditing、Markdown Preview、Table Editor

2. 具体实践

2.1 MarkdownEditing

一定要全局配置ignored_packages: [“Markdown”]禁用ST默认的Markdown插件,否则MarkdownEditing中看不到代码染色的效果,也不会有GFM的语法增强。

  • 自动匹配星号(*)、下划线(_)及反引号(`),选中文本按下以上符号能自动在所选文本前后添加配对的符号,方便粗体、斜体和代码框的输入。
  • 直接输入配对的符号后按下退格键(backspace),则两个符号都会被删除;直接输入配对的符号后按下空格键,则会自动删除后一个。
  • 拷贝一个链接,选中文本后按下 ctrl+win+v 会自动插入内联链接。
  • shift+win+k 插入图片。
  • ctrl+1..6:插入相应级别的标题
  • alt+shift+6:插入脚注
  • ctrl+shift+pageup/pagedown:跳转到前/后一个标题
  • ctrl+alt+shift+pageup/pagedown:跳转到前/后一个同级标题

2.2 Markdown Preview

  • 浏览器预览,可自定义快捷键(f6)
  • 在最前面添加[TOC]可自动生成目录
  • 需要开启代码染色、MathJax支持才能获得相应功能等。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
/* Sets the parser used for building markdown to HTML. */
"parser": "github",
/* Enable or not mathjax support. */
"enable_mathjax": true,
"enable_uml": true,
"enable_highlight": true,
"enabled_parsers": ["github", "markdown"],
"github_mode": "markdown",
"github_inject_header_ids": true,
"enable_autoreload": false,
"strip_yaml_front_matter": true,
"enabled_extensions": [
"extra",
"github",
"codehilite(guess_lang=False,pygments_style=github)"
]
}
尝试一下,在md文件中输入:   
$$x^{y^z}=(1+{\rm e}^x)^{-2xy^w}$$   
如果MathJax配置成功的话,就能看到数学公式:

$$x^{y^z}=(1+{\rm e}^x)^{-2xy^w}$$

行间公式

$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$

显示为

$$x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}$$

行内公式

\\(x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\\)

显示为
\(x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\)

更加完整的MathJax语法请参考[官方文档](http://mathjax-chinese-doc.readthedocs.org/en/latest/start.html)。

2.3 Table Editor

  • 通过Ctrl+Shift+P->Table Editor: Enable for current systax开启。
  • 先输入标题行,回车后在第二行输入|-后,按tab键就将进入Table编辑模式。
  • 表格必须与前面输入的文字之间有空行,否则表格会被当成普通文字渲染。

2.4 MarkdownTOC

  • 在最前面点击工具>MarkdownTOC>insert TOC生成TOC目录(当前文件可见;上一个当前文件不显示,只在浏览器显示;)
  • 在设置中禁用uri_encoding即可解决中文乱码
1
2
3
4
5
6
7
8
9
10
{
// 自动链接,可实时更新
"default_autolink": true,
// 设置链接为圆括号
"default_bracket": "round",
// 显示层次无限
"default_depth": 0,
// 避免中文乱码
"default_uri_encoding": false,
}