跳到主要内容

REPL

ptool repl 会启动一个交互式 Lua 会话,并预先加载标准 ptool API。

启动 REPL

ptool repl

REPL 启动后,ptool 会先打印欢迎信息,然后等待 Lua 输入。

它提供什么

  • 全局表 ptool 以及更短的别名 p
  • ptool run <file> 相同的一组内置辅助能力。
  • 对 Lua 表达式和语句的交互式求值。
  • 类似 readline 的行编辑能力,包括方向键移动光标和当前会话内的历史记录浏览。

基本用法

输入一个表达式即可立即求值:

1 + 2

REPL 会使用 ptool 现有的 inspect 渲染逻辑打印返回值。

你也可以直接调用 ptool API:

p.str.trim("  hello  ")

多行输入

如果当前输入还不完整,提示符会从 >>> 变成 ... 。这样你就可以继续输入 函数定义或控制流语句等代码块:

for i = 1, 3 do
print(i)
end

当输入完整后,ptool 会对整个代码块求值。

键盘行为

  • UpDown 用于浏览当前 REPL 会话中之前输入过的命令。
  • LeftRight 用于在当前输入行内移动光标。
  • Ctrl-C 会清空当前输入;如果你正处于多行输入中,它会丢弃当前缓存的代码块并回到主提示符。
  • Ctrl-D 会退出 REPL。

说明

  • ptool repl 需要交互式 TTY。
  • 当前历史记录只保存在本次会话中,不会写入历史文件。