首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在powershell中编写选择函数来编辑管道?

如何在powershell中编写选择函数来编辑管道?
EN

Stack Overflow用户
提问于 2022-08-08 06:49:29
回答 1查看 21关注 0票数 0

我希望使用稀疏结帐编辑器就地编辑git nvim信息。我有下面的代码,几乎可以工作。

代码语言:javascript
复制
function Choose () {
    begin {
        $file = New-TemporaryFile
    }
    process 
    {
        $_ >> $file
    }
    end {
        nvim $file
        Get-Content $file
        Remove-Item $file 
    }
}

function Git-Sparse-Checkout-Edit 
{
    git sparse-checkout list | Choose | git sparse-checkout set --stdin

}

如果我写

代码语言:javascript
复制
git sparse-checkout list | Choose

然后,在git稀疏签出命令的输出上打开nvim编辑器,当我'wq‘(保存和退出)时,文件的内容被写入stdout。但当我尝试

代码语言:javascript
复制
git sparse-checkout list | Choose | git sparse-checkout set --stdin

而不是打开编辑器,整个窗口终端停止,我不得不杀死它。我的选择功能是否正确实现?

EN

回答 1

Stack Overflow用户

发布于 2022-08-08 07:36:58

代码语言:javascript
复制
function Choose () {
    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [string[]]
        $Text
    )
    begin {
        $file = New-TemporaryFile
        $Text
    }
    process 
    {
        foreach ($line in $Text){
            $line >> $file
        }
    }
    end{
        start-process nvim $file -wait
        Get-Content $file
        Remove-Item $file 
    }
}

并使用它编辑git稀疏签出列表。

代码语言:javascript
复制
function Git-Sparse-Checkout-Edit 
{
    git sparse-checkout list | Choose | git sparse-checkout set --stdin

}

使用启动过程似乎是阻止管道停滞的关键,但我不知道为什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73273823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档