首页 > 解决方案 > 如何从 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 执行我正在使用此调试选项编辑的文件,以便在使用该命令后仍然可以控制调试器?

在我看来,它会类似于以下内容:

  1. 我用 Vim 打开我的 js 文件
  2. 我用一个命令之类:%! node inspect的打开调试器(这个命令是完全错误的,只是一个例子)
  3. 代替文件,我现在从调试器中看到交互式终端,我可以在其中键入一些命令,如下所示:
< 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
  1. 退出调试器后,我回去编辑我的文件

我想从 Vim 内部进行,而无需在终端上键入命令,因为我使用firenvim在浏览器上编辑一些文件......除了编辑和执行它们之外,我还想调试它们,一切都来自浏览器。 .. 这就是为什么我需要在不从终端窗口输入命令的情况下执行此操作。可能吗?我可以node inspect file.js在 Vim 中使用命令吗?

标签: vim

解决方案


我想通了...如果我使用该命令:set makeprg=node\ inspect\ % | set autowrite | make,它将完全按照我在问题中描述的那样执行:它会打开一个交互式终端,我可以在其中进行调试工作,然后退出该终端后,我将重新编辑我的文件。

除此之外,一旦我输入了这个命令,我下次就不需要再写所有的东西了……只要输入:make就可以了。


推荐阅读