gpt4 book ai didi

node.js - 如何从 node.js REPL 启动 vi 或 emacs 等编辑器?

转载 作者:太空宇宙 更新时间:2023-11-03 22:39:17 27 4
gpt4 key购买 nike

我想从 node.js REPL 启动 vi 或 emacs 等编辑器。

到目前为止我已经尝试了两种方法:

  1. Node 插件

    这是我的 editor.cc 的样子:

    const char *tempFile = "TEMP_FILE"; // File to be opened with the editor

    Handle<Value> launchEditor (const Arguments& args) {
    const char *editor = "vi";
    Local<String> buffer;

    pid_t pid = fork();
    if (pid == 0) {
    execlp(editor, editor, tempFile, NULL);

    // Exit with "command-not-found" if above fails.
    exit(127);
    } else {
    waitpid(pid, 0, 0);
    char *fileContent = readTempFile(); // Simple file IO code to read file.
    buffer = String::New(fileContent);
    free(fileContent);
    }
    return buffer;
    }


    // MAKE IT A NODE MODULE

    void Init(Handle<Object> target) {
    target->Set(String::NewSymbol("editor"), FunctionTemplate::New(launchEditor)->GetFunction());
    }

    NODE_MODULE(editor, Init)

    当我有 Node v0.6.12(用 node-waf 编译)时,这有效,但是当我将 Node 更新到 v0.8.1 时,此代码停止工作(已编译与node-gyp)。编辑器根本没有出现,文件内容被读取并返回(使用 emacs)或者编辑器作为后台运行进程(使用 vi)!我需要更改什么才能使其与 0.8.1 一起使用吗?

    即使编辑器作为后台进程启动,我可以将其从代码本身带到前台吗?

  2. Child_process模块​​

    spawn = require('child_process').spawn;
    editor = spawn('emacs', ['TEMP_FILE']);

    但这不能正常工作。使用emacs,它显示错误输入不是 tty 并且 vi 提供了一个奇怪的界面。

有人可以帮助解决上述任何解决方案,或者提出其他一些可行的解决方案吗?

最佳答案

大约一周前我偶然发现了一个,你应该尝试一下:node-editor

关于node.js - 如何从 node.js REPL 启动 vi 或 emacs 等编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11489921/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com