bash文本输入

本文详细介绍了Readline命令的各种功能,包括数字参数设置、补全操作、文件名补全、用户名补全、变量补全等。此外,还介绍了如何使用特定命令进行字符删除、历史记录补全、键盘宏操作及各种实用的辅助命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numeric Arguments
digit-argument (M-0, M-1, …, M–)
添加数字给参数积累。M–开始为负数。
universal-argument
这是另一种方式来指定一个参数。如果这个命令后面跟着一个或多个数字,任选与负号,这些数字定义了参数。如果命令后跟数字,再次执行通用参数的结束数字参数,否则忽略。作为一个特殊的情况下,如果该命令之后紧接着的字符既不是数字或负号,下一个命令的参数计数乘以4。参数计数最初是一个,所以执行此功能首次使得参数计数四,第二次使得参数计数十六,等等。

Completing
complete (TAB)
尝试对point之前的文本进行完成。猛砸试图完成治疗文本作为一个变量(如果文本以@possiblecompletions(M?)pointinsertcompletions(M)menucompletenn;TABmenucompletebackward仿deletecharorlistcompletefilename(M/)pointpossiblefilenamecompletions(Cx/)pointcompleteusername(M )possibleusernamecompletions(Cx )pointcompletevariable(M)
上的文字试图完成点之前,将它视为shell变量。
possible-variable-completions (C-x $)
列出point之前的文本可能的补全,将它视为shell变量。
complete-hostname (M-@)
上的文字试图完成点之前,将它视为主机名。
possible-hostname-completions (C-x @)
列出point之前的文本可能的补全,将它视为主机名。
complete-command (M-!)
上的文字试图完成点之前,将它视为命令名。命令完成试图对别名,保留字,shell函数,shell内建命令,最后的可执行文件名匹配文本,按照这个顺序。
possible-command-completions (C-x !)
列出point之前的文本可能的补全,将它视为命令名。
dynamic-complete-history (M-TAB)
尝试对point之前的文本完成,比较免受可能的补全匹配的历史记录列表行的文本。
dabbrev-expand
尝试对point之前的文本菜单完成,比较免受可能的补全匹配的历史记录列表行的文本。
complete-into-braces (M-{)
执行文件名完成并插入括号括起来可能的补全列表,这样列表可供shell

Keyboard Macros
start-kbd-macro
end-kbd-macro
call-last-kbd-macro
print-last-kbd-macro

Miscellaneous
re-read-init-file (C-x C-r)
阅读在INPUTRC文件的内容,并把发现有任何绑定或变量赋值。
abort (C-g)
中止当前编辑命令和环终端的钟声(如有的钟式的设置)。
do-uppercase-version (M-a, M-b, M-x, …)
如果metafied字符x是小写的,运行绑定到相应的大写字符的命令。
prefix-meta (ESC)
Metafy下一个字符输入。 ESC f是等同于元-F。
undo (C-_, C-x C-u)
渐增撤销,分别记住每一行。
revert-line (M-r)
撤销这一行的所有更改。这就好比执行撤销命令足够的时间线恢复到初始状态。
tilde-expand (M-&)
执行对当前字波浪线扩展。
set-mark (C-@, M-)
标志设置为点。一个数值的参数,标记被设置到那个位置。
exchange-point-and-mark (C-x C-x)
交换与标记点。当前光标位置被设置为保存的位置,而旧的光标位置被保存为标志。
character-search (C-])
一个字符被读取并点移动到该字符的下一次出现。负计数搜索以前的事件。
character-search-backward (M-C-])
一个字符被读取并点移动到该字符的上一个出现。负计数搜索随后出现。
skip-csi-sequence
阅读的字符足以消耗多键序列,例如那些像Home和End键定义。这样的序列开始的控制顺序指示符(CSI),通常ESC-[。如果这个顺序被绑定到“[”,产生这样的序列键将没有任何效果,除非明确地绑定到一个readline的命令,而不是插入杂散字符到编辑缓冲区。这是在默认情况下未绑定的,但通常势必ESC-[。
insert-comment (M-#)
如果没有一个数字参数,readline的注释的开始变量的值是插入到当前行的开头。如果一个数值参数,该命令充当切换:如果在该行开头的字符不匹配的价值注释的开始,值被插入,否则注释的开始从一开始就被删除人物的线。在这两种情况下,该行被接受为如果换行已键入。默认值注释的开始导致此命令使当前行的壳体评论。如果数值参数会导致删除注释字符,行会被shell执行。
glob-complete-word (M-g)
点之前,这个词被当作路径扩展的模式,与含蓄附加一个星号。该模式用于生成匹配为可能的补文件名的列表。
glob-expand-word (C-x *)
点之前,这个词被当作路径扩展的模式,并插入匹配的文件名列表中,取代了字。如果一个数值参数,一个星号路径扩展之前追加。
glob-list-expansions (C-x g)
将已被生成的扩展列表水珠展开字显示,而行被重画。如果一个数值参数,一星号路径扩展之前追加。
dump-functions
打印所有的函数和它们的键绑定到的readline输出流。如果一个数值参数,输出的,因为它可以使一个INPUTRC文件的一部分这样的方式格式化。
dump-variables
打印所有可设置的readline变量及其值到readline的输出流。如果一个数值参数,输出的,因为它可以使一个INPUTRC文件的一部分这样的方式格式化。
dump-macros
打印所有绑定到宏和字符串输出他们readline的按键序列。如果一个数值参数,输出的,因为它可以使一个INPUTRC文件的一部分这样的方式格式化。
display-shell-version (C-x C-v)

Programmable Completion
当尝试一个参数的命令字完成对其中完成规范(一compspec)已使用内建完整定义(参见下面的shell内建命令),可编程完成设施被调用。
首先,命令名称标识。如果命令字为空字符串(完成试图在一个空行的开头),任何compspec定义
与-E选项来完成使用。如果compspec已经为该命令的定义,compspec用于产生可能的补全列表
这个词。如果命令词是一个完整路径名,为全路径名compspec搜索第一。如果没有找到compspec为全路径名,
试图找到以下最后的斜线的部分上的compspec。如果这些搜索不会在compspec因此,任何compspec的定义
-D选项来完成作为默认值。
一旦compspec已经发现,它是用来产生匹配单词列表。如果未找到一个compspec,默认bash补如上所述
下完成的处理。
首先,由compspec指定的动作被使用。正在完成其通过字前缀仅匹配被返回。当-f或-d选项用于文件名或目录名完成,shell变量FIGNORE用于过滤匹配。
接下来,指定为参数-W选项字符串被认为是。该字符串使用字符IFS特殊变量,先拆
分隔符。 shell引用荣幸。然后,每个字是用括号扩展,波浪线扩展,参数和变量扩展,命令替换和算术扩展扩展,如上面正在扩建描述。结果使用下字分割上述规则分割。扩张的结果是前缀匹配的反字被完成,并且匹配的单词成为可能的补全。
这些比赛已经产生之后,与-F和-C选项指定的任何shell功能或命令被调用。当命令或功能是
调用,如壳牌在变量上述COMP_LINE,COMP_POINT,COMP_KEY和COMP_TYPE变量赋值。如果一个shell功能 被调用时,COMP_WORDS和COMP_CWORD变量也设置。当调用功能或命令,第一个参数(1COM2)正在完成的话,第三个参数($3)这个词前的单词正在完成当前命令行上。对字进行正在完成的产生的补全不过滤;功能或命令在生成的比赛完全的自由。
与-F指定的任何功能首先调用。该函数可以使用任何shell功能,包括下面描述的compgen内建命令,以生成匹配。它必须将可能的补全在COMPREPLY数组变量,每个数组元素之一。

接下来,-C选项指定的任何命令的环境相当于被调用,以命令替换。它应该打印的完成,每行一个列表,到标准输出。反斜线可以用于逃生换行符,如果需要的话。

最后,随着-P和-S选项指定的任何前缀和后缀被添加到补全列表的每个成员,并把结果返回给readline的完成代码作为可能的补全列表。

如果以前应用的行为不产生任何匹配,而-o选项dirnames中提供了在定义compspec时完成,目录名完成尝试。

如果提供被定义的compspec当完成-o加显示目录选项,目录名完成尝试和任何匹配将被添加到其他行动的结果。

默认情况下,如果一个compspec被发现,无论它产生被返回到完成代码的全套可能的补。默认的bash补全不尝试,和文件名完成的ReadLine默认被禁用。如果提供定义的compspec时完成-o选项bashdefault,如果compspec产生没有匹配的是bash默认的补全尝试。如果提供定义的compspec时完成-o默认选项,如果compspec(如果尝试,默认的bash补全)产生没有匹配的readline默认的完成将被执行。

_completion_loader()
{
. “/etc/bash_completion.d/$1.sh” >/dev/null 2>&1 && return 124
}
complete -D -F _completion_loader -o bashdefault -o default

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值