我发现自己经常执行类似 REPL 的操作:
vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# realizing it wasn't quite right
vim foo.sh
scp foo.sh host:/tmp/foo.sh
ssh host /tmp/foo.sh
# repeat many times
我本来打算努力编写一个 shell 脚本来简化这个问题,但想知道是否有比我更聪明的人能更优雅地解决这个问题。
你的解决方案是什么?除了 emacs :)
编辑:为什么不直接在远程主机上编辑我的文件?很简单,接收我的脚本的主机并不总是会设置开发环境,因此在这种情况下主机可能没有我所有的 vim 自定义;有时它会是 C 代码而不是 shell 脚本,这意味着我的工作流程如下所示:
vim foo.c
make
scp foo host:/tmp/foo
ssh host /tmp/foo
# repeat
这就是原因。我想我想要一个具有类似界面的东西:
edit_loop foo.c --make --copy-and-run=host:/tmp/foo
你怎么认为?
答案1
ssh remotehost bash < foo.sh
答案2
步骤 1:使用 SSH-FUSE 将远程主机挂载为本地文件夹。
第2步:vim ssh-mount/foo.sh
步骤 3:从第二个终端,或从 vim 分支,运行ssh host:.../foo.sh
冲洗并重复。
答案3
您不需要反复scp
访问服务器;让 Vim 自动为您处理!
vim scp://user@host/path/to/file
然后您可以ssh user@host
在单独的终端中运行,并在那里运行make
或/path/to/file
。
如果您需要服务器上没有的构建环境,您应该查看前面的答案sshfs
。