Fish中的--description选项如何使用? 点击 TAB:列出函数:显示函数的详细信息:

问题描述

我注意到--description选项是Fish shell语法中函数声明的一部分。

例如,/usr/share/fish/functions/abbr.fish

function abbr --description "Manage abbreviations"
    …
end

但是,我从未见过使用它。以下命令均不执行我要完成的任务,即查看任何给定功能的描述(假设已定义):

> abbr --description
abbr: Unknown option “--description”
/usr/share/fish/functions/abbr.fish (line 6): 
    argparse -n abbr $options -- $argv
    ^
in function 'abbr' with arguments '--description'
> help --description
help: Unknown option “--description”
/usr/share/fish/functions/help.fish (line 3): 
    argparse -n help --max-args=1 $options -- $argv
    ^
in function 'help' with arguments '--description'
> help description # opens file:///usr/share/doc/fish/index.html in a browser (same functionality as `help`)
> help abbr # opens file:///usr/share/doc/fish/cmds/abbr.html in a browser (only works for built-in functions)

我在文档中没有看到有关此选项的任何信息。如果在那里,请指向我。

解决方法

正如@puffin 回答的那样,--description 选项是为您的函数定义添加一个 docstring

但它不仅仅是“为开发人员”提供的东西,实际上它的设计目的是让用户在多个地方看到。

  • TAB完成菜单中
  • 在函数 type 的输出中
  • functions -vD 的输出中 funcname ( v erbose D etails)

示例,使用这个简单的函数定义:

mjl@jazz ~> function ... -d 'Go up two directory levels.'
                ../../
            end

点击 TAB:

这是--description|-d用途。键入 后。 . TAB,这是 Fish 显示完成的方式(它添加了第三个 .):

mjl@jazz ~> ...
..  ...  (Go up two directory levels.)  ../  (Directory,160B)

出现说明,让用户一眼就能看出... 是什么

列出函数:

mjl@jazz ~> type ...
... is a function with definition
function ... --description 'Go up two directory levels.'
../../
end

显示函数的详细信息:

mjl@jazz ~> functions -vD ...
stdin
n/a
0
scope-shadowing
Go up two directory levels.
,

--description选项用于提供对已定义函数的描述,当然abbr命令没有description选项,因为它属于function命令(而abbr没有这样的选项)

查看鱼类文档:

,

您正在尝试使用abbr选项调用--description函数。对于开发人员而言,该选项更像是一种非常简单的“文档字符串”,并非旨在供最终用户使用。它是function命令的一个选项,它不会在正在定义的函数中添加任何帮助字符串或其他功能。

采用fish_git_prompt中定义的fish函数/usr/share/fish/functions/fish_git_prompt.fish。它的完整定义是function fish_git_prompt --description "Prompt function for Git",并且说明中对此目的进行了非常简短的说明。这些描述非常重复,而且过于冗长,但对于可能含糊不清的短函数名更有用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...