vim - 如何从 Vim 内部打开 node.js 检查模式?
问题描述
假设我有以下 node.js 代码:
console.log("one")
console.log("two")
console.log("three")
console.log("four")
我知道我可以通过使用命令从 Vim 内部将它作为 node.js 代码执行:%! node
……但是,node.js 有一个简单的内置调试器node inspect file.js
,我可以通过在命令行上使用非常轻松地调试我的代码。不过,我想从 Vim 内部执行此操作,是否有任何方法可以让 Vim 执行我正在使用此调试选项编辑的文件,以便在使用该命令后仍然可以控制调试器?
在我看来,它会类似于以下内容:
- 我用 Vim 打开我的 js 文件
- 我用一个命令之类
:%! node inspect
的打开调试器(这个命令是完全错误的,只是一个例子) - 代替文件,我现在从调试器中看到交互式终端,我可以在其中键入一些命令,如下所示:
< Debugger listening on ws://127.0.0.1:9229/6d2eb151-92d0-4d70-b495-31148e202a77
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in file.js:1
> 1 console.log("one")
2 console.log("two")
3 console.log("three")
debug> n
< one
break in file.js:2
1 console.log("one")
> 2 console.log("two")
3 console.log("three")
4 console.log("four")
debug> n
< two
break in file.js:3
1 console.log("one")
2 console.log("two")
> 3 console.log("three")
4 console.log("four")
5
debug> n
< three
break in file.js:4
2 console.log("two")
3 console.log("three")
> 4 console.log("four")
5
debug> .exit
- 退出调试器后,我回去编辑我的文件
我想从 Vim 内部进行,而无需在终端上键入命令,因为我使用firenvim在浏览器上编辑一些文件......除了编辑和执行它们之外,我还想调试它们,一切都来自浏览器。 .. 这就是为什么我需要在不从终端窗口输入命令的情况下执行此操作。可能吗?我可以node inspect file.js
在 Vim 中使用命令吗?
解决方案
我想通了...如果我使用该命令:set makeprg=node\ inspect\ % | set autowrite | make
,它将完全按照我在问题中描述的那样执行:它会打开一个交互式终端,我可以在其中进行调试工作,然后退出该终端后,我将重新编辑我的文件。
除此之外,一旦我输入了这个命令,我下次就不需要再写所有的东西了……只要输入:make
就可以了。
推荐阅读
- node.js - 无法使用节点 sdk 从私有数据集合中获取人类可读格式的数据
- heroku-cli - 如何解决 Heroku 应用程序显示没有名为“我的项目名称”的模块的错误
- cefsharp - CEF 在运行时设置 authproxy
- ruby-on-rails - Heroku 在尝试发送电子邮件时产生 500 错误
- plotly - 有没有办法让多个 Plotly-Dash 地图引用同一个动画滑块?
- soap - 如何在 Mule 4 中将附件引用作为 dataweave 2.0 字段映射值传递以使用 SOAP 服务
- kotlin - 如何处理对话框中的取消和确定按钮
- ruby-on-rails - 使用循环查询重构
- angular - Angular 9 - 在反应式表单控件上手动设置错误不会改变表单状态
- react-native - 当后台应用程序本机反应时如何保持redux saga运行