因爲最近在Sublime Text 3安裝 BracketHighlighter
遇到很多問題,其中踩了很多坑,所以總結下來,造成博客,但願能幫助更多的人python
windows 10git
Sublime Text 3 Version 3.2.1,Build 3207 已註冊github
PS:windows
若是不知道本身Sublime Text 3版本的小夥伴能夠 經過 Help-> About Sublime Textsublime-text
① 按照正常流程,咱們會首先安裝 Package control,若是不清楚的小夥伴,能夠百度隨意搜一搜,網上教程不少,我就不重複造輪子了,我默認你們已經安裝好 Package control 而且知道如何使用它並安裝相應插件服務器
②安裝 BracketHighlighter
,你們的第一選擇確定是在線安裝,我本身也是選擇的在線安裝,但是立馬就遇到了問題markdown
第一個坑 ctrl+` 打開控制檯,會發現有以下錯誤app
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/528less
③既然在線安裝已經行不通了,那就只有走離線安裝了,安裝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
所以我就將 markupsafe
和python-jinja2
放在該packages下,但是問題依舊沒有解決,Sublime Text 3仍是沒有安裝BracketHighlighter
這個插件
④通過我一番研究,終於發現問題的解決之道。
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個插件依賴
因而乎,我立馬從新回到官網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
最終終於成功了!!!
而後咱們再點擊 Quick Start Guide 和 Support Info
Quick Start Guide 相應Markdown文件 可以正常顯示
Support Info 全部插件顯示正常
這個時候咱們也能夠自定義相應的配置,好比我不想要下劃線顯示,而是高亮顯示
找到大概在686行左右,將style中的underline改爲highlight
PS:這裏有兩種修改方法
①直接在左面文件及插件默認配置文件中進行修改,若是後期想要恢復最初的配置,那就得看你的記憶力好很差了。
②在右邊文件中進行修改,這種方式是最好的,及複製左邊的文件內容到右邊,在右邊及用戶文件中進行修改,這樣不會影響插件默認配置文件,Sublime Text 3 優先讀取用戶自定義文件。
若是你們還須要其餘的配置,能夠認真看這個配置文件,註釋信息寫的挺齊全的,固然若是英語很差或者時間緊迫的小夥伴,能夠經過google、百度獲取相關配置信息
一:緣由
此次遇到安裝BracketHighlighter插件問題的主要緣由,是由於bitbucket服務器有問題,致使沒法下載python-jinja2
和 markupsafe
兩個依賴,社區目前正在處理這個問題。
二:本身的問題
其實若是按照官網離線下載,一步一步走下來,徹底沒有問題,而本身經過 離線安裝+在線安裝,及本身下載python-jinja2
和 markupsafe
兩個沒法在線下載的依賴,提早放到安裝包下,而後經過Package control 下載 BracketHighlighter,它會在線下載其他4個依賴,結果看似是成功了,但是問題一大堆,BracketHighlighter沒法識別python-jinja2
和 markupsafe
,至關於這個插件僅僅是一個半成品。
三:剩餘問題
雖然經過離線成功安裝了BracketHighlighter,但是仍是有一些問題
①
②
③
四:思考
若是要使用離線安裝,那麼最好就再也不安裝Package Control,後期等社區處理好 markupsafe
和python-jinja2
這兩個依賴包問題,本身仍是要使用Package Control 從新下載 BracketHighLighter