Answers:
可以做到的。键入var=$var
,然后展开并编辑它。要展开,请使用Esc+ Ctrle(默认快捷方式,检查的输出bind -p | grep shell-expand-line
以确认)。
所以:
muru@muru-1604:~$ PS1=$PS1
会变成:
muru@muru-1604:~$ PS1=${debian_chroot:+($debian_chroot)}\u@\h:\w\$
然后,您可以使用Ctrlx Ctrle(edit-and-execute-command
在阅读行中)在编辑器中进行编辑。当您保存并退出时,保存的内容将由外壳执行。
如果您已经有PS1=...
自己的历史记录,则可以返回到和Ctrlx Ctrle。
从bash手册:
shell-expand-line (M-C-e)
像外壳一样展开线。这将执行别名和历史记录扩展以及所有shell单词扩展。
edit-and-execute-command (C-xC-e)
在当前命令行上调用编辑器,然后将结果作为shell命令执行。Bash尝试以此顺序调用$ VISUAL,$ EDITOR和emacs作为编辑器。
bind -p
,我还发现您可以扩展glob,波浪号和历史记录行。整齐!
PS1='$PS1'
,它删除了引号,但键入PS1=\'$PS1\'
效果很好。