我发现自己经常执行类似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脚本来使这个更简单,但是想知道比我聪明的人是否更优雅地解决了这个问题。
你的解决scheme是什么? 除了emacs 🙂
编辑:为什么不只是在远程主机上编辑我的文件? 简单来说,接收我的脚本的主机并不总是有一个开发环境设置,所以在这种情况下,主机可能没有我所有的vim自定义; 有时它会是C代码而不是shell脚本,这意味着我的工作stream程如下所示:
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
你怎么看?
ssh remotehost bash < foo.sh
步骤1:使用SSH-FUSE将远程主机安装为本地文件夹。
第2步: vim ssh-mount/foo.sh
步骤3:从第二个terminal,或者从vim分叉,运行ssh host:.../foo.sh
冲洗并重复。
链接 : http : //fuse.sourceforge.net/sshfs.html
您不需要重复scp到服务器; 让Vim自动为你处理!
vim scp://user@host/path/to/file
然后,您可以在单独的terminal中运行ssh user@host ,然后在其中运行make或/path/to/file 。
如果你需要一个在服务器上不可用的构build环境,你应该检查一下关于sshfs回答。