跳过正文
  1. Lumesh 文档/

配置文件

1341 字·3 分钟
目录

配置文件路径
#

  • 查看配置文件路径 键入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() 可以查看您的默认路径。

配置项
#

  1. 支持对不同的模式分别配置。 通过检查IS_LOGINIS_INTERACTIVE实现对不同模式使用不同的配置。

  2. 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. 快捷键绑定命令配置。
 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. 命令缩写配置。
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. 命令别名配置。
 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. 历史记录路径配置。
1# ====== history file
2let LUME_HISTORY_FILE = "/tmp/lume_histroy"
  1. 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 模式

  2. 欢迎信息

1# ====== welcome msg
2let LUME_WELCOME = "Welcome to Lumesh!"
  1. 启用VI模式
1LUME_VI_MODE = True
  1. 启用严格模式
1   # ====== default strict mode
2   let STRICT = True

该设置具有最低优先级,可能被命令参数-s覆盖,或脚本指定模式覆盖。

  1. 控制直接打印模式
1   # ====== default strict mode
2   let STRICT = True

该模式控制是否直接打印算术通道的运算结果和类型。默认为启用。例如,输入5回车后您将看到:

1>> [Integer] <<
25
  1. sudo命令补全
1   # ====== default strict mode
2   let LUME_SUDO_CMD = "doas"

按下Alt+s会自动添加sudo命令,如果您使用doas或其他sudo命令,可配置此项。默认值为sudo

  1. 配置PATH环境变量
1PATH = "~/.local/bin:" + $PATH
  1. 配置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在哪些地方启用。

  1. 配置全局模块路径
1let LUME_MODULES_PATH=/opt/mods

当导入模块时,会优先从当前路径的./mods/,./下搜寻,最后从全局路径搜寻。

  1. 配置最大循环深度
1let LUME_MAX_SYNTAX_RECURSION = 100   # 语法嵌套深度
2let LUME_MAX_RUNTIME_RECURSION = 800  # 执行深度

该设置不会影响循环语句的执行。仅当您看到系统提示需要增加深度时才需要设置。

  1. 高亮主题配置
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,

详细配置项可查看默认配置。

相关文章