Python 如何覆盖xonsh中的内置命令?

Python 如何覆盖xonsh中的内置命令?,python,shell,xonsh,Python,Shell,Xonsh,我正在尝试重写“ls”命令以在“dotfiles”目录中显示dotfiles 这是我的密码 def_ls(): 如果$(pwd).rstrip(os.linesep)==$DOTFILES: ls-Ga 其他: ls-G 别名['ls']=\u ls 由于\u ls函数调用ls命令并调用\u ls函数,因此该代码进入了一个无休止的循环 有什么想法吗?无限别名调用不应该发生——您介意在github.com/xonsh/xonsh/issues上打开一个问题吗 在此期间,以下是一种构造别名的方法,

我正在尝试重写“ls”命令以在“dotfiles”目录中显示dotfiles

这是我的密码

def_ls():
如果$(pwd).rstrip(os.linesep)==$DOTFILES:
ls-Ga
其他:
ls-G
别名['ls']=\u ls
由于
\u ls
函数调用
ls
命令并调用
\u ls
函数,因此该代码进入了一个无休止的循环


有什么想法吗?

无限别名调用不应该发生——您介意在github.com/xonsh/xonsh/issues上打开一个问题吗

在此期间,以下是一种构造别名的方法,无需任何修复即可使用:

def _ls(args):
    args = args[0].replace('-', '') if args else ''
    if $(pwd).rstrip(os.linesep) == $DOTFILES:
        $(which -s ls) @(f"-{''.join(set(args + 'aG'))}")
    else:
        $(which -s ls) @(f"-{''.join(set(args + 'G'))}")
aliases['ls'] = _ls

-s
参数跳过别名解析,从而返回实际的
ls
可执行文件的路径。然后,
设置
逻辑是确保参数不重复(尽管我不确定这是严格必要的)。

无限别名调用不应该发生——您介意在github.com/xonsh/xonsh/issues上打开一个问题吗

在此期间,以下是一种构造别名的方法,无需任何修复即可使用:

def _ls(args):
    args = args[0].replace('-', '') if args else ''
    if $(pwd).rstrip(os.linesep) == $DOTFILES:
        $(which -s ls) @(f"-{''.join(set(args + 'aG'))}")
    else:
        $(which -s ls) @(f"-{''.join(set(args + 'G'))}")
aliases['ls'] = _ls

-s
参数跳过别名解析,从而返回实际的
ls
可执行文件的路径。然后,
设置
逻辑是确保参数不重复(尽管我不确定这是否严格必要)。

谢谢你的回答,我不介意公开问题。谢谢你的回答,我不介意公开问题。