跳过正文
  1. Lumesh 文档/

启动与运行

1205 字·3 分钟
目录

交互模式通过lumelume -i命令启动

启动参数
#

命令行支持多种执行模式,如同您看到的:

 1> lume -h
 2Lumesh scripting language runtime
 3
 4Usage: lume [OPTIONS] [FILE_N_ARGS]... [-- [CMD_ARGV]...]
 5
 6Arguments:
 7  [FILE_N_ARGS]...  script file and args to execute
 8  [CMD_ARGV]...     args for cmd
 9
10Options:
11  -p, --profile      config file
12  -s, --strict       strict mode
13  -i, --interactive  force interactive mode
14  -m, --cfmoff       NO command first mode
15  -a, --aioff        NO ai mode
16  -n, --nohistory    NO history (private) mode
17  -c, --cmd <CMD>    command to eval
18  -h, --help         Print help
19  -V, --version      Print version

运行模式
#

1. REPL 交互模式
#

lume

用户交互模式是默认启动模式,处理用户输入输出。

支持代码高亮,自动补全。

自动提示

  • 输入部分单词,lumesh将自动提示匹配的 内置函数、三方命令、别名、内置语法、历史命令

  • 输入模块名+点+空格Into. 会提示该模块内的全部可用函数。

自动补全

  • 按下Tab会触发自动补全。

补全模式:

 + 第一个单词,会触发 *命令补全*,包括系统可执行命令、内置函数、别名、内置语法。

 + 带路径符号的单词,如`.`,`/` (win则是`\`), 会触发*路径补全*。

 + 超过二个单词,且不是路径,则触发 *AI自动补全*。

 _要使用AI补全,请先配置AI接口_ 默认的是ollam的默认配置,运行ollama后即可连接。

常用按键

  • RightCtrl+J:接受补全建议(支持路径和历史命令)。
  • Alt+J : 接受单个单词的补全建议。
  • Ctrl+D:终止输入。
  • Ctrl+C:终止当前操作。
  • Ctrl+L: 清屏

其他快捷键请参考 快捷键

自定义快捷键绑定: 可在配置文件配置自定义绑定。 请参看 配置文件 章节。

历史记录:保存在默认配置目录,可通过配置文件配置。

  • UP/DOWNCtrl+N/P:切换历史记录。

2. 脚本解析模式
#

lume [文件名] 运行脚本:

1lume ./my.lm
2lume ./my.lm arg1 arg2

如果您特别关注性能,可以使用命令解析专属lite版本:lumesh

3. 命令执行模式
#

lume -c <命令> <参数>... 如果需要在执行命令后保留REPL窗口,继续交互,可加-i参数 lume -ic <命令> <参数>...

  1. LOGIN-SHELL模式

系统启动时的第一个shell

启动shell,应先在config文件里,配置好系统环境变量。类似.bashrc的内容。 准备好后,可执行set_as_login_shell()或以下脚本:

1  let p = (About | .get('bin'))
2  if !(Fs.read /etc/shells | .contains($p)) {
3      sudo lume -c `Fs.append /etc/shells "\n$p"` ?: doas lume -c `Fs.append /etc/shells "\n$p"`
4  }
5  chsh -s $p

4. 严格模式
#

lume -s

严格模式下,变量应先申明,且不能重复申明。

使用变量时,应使用 $ 前缀。这是为了提升脚本解析速度。

非严格模式下,允许不带$直接访问变量。

两种模式都允许隐式转换数据类型。

5. 命令优先模式
#

默认CFM模式
#

lume 在交互命令模式和命令模式(lume -c)中,如果输入只有一行,则使用命令优先模式。

此模式下,优先解析为命令而非编程,如. + 等将作为普通字符处理。

要临时跳过此模式,可在命令行首添加:

1ping 1.1.1.1     # 正确,CFM模式下`.`是普通字符
2ping '1.1.1.1'   # 正确
33+5^2            # 错误,CFM模式下`+`是普通字符
4:3+5^2           # 正确,临时跳过CFM模式

如果输入有多行,则不会进入CFM模式

跳过CFM模式
#

lume -m

1ping 1.1.1.1     # 错误,`.`是运算符
2ping '1.1.1.1'   # 正确
33+5^2            # 正确,`+`是运算符
  1. 无AI模式
  2. 无历史记录模式

相关文章