繁体   English   中英

如何使用参数将命令别名为同一命令?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM