0

私はvimを使用しており、Powershellでの模倣を減らすために使用したいと考えています。そこで、それをラップする PowerShell 関数を書きたいと思います。

Vim にはless モードがあります。それを使用するには、次のようなコマンドを発行する必要があります。

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

ただし、PowerShell 関数には、パイプから stdout を取得する方法がないようです。ヒントはありますか?

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 関数には、パイプから stdout を取得する方法がないようです。

あなたのパイプがどのように機能するかを完全には理解していないので、ヒントだけです。いずれにせよ、 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 に答える