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. java堆 (转)

     Java栈和堆 ----这两个概念未知很长一段时间,终于找到了一个很好的文本.使用和共享 1. 堆(stack)堆(heap)他们是Java使用Ram本地存储的数据. 与C++不同,Java主动管理 ...

  2. Entity framework 更改模型,新增表

    在Package Manager Console 中运行命令Enable-Migrations 再次运行可以更新 抄袭 在实体类中增加一个属性以后,执行 Update-Database 命令 ,可以更 ...

  3. [转]Nodejs开发框架Express4.x开发手记

    Express: ?web application framework for?Node.js? Express 是一个简洁.灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮 ...

  4. Spring Web Flow 的优缺点

    # 前言 Spring Web Flow = SWF 最近学习了<Spring实战>的第八章,Spring Web Flow.感觉是个不错的东西.无奈发现网上的资料少之又少.后来发现根本没 ...

  5. QuickReport根据每行的内容长度动态调整DetailBand1的行高

    procedure TPosPubFactureRep.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); v ...

  6. Central Subscriber Model Explained

    原文 http://www.sqlrepl.com/sql-server/central-subscriber-model-explained/ The majority of SQL Server ...

  7. 微信小程序把玩(十九)radio组件

    原文:微信小程序把玩(十九)radio组件 radio组件为单选组件与radio-group组合使用,使用方式和checkbox没啥区别 主要属性: wxml <!--设置监听器,当点击radi ...

  8. Android零基础入门第37节:初识ListView

    原文:Android零基础入门第37节:初识ListView 之前我们学习的一些UI组件都比较简单,但是在实际开发中,会经常遇见列表界面设计,如通讯录.电话列表.信息列表等.那么从本节开始来详细学习列 ...

  9. Win10的UWP之标题栏的返回键(二)

    原文:Win10的UWP之标题栏的返回键(二) 关于Win10的UWP的返回键的第二种处理的方法,是介于标题栏的强行修改,不是像上期的那样直接调用系统内置的API. - - - - - - - - - ...

  10. 教你如何快速使用Github

    以前看过几篇github的使用教程,感觉还是不是很清晰,自从看到了这篇,通俗易懂,也学会基本的使用了,在此为大家推荐.(转自知乎,为了能让更多的人看到,请允许我使用 “原创”,如果侵权请联系.) Gi ...