使用 Vim 作为 Javascript 沙箱:如何将缓冲区写入节点并在另一个缓冲区中读取结果
Using Vim as a Javascript Sandbox: How do I write a buffer to node and read the result in another buffer?
我正在尝试将 vim 用作复杂的 JavaScript 沙箱编辑器。
最终目标是有一个包含我的代码的左侧窗口,以及一个包含动态更新节点可执行文件.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、将 stdout 和 stderr 通过 node -p
保存文件到右侧缓冲区中,这是不可编辑的。
我知道有几种方法可以做到这一点,但缺乏将其粘合在一起的知识。
- 将输出读入寄存器,并在所选缓冲区中显示该寄存器
- 利用r!
- 利用快速修复或:make
如何将缓冲区内容通过 stdin 传递到node -p
,捕获 stdout 和 stderr 并将它们传递给不同的缓冲区?
有各种脚本或多或少可以做你想做的事。
- 异步命令
- 快速运行
- 别人。。。
我最近遇到了非常简约的pipe2eval,它可以让您评估当前行或视觉选择,并在下面的评论中插入结果。
愚蠢的例子:
my_array = [1,2,3];
my_array.push(4);
my_array[3];
// 4
您可以使用 https://github.com/metakirby5/codi.vim 只需安装它并将此行添加到您的 .vimrc 中
let g:codi#interpreters = {
' 'javascript': {
' 'rightalign': 0,
' },
' }
根据 Randy 的评论,在 tmux 顶部使用 vim-slimee 和右侧 tmux 窗格中的节点 REPL 确实有效。这是专门回答这个问题的一种非常有效的方法,尽管我仍然对包含 vim 的答案感兴趣。
虽然我还没有设置它,但我计划将其设置为由 tmuxinator 管理的特定 tmux 配置。
相关文章:
- 节点导出返回一个空对象
- 可以前端maven插件使用节点,npm已经安装
- 在jstree中,如何将指定的节点集中到大型树上
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 如何从模块链中调用函数.导出到节点中
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- d3基于用户选择动态更新节点
- Protocol Buffers byte[] 数组到节点 Javascript 缓冲区
- 节点.js从 UTF8 文件创建十六进制缓冲区
- 节点jsaes-256-cbc加密缓冲区和纯文本
- 如何使用本机节点 JS HTTP 库将图像写入缓冲区
- 节点.js流 - 缓冲区到字符串给出 [对象对象]
- 如何将缓冲区作为管道输入传递给节点脚本
- 使用 Vim 作为 Javascript 沙箱:如何将缓冲区写入节点并在另一个缓冲区中读取结果
- 将Blob数据转换为javascript或节点中的Raw缓冲区
- 节点编码和解码utf-16缓冲区
- 在浏览器中将远程文件读入节点缓冲区
- 将缓冲区传递给节点.js子进程
- 将缓冲区传递到子进程节点.js
- 如何将 Javascript 对象转换为节点缓冲区