8

レジスタの内容を外部コマンドの標準入力にパイプするにはどうすればよいですか? 私は直感的に次のことを試しましたが、うまくいきません(ただし、私の必要性を説明するのに役立つかもしれません):

:"0w !some_command
4

1 に答える 1

12

レジスタの内容に NULL が含まれていない場合は、次のように単純です。

call system('some_command', getreg('r', 1, 1) + (getregtype('r') isnot# 'v' ? [''] : []))

. @rこのフォームは、呼び出しの代わりに使用できる NUL を持っていないことがわかっている場合、レジスタ内に存在する可能性がある NUL も保持しますgetreg()。ただし、getreg('r', 1, 1)行ごとのモードでテキストをコピーした場合でも、末尾に改行がないことに注意してください。その+ (getregtype('r') isnot# 'v' ? [''] : [])ため、追加するように書いています(フォームに@rはこの問題はありません)。

于 2012-05-28T09:29:19.947 に答える