Hexagon GDB Debugger介绍(53)

240 篇文章 11 订阅

5.4.4 Bindable readline commands

本节介绍了可以与按键序列绑定的Readline命令。没有附带按键序列的命令名称默认为不绑定。
在下面的描述中,point指的是当前光标位置,mark指的是由set-mark命令保存的光标位置。点和标记之间的文字被称为区域。

5.4.4.1 Commands for moving
beginning-of-line (Ctrl-a)
移动到当前行的开头
end-of-line (Ctrl-e)
移动到该行的末尾。
forward-char (Ctrl-f)
向前移动一个字符
backward-char (Ctrl-b)
向后移动一个字符
forward-word (M-f)
向前移动到下一个单词的末尾。单词由字母和数字组成
backward-word (M-b)
向后移动到当前或前一个单词的开头。单词是由字母和数字组成的
clear-screen (Ctrl-l)
清空屏幕并重绘当前行,将当前行保留在屏幕的顶部
redraw-current-line ()
刷新当前行。默认情况下,这是不绑定的
5.4.4.2 Conditional init constructs
accept-line (Newline or Return)
接受该行,不管光标在哪里。如果这一行是非空的,可以用add_history()把它添加到历史列表中,以便将来调用。如果这一行是修改过的历史行,历史行将恢复到原来的状态。
previous-history (Ctrl-p)
在历史列表中向后移动,获取前一条命令。
next-history (Ctrl-n)
在历史列表中向前移动,获取下一条命令。
beginning-of-history (M-<)
移到历史上的第一行。
end-of-history (M->)
移动到输入历史的末端,即目前正在输入的那一行。
reverse-search-history (Ctrl-r)
从当前行开始向后搜索,必要时在历史中向上移动。这是一个递增的搜索。
forward-search-history (Ctrl-s)
从当前行开始向前搜索,必要时在历史中向下移动。这是一个递增的搜索。
non-incremental-reverse-search-history (M-p)
从当前行开始向后搜索,必要时在历史记录中向上移动,使用非递增式搜索用户提供的字符串。
non-incremental-forward-search-history (M-n)
从当前行开始向前搜索,必要时在历史记录中向下移动,使用非递增式搜索用户提供的字符串。
history-search-forward ()
在历史记录中向前搜索当前行的起点和该点之间的字符串。这是一个非递增的搜索。默认情况下,这个命令是不绑定的。
history-search-backward ()
在历史记录中向后搜索当前行的起点和该点之间的字符串。这是一个非递增的搜索。默认情况下,这个命令是不绑定的。
yank-nth-arg (M-Ctrl-y)
在点上插入前一条命令的第一个参数(通常是前一行的第二个字)。如果有参数n,则插入前一条命令的第n个字(前一条命令中的字以字0开始)。参数为负数,则从上一条命令的末尾插入第n个字。一旦计算出参数n,就会像指定了!"n "历史扩展一样提取该参数。
yank-last-arg (M-. or M-_)
插入上一条命令的最后一个参数(上一条历史记录的最后一个字)。有了参数,行为与yank-nth-arg完全一样。连续调用yank-last-arg在历史列表中向后移动,依次插入每一行的最后一个参数。历史扩展工具被用来提取最后一个参数,就像指定了!$历史扩展一样。
5.4.4.3 Commands for changing text
delete-char (Ctrl-d)
删除点处的字符。如果点在行首,行中没有任何字符,而且输入的最后一个字符没有与delete-char绑定,那么返回EOF。
backward-delete-char (Rubout)
删除光标后面的字符。一个数字参数意味着杀死字符而不是删除它们。
Forward-backward-delete-char ()
删除光标下的字符,除非光标在行尾,在这种情况下,光标后面的字符被删除。默认情况下,这并不与一个键绑定。
quoted-insert (Ctrl-q or Ctrl-v)
将输入的下一个字符逐字添加到该行。例如,这就是插入Ctrl-q这样的按键序列的方法。
tab-insert (M-TAB)
插入一个tab字符。
self-insert (a, b, A, 1, !, ...)
自己插入。
transpose-chars (Ctrl-t)
将光标前的字符向前拖到光标处的字符上,将光标也向前移动。如果插入点在行尾,那么这将转置该行的最后两个字符。负数参数没有影响。
transpose-words (M-t)
将点前的字拖过点后的字,将点也移过该字。如果插入点在行尾,这将转置该行的最后两个词。
upcase-word (M-u)
大写当前(或后面)的字。如果参数为负数,则对前一个字进行大写,但不移动光标。
downcase-word (M-l)
小写当前(或后面)的字。如果参数为负数,则小写前一个字,但不移动光标。
capitalize-word (M-c)
将当前(或后面)的单词大写。如果参数为负数,则将前一个词大写,但不移动光标。
overwrite-mode ()
切换覆盖模式。如果有一个明确的正数参数,则切换到覆写模式。如果有一个明确的非正数参数,则切换到插入模式。这个命令只影响emacs模式;vi模式的覆盖方式不同。每次对readline()的调用都是从插入模式开始的。
在覆盖模式下,与自我插入绑定的字符会替换点上的文本,而不是将文本推到右边。绑定到backward-delete- char的字符用空格替换点之前的字符。
默认情况下,这个命令是不绑定的。 使用www.DeepL.com/Translator翻译(免费版)
5.4.4.4 Killing and yanking
Kill-line (Ctrl-k)
杀死从点到行尾的文字。
backward-kill-line (Ctrl-x Rubout)
向后杀到该行的开头。
unix-line-discard (Ctrl-u)
从光标向后杀到当前行的开头。
Kill-whole-line ()
杀死当前行的所有字符,无论点在哪里。默认情况下,这是不绑定的。
kill-word (M-d)
从点到当前字的末尾,或者如果在字与字之间,到下一个字的末尾。字的边界与向前-字相同。
backward-kill-word (M-DEL)
杀死点后面的字。字的边界与后退字相同。
unix-word-rubout (Ctrl-w)
杀死点后面的字,用白色空间作为字的边界。杀死的文本被保存在杀字环上。
unix-filenameame-rubout ()
杀死点后面的字,使用白色空格和斜线字符作为字的边界。杀死的文本被保存在杀戮环上。
delete-horizontal-space ()
删除point周围的所有空格和制表符。默认情况下,这是不绑定的。
Kill-region ()
杀死当前区域内的文本。默认情况下,这个命令是不绑定的。
copy-region-as-kill ()
将区域内的文本复制到杀伤缓冲区,这样就可以立即将其拉出。默认情况下,这个命令是无约束的。
copy-backward-word ()
将点之前的字复制到杀伤缓冲区。字的边界与backward-word相同。默认情况下,这条命令是不绑定的。
copy-forward-word ()
将点后面的字复制到杀伤缓冲区。字的边界与forward-word相同。默认情况下,这条命令是不绑定的。
yank (Ctrl-y)
将杀伤环的顶部拉到点的缓冲区中。
yank-pop (M-y)
旋转杀戒,并将新的顶部拉出。只有当前面的命令是yank或yank-pop时,你才能这样做。

5.4.4.5 Specifying numeric arguments

digit-argument (M-0, M-1, … M–)
将这个数字添加到已经积累的参数中,或者开始一个新的参数。M–开始一个负数参数。
universal-argument ()
这是另一种指定参数的方式。如果这个命令后面有一个或多个数字,可以选择带一个前导减号,这些数字就定义了参数。如果这个命令后面是数字,再次执行universal-参数会结束数字参数,但其他情况下会被忽略。作为一种特殊情况,如果这个命令后面紧跟着一个既不是数字也不是减号的字符,那么下一个命令的参数计数就会乘以4。参数计数最初是1,所以第一次执行这个函数使参数计数为4,第二次执行使参数计数为16,以此类推。默认情况下,这个函数不与一个键绑定。

5.4.4.6 Auto-completion
complete (TAB)
试图对点之前的文本执行完成。实际执行的完成是特定于应用程序的。默认是文件名完成。
possible-completions (M-?)
列出点之前的文本的可能完成情况。
insert-completions (M-*)
插入所有由可能的补全生成的点前文本的补全。
menu-complete ()
类似于完成,但是用可能完成的列表中的一个匹配词来替换要完成的词。重复执行menu-complete的步骤,在可能的补全列表中依次插入每个匹配词。在完成列表的最后,铃铛被敲响(取决于铃铛样式的设置),原始文本被恢复。一个n的参数在匹配列表中向前移动n个位置;一个负的参数可以用来在列表中向后移动。该命令旨在与TAB绑定,但默认情况下是不绑定的。
delete-char-or-list ()
如果不在行首或行尾,则删除光标下的字符(与delete-char类似)。如果在行尾,则与可能的-完成的行为相同。这个命令默认是不绑定的。
5.4.4.7 Keyboard macros
start-kbd-macro (Ctrl-x ()
开始保存输入到当前键盘宏中的字符。
end-kbd-macro (Ctrl-x ))
停止保存输入到当前键盘宏中的字符,并保存定义。
call-last-kbd-macro (Ctrl-x e)
重新执行最后一个定义的键盘宏,使宏中的字符看起来就像在键盘上键入的一样。
5.4.4.8 Miscellaneous commands
re-read-init-file (Ctrl-x Ctrl-r)
读取inputrc文件的内容,并纳入其中发现的任何绑定或变量赋值。
abort (Ctrl-g)
终止当前的编辑命令,并敲响终端的铃声(取决于铃声样式的设置)。
do-uppercase-version (M-a, M-b, M-x, ...)
如果metafied字符x是小写的,则运行与相应大写字符绑定的命令。
prefix-meta (ESC)
对输入的下一个字符进行元化。这适用于没有meta键的键盘。输入ESC f等同于输入M-f。
撤销 (Ctrl-_ 或 Ctrl-x Ctrl-u)
增量撤消,每一行都有单独记忆。
还原行 (M-r)
撤销对这一行的所有修改。这就像执行了足够次数的撤销命令,可以回到开头。
tild-expand (M-~)
在当前字上执行倾斜符号扩展。
Set-mark (Ctrl-@)
将标记设为点。如果提供一个数字参数,标记就被设置到该位置。
exchange-point-and-mark (Ctrl-x Ctrl-x)
将点与标记交换。当前的光标位置被设置为保存的位置,而旧的光标位置被保存为标记。
character-search (Ctrl-])
读取一个字符,并将点移动到该字符的下一个出现的位置。负数搜索以前出现的字符。
character-search-backward (M-Ctrl-])
读取一个字符,并将指针移到该字符的前一个位置。负数会搜索后面出现的字符。
insert-comment (M-#)
如果没有数字参数,则在当前行的开头插入注释-begin变量的值。如果提供了一个数字参数,这个命令就像一个切换:如果行首的字符与comment-begin的值不一致,就插入这个值,否则就从行首删除comment-begin的字符。在这两种情况下,该行都被接受,就像输入了换行符一样。
dump-functions ()
打印所有的函数和它们的键绑定到Readline输出流中。如果提供了一个数字参数,输出的格式将被调整为可以成为inputrc文件的一部分。这个命令默认是不绑定的。
dump-variables ()
打印所有可设置的变量和它们的值到Readline输出流。如果提供了一个数字参数,输出将被格式化,以使其成为inputrc文件的一部分。该命令默认为非绑定。
dump-macros ()
打印所有与宏绑定的Readline键序列以及它们输出的字符串。如果提供了一个数字参数,输出的格式将被调整为可以成为inputrc文件的一部分。该命令默认为非绑定。
emacs-editing-mode (Ctrl-e)
当处于vi命令模式时,这将导致切换到emacs编辑模式。 vi-editing-mode (M-Ctrl-j)
当处于emacs编辑模式时,这将导致切换到vi编辑模式。 使用www.DeepL.com/Translator翻译(免费版)

5.4.5 Readline vi mode

虽然Readline库没有全套的vi编辑功能,但它确实包含了足够的功能,可以对行进行简单的编辑。Readline vi模式的行为与POSIX 1003.2标准中规定的一样。
为了在emacs和vi编辑模式之间交互切换,使用M-Ctrl-j命令(在vi模式下与emacs-editing-mode绑定,在emacs模式下与vi-editing-mode绑定)。Readline默认是emacs模式。
当你在vi模式下输入一行时,你已经进入了插入模式,就像你输入了一个i一样。按ESC键可以将你切换到命令模式,在这里你可以用标准的vi移动键来编辑该行的文字,用k移动到之前的历史行,用j移动到后面的行,等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值