交互模式通过
lume或lume -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后即可连接。
常用按键:
Right或Ctrl+J:接受补全建议(支持路径和历史命令)。Alt+J: 接受单个单词的补全建议。Ctrl+D:终止输入。Ctrl+C:终止当前操作。Ctrl+L: 清屏
其他快捷键请参考 快捷键
自定义快捷键绑定: 可在配置文件配置自定义绑定。 请参看 配置文件 章节。
历史记录:保存在默认配置目录,可通过配置文件配置。
UP/DOWN或Ctrl+N/P:切换历史记录。
2. 脚本解析模式#
lume [文件名]运行脚本:
1lume ./my.lm
2lume ./my.lm arg1 arg2如果您特别关注性能,可以使用命令解析专属lite版本:lumesh
3. 命令执行模式#
lume -c <命令> <参数>...如果需要在执行命令后保留REPL窗口,继续交互,可加-i参数lume -ic <命令> <参数>...
- 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 $p4. 严格模式#
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 # 正确,`+`是运算符- 无AI模式
- 无历史记录模式