是否可以在 bash 中分配一个键来转到上一个参数?

是否可以在 bash 中分配一个键来转到上一个参数?

我想知道是否可以指定一个键来在 bash 中后退或前进一个完整的参数。也就是说,如果我有:

prompt> somecmd a/b/c/d/e/f/g/h a_b_c_d_e_f_g`

在我的终端上(假设光标在末尾),我想转到第一个参数的开头,我必须按 alt-f 15 次(注意:我在 Windows 机器上使用 putty)。我通常使用长度超过 500 个字符的命令行,其中大多数命令行都是带有下划线的路径。如果能够跳到上一个(空格分隔的)参数而不是上一个单词,那就太好了。

(注:我发现了一个问题,其中建议使用 ^R 后跟空格,但由于某种原因,这会给我前一个命令而不是搜索前一个空格)。

答案1

我找到了一个参考资料——搜索了一番,所以我将答案发布在这里,希望它能为其他人节省一些时间。在 ~/.bashrc 中,您可以输入:

bind '"\eOD":vi-backward-bigword'
bind '"\eOC":vi-forward-bigword'

请注意,\eOD在我的特定终端上, 代表 ctrl-forward-arrow。要找出其他键或终端的绑定,请按下,ctrl-v然后按下要分配的键,它将输出键模式。在键模式中,将 替换为^[\e 例如^[OD更改为\eOD),并将其用于您的绑定

您还可以将定义放在 ~.inputrc 中,如下所示:

"\eOC":vi-forward-bigword
"\eOD":vi-backward-bigword

您可以用它bind -P来检查您的绑定以查看它是否绑定正确。

相关内容