Enl*_*ico 1 bash readline variable-substitution variable
如果我ls bla.*在提示符处写入,然后在=光标仍在命令行部分时按下,则会打印bla.*匹配的文件列表。bla.*如果我按*,该单词将替换该列表。
引用变量而不是 shell glob 模式是否可能出现类似的情况?
换句话说,我正在寻找一些东西,$THISVARIABLE当我在命令行中some_key光标处于打开状态时按下时,可以打印出值,和/或当我按下时替换它。$THISVARIABLEanother_key
重要的细节,我set editing-mode vi在我的~/.inputrc.
如果shell 处于 Emacs 编辑模式,您可以shell-expand-line通过按Meta+ Ctrl+e(在我的系统上Meta是Esc)来调用 Readline 功能。bash
插图:
$ echo $PATH
Run Code Online (Sandbox Code Playgroud)
如果我现在按Meta+ Ctrl+e,shell 会将整行替换为
$ echo /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin
Run Code Online (Sandbox Code Playgroud)
这也将扩展命令替换,因此可能会执行扩展所需的部分命令行。这也意味着未完成的事情$(会产生语法错误。
这不会扩展 shell 通配模式。
如果你想在 Vi 编辑模式下使用它,那么你需要显式地将shell-expand-line函数绑定到按键序列,因为默认情况下它没有绑定。例如,要将其绑定到Ctrl+e,请使用
bind '"\C-e": shell-expand-line'
Run Code Online (Sandbox Code Playgroud)
使用与 Emacs 模式相同的按键序列显然会出现问题,因为EscVi 模式具有特殊功能。
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |