Arch-Linux

在 .inputrc 鍵綁定中使用環境變數

  • May 15, 2018

我想向 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

使用者 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/

插入文字字元串$USER而不是USER變數的擴展值可能不會有很大的不同,因為變數可能是用正確的值定義的(假設是 Linux 系統)並且會被 shell 擴展。


這回答了這個問題的早期版本:

您不能在.inputrc.

要將目前使用者的使用者名合併到bash的主要提示中,請設置PS1為包含轉義序列的值\u

請參閱手冊中標有“提示”的部分bash

引用自:https://unix.stackexchange.com/questions/443980