文章

Sublime Text 配置和使用

Sublime Text 配置和使用技巧

Sublime Text 配置和使用

Sublime Text 配置和使用技巧

安装和设置

基本设置

首选项 -> 设置 添加如下内容

1
2
3
4
5
6
7
8
9
10
11
12
{
  "ignored_packages":
  [
      "Vintage",
  ],
  "draw_white_space":"all",
  "color_scheme": "Monokai.sublime-color-scheme",
  "check_update":false,
  "update_check":false,
  "hot_exit": false,
  "remember_open_files":false,
}

禁止插件自动更新

首选项 -> Package Settings -> Package Controls -> Settings添加如下内容

1
  "auto_upgrade":false

配置 Python 编译环境

工具 -> 编译系统 -> 新建编译系统 写入以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
    "cmd": ["python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"PYTHONIOENCODING": "utf-8"},
    "windows": {
        "cmd": ["py", "-u", "$file"],
    },
    "variants":
    [
        {
            "name": "python3.8(cmd)",
            "shell_cmd": "start cmd /c \"python -u \"${file_name}\" & pause\"",
        }
    ]
}

保存到 Data/Packages/User 下建立 Python3.8.sublime-build

Ctrl+B编译,关闭窗口 Esc

常用快捷键

文本操作快捷键

快捷键说明
Ctrl + Shift + Enter在当前行前插入一行
Ctrl + Enter在当前行后插入一行
Ctrl + Delete删除光标后的一个单词(以单词为单位向后删除)
Ctrl + Backspace删除光标前的一个单词(以单词为单位向前)
Ctrl + Shift + K删除当前行
Ctrl + K删除至 End
Ctrl + T逐个单词向前移位

行操作快捷键

快捷键说明快捷键说明
Ctrl + ]增加缩进Ctrl + shift + D复制当前行
Ctrl + [减小缩进Ctrl + shift + K删除当前行
Ctrl + L选择当前行Ctrl + shift + ↑/↓当前行与上/下行交换位置
Ctrl + Shift + J合并多行Ctrl + Shift + L同时编辑多行

其它快捷键

快捷键说明快捷键说明
Alt + Shift + n分屏显示Ctrl + Shift + T打开已关闭的窗口
Ctrl + /注释当前行Ctrl + Shift + /选中多行(块)进行注释
Ctrl + Shift + [折叠代码Ctrl + Shift + ]展开代码

MarkdownPreview 插件设置

设置快捷键

首选项 -> 快捷键设置

1
2
3
4
5
6
7
8
9
10
11
[
    {
        "keys": ["alt+m"],
        "command": "markdown_preview",
        "args": 
        {
            "target": "browser",
            "parser":"markdown"
        }
    }
]

Markdown Preview 的配置选项

配置参考 https://facelessuser.github.io/MarkdownPreview/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "path_tempfile": ".", // 临时文件路径就在当前目录
    "src_name_as_tmpfile_name":true, // 设置此项使临时文件与源文件同名
    // 需要修改原包实现
    "image_path_conversion": "relative",
    "file_path_conversions": "relative",
    "js": {
        // "https://unpkg.com/mermaid/dist/mermaid.min.js",//此版本不行
        // "https://unpkg.com/mermaid@8.8.4/dist/mermaid.min.js",
        // User configuration, should be loaded before the loader 
        // "res://MarkdownPreview/js/mermaid_config.js", 
        // "res://MarkdownPreview/js/mermaid.js" // Mermaid loader 
    },
    "pygments_style": "github2014"
}

修改 MarkdownPreview 生成的预览文件名

首选项 ->Package Settings -> Markdown Preview -> Settings

1
2
3
4
5
6
{
    "path_tempfile": "./",
    "image_path_conversion": "none",
    "file_path_conversions": "none",
    "filename_tempfile":"SAME_LIKE_ORIGIN" // 自定义的生成原文件名.html
}

拷贝 Data/Installed Packages/MarkdownPreview.sublime-package 解压缩后修改 markdown_preview.py

1
2
3
4
5
6
7
8
9
10
11
12
13
tmp_filename = '%s.html' % view.id()
# added by fish 20211124  ------------begin
# 临时文件名与原来文件名一致
# print('Sublime 所使用 Python 版本 %s' % sys.version)
if settings.get('filename_tempfile') :
  fn = settings.get('filename_tempfile')
  # 和原来文件名相同
  if fn.upper() == 'SAME_LIKE_ORIGIN' :
    tmp_filename = '%s.html' % os.path.splitext(view.file_name())[0]
  else:
    tmp_filename = '%s.html' % fn
# added by fish 20211124  ------------end
if settings.get('path_tempfile'):

Pretty JSON 设置

安装后在首选项 -> 快捷键设置中添加

1
2
3
4
5
{
    "keys":["Alt+Ctrl+j"],
    "command":"pretty_json",
    "args": {}
}

正则表达式

  • 删除重复行 (^.*\n)(?=\1)
  • 删除空行 ^[ \t]*\n
  • 分组命名 (?<name>a+)

高级技巧

.sublime-package 文件

本质是 .zip压缩包,在 Data/PackagesData/Installed Packages

扩展启用 Python 3.8

  • 在扩展的根目录下添加文件 .python-version,内容为 3.8
  • 拷贝 Data/Installed Packages/0_package_control_loader.sublime-packageData/Installed Packages/1_package_control_loader.sublime-package
  • 1_package_control_loader.sublime-package 根目录下添加上述的.python-version文件
  • 启动时1_package_control_loader.sublime-package会自动加载到 Python 3.8 的 host 空间

插件开发

1
2
3
4
5
6
7
# 显示窗口相关 API
sublime.message_dialog
sublime.ok_cancel_dialog
sublime.open_dialog
sublime.save_dialog
sublime.select_folder_dialog
sublime.yes_no_cancel_dialog
本文由作者按照 CC BY 4.0 进行授权