目录
1 概述
2 电脑环境
3 安装 BracketHighlighter
4 成功
5 自定义配置
6 总结
1 概述
由于最近在 Sublime Text 3 安装 BracketHighlighter 遇到不少问题, 其中踩了不少坑, 因此总结下来, 形成博客, 希望能帮助更多的人
2 电脑环境
Windows 10
Sublime Text 3 Version 3.2.1,Build 3207 已注册
PS:
如果不知道自己 Sublime Text 3 版本的小伙伴可以 通过 Help-> About Sublime Text
3 安装 BracketHighlighter
1 按照正常流程, 我们会首先安装 Package control, 如果不清楚的小伙伴, 可以百度随意搜一搜, 网上教程很多, 我就不重复造轮子了, 我默认大家已经安装好 Package control 并且知道如何使用它并安装相应插件
2安装 BracketHighlighter, 大家的第一选择肯定是在线安装, 我自己也是选择的在线安装, 可是立马就遇到了问题
第一个坑 ctrl+` 打开控制台, 会发现有如下错误
- Package Control: The dependency 'python-jinja2' is not currently installed;
- Package Control: The dependency 'python-jinja2' is not available
- Package Control: The dependency 'python-jinja2' could not be installed or updated
这是因为 python-jinja2 这个依赖包是放在 bitbucket 上而非 GitHub 上, 目前 Sublime Text 3 在线安装, 如果需要 bitbucket 上的依赖, 基本上都会失败. 估计是 bitbucket 那边的问题, 具体原因我也不清楚, 目前社区正在处理这个问题, 如果感兴趣的朋友可以去 GitHub 上看
3既然在线安装已经行不通了, 那就只有走离线安装了, 安装 BracketHighlighter 总共需要 6 个插件, 其中有两个插件在 bitbucket 上, 我们必须手动下载下来, 然后再通过在线安装.
将解压过后的安装包更名为 python-jinja2
-> 将解压过后的安装包更名为 markupsafe
第二个坑 网上很多教程包括官网说离线安装包 放到 Packages 下, 而安装目录刚好有一个 Packages
因此我就将 markupsafe 和 python-jinja2 放在该 packages 下, 可是问题依旧没有解决, Sublime Text 3 还是没有安装 BracketHighlighter 这个插件
4经过我一番研究, 终于发现问题的解决之道.
Sublime Text 3 默认会在 C:\Users \ 用户名 \ AppData\Roaming 下 创建 Sublime Text 3 文件夹
我自己的电脑路径是 C:\Users\ASUS\AppData\Roaming\Sublime Text 3
将 markupsafe 和 python-jinja2 放在 C 盘下的 Sublime Text 3/Packages, 然后再打开 Sublime, 进行在线安装, 问题得以解决, 成功安装上 BracketHighlighter 这个插件.
于是我打算关闭电脑, 准备睡觉, 屏幕面前刚好有一个 JS 文件, 我就随意点了点, 但是好像括号不起效果, 于是我就上网查了查, 大家都说 BracketHighlighter 需要一些配置, 于是我就按照网上相关教程进行配置, 可是居然配置了一个小时都没有成功!!! 我真的是惊呆了
第三个坑
直觉告诉我, 应该是插件出问题了, 于是乎我点开 Quick Start Guide 和 Support Info
果不其然, Quick Start Guide 点开是一个空文件, Support Info 中 插件信息不完整, 有的插件有版本信息, 有的插件没有版本信息 PS:BracketHighlighter 需要 6 个插件依赖
于是乎, 我立马重新回到官网, 从头开始重新操作一遍.
1下载 6 个插件, 并且按照官网要求更改解压包目录名, 然后将文件放到 Package 下
2在 GitHub 上下载 BracketHighlighter 并按照官网要求更改解压包目录, 然后将文件放到 Package 下
3按照官网要求在 Package 包下创建 00-dependencies 文件夹并且在该文件夹下创建文件 00-dependencies.py, 然后将下列代码, 复制到该文件中.
- import sys
- import os
- from os.path import dirname
- if os.name == 'nt':
- from ctypes import windll, create_unicode_buffer
- import Sublime
- if sys.version_info>= (3,):
- def decode(path):
- return path
- def encode(path):
- return path
- if os.path.basename(__file__) == 'sys_path.py':
- pc_package_path = dirname(dirname(__file__))
- # When loaded as a .Sublime-package file, the filename ends up being
- # Package Control.Sublime-package/Package Control.package_control.sys_path
- else:
- pc_package_path = dirname(__file__)
- st_version = u'3'
- else:
- def decode(path):
- if not isinstance(path, unicode):
- path = path.decode(sys.getfilesystemencoding())
- return path
- def encode(path):
- if isinstance(path, unicode):
- path = path.encode(sys.getfilesystemencoding())
- return path
- pc_package_path = decode(os.getcwd())
- st_version = u'2'
- st_dir = dirname(dirname(pc_package_path))
- def add(path, first=False):
- """
- Adds an entry to the beginning of sys.path, working around the fact that
- Python 2.6 can't import from non-ASCII paths on Windows.
- :param path:
- A unicode string of a folder, zip file or sublime-package file to
- add to the path
- :param first:
- If the path should be added at the beginning
- """ if os.name =='nt':
- # Work around unicode path import issue on Windows with Python 2.6
- buf = create_unicode_buffer(512)
- if windll.kernel32.GetShortPathNameW(path, buf, len(buf)):
- path = buf.value
- enc_path = encode(path)
- if os.path.exists(enc_path):
- if first:
- try:
- sys.path.remove(enc_path)
- except (ValueError):
- pass
- sys.path.insert(0, enc_path)
- elif enc_path not in sys.path:
- sys.path.append(enc_path)
- def remove(path):
- """
- Removes a path from sys.path if it is present
- :param path:
- A unicode string of a folder, zip file or sublime-package file
- """
- try:
- sys.path.remove(encode(path))
- except (ValueError):
- pass
- if os.name == 'nt':
- buf = create_unicode_buffer(512)
- if windll.kernel32.GetShortPathNameW(path, buf, len(buf)):
- path = buf.value
- try:
- sys.path.remove(encode(path))
- except (ValueError):
- pass
- def generate_dependency_paths(name):
- """
- Accepts a dependency name and generates a dict containing the three standard
- import paths that are valid for the current machine.
- :param name:
- A unicode string name of the dependency
- :return:
- A dict with the following keys:
- - 'ver'
- - 'plat'
- - 'arch'
- """ packages_dir = os.path.join(st_dir, u'Packages')
- dependency_dir = os.path.join(packages_dir, name)
- ver = u'st%s' % st_version
- plat = Sublime.platform()
- arch = Sublime.arch()
- return {
- 'all': os.path.join(dependency_dir, 'all'),
- 'ver': os.path.join(dependency_dir, ver),
- 'plat': os.path.join(dependency_dir, u'%s_%s' % (ver, plat)),
- 'arch': os.path.join(dependency_dir, u'%s_%s_%s' % (ver, plat, arch))
- }
- def add_dependency(name, first=False):
- """
- Accepts a dependency name and automatically adds the appropriate path
- to sys.path, if the dependency has a path for the current platform and
- architecture.
- :param name:
- A unicode string name of the dependency
- :param first:
- If the path should be added to the beginning of the list
- """
- dep_paths = generate_dependency_paths(name)
- for path in dep_paths.values():
- if os.path.exists(encode(path)):
- add(path, first=first)
- add_dependency('pygments')
- add_dependency('backrefs')
- add_dependency('markupsafe')
- add_dependency('python-markdown')
- add_dependency('python-jinja2')
- add_dependency('mdpopups')
最后看一下文件目录:
4重启 Sublime
4 成功
最终终于成功了!!!
然后我们再点击 Quick Start Guide 和 Support Info
Quick Start Guide 相应 Markdown 文件 能够正常显示
Support Info 所有插件显示正常
5 自定义配置
这个时候我们也可以自定义相应的配置, 比如我不想要下划线显示, 而是高亮显示
找到大概在 686 行左右, 将 style 中的 underline 改成 highlight
PS: 这里有两种修改方法
1直接在左面文件及插件默认配置文件中进行修改, 如果后期想要恢复最初的配置, 那就得看你的记忆力好不好了.
2在右边文件中进行修改, 这种方式是最好的, 及复制左边的文件内容到右边, 在右边及用户文件中进行修改, 这样不会影响插件默认配置文件, Sublime Text 3 优先读取用户自定义文件.
如果大家还需要其他的配置, 可以认真看这个配置文件, 注释信息写的挺齐全的, 当然如果英语不好或者时间紧迫的小伙伴, 可以通过 google, 百度获取相关配置信息
6 总结
一: 原因
这次遇到安装 BracketHighlighter 插件问题的主要原因, 是因为 bitbucket 服务器有问题, 导致无法下载 python-jinja2 和 markupsafe 两个依赖, 社区目前正在处理这个问题.
二: 自己的问题
其实如果按照官网离线下载, 一步一步走下来, 完全没有问题, 而自己通过 离线安装 + 在线安装, 及自己下载 python-jinja2 和 markupsafe 两个无法在线下载的依赖, 提前放到安装包下, 然后通过 Package control 下载 BracketHighlighter, 它会在线下载其余 4 个依赖, 结果看似是成功了, 可是问题一大堆, BracketHighlighter 无法识别 python-jinja2 和 markupsafe, 相当于这个插件仅仅是一个半成品.
三: 剩余问题
虽然通过离线成功安装了 BracketHighlighter, 可是还是有一些问题
1
2
3
四: 思考
如果要使用离线安装, 那么最好就不再安装 Package Control, 后期等社区处理好 markupsafe 和 python-jinja2 这两个依赖包问题, 自己还是要使用 Package Control 重新下载 BracketHighLighter
来源: https://www.cnblogs.com/AdaiCoffee/p/11162059.html