我最近通过创建一个启用了automagic,autocall和其他此类功能的IPython配置文件,将我的默认shell切换到IPython而不是bash。为了使可执行文件对IPython环境可见,我已经包含%rehashx
以在我的配置文件中自动运行。这样做的问题在于,名称中包含破折号的命令(例如xdg-open
)未正确转换为魔术命令,因此需要使用shell-escape语法运行。有没有办法用破折号自动命令,这样我就可以更接近地模仿类似bash的命令?
答案 0 :(得分:2)
你必须忍受这个。
如果跨语言边界处理标识符(在本例中为bash / Python),如果语言的标识符规则允许不同的事情,则会遇到问题(在这种情况下,bash中允许-
但Python不允许)。解决这个问题的一种方法是改名。有时这样做,例如。 G。用允许的字符替换违规字符(例如xdg-open
xdg_open
);为了避免姓名冲突(例如,除了xdg_open
之外已经存在xdg-open
),替换人员通常会以某种方式逃脱,例如通过角色的十六进制值(例如-
_2d
,_
_5f
等)。您可能会从包含%20
等内容的网址行中了解到这一点。这一切都变得难以理解,或者名称修改的规则非常复杂(需要权衡)。