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

① 按照正常流程,我们会首先安装 Package control,如果不清楚的小伙伴,可以百度随意搜一搜,网上教程很多,我就不重复造轮子了,我默认大家已经安装好 Package control 并且知道如何使用它并安装相应插件

②安装 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上看https://github.com/facelessuser/BracketHighlighter/issues/528

③既然在线安装已经行不通了,那就只有走离线安装了,安装BracketHighlighter总共需要6个插件,其中有两个插件在bitbucket上,我们必须手动下载下来,然后再通过在线安装。

https://bitbucket.org/teddy_beer_maniac/sublime-text-dependency-jinja2 将解压过后的安装包更名为python-jinja2

https://bitbucket.org/teddy_beer_maniac/sublime-text-dependency-markupsafe -> 将解压过后的安装包更名为markupsafe

第二个坑 网上很多教程包括官网说离线安装包 放到 Packages 下,而安装目录刚好有一个Packages

因此我就将 markupsafepython-jinja2放在该packages下,可是问题依旧没有解决,Sublime Text 3还是没有安装BracketHighlighter这个插件

④经过我一番研究,终于发现问题的解决之道。

Sublime Text 3默认会在 C:\Users\用户名\AppData\Roaming下 创建 Sublime Text 3文件夹

我自己的电脑路径是C:\Users\ASUS\AppData\Roaming\Sublime Text 3

markupsafepython-jinja2放在C盘下的Sublime Text 3/Packages,然后再打开Sublime,进行在线安装,问题得以解决,成功安装上BracketHighlighter这个插件。

于是我打算关闭电脑,准备睡觉,屏幕面前刚好有一个JS文件,我就随意点了点,但是好像括号不起效果,于是我就上网查了查,大家都说BracketHighlighter需要一些配置,于是我就按照网上相关教程进行配置,可是居然配置了一个小时都没有成功!!!我真的是惊呆了

第三个坑

直觉告诉我,应该是插件出问题了,于是乎我点开Quick Start Guide 和 Support Info

果不其然,Quick Start Guide 点开是一个空文件,Support Info中 插件信息不完整,有的插件有版本信息,有的插件没有版本信息 PS:BracketHighlighter需要6个插件依赖

于是乎,我立马重新回到官网http://facelessuser.github.io/BracketHighlighter/installation/,从头开始重新操作一遍。

①下载6个插件,并且按照官网要求更改解压包目录名,然后将文件放到Package下

②在github上下载BracketHighlighter并按照官网要求更改解压包目录,然后将文件放到Package下

③按照官网要求在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')

最后看一下文件目录:

④重启Sublime

4 成功

最终终于成功了!!!

然后我们再点击 Quick Start Guide 和 Support Info

Quick Start Guide 相应Markdown文件 能够正常显示

Support Info 所有插件显示正常

5 自定义配置

这个时候我们也可以自定义相应的配置,比如我不想要下划线显示,而是高亮显示

找到大概在686行左右,将style中的underline改成highlight

PS:这里有两种修改方法

①直接在左面文件及插件默认配置文件中进行修改,如果后期想要恢复最初的配置,那就得看你的记忆力好不好了。

②在右边文件中进行修改,这种方式是最好的,及复制左边的文件内容到右边,在右边及用户文件中进行修改,这样不会影响插件默认配置文件,Sublime Text 3 优先读取用户自定义文件。

如果大家还需要其他的配置,可以认真看这个配置文件,注释信息写的挺齐全的,当然如果英语不好或者时间紧迫的小伙伴,可以通过google、百度获取相关配置信息

6 总结

一:原因

​ 这次遇到安装BracketHighlighter插件问题的主要原因,是因为bitbucket服务器有问题,导致无法下载python-jinja2markupsafe两个依赖,社区目前正在处理这个问题。

二:自己的问题

其实如果按照官网离线下载,一步一步走下来,完全没有问题,而自己通过 离线安装+在线安装,及自己下载python-jinja2markupsafe两个无法在线下载的依赖,提前放到安装包下,然后通过Package control 下载 BracketHighlighter,它会在线下载其余4个依赖,结果看似是成功了,可是问题一大堆,BracketHighlighter无法识别python-jinja2markupsafe,相当于这个插件仅仅是一个半成品。

三:剩余问题

​ 虽然通过离线成功安装了BracketHighlighter,可是还是有一些问题







四:思考

如果要使用离线安装,那么最好就不再安装Package Control,后期等社区处理好 markupsafepython-jinja2这两个依赖包问题,自己还是要使用Package Control 重新下载 BracketHighLighter

作者:一杯热咖啡AAA

出处:https://www.cnblogs.com/AdaiCoffee/

本文以学习、研究和分享为主,欢迎转载。如果文中有不妥或者错误的地方还望指出,以免误人子弟。如果你有更好的想法和意见,可以留言讨论,谢谢!

Sublime Text 3 安装 BracketHighlighter的更多相关文章

  1. sublime Text 的安装、破解、汉化、使用

    Sublime Text 3安装与使用   本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text- ...

  2. Sublime Text 3安装与使用

    本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html)的笔 ...

  3. Sublime Text 3安装与使用 Package Control 插件安装

    原文地址:http://www.cnblogs.com/zhcncn/p/4113589.html 本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs ...

  4. Sublime Text 3安装与使用,安装插件,快捷键,默认配置

    本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html)的笔 ...

  5. 2分钟 windows下sublime text 3安装git插件:

    12:35 2015/11/182分钟 windows下sublime text 3安装git插件:推荐博客:http://blog.csdn.net/naola2001/article/detail ...

  6. 10秒钟sublime text 3安装SVN插件

    注意:此处我提前已经安装了towerSVN,你可能需要提前安装好 towerSVN,之前安装redis之后我才明白,安装插件时安装软件好像 是一个必要的步骤,也就是说安装插件只是让你能在这里使用你已 ...

  7. sublime Text 2 安装Sublime Package Control

    Sublime Text 2 安装 Sublime Package Control,通过 Sublime Package Control,安装.升级和卸载 Package. 安装 Package Co ...

  8. Sublime Text 3安装Latex

    Sublime Text 3安装Latex 安装环境 Sublime Text 3已安装Package Control 安装过程 进入官网下载安装MikTex,www.miktex.org 进入官网下 ...

  9. Sublime Text 2安装汉化破解、插件包安装教程

    原文地址: Sublime Text 2安装汉化破解.插件包安装教程_百度经验 http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.ht ...

随机推荐

  1. C#调用JS

    cmd调用phantomjs 官方资料:http://phantomjs.org/quick-start.html 手动执行 从官方下载phantomjs.exe,拷贝它与要执行的js同目录打开cmd ...

  2. 【转载】json 数据 添加 删除 排序

    张映 发表于 2014-02-10 分类目录: js/jquery 标签:json, 删除, 排序, 添加 js数据格式和json数据格式,各有各的用处,就个人而言,json更好用一点,js自身的数组 ...

  3. x:key和x:name

    x:Key用在xaml Resources,ResourceDictionary需要key来访问x:Name用在ResourceDictionary以外任何地方,可以使用x:Name在code-beh ...

  4. JS 输入框智能提示

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  5. sql xml 查询指定节点值,以及节点属性值

    SELECT   top 10  [HFMBDATA].query('(/Items/Item[@ID=''tbBryj''])').value('(//TextValue)[1]','nvarcha ...

  6. Delphi7文件操作常用函数

    1. AssignFile.Erase AssignFile procedure AssignFile(var F; FileName: string);:给文件变量连接一个外部文件名.这里需要注意的 ...

  7. WPF中的资源(二) - 二进制资源

    原文:WPF中的资源(二) - 二进制资源 WPF中的二进制资源,就是类似于MFC中在对话框程序中添加的图片.字符串等资源,程序在运行时将其转换成二进制,以供程序使用. 下面以将字符串转换成二进制为例 ...

  8. vs2017 js cordova + dotnet core 开发app

    原文:vs2017 js cordova + dotnet core 开发app 1.记得在index.html加入 <meta http-equiv="Content-Securit ...

  9. Win8Metro(C#)数字图像处理--2.16图像浮雕效果

    原文:Win8Metro(C#)数字图像处理--2.16图像浮雕效果  [函数名称] 图像浮雕效果函数ReliefProcess(WriteableBitmap src) [函数代码]       ...

  10. shell转义符

    转义是一种引用单个字符的方法. 一个前面放上转义符 (\)的字符就是告诉shell这个字符按照字面的意思进行解释, 换句话说, 就是这个字符失去了它的特殊含义. 在某些特定的命令和工具中, 比如ech ...