用于启动终端应用程序的节点包装器,例如 vim、emacs、tmux
Node wrapper to start a terminal application like vim, emacs, tmux
TLDR;我如何从终端 运行 一个节点进程,从节点启动一个进程,退出节点进程并让进程 附加 到父终端?
我正在编写一个节点终端应用程序,它应该通过启动一个新的终端应用程序来结束(例如 vim
、emacs
、tmux
)。我希望这个应用程序 运行 就像是在启动节点应用程序的终端中手动执行的一样。
我当前 workaround tmux
是 运行 节点应用程序,它设置一个新的 tmux
会话并回显 tmux attach-session
应用程序存在之前的命令。然后用户可以在终端中手动键入此命令并执行它。现在 tmux 会话 运行s 附加 到终端。
我想将 attach 命令移动到节点应用程序中,但最终结果相同。 IE。节点应用程序终止并且 tmux
会话 运行 连接到终端。在我看来,这似乎需要对 emacs
、vim
等应用程序执行相同的操作。我无法解耦设置和附加。 (据我所知,vim
和 emacs
可以处理这种解耦,我很想知道,但最初的问题要求为任何终端应用程序提供通用解决方案)。
通过附加,我的意思是好像 command/program 是在终端中手动执行的。
POSIX exec
解决了这个问题,正如@Amadan 在上面评论的那样。此解决方案不适用于 windows。
以下代码段显示了如何使用 kexec
模块执行此操作的示例。
const kexec = require("kexec");
kexec("emacs -nw");
TLDR;我如何从终端 运行 一个节点进程,从节点启动一个进程,退出节点进程并让进程 附加 到父终端?
我正在编写一个节点终端应用程序,它应该通过启动一个新的终端应用程序来结束(例如 vim
、emacs
、tmux
)。我希望这个应用程序 运行 就像是在启动节点应用程序的终端中手动执行的一样。
我当前 workaround tmux
是 运行 节点应用程序,它设置一个新的 tmux
会话并回显 tmux attach-session
应用程序存在之前的命令。然后用户可以在终端中手动键入此命令并执行它。现在 tmux 会话 运行s 附加 到终端。
我想将 attach 命令移动到节点应用程序中,但最终结果相同。 IE。节点应用程序终止并且 tmux
会话 运行 连接到终端。在我看来,这似乎需要对 emacs
、vim
等应用程序执行相同的操作。我无法解耦设置和附加。 (据我所知,vim
和 emacs
可以处理这种解耦,我很想知道,但最初的问题要求为任何终端应用程序提供通用解决方案)。
通过附加,我的意思是好像 command/program 是在终端中手动执行的。
POSIX exec
解决了这个问题,正如@Amadan 在上面评论的那样。此解决方案不适用于 windows。
以下代码段显示了如何使用 kexec
模块执行此操作的示例。
const kexec = require("kexec");
kexec("emacs -nw");