美文网首页SublimeMarkdown技巧集:Tips and TricksL_Sublime Text
Sublime编写Markdown,以及云端自动同步方案(Sub

Sublime编写Markdown,以及云端自动同步方案(Sub

作者: dukecui | 来源:发表于2016-04-16 19:51 被阅读4376次

    为什么会写这样的一个主题,最主要的痛点来自于以下两个方面。首先,立志经常写博客的我,希望能拥有优雅地写作体验和得心应手的编辑环境,而对于经常码代码的我来说最喜欢的编辑器莫过于Sublime,这个在业界被赞誉无数皇冠加冕的神器,让你遇见就会产生恨晚的感觉,那么自然而然就需要建立一个基于Sublime的舒畅的Markdown编辑环境。再者,我需要在多终端编辑自己的博客,例如我在公司的PC上写了一篇博客,当我回到家的时候,仍然希望继续完成刚才的那篇博客,而如果每次都需要用硬盘来回复制粘贴拷贝,那简直如同回到了石器时代一样low的不得了,这时就需要一个舒适好用便捷的云同步的解决方案来搞定它。基于此,我花了一些时间解决了这些问题,也应运而生了这篇文章。

    至于为什么要用Markdown来编辑,网上已经有无数关于Markdown的介绍和赞誉,同时对于经常混迹于全球最大同性交友网站GitHub的码农,Markdown是必不可少的技能。而且Hexo天生集成了Markdown,因此我们可以采用这样的语法来编写博客。Markdown简单的语法易用的规则,可以使我们更加专注于内容的编写,同时自动生成极为美观的排版,总之,带给我们良好的编辑体验。当然,Markdown的编辑器有很多很多,对于纯码字的文字工作者而言,大可选择更为简单方便的编辑器,这里有一篇文章可供参考(好用的Markdown编辑器一览),但是对于程序员而言,最好的就是Sublime!

    构建基于Sublime的良好的Markdown编辑环境

    1. Sublime主题的选择

    选择一款自己喜欢的主题配色可以让我们工作的时候更加的愉悦,效率也更高。我自己选择的主题是Material Theme, 这个在GitHub上获得6000+Star的精品,它的大概配色如下图所示(官方配图)


    一开始选择Material Theme这个主题,完全是因为它的名字,因为我是一名Android开发者,所以对Google的Material Design有一种不能抗拒的感觉,虽然这两者之间似乎除了名字相同之外没有任何关系,但我还是喜欢上了它。
    前人种树,后人乘凉,这里有一篇关于Sublime 主题推荐的文章:Sublime插件:主题篇

    2. 插件的安装

    Sublime 拥有非常好的扩展性,因为使用之广泛,因此全球有很多的开发者为其开发了大量优秀的第三方插件,而如何安装卸载和管理第三方的插件,就需要 Package Control 这款插件,安装的方法如下链接:Package Control Install
    之后就可以进行第三方插件的安装了,Ctrl+Shift+P 之后打开命令板,输入 Package Control:Install Package,选择确认之后,就可以打开选择安装第三方库的面板,例如要安装上面的 Material Theme 主题,输入 Material Theme 之后选择即可安装。

    3. Markdown编辑环境插件:Markdown Editing

    Markdown Editing 是一款侧重于Markdown语法编辑的插件,它主要有以下的一些特点:

    • 更好的句法理解,
    • 更好的着色方案以及代码高亮
    • 实用的Markdown编辑特性,即对插入图片,链接,角标,引用,标题等等,有快捷键的实现
    • 支持 Standard Markdown, GitHub flavored Markdown, MultiMarkdown 三种语法

    官方给的配图是这样子的


    但是偏白色的背景让我感觉很别扭,与刚才设定的主题相差太大了,不能忍啊~ 好在这个也是可以修改自定的,在 Sublime 菜单栏打开 Preferences > Package Settings > Markdown Editing > Markdown GFM settings - User 添加以下的代码,设置成我们自己喜欢的主题配色
    {
        "color_scheme": "Packages/Material Theme/schemes/OLD/Material-Theme.tmTheme",
    }
    

    4. Markdown预览插件:主要有两个 OmniMarkupPreviwerMarkdownPreview

    通常我们还有需要预览用Markdown语法编写的文章的最终排版的需求,以上提到的两个插件实现了这样的功能。OmniMarkupPreviewer 插件的使用命令如下:

        Ctrl+Alt+O: Preview Markup in Browser.
        Ctrl+Alt+X: Export Markup as HTML.
        Ctrl+Alt+C: Copy Markup as HTML.
    

    MarkdownPreview的编译指令为

        Ctrl + B
    

    之后会在同样的文件夹下生成html的文件,打开即可预览效果。如果更改了文章,需要再次编译,打开才能看到更改的效果。
    以上两者之间的区别主要有这几个方面:

    • 前者可以进行实时的预览,后者不可以,后者需要先进行编译生成HTML文件,再查看。
    • 前者很多语法格式无效果,后者均有,例如,目录的生成,参考角标的生成,待办事项的显示等等。

    总结,前者可以实现文本的实时更新,后者可以更加完整有效的显示Markdown的语法格式。

    至此,基于Sublime的Markdown的编辑环境已经搭建完成。

    文档云端自动同步的方案

    关于云端同步,我的核心需求是,可以无需去操心所有的要同步的操作,当我在一个终端编辑好之后,不再需要做任何别的事情,文件会自动同步到我的另一个终端,而比如百度云盘则需要手动上传下载。这也正是我上面提到的需要在公司和家里都编辑同一份博客的需求。这里有以下的两种解决方案

    一、Dropbox

    Dropbox 是最实用的文件同步工具,能够将存储在本地的文件自动同步到云端的服务器。但是令人遗憾的是,这款软件的服务在国内无法使用,必须要科学上网才行。而作为程序员需要经常的科学上网,所以这对我来说是可以接受的。Dropbox需要申请一个个人账号,之后安装相应的客户端,如Windows端,Dropbox会创建在 $env:userprofile\Dropbox 路径下的一个文件夹,而你需要把希望同步到云端的所有文件,放在这个文件夹中,并保持处于科学上网的状态下,即可自动同步到Dropbox云端。同时,在另一台终端登录相同的Dropbox账号,即可自动将云端的文件同步到本地。

    1. 同步Sublime的配置

    首先碰到的一个问题是,要在多终端使用Sublime,但是又希望我们在一个电脑上更改的配置能自动同步到另一台电脑。这时便可以采用Dropbox的方案,具体实现如下。在 Sublime 菜单栏打开 Preferences > Browse Packages... 打开Sublime的文件夹,将Users的文件夹剪切到Dropbox目录(如Windows平台的$env:userprofile\Dropbox)下,再在刚才的Sublime文件夹下创建一个User的文件夹,符号链接到Dropbox下的User文件夹,其中Windows下创建符号链接的命令如下:

    cmd /c mklink /D 带链接符号的文件夹 目标文件夹
    

    比如,先命令行进入刚才打开的Sublime文件夹下,然后创建符号链接的命令如下:

    cmd /c mklink /D User $env:userprofile\Dropbox\User
    

    这是一种值得借鉴的方式,你想同步的任何软件的任何配置文件,都可以采用符号链接的方式进行,将真正的文件存储在Dropbox文件夹下,再在它原来需要出现的位置,创建符号链接指向Dropbox下的相应的文件,即可实现文件的自动云端同步。

    2. Hexo博客博文的云端同步

    借鉴以上创建符号链接的方式,在Hexo博客的根目录下,将source文件夹放在Dropbox目录下,再在原Hexo博客根目录下创建source文件夹到Dropbox文件夹下source文件夹的符号链接,即可实现云端自动同步博客所有资源的方案。从此便可随心所欲的在公司和家里操作编辑同样一份博文喽。

    符号链接
    同时,Dropbox在移动端也有相应的产品,我在我的Android手机安装了Dropbox的客户端,这样就可以在随时随地查看我编辑的博文,而博文是Markdown文件,可以下载MarkdownX的一款App,这是一款在移动端非常棒的可以查看预览编辑Markdown文件的应用,最重要的是,它可以和Dropbox联动!!!

    云端同步的全套解决方案搭建完成。

    二、Sublime + Evernote(印象笔记)

    云端同步的另一个方案的出发点是这样的。我习惯每日会写工作日报,包括自己当天的工作计划,工作总结,学到的内容,一些感悟等等。我希望可以在 Sublime 中编辑它,而且它能够自动同步到移动端和另一台电脑,使我可以随时随地的查看和编辑。当然使用第一种方案也是可以的。但是这个需求的核心是我需要的是笔记的同步,而不需要同步文件,因此我更喜欢用专业的云端笔记产品。而在国内知名度很高的有道云笔记,我之所以没有选择它,是因为没有和Sublime联动的插件可以供我使用,我无法在Sublime中去编辑我的工作日报,只能在有道云笔记的客户端编辑,而且客户端暂不支持Markdown编辑,因此还要考虑排版云云,啊,简直不能忍!选择印象笔记就是因为这款在Sublime上的插件:Evernote。这使得我可以直接在Sublime中创建一个新的工作日报,并且以Markdownd的语法去编写,之后同步到印象笔记,自动生成排版,体验实在太棒啦!下面就来看如何搭建这套方案

    1. 安装 Evernote 插件

    在Sublime中按 Ctrl+Shift+P 打开命令板,输入 Package Control:Install Package 打开下载仓库,输入 Evernote 下载安装。

    2. 连接Sublime到你的印象笔记账号

    第一次使用Evernote需要连接你的账号,访问该网站 https://app.yinxiang.com/api/DeveloperToken.action 获取到你的账号对应的Token,这个Token就是你的账号的认证标志,所以要切记保密,任何人拿到这个Token就如同拿到你的密码一样,可以进行你印象笔记中的任何操作。获取到Token之后,打开 Sublime 菜单栏中 Preferences > Package Settings > Evernote > Settings-User 键入上述网页所显示的 noteStoreUrl 和 token 字段。保存,并重新启动 Sublime ,完成账号的关联。

    {
        "noteStoreUrl": "your noteStoreurl XXX",
        "token": "your token XXX",
    }
    

    3. 使用 Evernote

    可以通过 Ctrl+Shift+P 打开命令板,键入 Evernote 就会出现所有的关于Evernote插件的指令,常用的指令包括

    Command Palette > Evernote: New empty note
    Command Palette > Evernote: Open Evernote Note
    Command Palette > Evernote: Send to Evernote
    Command Palette > Evernote: Update Evernote Note
    

    以上指令的详细解释,可参照 Evernote 的官方 GitHub:Evernote
    当然,我们可以直接设置快捷键完成相应的操作。在Sublime的菜单栏中打开 Preferences > Key Bindings - User 键入以下的设置

    [
        { "keys": ["ctrl+e", "ctrl+p"], "command": "show_overlay", "args": {"overlay": "command_palette", "text": "Evernote: "} },
        { "keys": ["ctrl+e", "ctrl+o"], "command": "open_evernote_note" },
        { "keys": ["ctrl+s"], "command": "save_evernote_note", "context": [{"key": "evernote_note"}, {"key": "evernote_has_guid"}] },
        { "keys": ["ctrl+s"], "command": "send_to_evernote", "context": [{"key": "evernote_note"}, {"key": "evernote_has_guid", "operator": "equal", "operand": false}] },
    ]
    

    以上快捷键的解释,第二个设置表示,连续按 "ctrl+e", "ctrl+o" 会在Sublime中打开云端的印象笔记,可以进行相应的文件夹和文件的选择,确认即可打开。第三个设置表示,在打开的是一个印象笔记文本的情况下,按"ctrl+s"可以直接保存到云端。第四个设置表示,如果是一个新建的笔记(例如通过 Command Palette > Evernote: New empty note 命令在 Sublime 中新建的一个笔记),还没有在云端,按"ctrl+s"可以将此笔记发送到云端。

    4. 建立模板

    每次新建一个文件,我们可能需要一些模板,这是可以实现的。在 Sublime 的菜单栏打开 Preferences > Package Settings > Evernote > Settings-User 键入以下的字段

    "default_template": "Packages/User/EvernoteNote.md",
    

    然后打开 Preferences > Browse Packages... 打开User文件夹,新建一个EvernoteNote.md文件作为一个模板,需要注意的是,需要把这个文件转换为UNIX格式,才能正常的使用。

    5. 注意事项

    在印象笔记的如上使用过程中,发现一个非常严重的问题,就是如果我本地的一个 Markdown 在 Sublime 中打开编辑,之后发送到云端,如果直接在打开的这个文件继续编辑保存,是可以继续上传到云端的,而假如我此时在 Sublime 中关闭这个本地的文件,再次打开,此时系统将无法确认这个文件是和云端的印象笔记的某个文件是关联的,也就是说,这个时候,你无法再将新的更改添加到刚才的那个云端笔记中,只能重新发送一个相当于新的笔记到云端。这是一个非常不好的体验和痛点,我也在开发这款插件的作者的Github中看到了有关这个问题的讨论,可能因为确实十分棘手,作者最终并没有给出解决方案。
    而我们可以通过改变我们的使用方式来绕开以上的痛点。使用流程如下,先通过 Command Palette > Evernote: New empty note 新建一个笔记,定义好我们笔记的文件名和所在的文件夹,保存这个笔记,相当于发送到云端,这时我们就可以编辑了,当编辑完成关闭之后,下次通过 Command Palette > Evernote: Open Evernote Note 命令直接打开云端的一个笔记进行修改和编辑,这很好的解决了本地文件与云端文件的关联问题。
    总之,核心的思想就是,不在本地进行编辑,只编辑云端。Sublime只是一个用来编辑云端笔记的编辑器,真正的存储位置就是在云端。

    以上的所有关于 Evernote 的设置可以参考 Evernote 的GitHub主页。

    至此,Sublime + Evernote 的云端同步方案搭建完成,可以享受畅爽的多端同步笔记了。在公司电脑写的工作日报,可以直接在家里PC和手机端进行查看和编辑,从此走向人生巅峰~~~

    相关文章

      网友评论

      • 简闻:现在开发者 token 被禁用了
      • 张氏小毛驴:楼主,我也是在云端创建文件编写后保存到Evernote,但是不知道为啥有时候再打开文件就多了一些类似http的东西,整个markdown语法就多了这些东西。请问你知道为什么吗?
      • 我爱吃川菜:楼主,我在sublime写代码,同步到印象笔记时,显示的代码有高亮吗?
        dukecui:@我爱吃川菜 说实话,这个高亮做的很差劲
      • qingfeng825:不错
        dukecui:@qingfeng825 谢谢 :blush:
      • 80d1b3f6ac7a:改天试试
        dukecui:@Frank_Crf 择日不如撞日
      • 春阳:学习了!!!
        dukecui:@e884756503a7 哈哈哈,谢谢支持哦 :wink:

      本文标题:Sublime编写Markdown,以及云端自动同步方案(Sub

      本文链接:https://www.haomeiwen.com/subject/hxholttx.html