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/
分享到:
相关推荐
本文将深入探讨`readline`库的使用及其相关知识点,以帮助开发者更好地理解和应用。 `readline`库主要用于处理用户通过标准输入(通常是键盘)输入的行数据。它提供了历史记录、补全、编辑等功能,极大地提高了用户...
这个版本的发布,是为了改善上一版本的性能和增加新特性,使得开发者能够更便捷地创建那些需要用户输入的应用程序,如bash shell、Python解释器等。 **主要功能** 1. **命令行编辑**:readline库提供了丰富的键盘...
一个linux上依赖readline库的仿bash命令行功能的测试使用Client。_CliTestClient_readline
**正文** bash shell,全称为Bourne-Again SHell,是GNU项目的一部分,由自由软件基金会的创始人理查德·马修·斯托曼(Richard Stallman)发起,是Unix/...通过分析和实践,你将能够更好地驾驭这个强大的命令行环境。
此外,`Readline`库还提供了许多内建的函数和变量,它们可以影响库的行为,熟练掌握这些函数和变量可以帮助我们更好地利用`Readline`提升命令行操作的效率和便捷性。 总之,`Readline`是一个强大的命令行输入库,它...
libedit是一个轻量级的选项,它在某些环境下,特别是内存受限的系统中,可能是个更好的选择。 5. **readline库的版本更新** readline-5.0是该库的一个较早版本,随着时间的推移,readline已经发展到了更高版本,每...
`readline` 是一个广泛使用的命令行接口库,主要用于提供可定制化的用户输入功能,常见于各种解释器、shell 和编程语言环境中,如 Python、Perl 和 GNU Bash。这个库使得程序能够支持历史记录、编辑功能以及通过键盘...
- **Chinese Manual Page 项目**: 该项目提供了一个全面的 Bash 中文手册,这对于初学者来说是一个很好的学习资源。通过 PDF 版本可以随时随地访问这些资料,非常方便。 #### 6. **总结** Bash 作为一款功能强大的...
* `--noediting`:如果 shell 是交互的,不使用 GNU readline 库来读命令行。 * `--noprofile`:不读取系统范围的启动文件 /etc/profile 或者任何个人初始化文件。 * `--norc`:如果 shell 是交互的,不读取/执行...
在交互式shell中,用户可以输入命令,查看命令的执行结果,并使用Bash的特性来提高工作效率。 Bash提供了许多强大的特性来帮助用户更方便地使用命令行。用户可以根据需要,选择合适的命令行选项和初始化文件,以...
IPython 是一个增强的Python交互式 shell,它利用了 `readline` 库来提供更好的交互体验,如命令补全、历史记录等。如果没有 `readline`,IPython 的交互性将会大打折扣。 4. **解决yum安装问题**: 如果在CentOS...
安装完成后,rlwrap已经可以使用,但为了让sqlplus通过rlwrap运行,需要在环境变量中设置一个别名。在~/.bashrc或~/.bash_profile文件中添加以下行: ```bash alias sqlplus='rlwrap sqlplus' ``` 保存并使修改...
Readline库是一个强大的命令行输入处理库,广泛用于各种Unix/Linux风格的操作系统中,为诸如bash shell、...通过阅读这些文档,你可以学习如何利用Readline的强大功能来优化你的终端体验,并更好地控制你的命令行工具。
`readline` 是一个广泛使用的开源库,它为各种命令行程序(如`bash`, `python`, `mysql`等)提供了交互式输入功能,允许用户通过上下箭头键浏览历史输入、编辑当前行以及使用各种快捷键来提高命令行操作的效率。...
`readline-6.3.tar` 是一个包含`readline`库版本6.3的压缩文件,主要用于提供命令行输入接口的功能。`readline`库是Linux和Unix系统中广泛使用的库,它允许用户通过交互式的方式读取命令行输入,并提供历史记录、...
`readline-6.1` 是一个用于处理用户命令行输入的库,广泛应用于各种解释器和命令行工具,如`bash`, `python`, `gcc`等。它提供了丰富的交互式编辑功能,使得用户在命令行环境下可以方便地进行历史搜索、编辑、补全等...
`readline`是一个广泛使用的命令行接口库,主要用于在交互式程序中提供用户友好的行编辑和历史记录功能。在C语言编程环境中,它为开发人员提供了方便的接口,允许用户通过键盘输入来动态地编辑命令行,就像在shell中...
在Go-Readline库中,主要包含以下几个核心知识点: 1. **命令行交互**:Go-Readline允许程序接收用户在命令行中的输入,并提供了处理用户输入的方法。这在编写需要用户交互的控制台应用时非常有用,比如shell脚本、...
`readline-4.3`的源码结构清晰,主要包含以下几个部分: - `include/`:头文件目录,定义了`readline`库的API接口。 - `src/`:源代码目录,实现了`readline`库的各种功能。 - `test/`:测试用例和脚本,用于...