2024-06-11 10:19:15 发布
网友
我最近把我的默认shell切换到IPython,而不是bash,方法是创建一个IPython配置文件,同时打开automagic、autocall和其他类似功能。为了使可执行文件对IPython环境可见,我在配置文件中包含了自动运行的%rehashx。这样做的问题是,名称中带有破折号的命令(如xdg-open)没有正确地转换为magic命令,因此需要使用shell转义语法来运行。有没有一种方法可以自动生成带有破折号的命令,这样我就可以更紧密地模拟类似bash的命令调用?在
%rehashx
xdg-open
你必须接受这个。在
如果标识符是跨语言边界处理的(在本例中是bash/Python),那么如果语言的标识符规则允许不同的东西(在本例中,-在bash中是允许的,而在Python中不允许)。解决这个问题的一种方法是名称混乱。有时这样做,例如用允许的字符替换有问题的字符(例如,xdg-open替换为xdg_open);为了避免名称冲突(例如,如果除了xdg-open之外已经有一个xdg_open),则替换通常以某种方式转义,例如通过字符的十六进制值转义(例如-替换_2d,_由{}等)。您可能会从包含%20之类的内容的URL行中知道这一点。这一切要么很快就变得不可读,要么名字的修改规则非常复杂(这是一种权衡)。在
-
xdg_open
_2d
_
%20
你必须接受这个。在
如果标识符是跨语言边界处理的(在本例中是bash/Python),那么如果语言的标识符规则允许不同的东西(在本例中,}等)。您可能会从包含
-
在bash中是允许的,而在Python中不允许)。解决这个问题的一种方法是名称混乱。有时这样做,例如用允许的字符替换有问题的字符(例如,xdg-open
替换为xdg_open
);为了避免名称冲突(例如,如果除了xdg-open
之外已经有一个xdg_open
),则替换通常以某种方式转义,例如通过字符的十六进制值转义(例如-
替换_2d
,_
由{%20
之类的内容的URL行中知道这一点。这一切要么很快就变得不可读,要么名字的修改规则非常复杂(这是一种权衡)。在相关问题 更多 >
编程相关推荐