Открыть локальное текстовое приложение для редактирования удаленного текстового файла с помощью ssh?

Итак, я нахожусь в терминале VPS с помощью ssh.

В нормальном случае я мог просто запустить локально

mate <file>

и он запускает TextMate с этим файлом.

Можно ли использовать ту же команду и как-то открыть локальное приложение TextMate, но отредактировать удаленный файл?

Было бы хорошо, если вы работаете в VPS и не хотите постоянно использовать vim.

Ответы

Ответ 1

Решение заключается в установке удаленной системы с помощью sshfs. В OS X sshfs можно, например, установить с помощью Homebrew.

Файловая система монтируется через SSH с использованием ваших обычных учетных данных SSH или ключа, поэтому это очень просто сделать, а затем вы перемещаете его, как если бы это был локальный каталог и пользовались преимуществами доступа ко всем вашим локальным инструментам.

Ответ 2

У вас есть разные варианты:

  • монтирование удаленной файловой системы с использованием (Mac) плавкого предохранителя (как рекомендовано вором),
  • синхронизировать удаленный каталог:
    • с rsync (как рекомендовано eglasius),
    • с SCM (например, git или hg или другими),
  • или, и это было бы моим предпочтительным способом, используйте Emacs (например, Aquamacs, в вашем случае) и используйте режим tramp для редактирования удаленных файлов.

Я делал это через несколько лет для некоторых проектов, и он отлично работал как для локальных сетей, так и для WAN.

Если вы хотите придерживаться TextMate, то фиктивное решение идеально.

Ответ 3

В качестве альтернативы вы можете синхронизировать папку с rsync поверх ssh.

Таким образом, вы работаете локально, и пусть rsync синхронизирует его с сервером для вас. Это может быть либо явно инициировано вами, либо запущено в демоне.

Ответ 4

Если вы сделаете ssh в другое поле, вы можете открыть файл, используя cat, и подключить его к локальному файлу. Я не думаю, что вы можете передать его в редактор в локальном поле.

Ответ 5

Другой вариант - использовать один из двух доступных пакетов Textmate Sync - оба используют rsync и ssh, чтобы синхронизировать удаленные и локальные папки.

Единственное слово предупреждения, которое я бы добавил, это первая синхронизация, которая очистит удалённую папку и заменит ее содержимым из локальной папки.