之前的一系列博客(①~②、③、④)里,基本上我们夯实了使用Ubuntu系统所需的基础知识,这一篇里我们来谈谈在这个低调而强大的平台上,如何使得操作者遵循系统的设计理念,通过恰当的选用软件,从而达到人机合一的化境,将这个平台的潜能发挥到极致,进而十倍,百倍的提升操作者的生产效率。
我们就接着聊聊Ubuntu/Linux下的常用效率软件,网络上常常有Linux用户在学习,使用了这个平台上的软件以后发出这样的感叹:“几乎每一个Linux软件都可以写成一本书”。这基本上就是Linux系软件强大到令人敬畏的最好注脚。也因此在有限的篇幅里不可能涵盖那么多软件的方方面面,更何况笔者本人视野有限,故以下文字只做提纲挈领的引介,希望起到抛砖引玉,启示读者的作用。
这一篇里先对常用软件做简介,考虑到Linux作为一个开发者系统的角色,我们在下篇里再介绍针对开发者需要的软件。大体上我会按以下思路介绍每个软件:
1. 软件背景
2. 安装配置
3. 入门与心得
编辑器之神:GVim
Vi/Vim是Linux系机器默认标配的编辑器软件,基本上我认为你可以不需要Linux上的任何其它软件,但是你不可以说:“我想学Linux,但是我不想学Vi/Vim”。Vi/Vim的学习曲线很高,但是你一定需要学会的理由是:
1. 文本系统
Linux系统是基于命令,文本配置的系统,更别说如果你还是一个开发者需要写代码,不能熟练使用世人尊称编辑器之神的杀手级应用,你在这个GUI不友好的世界里其实寸步难行。
2. 无处不在
如果你使用Linux,意味着你不会安心的只使用自己的本地桌面,装上Vi/Vim替代品假装不需要学习Vi/Vim,你更有可能需要远程登录到一个陌生环境去操作另一台Linux,而那个机器上80%的可能只有默认标配的Vi/Vim,这种状况下任谁都会感到很局促,也有变通的方法:我看到很多Windows下的开发者使用ftp客户端从远程机器上去拖拽几个G的日志文件到本地,然后再使用Windows上的编辑器花几分钟时间加载这个巨大的文件,这还没有结束,如果问题没有解决,这个痛苦费力的过程会继续一而再,再而三的重复下去。这个时候我常常想他们为什么不把这些时间花在学习Vi/Vim上呢?
3. 高效编辑
作为编辑器,Vi/Vim发展至今,再配合精良的插件机制,其功能的丰富和强悍已经超越了人类可以做到想到的极限。在最初,鼠标出现以前,人类只能依靠键盘操作电脑,码字,尤其是如何高效码字是其中重要的一项操作,Vi/Vim就是被设计成高效使用键盘码字的工具。所以它分了三种编辑模式,在细节上,规定所有击键行为只发生在主键盘区:只是为了避免双手哪怕多几个厘米间的位移产生的效率损耗。还是为了向效率妥协,它设计了种种反人类的操作方式来实现各种编辑功能,为了追求编辑效率,它向人类施加操作成本和记忆负担。在鼠标出现以后,理应只为键盘服务的码字软件却因为它的高效设计在程序员中间依然有很高的接受度。这种现象其实更应该让我们反思今天所谓讨好普通用户的人机设计中到底存在哪些问题。
4. 一劳永逸
学习Vi/Vim并不是在学习Vi/Vim本身,而是在学习一套使用键盘操控计算机的规范(例如:hjkl表示左下上右),由于这套规范被很多人认可接受已经成为一种标准规范,所以这套标准规范被嫁接到其它许多的软件上诸如:Vimperator, w3m, Eclipse, 甚至是GVim的死敌Emacs。可见作为一种约定成俗的标准,学习Vi/Vim的边际效益十分可观,你只要学会这种规范,就可以在许多地方——不止于编辑器本身,发挥学习成果的威力,我们在下面的文字中会看到许多这样的案例,先讲一个小例子,在终端中输入:
1 $ set -o vi
可以开启以兼容vi的快捷键操作bash命令,此时你可以在终端使用Esc切换到命令模式,在命令模式下,按 h,l 可以左右移动光标,按 j,k 可以切换前一条后一条命令。x可以修改字符,”$, ^”可以返回命令尾部或头部,i 可以返回编辑模式。
软件安装配置
Vi/Vim 本身不需要安装,但是如果你更乐衷于视觉效果更好,功能更丰富的GUI版本可以安装GVim:
1 $ sudo apt-get install vim-gnome
安装完毕以后,在终端界面中随时键入以下命令就可以开始编辑文件:
1$ vi filename
2$ gvim -f filename # Ubuntu 12.04 和 gvim 有冲突,需要加 -f 参数,否则启动gvim后有假死现象。
配置文件位于:
1~/.vimrc 主要用于编辑器本身相关的设置,例如:字体,快捷键,插件相关设置。
2~/.vim 目录用于存放设置前后背景色,语法高亮等主题文件,第三方插件文件等。
插件管理:
由于传统的Vim插件只需要在下载后拷贝进上述 ~/.vim 目录,一来不方便管理:每个插件都会有三四个子目录散落在~/.vim这个主目录里,二来不方便更新插件:如果插件有更新,需要重复拷贝插件至~/.vim目录的步骤。为了解决这两个问题,最近比较流行的插件管理方法是首先安装另一个名为 pathogen 的管理插件的插件,然后新建目录
1 $ mkdir -p ~/.vim/bundle
以后所有的插件都可以通过 git clone 的方式(关于 git,有兴趣的同学可以先参考这里: github),拷贝到 ~/.vim/bundle 例如:安装名为 vim-css-color 的插件用于高亮css中的颜色代码,只需要:
1$ cd ~/.vim/bundle
2$ git clone https://GitHub.com/skammer/vim-css-color.git
这样插件文件会被集中管理在~/.vim/bundle/vim-css-color,同时只需要在插件目录中执行 git pull 就可以一键更新,vim-css-color 插件效果图如下。
入门与心得
Vi/Vim 纵使有诸多好处,阻碍人类使用它的最大障碍在于陡峭的学习曲线。我在网络上听到过哀鸿遍野的声音:“学不会快捷键,学了就忘,太难用了,放弃了”。因为没有循序渐进的阶梯,所以希望学会Vi/Vim的初学者需要集中一段时间的精力反复操练,好像一道坎一样,跨过去别有洞天,过不去就放弃了。再打个鲤鱼跃龙门的比方,你需要卯足了气力使劲跳,跳过去成龙,跳不过去放弃了就始终是条鱼,这就是学习Vi/Vim的真实写照。所以这个事情首先取决于练习者的决心,其次我们再来讲一些学习技巧。
关于学习Vi/Vim的资源,在网络上不计其数,我看到过各种书籍,文章,博客,有同学很认真的在阅读,翻看,甚至记录笔记,还有许多同学,把所有快捷键的图片作为背景设置在桌面上,甚至彩打在纸张上,贴在自己的电脑边。这里面其实有一些问题:
1.只言片语的文章博客并不能系统的告诉你到底哪些Vi