簡體   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