Я часто выполняю это действие, подобное 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
Я собирался серьезно заняться написанием сценария оболочки, чтобы сделать это проще, но мне было интересно, может ли кто-нибудь умнее меня решить эту проблему более элегантно.
Какое у тебя решение? Помимо emacs :)
РЕДАКТИРОВАТЬ: Почему бы просто не отредактировать мой файл на удаленном хосте? Просто на хостах, получающих мои скрипты, не всегда будет настроена среда разработки, поэтому в этом случае хост может иметь не все мои настройки vim; иногда это будет код C вместо сценария оболочки, что означает, что мой рабочий процесс выглядит так:
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. Со второго терминала или разветвления из vim запустите ssh host:.../foo.sh
Промыть и повторить.
Ссылка на сайт: http://fuse.sourceforge.net/sshfs.html
Вам не нужно повторно scp
к серверу; пусть Vim сделает это за вас автоматически!
vim scp://user@host/path/to/file
Затем вы можете запустить ssh user@host
в отдельном терминале и запустите make
или /path/to/file
там.
Если вам нужна среда сборки, которая недоступна на сервере, вам следует вместо этого проверить предыдущий ответ о sshfs
.