Это, безусловно, выполнимо в vim. Вы можете использовать протокол scp: // в vim для редактирования удаленных файлов и установки команды для записи локальной копии. Вы также можете изменить то, для чего программа vim использует: make вместо ssh make на вашем сервере.
Вам нужно будет настроить ваши ssh-ключи, чтобы сохранить это безболезненно (иначе вы будете вводить свой пароль все время), но это довольно просто.
Другой альтернативой может быть передача удаленных репозиториев как часть вашей команды make вместо удаленного редактирования.
EDIT:
Во-первых, используя протокол scp://
в vim. С :help netrw-start
(или вниз по странице с :help scp
)
Netrw поддерживает "прозрачное" редактирование файлов на других машинах с использованием URL-адресов.
(см. | netrw-transparent |). Как пример этого, давайте предположим, что у вас есть
учётная запись на какой-то другой машине; если вы можете использовать scp, попробуйте:
vim scp://hostname/path/to/file
Хотите облегчить использование ssh / scp? Проверьте | netrw-ssh-hack |!
Вы также можете использовать scp://
пути в командах :edit
или в любом месте, где вы можете использовать обычный путь.
И, из упомянутого :help netrw-ssh-hack
, инструкции по настройке ваших ssh-ключей:
УЛУЧШЕНИЕ ПРОСМОТРА * netrw-listhack * * netrw-ssh-hack * {{{2
Особенно с удаленным браузером каталогов, постоянно вводящим пароль
утомительно.
Для систем Linux / Unix, книга "Linux Server Hacks - 100 промышленных возможностей"
Советы и инструменты »Роб Фликенгер (О'Рейли, ISBN 0-596-00461-3) дает совет
для настройки без паролей ssh и scp и обсуждает связанные безопасности
проблемы. Раньше было доступно на http://hacks.oreilly.com/pub/h/66,
но, видимо, этот адрес сейчас перенаправляется на какой-то "хакзин".
Я попытаюсь сделать резюме на основе этой статьи и сообщения от
Бен Шмидт:
(1) Создать пару открытого / закрытого ключа на локальном компьютере
(ssh клиент):
ssh-keygen -t rsa
(сохранение файла в ~ / .ssh / id_rsa в соответствии с запросом)
(2) Просто нажмите на (когда дважды), чтобы получить пароль
ключевая фраза. Если вы используете парольную фразу, вам также нужно будет использовать
ssh-agent, поэтому вы должны вводить парольную фразу только один раз за сеанс.
Если вы не используете парольную фразу, просто войдите в свой локальный
компьютера или получения доступа к ключевому файлу любым способом будет достаточно
для доступа к любым ssh-серверам, для которых этот ключ авторизован для входа в систему.
(3) Это создает два файла:
~/.ssh/id\_rsa
~/.ssh/id\_rsa.pub
(4) На целевой машине (ssh-сервер):
cd
mkdir -p .ssh
chmod 0700 .ssh
(5) На вашем локальном компьютере (ssh-клиент): (одна строка)
ssh {serverhostname} cat '>>' '~/.ssh/authorized\_keys2' < ~/.ssh/id_rsa.pub
или, для OpenSSH, (одна строка)
ssh {serverhostname} cat '>>' '~/.ssh/authorized\_keys' < ~/.ssh/id_rsa.pub
Вы можете проверить это с помощью
ssh {serverhostname}
и вы должны войти в систему на сервере без необходимости ввода
что-нибудь.
Если вы решили использовать фразу-пароль, выполните:
ssh-agent $SHELL
ssh-add
ssh {serverhostname}
Вам будет предложено ввести ключевую фразу при использовании ssh-add, но не
впоследствии, когда вы используете SSH. Для использования с vim вы можете использовать
ssh-agent vim
и, когда следующий в vim, используйте
:!ssh-add
В качестве альтернативы, вы можете применить ssh-agent к терминалу, который вы планируете
работает vim в:
ssh-agent xterm &
и делайте ssh-add всякий раз, когда вам нужно.
Для Windows, люди в списке рассылки vim отметили, что Pageant помогает
При этом необходимо избегать постоянного ввода пароля.
Кингстон Фунг написал о другом способе избежать необходимости постоянно входить
Пароли:
Во избежание необходимости каждый раз вводить пароль для scp, вы
обеспечить взломать документы для настройки учетной записи SSH без пароля. Я нашел
лучший способ сделать это: я могу использовать обычную учетную запись ssh, которая использует
пароль для доступа к материалу без необходимости ввода пароля
каждый раз. Это хорошо для безопасности и удобства. Я пробовал открытый ключ sshавторизация + ssh-agent, реализующий это, и это работает! Вот два
ссылки с инструкциями:
Для создания в удаленных системах вам нужно установить переменную makeprg
в
сделать SSH сделать. От :help makeprg
Программа, используемая для команды ": make". Смотрите |: make_makeprg |.
Эта опция может содержать символы «%» и «#», которые расширены до
текущее и альтернативное имя файла. |: _% | |: _ # |
Переменные среды раскрываются |: set_env |. Смотрите | option-backslash |
о включении пробелов и обратной косой черты.
Обратите внимание, что '|' должен быть экранирован дважды: один раз для ": set" и один раз для
интерпретация команды. Когда вы используете фильтр под названием
«myfilter» сделать это так:
:set makeprg=gmake\ \\\|\ myfilter
Заполнитель "$ *" может быть задан (даже несколько раз) для указания
где аргументы будут включены, например:
:set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
Эта опция не может быть установлена из | modeline | или в «песочнице», для
соображения безопасности.