IPython魔术命令和短划线

时间:2012-05-22 17:47:58

标签: python bash shell ipython

我最近通过创建一个启用了automagic,autocall和其他此类功能的IPython配置文件,将我的默认shell切换到IPython而不是bash。为了使可执行文件对IPython环境可见,我已经包含%rehashx以在我的配置文件中自动运行。这样做的问题在于,名称中​​包含破折号的命令(例如xdg-open)未正确转换为魔术命令,因此需要使用shell-escape语法运行。有没有办法用破折号自动命令,这样我就可以更接近地模仿类似bash的命令?

1 个答案:

答案 0 :(得分:2)

你必须忍受这个。

如果跨语言边界处理标识符(在本例中为bash / Python),如果语言的标识符规则允许不同的事情,则会遇到问题(在这种情况下,bash中允许-但Python不允许)。解决这个问题的一种方法是改名。有时这样做,例如。 G。用允许的字符替换违规字符(例如xdg-open xdg_open);为了避免姓名冲突(例如,除了xdg_open之外已经存在xdg-open),替换人员通常会以某种方式逃脱,例如通过角色的十六进制值(例如- _2d_ _5f等)。您可能会从包含%20等内容的网址行中了解到这一点。这一切都变得难以理解,或者名称修改的规则非常复杂(需要权衡)。