1$ man grep
砍掉使用鼠标最后的借口:keynav
使用一个Linux系统虽然在80%的状况下你可以没有障碍地使用键盘完成所有操控,但是仍然可能会有一些只能使用鼠标的状况出现,例如:某个GUI软件没有提供相应的快捷键,或者即使提供了,你还不清楚。这个时候可以调出 keynav 这个软件,砍掉使用鼠标的最后一个借口。keynav 被用来替代鼠标点击屏幕上的任意一个像素。它的设计思想是这样的:运用键盘快捷键,它可以显式的将整个屏幕分割成四个区域,然后输入hjkl代表左下上右(很耳熟?)像两分法那样,把整个屏幕分割成左一半或者下一半或者上一半或者右一半,在当前的半个屏幕内重复输入hjkl持续进行屏幕的两分操作,这样显式高亮的区域会越来越小(多一次分割面积缩小一半),一直小这个区域的中心点和你想点击的目标区域重合,这个过程就是模拟鼠标从当前位置移动到目标位置的过程,此时再次键入快捷键完成模拟鼠标点击的动作即可,这样理论上,在没有更好选择的情况下,你就可以使用键盘模拟鼠标完成任意点击工作,进而避免双手在主键盘区和鼠标之间的来回切换,节省宝贵的操作时间。那么这样做效率如何?根据计算,在一块分辨率为 1920×1200 的屏幕上(适用屏幕尺寸在24英寸以上),点击屏幕上任意一个像素的最坏情况是击键21次做两分法分割屏幕的动作,这个结果有点糟糕,但是实际上,不是每个人都有那么大的屏幕(适合文本工作的显示器大小是22英寸,可以得到最佳字点距,此时分辨率大小为 1680×1050),再者,就算是鼠标,也没有认定需要精确到一个像素的大小才可以点击,我们点击的对象往往是一个像素区域,例如:一个工具栏,一个按钮,一个文本框,这样以点击按钮为例:按钮占据60×25个像素区域,在1920×1200的屏幕上最差需要击键11次完成定位。这个只是最差情况,以笔者22英寸显示器的使用经验来说,4到5次击键即可完成定位,效率不会比鼠标更高,但是完成定位点击的耗时绝对不会比省下切换鼠标的时间更多。至此,我们完成了使用 keynav 替代鼠标的理论验证和实践证明,读者不妨可以大胆拔掉鼠标。
安装配置与入门
Ubuntu 的官方源默认自带这个软件:
1$ sudo apt-get install keynav
配置文件位于:~/.keynavrc 可自行修改快捷键。
另外你可以设法让这个软件随机启动:
1$ vi ~/.xprofile
加入一行:
1keynav
重新登录系统即可。
首次启动后,按 “ctrl + ;” 激活显式高亮区,再按hjkl移动定位,最后按空格键模拟鼠标点击。掌握这个软件并不需要太长时间,可以参考 官网 和 demo 演示。
更多用法参考 man:
1$ man keynav
文本浏览器:w3m
在这个GUI横行的世界,笔者推荐一个兼容中文的文本浏览器:w3m,你需要一个文本浏览器的理由:
1. 速度和专注
无需加载图片,加载速度更快,使用户专注文字内容本身,适合比较纯粹的文字阅读,特别是文档查阅。
2. 运行在终端界面
它很酷,只需要 bash shell 终端就可以运行,也就是说你是在命令行里上网,即使没有GUI图形系统,也不能阻碍你访问 Web,在许多场合这很重要:
●无法进入图形界面需要上网搜索方案
●ssh远程登录到某个主机的时候需要直接在那台主机上下载文件,或许那台主机的网速比较给力也没有墙,你也可以避免先在本地下载,再把文件传送到远程机,所以你需要在远程机的终端里直接访问 Web。
3. 全键盘操作
终端界面的另一大好处是无法使用鼠标,这就迫使你使用键盘操控文本浏览器,提升浏览效率。而且如果你会使用 Vi/Vim,那么操控 w3m 的体验和 Vi/Vim 高度相似(使用hjkl移动光标,/keyword 查询关键字等等)。
4. 格式渲染,中文支持完善
使用 w3m 的 web 渲染效果很美观,用 w3m 访问 gmail 的效果图:
安装配置与入门
安装 w3m 非常简单:
1sudo apt-get install w3m
如果想更改部分快捷键,例如:更改上下翻页的快捷键和 Vi/Vim 的翻页快捷键一致(Ctrl-d,Ctrl-u),可以新建文件:
1vi ~/.w3m/keymap
输入以下内容,重新绑定快捷键:
1keymap C-d NEXT_PAGE
2keymap C-u PREV_PAGE
安装完毕以后,打开终端输入:
1$ w3m http://www.example.com
即可访问,hjkl:移动光标,/keyward回车:搜索关键字并定位光标到目标对象,如果目标是一个链接,直接回车即可跳转。持续的按Tab键则可以自上而下的切换当前页面上的链接,回车可以跳转,按Tab+Shift则自下而上反向切换。最最基本的功能就是这些,如果想查看更详细的功能,打开 w3m 后按 Shift+h 查看快捷键。
屏幕管理器:tmux
作为一个以命令行终端为基础的操作系统,有效率的Linux用户会花费大约30%以上的时间在自己的终端界面上,一个功能强大,用户友善的终端界面管理软件会显得很贴心。这里笔者介绍一下 tmux 这个软件。tmux 是一款用于管理终端界面的程序,主要功能有以下几个:
1. 可分割,多Tab的终端窗口
在一个整块的屏幕终端界面上切分出任意多个子窗口,例如:你可以在屏幕的左半个区域里编辑文字,右半个区域里查看资料,提高屏幕空间的利用率,用户可以在一屏的空间里同时看到两个终端的内容,节省切换终端的麻烦,这个功能在大屏幕时代相当实用。好像现代浏览器的Tab概念类似,tmux里也可以方便的新建,切换,关闭不同的Tab代表不同的终端。有了可分割和多Tab的终端,这样你就无需为了不同的目的开启多个终端界面,尤其在登录到远程主机的时候很有用:避免反复开启本地终端远程连接主机或者不停将前台程序切换到后台运行为了腾出当前终端的控制权,你只需要一个远程连接就可以随意开启任意多个终端,并且在这些终端里快速切换。
2. 复制终端文本
传统的终端界面,只能使用鼠标复制界面上的文本,tmux 的一个附加福利是允许你用键盘进入编辑模式,复制粘贴终端上的任何文本。例如你正在终端里编辑一个文档,里面需要一个很长的路径,你可以划分出一个新终端,运行获取路径的命令,然后把结果复制到原先终端的编辑器里。期间的光标移动和搜索命令仍然是Vi/Vim类似