毫无违和感的Emacs

Spacemacs VMD即时预览

Chrome与Shell

WebTorrent与MPV

为什么?

以前一直使用macOS,在macOS中使用各种Linux工具软件与命令还有Emacs非常方便,几乎得到与在Linux下使用一致的体验。后来由于各种原因转到使用主力操作系统为Windows 10,为了在Windows 10中获取与Linux下一致的使用体验折腾过各种办法,包括:Cygwin、Msys2、Cmder、Vagrant、Bash On Windows甚至Spacemacs的Docker。结果总是各种不理想,每一种方案都有各种坑,各种不便。后来于是想,干脆捣鼓一个虚拟机算了。

优点?

可以使用一个完整的Linux系统,配合VirtualBox共享文件夹可以很方便的操作Windows 10上的数据。窗口管理器使用Xmonad,几乎没有任何违和感,就跟开了一个普通的WIN32软件一样。将整个工作平台放入虚拟化之后可以很方便的整个备份全部工作平台,最重要的是可以使用快照。刚刚开始学习Linux的时候尝试各种软件,各种配置,新技术,新软件,经常容易搞坏系统或者影响心里上的洁癖。不过,把整个工作平台虚拟化之后就可以敞开了折腾了,只需要记住折腾之前先来一个快照就OK了。

需要软件?

虚拟化选用VirtualBox,因为VirtualBox轻量化,对Linux支持很好,而且界面可以隐藏菜单条跟状态栏,还能使用无缝模式。

虚拟机操作系统选用Xubuntu。Xubuntu是一个轻量化界面的Ubuntu系统,占用系统资源较少。

窗口管理器使用Xmonad,Xmonad是一个超轻量化的窗口管理器。支持强大的自定义配置与全键盘操作。

步骤

安装Xubuntu

推荐使用16.04 LTS版本,长期支持版各种包依赖坑比较少。首先新建一个虚拟机,类型为Linux版本为Ubuntu (64-bit),需要注意的是:

  • 不要启用PAE/NX,如果启用了会造成虚拟机频繁当机。

  • 不要启用拖放,可能会造成VirtualBox Guest无法共享粘贴板。

  • 不要启用3D加速,会造成OpenGL错误,如vmd之类的会启动报错。

之后按照安装其他虚拟机一样,下一步下一步就行了。安装完成之后启动虚拟机,在虚拟机窗口上方菜单与下方状态条上右键选择隐藏工具菜单隐藏状态栏,当然你也可以不隐藏,不过我喜欢隐藏,这样看起来更没违和感。

安装 Xmonad

新安装完的Xubuntu建议进行一次系统快照,最好下面每个操作步骤阶段都先快照一下,以免意外与养成良好的快照习惯。

$sudo apt update & upgrade
$sudo apt install xmonad

之后Logout,然后从登录界面右上角选择登录Xmonad。刚进入Xmonad会一片黑屏或者显示Xubuntu的壁纸,不要怀疑你没有死机,使用快捷键Alt + Shift + Return进入终端。

Xmonad 常用快捷键:

  • Alt + 1, 2, 3, 4, 5... 切换工作区到1, 2, 3, 4, 5...

  • Alt + p 快速启动软件,需要安装dmenu

  • Alt + Shift + c 关闭选定窗口软件

  • Alt + Return 选中视窗移动到头

  • Alt +j Alt+k 切换到窗口

  • Alt + Space 窗口显示模式转换

其他更复杂的快捷键与配置说明网上很多,这里就不说了。

安装增强工具

使用快捷键右Ctrl + Home调出VirtualBox菜单,选择安装增强工具。然后在虚拟机里安装增强工具:

$sudo apt install dkms
$mkdir $HOME/cdrom
$sudo mount /dev/cdrom ~/cdrom
$sudo ~/cdrom/VBoxLinuxAdditions.run

安装完成之后重启虚拟机,然后打开虚拟机的粘贴版共享共享文件夹,已方便虚拟机操作宿主机数据。我是将Windows 10个人目录整个共享给虚拟机了,这样比较方便,当然你也可以只共享你的工作目录。启用了文件共享之后你会发现你共享的文件夹在/media目录之中,但是你无法进入。这是因为vboxsf这个组件是以Root权限运行的,所以共享文件夹也是Root权限,非Root账户无法直接访问。所以你需要将你使用的账户加入相关组,以获得共享文件夹访问权限,当然你也可以只使用Root账户就不会有这个问题了。

$sudo usermod -aG vboxsf $(whoami)

之后重启虚拟机,就可以访问共享文件夹了。为了方便使用你最好将共享文件夹软链接到虚拟机的个人目录中。基本上相关安装步骤到这里就结束了,之后你可以按照你喜欢的方式安装各种Linux软件和配置,下面仅是记录我喜欢的。

配置Xubuntu

  • Zsh 一个强大便捷的Shell,我喜欢跟Oh-my-zsh一起使用

  • Tmux Shell神器

  • Autojump 方便各种目录

  • TheFuck 自动纠正上一条错误命令,虽然不是很智能

  • Locate 类似Windows上的Everything

  • Tern Spacemacs Web-mode的语法检查依赖

  • Vmd Spacemacs Markdown的即时预览引擎

$sudo apt install tmux git-core zsh autojump locate python3-dev python3-pip curl
$sudo pip3 install thefuck
$sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
$chsh -s /usr/bin/zsh
$curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
$nvm install v6.10.2
$nvm use v6.10.2
$npm install -g tern
$npm install -g vmd

在Zsh配置里开启相关插件,加入变量:

# Path to NVM
export NVM_DIR="$HOME/.nvm"  
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

plugins=(git nvm node npm emacs autojump vi-mode thefuck)  

安装好看的Tmux Theme:

$git clone https://github.com/jimeh/tmux-themepack.git ~/.tmux-themepack
# ~/.tmux.conf
source-file "${HOME}/.tmux-themepack/basic.tmuxtheme"  
setw -g mode-keys vi  
bind v split-window -h  
bind s split-window -v  
set -g base-index 1  
set-option -g default-shell /usr/bin/zsh  

安装字体

$sudo apt install ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
$wget https://github.com/adobe-fonts/source-code-pro/archive/2.010R-ro/1.030R-it.zip
$unzip 1.030R-it.zip
$sudo cp source-code-pro-2.010R-ro-1.030R-it/OTF/*.otf /usr/local/share/fonts/
$sudo fc-cache -f -v

安装输入法与中文语言包

$sudo apt install fcitx fcitx-rime fcitx-table-all
$fcitx-config-gtk3
$sudo apt install language-pack-zh-hans language-pack-zh-hans-base
$sudo vim /etc/default/locale
$sudo update-locale
# /etc/default/locale
LANG="zh_CN.UTF-8"  
LC_NUMERIC="zh_CN.UTF-8"  
LC_TIME="zh_CN.UTF-8"  
LC_MONETARY="zh_CN.UTF-8"  
LC_PAPER="zh_CN.UTF-8"  
LC_NAME="zh_CN.UTF-8"  
LC_ADDRESS="zh_CN.UTF-8"  
LC_TELEPHONE="zh_CN.UTF-8"  
LC_MEASUREMENT="zh_CN.UTF-8"  
LC_IDENTIFICATION="zh_CN.UTF-8"  

如果不安装中文语言包和设置locale的话,就无法在Emacs中呼出fcitx

安装Spacemacs与设置字体

$sudo add-apt-repository ppa:kelleyk/emacs
$sudo apt update
$sudo apt install emacs25
$sudo apt install silversearcher-ag
$git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
;; ~/.spacemacs
dotspacemacs-default-font '("Hack"  
                            :size 14
                            :weight normal
                            :width normal
                            :powerline-scale 1.1)

(defun dotspacemacs/user-config ()
  ;; Setting Chinese Font
  (spacemacs//set-monospaced-font "Hack" "WenQuanYi ZenHei" 14 16)
  )

安装Chrome

$wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
$sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
$sudo apt-get update 
$sudo apt-get install google-chrome-stable

安装Ranger与Midnight Commander

$sudo apt install ranger
$sudo add-apt-repository ppa:eugenesan/ppa
$sudo apt-get update
$sudo apt-get install mc