vim を複雑な JavaScript サンドボックス エディタとして利用しようとしています。
最終的な目標は、左側のウィンドウにコードを表示し、右側のウィンドウに node.js 実行可能ファイルからの出力を動的に更新することです。
私は現在利用しています:
map <Leader>r :silent :w !node -p > /tmp/jsconsole<cr>
silent !cat '' > /tmp/jsconsole
botright vnew
e /tmp/jsconsole
set buftype=nofile
set bufhidden=hide
set nobuflisted
setlocal noswapfile
" set nomodifiable " maybe later once i can figure out how to lock/unlock
wincmd h
set buftype=nofile
set bufhidden=hide
set nobuflisted
setlocal noswapfile
autocmd QuitPre * :qa
set autoread
これはうまくいきます。vim のautoread
機能は信頼できないと思います。
理想的には、stdin を介してファイルを保存せずに左側のバッファの内容を実行し、node -p
stdout と stderr を編集できない右側のバッファに読み込むことができます。
これを行うにはいくつかの方法があることは承知していますが、それらを結び付ける知識が不足しています。
- レジスタへの出力を読み取り、選択したバッファにそのレジスタを表示する
- rを活用!
- quickfix または :make を利用する
node -p
stdin を介してバッファの内容を に渡し、 stdout と stderr をキャプチャして別のバッファに渡すにはどうすればよいですか?