2 Star 2 Fork 1

YEUNGCHIE/skill-loader

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 2.33 KB
一键复制 编辑 原始数据 按行查看 历史
YEUNGCHIE 提交于 2024-01-01 17:54 . 一些细节调整

skill-loader

优化 load 函数,使其能够识别相对路径。

对以前写的一篇博客中的例程进行一些兼容性优化和功能加强:load 函数优化,识别相对路径 - YEUNGCHIE - 博客园

下载代码

  • GitHub
git clone --depth 1 https://github.com/yeungchie/skill-loader.git
  • Gitee
git clone --depth 1 https://gitee.com/yeungchie/skill-loader.git

加载配置

~/.cdsinit 中添加:

load("<path to skill-loader>/load.il")

使用方法

ycLoad

可正确识别以文件本身路径为参考的相对路径。

ycLoad("./script.il")
; END

ycLoadi

ycLoad 相同,不同之处在于 ycLoadi 忽略加载过程中遇到的错误,只打印错误信息,然后继续加载。

ycLoadi("./script.il")
; END

用法与 loadloadi 一致。

函数拓展

假设如下场景:

  1. 有一个脚本文件路径为 /home/yeungchie/skill/script.il
  2. /home/yuengchie/project/ 下启动 virtuoso 工具。
  3. 使用 load("../skill/script.il") 语句来加载这个脚本文件。
  4. 下面的演示中,代码框示例 script.il 中的内容,用 => 来代表加载脚本后在 CIW 窗口中打印的内容。

ycGetFileName

  • 获取当前文件的路径。

    fileName = ycGetFileName()
    println(fileName)
    ; END

    => "/home/yeungchie/skill/script.il"

ycGetBaseName

  • 获取文件名。

    baseName = ycGetBaseName(fileName)
    println(baseName)
    ; END

    => "script.il"

ycGetDirName

  • 获取文件父目录名。

    dirName = ycGetDirName(fileName)
    println(dirName)
    ; END

    => "/home/yeungchie/skill/"

ycRealPath

  • 读取相对路径,返回绝对路径。

    filePath = ycRealPath("../skill/script.il")
    println(filePath)
    ; END

    => "/home/yeungchie/skill/script.il"

注意事项

上述的函数调用注意不能位于当前文本的最后一行 ; END,否则可能会出现路径获取错误的问题。 原因不详,猜测是 Skill 的 bug。

这个现象是我的脚本文件路径位于 NFS 挂载的远程存储的时候发现的,复现率极高。

ycLoad("xxx")
; 特意空一行
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Lisp
1
https://gitee.com/yeungchie/skill-loader.git
git@gitee.com:yeungchie/skill-loader.git
yeungchie
skill-loader
skill-loader
main

搜索帮助

Cb406eda 1850385 E526c682 1850385