0

我使用 vim 并希望在 Powershell中使用它来模拟更少。所以我想写一个PowerShell函数来包装它。

Vim 有一个less 模式。要使用它,我只需要发出这样的命令:

type somefile.txt | vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -

但是 PowerShell 函数似乎没有办法让我从管道中获取标准输出有什么提示吗?

4

2 回答 2

0

我使用批处理文件(less.bat)解决了这个问题,如下所示:

cmd /c vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -

你可以像这样使用它:

type somefile.txt | less

请注意,如果您还需要使用以下方式调用 less,则需要对批处理文件中的参数进行条件测试。

less somefile.txt
于 2013-01-03T06:54:46.423 回答
0

但是 PowerShell 函数似乎没有办法让我从管道中获取标准输出。

只是一个提示,因为我不完全理解你的管道是如何工作的。无论如何,您知道 ValueFromPipeLine* 装饰吗?

function less {
 param( 
 [Parameter(ValueFromPipeLine=$true)]
  $input
 )
 process {
    ##concatenate strings here, or process whatever vim sends into the pipeline
 }
}

...相关问题?

于 2013-01-03T13:08:34.170 回答