sublime text本身不运行jekyll,仅调用系统ruby环境执行jekyll serve;需先在终端验证jekyll -v是否返回版本号,再配置build system封装bundle exec jekyll serve命令,并确保项目根目录正确、编码为utf-8、依赖完整。

Sublime Text里装不了Jekyll?先确认Ruby环境是否就位
Sublime Text本身不运行Jekyll,它只是编辑器;真正执行jekyll serve的是系统里的Ruby环境。很多人卡在“点开Sublime就能启动本地预览”,结果命令行报错command not found: jekyll——问题根本不在编辑器,而在终端里jekyll压根没装好。
验证方法:打开终端(不是Sublime的Build System),输入:jekyll -v
如果返回版本号(如4.3.2),说明Jekyll已就绪;否则得先装Ruby和Jekyll,再回来配Sublime。
- Windows用户注意:必须安装Ruby + DevKit,不能只装RubyInstaller默认包(缺编译工具,
gem install jekyll会失败) - macOS用户推荐用
brew install ruby,再gem install jekyll bundler,避免系统Ruby权限问题 - Linux(如Ubuntu)需额外装
build-essential和ruby-dev,否则bundle install会因缺少头文件中断
用Package Control装Markdown插件,但别指望它跑Jekyll服务
Sublime Text能帮你高效写Markdown、实时预览HTML,但它不会替你执行bundle exec jekyll serve。所谓“配置Jekyll环境”,实际是两件事:写文档快 + 本地预览准。这两块靠插件补足,但服务进程仍得手动启停。
推荐装这三个插件(通过Ctrl+Shift+P → Package Control: Install Package):MarkdownEditing(语法高亮/快捷键支持)MarkdownPreview(导出HTML或浏览器预览)SideBarEnhancements(右键菜单直接Open in Browser)
-
MarkdownPreview默认用Python内置HTTP服务,不走Jekyll渲染逻辑,所以Liquid标签(如{% include %})、数据文件、插件功能全无效 - 想看真实Jekyll效果,必须先在项目根目录运行
bundle exec jekyll serve,再把MarkdownPreview设为browser模式,指向http://localhost:4000/xxx.html - 插件设置路径:
Preferences → Package Settings → MarkdownPreview → Settings,关键项:"markdown_extensions": ["meta", "toc", "fenced_code"](加meta才能读Front Matter)
Sublime里一键启动Jekyll服务?用Build System绕过终端
虽然Sublime不能替代终端,但可以封装常用命令成Build System,省去反复切窗口敲命令的麻烦。这不是“全自动”,而是把bundle exec jekyll serve变成Ctrl+B一键触发。
操作路径:Tools → Build System → New Build System,贴入以下内容并保存为Jekyll.sublime-build:
{
"cmd": ["bundle", "exec", "jekyll", "serve"],
"working_dir": "${project_path:${folder}}",
"shell": true,
"encoding": "utf-8"
}
-
working_dir确保命令在当前项目根目录执行,否则_config.yml找不到 - Windows用户需把
bundle换成bundle.bat,且确认bundle命令已加入PATH(Ruby安装时勾选“Add Ruby executables to your PATH”) - Build输出窗口里看到
Server address: http://127.0.0.1:4000/才算成功;若卡在Configuration file: none,说明没在Jekyll项目根目录打开Sublime工程
中文路径或GBK编码导致Jekyll build失败?别怪Sublime
Windows上常见错误:invalid byte sequence in GBK 或 Encoding::UndefinedConversionError。这不是Sublime的问题,而是Ruby默认用系统编码(GBK)读UTF-8写的Markdown文件,一碰中文就崩。
临时解法(不改系统):
在项目根目录新建.bashrc(或git-bash下生效),加一行:export RUBYOPT="-KU"
再用Git Bash而非CMD运行bundle exec jekyll serve。
- 更彻底的方案:修改
_config.yml,加encoding: utf-8(Jekyll 4.0+支持) - Sublime保存文件时务必选
UTF-8编码(右下角状态栏确认),不要用UTF-8 with BOM,否则Jekyll解析Front Matter会失败 - 旧版Jekyll(lib/jekyll/convertible.rb里的
File.read调用,强制加:encoding => 'UTF-8'——但升级Jekyll比修源码更省事
jekyll serve进程。Sublime能做的,只是让写、看、触发变得更顺手;一旦涉及编码、依赖、插件加载顺序这些底层问题,最终还得回到命令行里查bundle list、看_site目录有没有生成、盯住终端日志里的第一行报错。











