配置文件路径#
查看配置文件路径 键入
About查看其中的prelude项。 或:About.prelude。默认路径:
如果没有在命令行指定配置文件路径,lume会读取默认配置文件,在默认路径下的子路径 lumesh/config.lm.
| 平台 | 路径 | 举例 |
|---|---|---|
| Linux | $XDG_CONFIG_HOME or $HOME/.config | /home/alice/.config |
| macOS | $HOME/Library/Application Support | /Users/Alice/Library/Application Support |
| Windows | {FOLDERID_RoamingAppData} | C:\Users\Alice\AppData\Roaming |
执行 Fs.dirs() 可以查看您的默认路径。
历史记录路径#
如果没有在配置文件中指定,将被保存在默认路径下。
linux/macos平台的文件名为 .lume_history.
windows平台的文件名为 lume_history.log.
默认路径 :
| 平台 | 路径 | 举例 |
|---|---|---|
| Linux | $XDG_CACHE_HOME or $HOME/.cache | /home/alice/.cache |
| macOS | $HOME/Library/Caches | /Users/Alice/Library/Caches |
| Windows | {FOLDERID_LocalAppData} | C:\Users\Alice\AppData\Local |
执行 Into.dirs() 可以查看您的默认路径。
配置项#
支持对不同的模式分别配置。 通过检查
IS_LOGIN,IS_INTERACTIVE实现对不同模式使用不同的配置。AI接口配置。
1# ====== default AI Helper settings. following is default.
2let LUME_AI_CONFIG = {
3 host: "localhost:11434",
4 complete_url: "/completion",
5 chat_url: "/v1/chat/completions",
6 complete_max_tokens: 10,
7 chat_max_tokens: 100,
8 model: "",
9 system_prompt: "you're a lumesh shell script helper",
10}- 快捷键绑定命令配置。
1# ====== key bindings
2# NONE:0, SHIFT:2, ALT:4, CTRL:8,
3# ALT_SHIFT:6, CTRL_SHIFT: 10, CTRL_ALT:12, CTRL_ALT_SHIFT:14
4let LUME_HOT_MODIFIER = 4
5let LUME_HOT_KEYS = {
6 q: "exit",
7 c: "clear",
8 h: "Fs.read ~/.cache/.lume_history | String.lines() | Ui.pick('select history:') ?! | exec_str()",
9 x: "Fs.read ~/.cache/bookmark | String.lines() | Ui.pick('select bookmark:') ?! | exec_str()",
10 m: 'let cmd := "$CMD_CURRENT";let s = Into.str(cmd); if s {s+"\n" >> /tmp/bookmark;println "\t[MARKED]"}',
11}- 命令缩写配置。
1# ====== abbreviations
2let LUME_ABBREVIATIONS = {
3 xi: 'doas pacman -S',
4 xup: 'doas pacman -Syu',
5 xq: 'pacman -Q',
6 xs: 'pacman -Ss',
7 xr: 'doas pacman -Rs',
8}- 命令别名配置。
1# ====== alias
2alias int = Into.int()
3alias str = Into.str()
4alias each = List.map()
5alias sort = List.sort()
6alias group = List.group()
7alias table = Into.table()
8alias format = String.format()
9alias ll = Fs.ls -l
10alias lsx = ls -l --time-style=long-iso
11alias join = List.join()
12alias chars = String.chars()
13alias open = Fs.read()- 历史记录路径配置。
1# ====== history file
2let LUME_HISTORY_FILE = "/tmp/lume_histroy"prompt配置。
1 # MODE: 1=use template; 2=use starship; 0=use default. 2 let LUME_PROMPT_SETTINGS = { 3 MODE: 1, 4 TTL_SECS: 2 5 }命令行提示符,可以工作在如下模式:
0,默认模式
1, 模板模式, 模板可以是普通表达式,或函数。
TTL用于控制缓存更新频率,以秒为单位。
通常,普通表达式更节省资源;
1# 模板支持如下变量: $CWD, $CWD_SHORT 2let LUME_PROMPT_TEMPLATE = (String.blue($CWD_SHORT) + String.yellow(String.bold(">> ")))函数则可以用来渲染更复杂的提示符,比如git分支显示。函数模板会比普通模板消耗稍微多一点的资源。
1let LUME_PROMPT_TEMPLATE := x -> { 2 String.format "{} {}{}{} " String.blue(x) String.green(String.bold("|")) \ 3 (if (Into.exists '.git') {git branch --show-current | String.cyan()} else "") \ 4 String.green(String.bold(">")) 5}2, starship 模式
欢迎信息
1# ====== welcome msg
2let LUME_WELCOME = "Welcome to Lumesh!"- 启用VI模式
1LUME_VI_MODE = True- 启用严格模式
1 # ====== default strict mode
2 let STRICT = True该设置具有最低优先级,可能被命令参数-s覆盖,或脚本指定模式覆盖。
- 控制直接打印模式
1 # ====== default strict mode
2 let STRICT = True该模式控制是否直接打印算术通道的运算结果和类型。默认为启用。例如,输入5回车后您将看到:
1>> [Integer] <<
25- sudo命令补全
1 # ====== default strict mode
2 let LUME_SUDO_CMD = "doas"按下Alt+s会自动添加sudo命令,如果您使用doas或其他sudo命令,可配置此项。默认值为sudo
- 配置
PATH环境变量
1PATH = "~/.local/bin:" + $PATH- 配置
IFS
1IFS = "\n"
2# IFS affect: 0:never; 2:cmd args; 4:for; 8:string.split; 16:csv; 32:pick; 62:all
3let LUME_IFS_MODE=2后者用于细化控制IFS在哪些地方启用。
- 配置全局模块路径
1let LUME_MODULES_PATH=/opt/mods当导入模块时,会优先从当前路径的./mods/,./下搜寻,最后从全局路径搜寻。
- 配置最大循环深度
1let LUME_MAX_SYNTAX_RECURSION = 100 # 语法嵌套深度
2let LUME_MAX_RUNTIME_RECURSION = 800 # 执行深度该设置不会影响循环语句的执行。仅当您看到系统提示需要增加深度时才需要设置。
- 高亮主题配置
1# ====== base theme: 'one_dark', 'ayu_dark', 'light'
2LUME_THEME = 'ayu_dark'
3
4# ====== theme modify
5LUME_THEME_CONFIG = {
6 keyword: "\x1b[38;5;170m", # 紫色 (#C678DD)
7 # ...
8}LUME_THEME用于设置基础主题;
LUME_THEME_CONFIG 用于对基础主题做修改,其中
可配置的项有:
1# One Dark 核心语法颜色 - 每种都使用不同的颜色
2 keyword,
3 value_symbol,
4 operator,
5 operator_prefix,
6 operator_infix,
7 operator_postfix,
8
9 # 字符串相关颜色
10 string_raw,
11 string_template,
12 string_literal,
13 string_error,
14
15 # 数字和字面量
16 number_literal,
17 number_error,
18 integer_literal,
19 float_literal,
20
21 # 符号和标识符
22 symbol_none,
23 builtin_cmd,
24 symbol,
25
26 # 注释和标点
27 comment,
28 punctuation,
29
30 # REPL 和交互相关
31 command_valid,
32 hint,
33 completion_cmd,
34 completion_ai,
35
36 # Time token 颜色
37 time,
38
39 # Regex token 颜色
40 regex,详细配置项可查看默认配置。