我最近将我的默认 shell 切换到 IPython,而不是 bash,方法是创建一个 IPython 配置文件,并打开自动魔术、自动调用和其他此类功能。为了使可执行文件对 IPython 环境可见,我%rehashx
在我的配置文件中包含了自动运行。这样做的问题是名称中带有破折号的命令,例如xdg-open
,没有正确地翻译成魔术命令,因此需要使用 shell-escape 语法才能运行。有没有办法用破折号自动执行命令,以便我可以更接近地模拟此类命令的类似 bash 的调用?
问问题
428 次
1 回答
2
你将不得不忍受这个。
如果标识符是跨语言处理的(在这种情况下是 bash/Python),如果语言的标识符规则允许不同的东西(在这种情况下,-
在 bash 中允许但在 Python 中不允许),您将遇到问题。解决此问题的一种方法是名称修改。有时会这样做,例如用允许的字符(例如xdg-open
用xdg_open
)替换有问题的字符;为了避免名称冲突(例如,如果xdg_open
除了 之外已经有一个xdg-open
),替换通常以某种方式进行转义,例如通过字符的十六进制值(例如-
by _2d
,_
by_5f
等)。您可能会从包含以下内容的 URL 行中知道这一点%20
之类的。这一切要么很快变得不可读,要么名称修改的规则非常复杂(有一个权衡)。
于 2012-05-23T12:27:13.900 回答