提示

可以根据您的首选项自定义 vsql 所发出的提示。PROMPT1PROMPT2PROMPT3 三个变量可以包含描述了提示的外观的字符串和特殊转义序列。提示 1 是在 vsql 请求新的命令时使用的普通提示。如果在输入命令期间由于命令不以分号终止或引号未关闭而需要更多输入,将发出提示 2。当您运行 SQL COPY 命令并且需要在终端上键入行值时,将发出提示 3。

将逐字输入所选提示变量的值,除非遇到百分号 (%)。根据下一个字符,某些其他文本会被替换。已定义的替换如下:

%M
数据库服务器的完整主机名(包括域名)、[local](如果连接通过套接字)或 [local:/dir/name](如果不在默认位置编译该套接字)。
%m
数据库服务器的主机名(在第一个点处截断)或 [local]。
%>
数据库服务器正在侦听的端口号。
%n
数据库会话的用户名。
%/
当前数据库的名称。
%~
类似于 %/,但如果数据库是默认数据库,则输出是 ~(波浪符)。
%#
如果会话用户是数据库超级用户,则输出 #,否则会输出 >。(如果运行 SET SESSION AUTHORIZATION 命令,此值的扩展在数据库期间可能会更改。)
%R
在提示 1 中,通常替换为 =;但如果处于单行模式,则替换为 ^;如果会话已从数据库断开连接(当 \connect 失败时,将出现这种情况),则替换为 !。在提示 2 中,序列会替换为 -、、单引号、双引号或美元符号,具体取决于 vsql 是由于命令尚未终止还是由于处于 / ...*/ 注释之内或处于以引号或美元符号转义的字符串之内而需要更多输入。在提示 3 中,该序列不会生成任何内容。
%x
事务状态:空字符串(如果不在事务块中)、*(如果在事务块中)、!(如果在失败的事务块中)或 ? [如果事务状态不确定(例如,由于无连接)]。
%digits
带有所指示的数字代码的字符会被替换。如果数字以 0x 开头,则其余字符会解释为十六进制;如果第一个数字是 0,则数字会解释为八进制;否则会作为十进制数字读取数字。
%:name:
vsql 变量名称的值。有关详细信息,请参阅“变量”一节。
%`command`
命令的输出,类似于常见的“重音符”替换。
%[ ... %]
提示可能包含终端控制字符,例如,这些控制字符可能更改提示文本的颜色、背景或样式,或者可能更改终端窗口的标题。为使 Readline 的行编辑功能正常工作,必须通过用 %[ 和 %] 将这些非输出控制字符括起来将其指定为不可见。提示中可能会出现多对这些字符。以下示例将在兼容 VT100 且支持彩色的终端上生成粗体 (1;) 的黄色且带有黑色背景 (33;40) 的提示:

testdb=> \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%#%[%033[0m%] '

若要将百分号插入到提示中,请编写 %%。提示 1 和 2 的默认提示为 '%/%R%#',提示 3 的默认提示为 '>>'。

注意: 请参阅终端控制序列的规范(适用于 gnome-terminal 和 xterm)。