通过 SSH 从控制台(R、Matlab、Python 等)中的 vim 运行当前行



我经常发现自己使用 SSH 远程访问服务器,并使用 tmux 将终端拆分为两个窗格:编辑器 (vim) 和 R/Matlab/Python 的控制台,具体取决于我使用的语言。 这样,我可以"交互式"地执行某种分析,然后使用鼠标或 tmux 将命令复制到文本编辑器,以便我可以用它们制作脚本。

这是非常低效的,因为每次我在控制台中运行命令时,我都必须将所有命令复制到我的文本编辑器中。 如果我在本地工作,我会打开 Matlab GUI/IDE 或 R Studio,在那里我可以在脚本中编写我的命令,然后在编写后立即使用一个方便的快捷方式(例如 cmd + enter)执行它们,这将运行当前行。 这样,我就可以利用交互式终端,同时还可以构建脚本来复制我的工作。但是我通常无法进行 X 转发,因此 GUI IDE 不可用。

是否可以编写 vim 和/或 tmux 脚本以以某种方式在打开控制台会话中从编辑器运行当前行?

请注意,仅保存和运行整个文件不是解决方案,因为分析通常需要花费大量时间,而且我不想从头开始运行所有内容。

这不是问题的答案,而只是一个有替代方案的建议

1 - 在服务器上安装"RStudio 服务器"。然后,您可以使用 GUI 维护脚本并将命令提交到控制台。

2 - 将笔记本工具工具(如 Juypter )与 R 内核一起使用 - https://github.com/IRkernel/IRkernel

两者都允许代码提交、脚本维护和图形从服务器返回到网页。

一种解决方案,虽然不是很优雅,但还是编写一个 vim 脚本,该脚本仅保存当前行的临时文件并运行该文件。它会像

:.w temp.m
:!matlab temp.m

以文件类型意识等扩展到您的内心内容。

最新更新