【zz】几个简单选项让你的Readline(Bash)更好用

Reddit上的一位仁兄贴出了他的readline手册学习成果,只需要在.inputrc中加入几个简单的选项,就可以让你的readline(Bash)界面变得更好用。

set completion-ignore-case on

这个选项很直白,自动补全时忽略大小写:

来看个例子:

$ ls
longFileNameLINUX-2.6.37-4    longFileNameLINUX-2.6.37-7    longFileNameLINUX-2.6.38-11    VeryCompliCATEDfileNAME.txt
longFileNameLINUX-2.6.37-6    longFileNameLINUX-2.6.37-8    longFileNameLINUX-2.6.38-9
$ ls very<TAB>
$ ls VeryCompliCATEDfileNAME.txt

set completion-prefix-display-length 2

如果你的某个文件夹下有一堆相似的文件名,那这个选项会非常有用,它会将所有自动补全文件名中相同的部分以...代替,让你更容易找到你想要的文件.

例子:

$ ls
longFileNameLINUX-2.6.37-4    longFileNameLINUX-2.6.37-7    longFileNameLINUX-2.6.38-11    VeryCompliCATEDfileNAME.txt
longFileNameLINUX-2.6.37-6    longFileNameLINUX-2.6.37-8    longFileNameLINUX-2.6.38-9
$ ls long<TAB>
...7-4    ...7-6    ...7-7    ...7-8    ...8-11    ...8-9
$ ls longFileNameLINUX-2.6.3

Control-j: menu-complete
Control-k: menu-complete-backward

如果自动补全的结果只有2,3个文件,这两个选项可以让你通过Ctrl-j和Ctrl-k在结果中快速选择你想要的文件。

举例:

$ ls
cfg-common.h    cfg-mencoder.h    cfg-mplayer-def.h    cfg-mplayer.h
$ ls cfg<TAB>
...common.h    ...mencoder.h    ...mplayer-def.h    ...mplayer.h
$ ls cfg-<Press ctrl-j three times>
$ ls cfg-mplayer-def.h

(作为奖励,对于上面的例子,如果当前目录之后4个文件,实际上你可以直接按3次Ctrl-j找到你想要的文件)

$ ls <Press ctrl-j three times>
$ ls cfg-mplayer-def.h

set show-all-if-ambiguous on
set show-all-if-unmodified on

开启第两个选项后,只需要按一次TAB键,就会进行自动补全,而不是默认的两次Tab,这会帮你节省不少按键,但是副作用就是它会占用你的终端的大部分空间。

set completion-map-case on

打开这个选项后,readline会将下划线_和连接符-当作同一个字符看待,有时候,如果你不能确定你到底使用了那个字符命名文件时,这个选项会很有用。

转自:http://heikezhi.com/2011/09/14/simple-readline-configuration-make-bash-more-friendly/trackback/

猜你喜欢

转载自fuliang.iteye.com/blog/1189135