pockestrap

Programmer's memo

Vimで標準入力から読み込まれているかを判別する

数日悩んだのでメモ。


vim は、標準入力をバッファとして読み込むことが出来ます。

$ echo 'hoge' | vim -

のように-をつけて起動すると、標準入力がバッファとして読み込まれます。 上の例では、バッファにhogeが入った状態でVimが起動します。


この標準入力からバッファが読み込まれた時、2つのautocmdイベントが発生します。

  • StdinReadPre
  • StdinReadPost

Vim documentation: autocmd

そのため、この2つのイベントのどちらかが発生したかを確認することによって、標準入力からバッファが読まれたかを判別することができます。