`

【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/
分享到:
评论

相关推荐

    使用readline的一个实例

    本文将深入探讨`readline`库的使用及其相关知识点,以帮助开发者更好地理解和应用。 `readline`库主要用于处理用户通过标准输入(通常是键盘)输入的行数据。它提供了历史记录、补全、编辑等功能,极大地提高了用户...

    readline-7.0

    这个版本的发布,是为了改善上一版本的性能和增加新特性,使得开发者能够更便捷地创建那些需要用户输入的应用程序,如bash shell、Python解释器等。 **主要功能** 1. **命令行编辑**:readline库提供了丰富的键盘...

    一个linux上依赖readline库的仿bash命令行功能的测试使用Client。_CliTestCli

    一个linux上依赖readline库的仿bash命令行功能的测试使用Client。_CliTestClient_readline

    bash shell 源代码

    **正文** bash shell,全称为Bourne-Again SHell,是GNU项目的一部分,由自由软件基金会的创始人理查德·马修·斯托曼(Richard Stallman)发起,是Unix/...通过分析和实践,你将能够更好地驾驭这个强大的命令行环境。

    readline

    此外,`Readline`库还提供了许多内建的函数和变量,它们可以影响库的行为,熟练掌握这些函数和变量可以帮助我们更好地利用`Readline`提升命令行操作的效率和便捷性。 总之,`Readline`是一个强大的命令行输入库,它...

    readline-5.0.tar.gz

    libedit是一个轻量级的选项,它在某些环境下,特别是内存受限的系统中,可能是个更好的选择。 5. **readline库的版本更新** readline-5.0是该库的一个较早版本,随着时间的推移,readline已经发展到了更高版本,每...

    readline-5.1.tar.gz

    `readline` 是一个广泛使用的命令行接口库,主要用于提供可定制化的用户输入功能,常见于各种解释器、shell 和编程语言环境中,如 Python、Perl 和 GNU Bash。这个库使得程序能够支持历史记录、编辑功能以及通过键盘...

    readline-6.2.4.1.tar.gz

    IPython 是一个增强的Python交互式 shell,它利用了 `readline` 库来提供更好的交互体验,如命令补全、历史记录等。如果没有 `readline`,IPython 的交互性将会大打折扣。 4. **解决yum安装问题**: 如果在CentOS...

    man bash 中文PDF 版

    - **Chinese Manual Page 项目**: 该项目提供了一个全面的 Bash 中文手册,这对于初学者来说是一个很好的学习资源。通过 PDF 版本可以随时随地访问这些资料,非常方便。 #### 6. **总结** Bash 作为一款功能强大的...

    BASH中文帮助文档

    * `--noediting`:如果 shell 是交互的,不使用 GNU readline 库来读命令行。 * `--noprofile`:不读取系统范围的启动文件 /etc/profile 或者任何个人初始化文件。 * `--norc`:如果 shell 是交互的,不读取/执行...

    6Bash特性1

    在交互式shell中,用户可以输入命令,查看命令的执行结果,并使用Bash的特性来提高工作效率。 Bash提供了许多强大的特性来帮助用户更方便地使用命令行。用户可以根据需要,选择合适的命令行选项和初始化文件,以...

    rlwrap-0.42 和 readline-7.0

    安装完成后,rlwrap已经可以使用,但为了让sqlplus通过rlwrap运行,需要在环境变量中设置一个别名。在~/.bashrc或~/.bash_profile文件中添加以下行: ```bash alias sqlplus='rlwrap sqlplus' ``` 保存并使修改...

    Readline8.0.7z

    Readline库是一个强大的命令行输入处理库,广泛用于各种Unix/Linux风格的操作系统中,为诸如bash shell、...通过阅读这些文档,你可以学习如何利用Readline的强大功能来优化你的终端体验,并更好地控制你的命令行工具。

    readline-8.0.tar.gz

    `readline` 是一个广泛使用的开源库,它为各种命令行程序(如`bash`, `python`, `mysql`等)提供了交互式输入功能,允许用户通过上下箭头键浏览历史输入、编辑当前行以及使用各种快捷键来提高命令行操作的效率。...

    readline-6.3.tar

    `readline-6.3.tar` 是一个包含`readline`库版本6.3的压缩文件,主要用于提供命令行输入接口的功能。`readline`库是Linux和Unix系统中广泛使用的库,它允许用户通过交互式的方式读取命令行输入,并提供历史记录、...

    readline-6.1

    `readline-6.1` 是一个用于处理用户命令行输入的库,广泛应用于各种解释器和命令行工具,如`bash`, `python`, `gcc`等。它提供了丰富的交互式编辑功能,使得用户在命令行环境下可以方便地进行历史搜索、编辑、补全等...

    readline.zip

    `readline`是一个广泛使用的命令行接口库,主要用于在交互式程序中提供用户友好的行编辑和历史记录功能。在C语言编程环境中,它为开发人员提供了方便的接口,允许用户通过键盘输入来动态地编辑命令行,就像在shell中...

    Go-Readline是一个纯go(golang)实现GNU-Readlinekind库

    在Go-Readline库中,主要包含以下几个核心知识点: 1. **命令行交互**:Go-Readline允许程序接收用户在命令行中的输入,并提供了处理用户输入的方法。这在编写需要用户交互的控制台应用时非常有用,比如shell脚本、...

    readline-4.3.tar.gz

    `readline-4.3`的源码结构清晰,主要包含以下几个部分: - `include/`:头文件目录,定义了`readline`库的API接口。 - `src/`:源代码目录,实现了`readline`库的各种功能。 - `test/`:测试用例和脚本,用于...

Global site tag (gtag.js) - Google Analytics