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/
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/