在bash PS1中使用\ r

下沉

由于搞砸了PS1,我对在Bash中的键入感到有些厌倦。例如,我将执行一条命令,例如ls,然后在运行时开始输入下一条命令,例如,而echotypeaheadecho将出现在PS1之前,例如

/$ls
...
ec/$echo

(这/$PS1)。我对此的解决方案是将其添加\r到PS1的前端,以便首先清除该行。

这似乎工作得很好,但是似乎有一个奇怪的问题。在我.inputrc,我有

"\ep": history-search-backward

让我输入M-p后退(iTerm 2将Option映射为正确转义)。

问题是,有时当我键入一些内容然后M-p获取上一个命令时,我会执行aC-u C-k来清除该行,第一个字符会保留,并成为的一部分PS1(它从已执行的行中删除,但显示出来了在PS1上)。当我执行命令时,它消失了,但是每当我在历史记录中击中该项目时,即使使用常规的向上箭头,该第一个字符也会再次卡在该位置。这似乎只在一定长度的命令中发生。\r实际是否清除任何文本以使其发生都没关系

我在bash和/或iTerm中遇到一个奇怪的错误吗?是否在正确的方法之前增加\rPS1清除杂物的正确方法?

切普纳

信号通知bash,该\r字符是非打印字符,因此将计算提示字符串的正确长度,即代替

PS1='\rstuff'

使用

PS1='\[\r\]stuff'

我认为由于\r是在提示的开头,所以它始终是零长度字符,而不是可变长度的负宽度字符,因为如果它出现在提示som的中间,则可以考虑将其考虑在内,因此应该工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

BASH:如何将退出代码保存在PS1中以便以后在PS1中使用?

来自分类Dev

更新bash函数中的变量并在提示符(PS1)中使用它

来自分类Dev

在bash PS1中设置变量

来自分类Dev

bash $ PS1变量中的参数

来自分类Dev

bash PS1设置

来自分类Dev

Bash + Korn的PS1

来自分类Dev

在bash_profile中添加到PS1

来自分类Dev

如何在PS1变量中插入bash脚本

来自分类Dev

PS1中的Bash命令(历史)编号

来自分类Dev

Bash $ PS1在MAC终端中崩溃

来自分类Dev

Bash提示特殊字符未在PS1中扩展

来自分类Dev

使tmux窗口名称使用bash $ PS1

来自分类Dev

如何从bash $ PS1设置变量

来自分类Dev

Bash $ PS1麻烦(ubuntu)

来自分类Dev

bash PS1 256色加粗

来自分类Dev

如何从bash $ PS1设置变量

来自分类Dev

Bash PS1不评估变量

来自分类Dev

在bash函数中生成PS1

来自分类Dev

在bash的PS1中的用户名中更改特定字母的颜色

来自分类Dev

bash $ PS1中的颜色代码在tmux中不起作用

来自分类Dev

在Bash提示PS1中将元音更改为数字

来自分类Dev

如何设置使git和conda都能在bash中显示的PS1?

来自分类Dev

Bash-如何在PS1中缩短用户名

来自分类Dev

在Bash PS1中嵌入命令时出现问题

来自分类Dev

Bash在Ubuntu中默认PS1的主要部分是什么意思?

来自分类Dev

为什么我不能在bash登录外壳中更改PS1?

来自分类Dev

bash 提示:如何在 PS1 中仅显示文件名?

来自分类Dev

为什么手动设置bash提示(PS1)会导致root使用$而不是#?

来自分类Dev

使用自定义PS1提示时Bash覆盖第一行