我使用vim并希望在Powershell中使用它来模仿less。所以我想写一个PowerShell函数来包装它。
Vim有less mode。要使用它我只需要发出这样的命令:
type somefile.txt | vim --cmd 'let no_plugin_maps = 1' -c 'runtime! macros/less.vim' -
然而,PowerShell功能似乎没有办法让我从管道中获取标准输出。任何提示?
答案 0 :(得分: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
答案 1 :(得分:0)
然而,PowerShell功能似乎没有办法让我接受 来自管道的stdout。
只是一个提示,因为我不完全了解你的管道是如何工作的。 无论如何,你知道ValueFromPipeLine *装饰吗?
function less {
param(
[Parameter(ValueFromPipeLine=$true)]
$input
)
process {
##concatenate strings here, or process whatever vim sends into the pipeline
}
}