我正在编辑我的 PS1 提示,我不想继续采购我的 bashrc 来更新它(因为我的 bashrc 也会重置其他东西)。我也不想一遍又一遍地复制和粘贴它。有没有办法以交互方式编辑变量,比如使用nano
(我的默认编辑器)?
PS1 主要是一个例子,因为我想对其他变量做同样的事情。我想以交互方式进行操作的原因是变量已经很长了,我只需要在其中编辑几个字符。我只需要在当前的 shell 中更改它。
我正在编辑我的 PS1 提示,我不想继续采购我的 bashrc 来更新它(因为我的 bashrc 也会重置其他东西)。我也不想一遍又一遍地复制和粘贴它。有没有办法以交互方式编辑变量,比如使用nano
(我的默认编辑器)?
PS1 主要是一个例子,因为我想对其他变量做同样的事情。我想以交互方式进行操作的原因是变量已经很长了,我只需要在其中编辑几个字符。我只需要在当前的 shell 中更改它。
这是可以做到的。键入
var=$var
,然后展开并编辑它。要展开,请使用Esc+ Ctrle(默认快捷方式,检查输出bind -p | grep shell-expand-line
以确认)。所以:
会变成:
Ctrlx Ctrle然后您可以使用(
edit-and-execute-command
以 readline 术语)在编辑器中进行编辑。保存退出时,保存的内容会被shell执行。如果您的历史记录中已经有
PS1=...
,您可以回到那个和Ctrlx Ctrle.从bash 手册:
与其获取 bashrc,不如获取另一个文件,该文件仅包含变量。
创造它:
注意:如果变量包含单引号,您将需要使用可以转义它们的命令,例如:
在编辑器中打开它,例如
nano /tmp/PS1
.nano
反复运行,您可以在另一个终端/TTY 中运行它,或使用图形编辑器。进行更改并保存。
来源它:
根据需要重复步骤 3 和 4。
Zsh 有一个内置函数
vared
,可以让你内联编辑变量。我写了自己的版本,最初发布在超级用户上:请注意,这与 Zsh 内置有一些细微差别,例如:
vared $
)然后编辑 PS1,只需运行
vared PS1
.