【问题标题】:Stop Node server in terminal and return to file in vim在终端中停止节点服务器并在 vim 中返回文件
【发布时间】:2013-11-15 04:03:09
【问题描述】:

我是 Node 和 vim 的新手。

我有以下代码文件,在vim中打开server.js:

var http = require("http");

function onRequest(request, response) {
    console.log("Request received");
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}

http.createServer(onRequest).listen(8888);

console.log("Server has started");

当我进入 vim“命令”模式并输入:

:!node server.js

事情按预期进行(我认为)。窗口变为标准终端窗口,如果我打开浏览器并导航到端口 8888 上的 localhost,则会显示愚蠢的“Hello World”文本。

终端显示“服务器已启动”文本,以及接收到请求的输出。一切都很好。

当我关闭浏览器窗口并键入Ctrl-z to 停止节点服务器时,终端显示[1}+ stopped vim server.js,但没有返回到我在vim 中的代码文件。

如果我通过输入vim 返回 vim,vim 会打开到同一个目录,但我的文件没有打开。如果我尝试打开文件,vim 会抱怨交换文件重复。显然我可以使用 [R]ecover 选项,但似乎我错过了一步。

我在这里错过了什么?

我已经用谷歌搜索并搜索了 SO,但我不确定除了这个问题的标题之外我要问什么(它没有产生我正在寻找的答案,或者如果它产生了,我不认识它)。我只是新人,我不确定我是否遗漏了有关终端、vim 或 *nix 的某些内容。

提前致谢。 . .

更新:我突然想到我从来没有明确说明我想要什么 - 我想在终端中停止服务器并返回到 vim 中打开的文件。正如 Tadman 在下面提到的,我知道我可能正在尝试打开一个额外的编辑器实例。我不清楚的是如何返回现有实例。现在试试 Tadman 的建议。

【问题讨论】:

    标签: node.js vim linux-mint


    【解决方案1】:

    您正在创建一个子 shell 来运行 node,使用 ^Z 暂停它,然后在执行下一步时打开 vim 的新副本。现在你有两个编辑器在运行,所以你得到一个关于交换文件的错误。

    为什么不在单独的 shell 中执行此操作(大多数人倾向于这样做),或者使用 ^C 停止服务器并返回到您的编辑器?

    【讨论】:

    • 我会试试的。对 Linux、vim 和 Node 来说有点新。当您不确定自己做错了哪一部分时挑战!
    • 我所追求的是,​​从 vim 命令输入运行 node app,退出 node app 并返回到我正在使用的文件。我会看看你建议的 ^C 选项。
    • 这就是我想要的。谢谢!
    • 有很多 control commands 可以在大多数 shell 中使用。在许多情况下,这些可以追溯到 1970 年代,甚至更早。
    • 酷。是的,我很喜欢我对 *nix 的发现,但有时很难记住,而且还需要一段时间才能知道什么是正确的使用方法。永远无法确定我已经(就代码 o 而言)所做的事情是否以某种方式出错,或者我是否只是没有找到正确的 NEXT 事情。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多