2

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 -pstdout と stderr を編集できない右側のバッファに読み込むことができます。

これを行うにはいくつかの方法があることは承知していますが、それらを結び付ける知識が不足しています。

  • レジスタへの出力を読み取り、選択したバッファにそのレジスタを表示する
  • rを活用!
  • quickfix または :make を利用する

node -pstdin を介してバッファの内容を に渡し、 stdout と stderr をキャプチャして別のバッファに渡すにはどうすればよいですか?

4

3 に答える 3

2

多かれ少なかれ、必要なことを行うさまざまなスクリプトがあります。

私は最近、現在の行または視覚的な選択を評価し、その結果を下のコメントに挿入できる、非常にミニマリストなpipe2evalに出会いました。

ばかげた例:

my_array = [1,2,3];
my_array.push(4);
my_array[3];
// 4
于 2013-09-09T19:07:22.923 に答える
1

Randy のコメントに従って、tmux の上に vim-slime を使用し、右側の tmux ペインでノード REPL を使用すると、実際に機能します。これは、この質問に具体的に答えるかなり有効な方法ですが、私はまだ vim を含む回答に興味があります。

まだセットアップしていませんが、これを tmuxinator によって管理される特定の tmux 構成にする予定です。

于 2013-09-09T18:04:23.963 に答える