修改键入的字符数

时间:2016-09-16 03:46:33

标签: bash shell terminal

我想知道是否可以操作输入为命令的字符数。原因是,我正在编写一个自定义函数来完成命令(当你按TAB时),但我只使用完整的功能来提示用户,而不是完成。我想要做的就是完成一个打字的词:

User$ command param[TAB]
prefixparam   aaaparambbb
User$ command param

User$ command aparam[TAB]
User$ command aaaparambbb

由于我正在完成param作为前缀和后缀(在某些情况下完全替换它),我无法使用内置complete功能,而是我正在寻找一种解决方法(希望如此)没有太深入。)

我当前的功能如何运作

当您按Tab键时,它将解析命令并确定可能的完成。然后它将再次键入bash提示符($ PS1)和已经输入的命令部分。 (User$ command param)

我想要它,这样当只有一个可能的选项时,它可以用剩下的唯一选项替换你的部分命令。这已经是可能的,因为我手动重新命名用户,但是我遇到了问题,因为shell不会允许你退回比你最初输入更多的空间。

User$ command aparam[TAB]
User$ command aaapa[rambbb] // Can only backspace 6 characters

我需要一些方法来欺骗shell认为所有11个字符都被输入并且可以被删除。

=============================================== ========================== 对于任何感兴趣的人bash expand cd with shortcuts like zsh

,我已经找到了几乎想要使用bind的内容

您可以修改$READLINE_LINE$READLINE_POINT变量来修改命令。但是,这仅适用于绑定命令,绑定到TAB会覆盖并破坏其他自动完成功能,而我不愿意这样做。

0 个答案:

没有答案