首页 > 解决方案 > 扩展`ls`函数

问题描述

通常在 Windows 上,我别名ls

alias ls="ls -hNFCs --color=auto -I NTUSER.DAT\* -I ntuser.dat\*"

ls这会在我的主目录以及设置一些合理的默认值时从我的视图中删除 NTUSER.DAT 文件。

但是,对 做同样的事情fish,我注意到我.dircolors没有被阅读。这是因为ls.fish加载.dircolors但是当我用它覆盖它时alias它会失去这种能力。

所以我的问题是,我如何扩展默认的 ls.fish 来添加我的额外参数?

我能做的最接近的事情是复制ls.fish文件并修改相关部分

  function ls --description "List contents of directory" -V opt
            isatty stdout
            and set -a opt -F
            and set -a opt -hNFCs -I NTUSER.DAT\* -I ntuser.dat\*
            command ls $opt $argv
        end

标签: fish

解决方案


只是复制功能确实是要做的事情。funced ls可以帮助解决这个问题。

添加一种扩展功能的方法太容易破坏了——你在哪里允许扩展,你如何确保在你进行更改时任意扩展不会破坏,......

因此,复制既好又简单,尤其是对于不太可能在其他任何地方调用的函数ls(因为您不想解析 ls 的输出)


推荐阅读