美化终端里的生活

我的热爱

从 2007 年接触 Linux 开始,便一直习惯在终端里做事情。最开始是简单的 c/c++ 编程,后边遇到了 vim 便一发不可收拾。

Linux 世界里有很多神器——LaTeX, vim, emacs,个中奇技淫巧可能一辈子都难以穷尽,但每个爱他们的人都至爱着他们可能习惯了上十年的若干特性。我主要用着 bash、vim、ctags/cscope 这几件。

zsh 敢情也是极好的 shell,只是我习惯使然,也是惰性使然,不会再去了解它了。

vim 有两个系列,主要是 NeoVim 和 经典 vim,前者是由于经典 vim 在新特性的开发上太慢而分裂出来的版本,在异步化编程的支持、buffer 管理方面有很多新特性,给用户的感知就是做事能多任务,效率会更高,明显地降低前端界面的卡顿感。比如自动补全这种场景需要 clang 一边咀嚼源代码生成 vst 信息一边给 vim 前端提供数据就非常依赖这个特性; 有了异步 job control neovim 里生成 tags 也变得更优雅而安静。最近 vim 8.x 也发布了,朝着 NeoVim 的方向前进了一大步,所以两者也相对比较接近了。我最近也习惯于使用 NeoVim 了。

vim 和 emacs 之争是一个口味问题,并且我见过的人中基本上只能熟悉其中的一种,没办法同时熟悉两种,这就跟你没法频繁变换两种键位差异巨大的键盘打字一样。功能上两者都非常强,有久经考验的插件生态。在能做的事这块可能 emacs 占优,基本上你在其他很多软件里能获得的功能都可以在一个 emacs 里搞定,比如听歌、上网、写博客等等,谁让它是用只要 7 个函数就能构造出全宇宙的 lisp 写的呢。

好了。以上就是我对终端的简单热爱,其中 90% 是对 vim 的热爱。

为了改善我们的 coding 生活,同时号召那些没有在终端里生活习惯的人尝试这样一种新的方式,我谈一谈如何美化终端里的生活。

终端选择

我们这里所说的“终端”不是原始的那个终端,而是终端模拟器软件,在这个的选择上我倾向于选择 iTerm2(对了,我现在是忠实的 Mac 用户),在真彩色方面有优势,其他特性在这里我不多展开。

终端配色

终端的主题配色我推荐 base 16,个人很喜欢 base16-3024。

程序员字体

程序员编程字体我推荐 INCONSOLATA,在过去我使用过微软雅黑 consolas hybrid,source code pro 等那个时代不错的程序员字体。

vim 插件管理器

NeoVim 插件这块我选择了 vim-plug,整个的 NeoVim 配置文件可从我的 coding pack 仓库下载

vim 插件

我常用以下几个经典插件:

  • cscope/ctags (搜索利器)
  • ctrlp
  • NERDTree
  • airline (配合 base16-3024 主题味道更好)
  • youcompleteme (目前用得不多,接下来打算重点用用)
  • goyo (markdown 语法高亮)

网上关于 vim 插件的文章汗牛充栋,我这里链接一篇适合初学者的——打造一个现代化的vim编辑器: neovim + nyaovim + youcompleteme + airline

vim 对写作的好处

由于 vim 里写作不需要去操作鼠标,这样你的双手就尽情在键盘上挥洒(跳转、创建文件、提交代码、切 tag 都可以无缝完成)就好了。可以得到一种沉浸式写作的体验。

geek 的标志

在计算机这个行业,一个 geek 最明显的标志就是:你会熟练使用 vim 或 emacs

图例

附上几张案发现场图

001
002
003
004