在 .inputrc 键绑定中使用环境变量

在 .inputrc 键绑定中使用环境变量

我想向 my 添加一个键绑定.inputrc,将环境变量 的值放在USER命令行上。

我尝试了各种转义,但字符串$USER被逐字写入命令行,而不是该环境变量的值。

$if mode=vi
  # Keymaps when we are in insert mode
  set keymap vi-insert

  # Insert path before mountpoint
  "C-e": "/run/media/$USER"

有没有合理的方法来做到这一点.inputrc,或者我最好使用其他方法,比如.bashrc

答案1

用户 meuh 的使用技巧shell-expand-line引导我找到了这个解决方案,它将环境变量的值放在命令行上:

$if mode=vi
  # Keymaps when we are in insert mode
  set keymap vi-insert

  # Expand variables like ~ and $USER to their values
  "\C-a": shell-expand-line
  # Insert path before mountpoint, then expand the variable
  "\C-e": "/run/media/$USER/\C-a"

现在,按Ctrl+e会出现/run/media/me/在命令行中。

答案2

插入文字字符串$USER而不是USER变量的扩展值可能不会产生很大的差异,因为变量可能使用正确的值定义(假设是 Linux 系统)并且将由 shell 扩展。


这回答了问题的早期版本:

您不能在.inputrc.

要将当前用户的用户名合并到 的bash主提示中,请设置PS1为包含转义序列的值\u

请参阅手册中标有“提示”的部分bash

相关内容