Ulf*_*lfR 8 postgresql command-prompt
当我在提示中添加颜色时浏览历史记录时,我在提示后收到垃圾.
我尝试了postgres doc中提出的颜色提示命令:
\set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# '
Run Code Online (Sandbox Code Playgroud)
我也尝试了很多其他的提示示例,我发现谷歌,但结果相同.
所以在设置提示后我有一个黄色提示符如下:
ulf@mydb=#
Run Code Online (Sandbox Code Playgroud)
然后我运行查询:
ulf@mydb=# select * from country;
Run Code Online (Sandbox Code Playgroud)
然后我浏览历史↑↑↓.这会给我带来更多的选择线,但我得到:
ulf@mydb=# \set PROMPT1 'select * from country;
Run Code Online (Sandbox Code Playgroud)
注意\set...之前的select是最初的promt-setting中的残余.
如果我将\set PROMPT1-command 放入,我也会得到类似的结果.pslqrc
我在xterm和gnome-terminal中得到了相同的结果.我的bash-prompt以类似的方式着色,但我对该提示没有任何问题.
我做错了什么?
注意:我还没有找到有时为什么这是必要的根本原因,但是,这应该为你解决.
有两个字符表示readline/libedit(?),0x01和0x02中不可打印字符的开始/停止.
因此,如果您在PROMPT1中的非可打印序列之前和之后添加这些,它应该可以工作.您的案例结果将是:
\set PROMPT1 '%001%[%033[1;33;40m%]%002%n@%/%R%001%[%033[0m%]%002%# '
Run Code Online (Sandbox Code Playgroud)
更新:
这似乎应该在psql中处理,但在某些地方他们必须迷失方向.也许USE_READLINE没有定义?请参阅:src/bin/psql/prompt.c中的第286行
| 归档时间: |
|
| 查看次数: |
3611 次 |
| 最近记录: |