Z Shell“自动加载”内置 - 它有什么好处?

2024-01-01

我已经使用 Z shell 一段时间了,我开始感到好奇。我在编写自己的函数时偶然发现的一件事是“自动加载”。

根据 zshbuiltins(1) 手册页autoload是“相当于functions -u”(有一个例外),它“相当于typeset -f“(有一个例外)。但是,在查看了 autload 的使用之后,说functions/Prompts/promptinit,我想我知道它的作用。

我认为自动加载是一种“导入”声明。

但为什么“autoload foo”优于“source bar”呢?我不明白。


如中所述zsh 文档 http://zsh.sourceforge.net/Doc/Release/Functions.html:

函数可以被标记为未定义 使用内置的自动加载(或functions -u or typeset -fu)。这样的 函数没有函数体。当。。。的时候 函数首先被执行,shell 使用以下命令搜索其定义 的要素fpath多变的。 [...]

autoload允许在没有主体的情况下指定函数,然后在使用时自动加载;)

source然而,将脚本作为参数,然后executed在当前会话的环境中 - 即您将保留脚本对环境所做的所有更改,但情况并非如此just执行脚本。

我认为这个功能在拥有时很有用lots函数中的实用程序。它允许faster启动(不需要加载自动加载函数的所有代码)并且可以保留 shell 的内存占用smaller.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Z Shell“自动加载”内置 - 它有什么好处? 的相关文章

  • tmux:如何打开光标下的文件

    我是 vim 用户并且习惯了gf命令 打开光标下的文件 现在我想问一下 tmux 是否有类似的东西 我可以在 tmux 窗格中导航 并且经常会出现光标下有一个文件路径的情况 现在我希望能够使用 vim 打开光标下的该文件 A 在当前窗口中
  • oh-my-zsh:已达到 git 最大嵌套函数级别

    当我使用标准 git 命令时出现错误 site git branch git 1 maximum nested function level reached zshrc plugins git osx colored man gem bre
  • zsh:在函数中设置opt并使其粘住

    我正在尝试将分析添加到函数内部的 zshrc 中 via http stackoverflow com a 4351664 329700 profile startup PS4 usr local bin gdate s N N i gt
  • ZSH RPROMPT 奇怪的间距?

    这是我的 ZSH 提示主题 function git prompt info ref git symbolic ref HEAD 2 gt dev null return echo parse git dirty ZSH THEME GIT
  • 在 Visual Studio Code 上集成 ZSH 时出现字体问题

    我正在尝试将 zsh 集成到我的 VSC 设置中 但显然它无法识别箭头 我的 zsh 主题是 agnoster 我已经尝试添加 terminal integrated fontFamily Meslo LG M DZ for Powerli
  • zsh:权限被拒绝:gam

    我在安装了 Oh My ZSH 的 macOS 10 12 上使用 ZSH 我最近安装了GAM https github com jay0lee GAM在我的计算机上使用提供的安装脚本bash lt curl s S L https git
  • “管道标准错误,而不是标准输出”在 Zsh 中不起作用

    如何通过管道传输 stderr 而不是 stdout https stackoverflow com questions 2342826 how to pipe stderr and not stdout完美地捕捉了我的问题 第一个答案正是
  • 从 docker-compose 中退出代码打破 while 循环

    我有一个案例 有一个 WordPress 项目 我应该在其中创建一个脚本来更新插件并将源代码更改提交到单独的分支 在这样做时我遇到了一个奇怪的问题 输入变量 akimset 4 0 3 all in one wp migration 6 7
  • 在文件和文件夹的名称中递归地填充 0

    我有一个文件夹 其中包含有关某个特定主题的视频讲座 它的结构如下 1 fol 1 file mp4 2 file mp4 3 file mp4 2 fol 10 file mp4 4 file mp4 5 file mp4 6 file m
  • 在 zsh 中安装 npm 后找不到命令

    我在安装时遇到一些问题vows http vowsjs org通过 zsh 中的 npm 这是我得到的 我尝试使用和不使用 g 选项安装它 你知道这里出了什么问题吗 Desktop sauce node demo master npm in
  • zsh:在目录分隔符上停止向后杀字

    In zsh http www zsh org 我如何设置行编辑器 以便backward kill word停在目录分隔符上 目前在我的 bash 设置中 如果我输入 cd devel sandbox 然后打C w点将紧随其后devel 在
  • 如何在 Bash 中像拉链一样合并两个数组?

    我正在尝试以类似拉链的方式将两个数组合并为一个数组 我很难做到这一点 array1 one three five seven array2 two four six eight 我尝试过嵌套 for 循环 但无法弄清楚 我不希望输出为 13
  • 如何修复 oh-my-zsh 插件无法工作的问题

    我刚刚发现了 oh my zsh 但我无法让它工作 虽然主题可以完美地工作 但插件却不能 我选择了一些插件 例如 macports 但我既没有完成端口命令 也没有适当的别名工作 这是我的 zshrc Path to your oh my z
  • 使用通配符扩展来回显 zsh 中的所有变量

    对于以相同模式开头的多个变量 可以使用通配符来回显所有匹配的模式吗 when zzz1 test1 zzz A test2 zzza test3 匹配以 zzz 开头的所有变量的最佳方法是什么 哪里像echo zzz or for i in
  • 如何从 ZSH 的历史记录中删除条目

    假设我使用 zsh 运行了一个命令 echo mysecret gt file 我可以使用命令轻松打印历史记录 包括条目号fc l 1 echo mysecret gt file 但是如何轻松地从历史记录中删除条目呢 我找不到相应的段落男人
  • 哦,我的 zsh 显示出奇怪的字符“?”在终端上

    我已经安装了 iTerm2 和 Oh my zsh 然而 自从我将 ZSH THEME 更改为 agnoster 后 出现了一个奇怪的问号 附上相同的屏幕截图 我认为电力线会有所帮助 但似乎并没有发生 谁能帮我解决这个问题吗 这已经解决了这
  • 如何在 Mac 上使用 Pipenv?

    当通过 pip 安装它时 pip install pipenv 在 zsh shell 上找不到命令pipenv 如果通过安装brew brew install pipenv 然后运行pipenv shell 出现错误 Loading en
  • 正则表达式 [A-Za-z] 似乎不包含字母 W 和 w

    由于某种原因 我不知道为什么 也许我的系统或我的大脑有些不对劲 正则表达式 A Z 似乎无法识别字母 W 和 a z 似乎不认识字母 w 例子 for x in A a B b C c D d E e F f G g H h I i J j
  • 在 bash 中重定向 stdout 和 stderr 的正确方法是什么? [复制]

    这个问题在这里已经有答案了 这是我想要完成的具体任务 zsh 的行为方式是我喜欢的 zsh which clang gt dev null 2 gt 1 echo clang echo gcc clang which doesntexist
  • grep --include 命令在 OSX Zsh 中不起作用

    我正在关注最佳答案如何在 Linux 上查找包含特定文本的所有文件 https stackoverflow com questions 16956810 finding all files containing a text string

随机推荐

  • 如何在echarts中添加渐变颜色?

    I made a echart line graph https stackblitz com edit angular aqghec file src 2Fapp 2Fapp component ts Now I want to add
  • 自定义 UItableView 在 ios8 上无法正确显示

    我做了一个定制UITableViewCell当我显示它时 我得到了这个结果 我在 iPhone 5 上运行 xcode 6 和 iOS 8 beta 1 https i stack imgur com 9Oswn png https i s
  • 只读时无法使用文本框获取文本?

    我有一个文本框
  • CSS Line-Through 未被删除

    我有一些代码可以在 TR 上为已删除的行添加一条直通线 但这意味着我的 操作 列 只有 按钮会受到影响 这是因为按钮之间存在单独的空间 这些空间最终也会被贯穿 在浏览了 W3Schools 后 我很困惑为什么这个例子不起作用 table t
  • 如何设置 tkinter textvariable 在单独的线程上运行?

    尝试使用 main 函数变量更新在线程上运行的 tkinter textvariable 我实现了一个基于线程的解决方案 因此 tkinter 主循环后面的代码可以运行 https stackoverflow com a 1835036 1
  • 如何使用功能状态生成随机数?

    我正在努力弄清楚如何将 State 的函数表示与 Scala 的 Random 类合并以生成随机整数 我正在从书上学习Scala 中的函数式编程 所以大部分代码都是从那里获取的 以下是 State 类的样子 直接来自书中 case clas
  • 使用 NSIS 安装程序向注册表项授予权限的有效方法是什么?

    我正在尝试使用访问控制插件 http nsis sourceforge net AccessControl plug in在 NSIS 中设置注册表项的权限 它不起作用 安装程序运行后 所有用户组没有完全控制权 我在下面创建了一个示例 这里
  • Eclipse:有没有办法在组织导入中强制导入来解决歧义?

    我在 android 项目上使用 Eclipse 我更新到 Lion 问题开始出现 尝试了几个小时 没有结果 问题是这样的 我有几十个文件com stuff morestuff在我的项目中 我想 ctrl shift O 我的项目 这样每个
  • VS2010单元测试“待处理”且测试无法完成

    我正在使用 VS2010 Windows 7 每次我尝试运行单元测试时 它都会保持 待处理 状态并且测试无法完成 我试着遵循这个msdn说明 http msdn microsoft com en us library ms182532 28
  • Netflix 如何在不刷新页面且无需 JavaScript 的情况下提交评分?

    我正在尝试为我的网站做一些类似 Netflix 的 5 星级评级系统的事情 我注意到 Netflix 即使禁用了 JavaScript 仍然会在不刷新页面的情况下提交评级 这是显而易见的 因为当您手动重新加载页面时 您可以看到新的评级 但是
  • React-navigation 在调试模式下工作正常,但在发布模式下不行

    几周以来我遇到了一个问题 我在我的react native应用程序中使用react navigation 当我在调试模式下在我的设备上测试时 我在屏幕之间正确导航 但是当我构建签名的apk时 导航不再工作 我尝试了一切 但没有任何效果 我正
  • 在已知缺失时间间隔之间插入 3D 坐标

    数据是空间中的路径 我有 3D 位置数据 x y z 和记录位置点的时间 x y 和 z 坐标是物体在 3D 空间中移动的点位置 时间值是记录每个点的时间 从 0 开始 x y z time s 0 1 2 2 3 3 0 2 4 2 4
  • 为什么不在java中使用带有锁的try?

    我读了这个话题 https stackoverflow com questions 6965731 are locks autocloseable 和这个博客文章 http www java7developer com blog p 256
  • 编译时出现错误?

    当我编译代码时 我收到这些错误 我有 user include 下的所有标题 g Ip appmanager inc Icore inc p appmanager src appmanager process cpp o p appmana
  • 本地主机上的 404 错误

    我正在尝试使用一些ajax 来发送一些电子邮件 我在使用冷聚变之前已经这样做过并且没有任何问题 我遇到的是本地主机未在目录中找到明确的文件 事实上 该文件与index php 位于同一目录中 这没有发现任何问题 然而它给了我一个404错误找
  • 使用 LiveData、协程和事务测试 Android Room

    我想测试我的数据库层 但我陷入了第 22 条军规类型的情况 测试用例由两部分组成 保存一些实体 加载实体并断言数据库映射按预期工作 简而言之 问题在于 Insert is a suspend方法 这意味着它需要运行在runBlocking
  • Eclipse“正确缩进”忽略空格与制表符设置

    我正在 Windows 中运行 Eclipse Juno Service Release 2 20130225 0426 我发现自动缩进 Ctrl I 会忽略常规 编辑器 文本编辑器 插入选项卡空格和 Java 代码样式 格式化程序 缩进
  • “无处不在”使用 LINQ 时的性能问题?

    升级到 ReSharper5 后 它为我提供了更多关于代码改进的有用提示 我现在随处看到的一个提示是用 LINQ 查询替换 foreach 语句 举个例子 private Ninja FindNinjaById int ninjaId fo
  • 获取 Android 上的应用程序安装日期

    有没有办法找出 Android 设备上的 应用程序安装日期 进行了大量搜索 但无法找到相关答案 无法找到有关应用程序安装日期的任何信息PackageManager文档 代码 或这个 API 级别 9向上 long installed con
  • Z Shell“自动加载”内置 - 它有什么好处?

    我已经使用 Z shell 一段时间了 我开始感到好奇 我在编写自己的函数时偶然发现的一件事是 自动加载 根据 zshbuiltins 1 手册页autoload是 相当于functions u 有一个例外 它 相当于typeset f 有