[英]How to alias a command to the same command with parameters?
我正在寻找一种在 powershell 中将“emacs”映射到“emacs -nw”的方法。 我试过这个(下面的截图),并将它添加为别名,但它不起作用。 但是,命令“emacs -nw”在设置别名之前起作用。
而且我还想要一种方法来为以后的会话保存该别名(重新启动 powershell 让我回到零方格)
编辑:(附加信息)还尝试创建一个函数,但是当调用该函数时,powershell 冻结了一段时间,然后我收到以下消息(下面的屏幕截图)
EDIT2:(附加信息)起初, function enw {emacs.exe -nw}
(为了解释目的将函数名更改为“enw”)似乎有效。 但是接下来有一个问题。 对于标准 emacs,我可以输入emacs -nw filename.txt
,这将在emacs -nw
打开文件filename.txt
。 调用函数enw filename.txt
不会打开filename.txt
文件,提供与输入enw
相同的结果。
对此的解决方案是function enw {Param($myparam) emacs.exe -nw $myparam}
创建一个函数,但在函数内显式调用 .exe :
function emacs {emacs.exe -nw}
尝试创建一个函数:
function emacs {emacs.exe -nw}
然后将其添加到您的 powershell 配置文件( $profile
)
我看到你有你的答案,但我只是想在这里拼出来。 您创建了一个递归函数。
通过不指定 .exe 作为扩展名的一部分,PowerShell 能够将emacs
匹配回您的函数定义。 所以它会无限地调用自己。
您可以通过在注册函数之前和之后检查Get-Command emacs
的结果来看到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.