Bash on Ubuntu on Windows(简称WSL)发布了,随着这个subsystem的发布和完善,估计以后Linux只会在虚拟机上跑了。我当然希望用WSL来搭建写作环境,但WSL默认只提供对命令行程序的支持,不建议使用GUI程序,虽然可以通过安装xming,Xmanger等Xserver方法的方法,让WSL的GUI程序跑在Windows上。emacs也能成功安装和运行,但Bash下并不支持中文输入。让emacs跑在xserver上,同样没有办法调出输入法。估计以后成熟了GUI程序还是能够跑起来的,先放弃WSL,暂时用msys2搭建环境,从结果来看还算是满意的。

1 安装windows版本的node

到nodejs官网下载node 4.4.7,并安装到d:\Runtime\nodejs,执行以下命令,能正常输出node版本号,说明你已经安装成功了。

node -v

2 配置mingw64的环境变量

我自己比较喜欢用emacs,博客都是用org来写的,org文件的渲染是依赖emacs的,emacs是安装在ming64环境里面的,所以hexo要能成功调用emacs,就需要把nodejs的环境变量添加到mingw64的环境中。 打开mingw64

vim .bashrc

#添加如下内容,添加其他环境变量也是类似的
export NODE_HOME=/d/Runtime/nodejs
export PATH=$NODE_HOME:$NODE_HOME/node_global:${PATH}

3 安装python2,python3

pacman -S python2 python3

pacman -S mingw-w64-x86_64-python2-pip
pacman -S mingw-w64-x86_64-python3-pip
#修改msys2默认的python版本
mv python.exe python_backup.exe
cp python3 python

4 安装git

打开mingw64,关于mingw32、mingw64、msys2的差别,参考文章MSYS2 + MinGW-w64 + Git + gVim 环境配置

pacman -Syu

pacman -S git
git config --global user.name "wing-ho"
git config --global user.email "genrong.he@gmail.com"

把之前在Linux下生成的idrsa、idrsa.pub拷贝到mingw64的~/.ssh目录下,或者重新生成rsa的私钥和公钥,生成方法参考如何生成SSH key。

5 安装Hexo

打开mingw64

cd ~

npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server

浏览器中输入http://loalhost:4000,应该能看到Hexo的Hello World页面。

6 安装主题maupassant

cd ~/blog

git clone https://github.com/tufu9441/maupassant-hexo.git themes/maupassant
npm install hexo-renderer-jade --save
npm install hexo-renderer-sass --save

7 安装相关插件

npm install hexo-asset-image --save

npm install hexo-deployer-git --save
npm install hexo-generator-feed --save
npm install hexo-renderer-org --save

新版本的hexo-assert-image@0.0.2对图片的路径计算有误,需要将路径的"./“这两个字符去掉。

#第30行

var src = $(this).attr('src').replace('\\', '/').substring(2);

8 配置blog-admin

参考我的spacemacs的Layer 迁移到Windows下,表格中英文混排时无法对齐的问题又再次出现,解决方法是在dotspacemacs/user-config函数当中添加如下内容。参考文章org-mode的一些小技巧

(set-default-font "Ubuntu Mono 12")

(set-fontset-font "fontset-default" 'unicode"WenQuanYi Bitmap Song 12") ;;for linux
(set-fontset-font "fontset-default" 'unicode "微软雅黑 12") ;; for windows

9 配置Emacs默认浏览器

我自己默认的浏览器是Firefox,虽然Emacs自带的函数browse-url-firefox是针对Linux系统的,需要定义一个新的函数,替换它的作用。打开~/.spacemacs 在dotspacemacs/user-config函数当中添加如下内容。 参考文章:BrowseUrl

(defun dotspacemacs/user-config ()

(defun browse-url-win-firefox (url &optional new-window)
(shell-command
(concat "start firefox " url)))

(setq browse-url-browser-function 'browse-url-win-firefox)
)

10 安装字体

Ubuntu Mono 我比较喜欢的英文字体,我是用它作为我的默认英文字体的。 雅黑-Consolas混合字体,编程专用 如果用其他的编辑器,只能设置一种字体,这种字体中英文看起来都很不错,非常适合我们程序员使用,为了在编辑器中看起来更加锐利,用IE打开链接cleartype设置显示效果。Emacs是可以针对中英文设置不同的字体的,中文字体我比较喜欢雅黑,具体设置方法参考配置blog-admin一节。

至此总算把Emacs的写作环境搭建好了,回到Windows的感觉真好,Windows下的丰富的各种应用程序,而且现在有了Bash On Windows,实在需要到Linux下跑的程序就放到WSL下跑就可以了 。短期来看,硬盘中的Linux还是要保留的,用WSL编译程序经常会出各种莫名其妙的问题的。

11 后记

Windows 10的更新策略改变之后,每次大的版本更新就像是重装一次系统似的,需要等待漫长的更新时间。特别如果你加入了Insider Preview计划,这个更新更加是频繁发生。终于有一次更新后,连grub引导都发生了,导致无法启动系统。原因是这个版本的更新,从主分区中划分出来一个大概500m的recovery分区,连我自己做好的分区都敢动,微软你的胆子也太大了。实在受够了这个胆大妄为的做法,我决定还是回到Linux的怀抱,令我欣喜的是随着WPS版本的更新,WPS的Linux版本可以稳定使用了,这次Windows真的可以byebye了。

Last Updated 2018-10-14 日 23:38.
Created by Emacs 25.1.1 (Org mode 9.1.14)