2

Я использую TextMate на Mac OS X для разработки. Файлы, которые мне нужно отредактировать, находятся на компьютере с Linux, и на моем Mac OS X смонтирована файловая система Linux. Открытие файлов и их сохранение в TextMate не является проблемой.

Что я хочу сделать, так это войти в систему и работать в командной строке на компьютере с Linux, но иметь возможность выполнять команду, которая удаленно дает команду TextMate на моем Mac, чтобы открыть файл, например

user@linux $ mate <filename>

Я хочу, чтобы открыть файл в TextMate на моем Mac OS X (таким образом, смещая фокус с моего Terminal.app на TextMate.app). Как я могу добиться этого эффекта?

5 ответов5

4

Я задавал себе подобный вопрос на днях и понял, что это займет немного сценариев, поэтому я написал сценарий для этого. Я разместил это на GitHub здесь. Это скрипт bash, который вы устанавливаете в удаленной системе. Он использует SSH для подключения обратно к вашему Mac, монтирует файловую систему Linux через sshfs , а затем открывает указанный файл с помощью команды open OS X. Он принимает большинство аргументов, которые принимает open , просто передавая их, поэтому он достаточно гибок. Я все еще настраиваю это, так что дайте мне знать, если вы попали в какие-то препятствия

Я также указал на rmate, специфичный для TextMate Ruby-скрипт, который делает очень похожую вещь с помощью команды scp и mate TextMate. Для этого может потребоваться TextMate 2, который доступен в альфа-форме на GitHub.

1

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

1

Вы можете использовать sshfs в MacFUSE, который позволяет вам монтировать (в качестве "локального" диска) любой каталог, к которому вы можете получить доступ через ssh/sftp.

Сначала вам нужно установить MacFUSE (это порт FUSE [ http://fuse.sourceforge.net/] для Mac OSX), вы можете получить, если

http://code.google.com/p/macfuse/

это стандартный программный пакет OS X, который вы можете просто внедрить, просто щелкнув по нему два раза.

Затем вам нужно скачать sshfs (часть программного обеспечения, которая связывает FUSE с ssh)

http://code.google.com/p/macfuse/wiki/MACFUSE_FS_SSHFS

выбрать среди

sshfs-static-leopard.gz
sshfs-static-tiger.gz

в зависимости от версии вашей ОС. Затем распакуйте его и поставьте на своем пути (откройте терминал в том месте, где вы его загрузили, затем сделайте что-то вроде

gunzio sshfs-static*gz
sudo cp sshfs-* /usr/local/bin/sshfs
sudo chmod a+rx /usr/local/bin/sshfs

не беспокойтесь, если шаг gunzip возвращает ошибку, возможно, ваш браузер уже распаковал ее).

Теперь откройте терминал и сделайте

mkdir local_mount_point
sshfs user@host:folder local_mount_point

и вы сможете получить доступ к содержимому "папки" на "хосте" в локальной папке с именем "local_mount_point" (конечно, вы можете назвать ее как угодно). Следовательно, простой

mate local_mount_point/filename

Сделаю.

Конечно, вам нужно установить программное обеспечение только один раз, а затем вы можете подключить (смонтировать) столько раз, сколько захотите!

Кстати, TextWrangler позволяет делать это без установки дополнительного программного обеспечения (он может сохранять / открывать файлы через ssh на удаленных хостах изначально).

1

Это не будет работать напрямую с приложением Aqua.

Запускаемое приложение должно быть установлено на удаленном хосте, и даже если удаленным хостом является Mac, вы все равно не сможете сделать это с приложениями Aqua. (Одна из замечательных особенностей X11 - это осведомленность о сети).

С приложениями X вы можете использовать:

ssh -Y remotehost gedit foo

С не X приложениями вы можете использовать:

ssh -t remotehost vim foo

Гедит и Вим, конечно, примеры. Замените ваши вторые и третьи любимые текстовые редакторы (так как TextMate, очевидно, ваш первый любимый).

Чтобы получить желаемое поведение совершенно по-другому, создайте скрипт с именем rmate и поместите его в свой $PATH . Содержание сценария выглядит следующим образом:

#!/bin/bash

TMPDIR=/tmp
TMPFILE=$(mktemp -t textmate-${UID})
scp $1 ${TMPFILE}
mate -w ${TMPFILE}
scp ${TMPFILE} $1
rm -f ${TMPFILE}

Чтобы редактировать удаленные файлы в TextMate, запустите:

rmate remotehost:/path/to/file

Теперь вы редактируете "удаленный" файл в TextMate. Когда вы закончите, сохраните и закройте окно. Файл будет скопирован обратно в удаленную систему в исходное местоположение.

Предостережение: у меня нет TextMate. Я протестировал это с SubEthaEdit, но mate также поддерживает флаг -w (см. Здесь), поэтому я предполагаю, что он будет работать точно так же при закрытии окна. YMMV.

0

вы можете подключиться с помощью ssh user@serverip -Y Когда вы выполняете графическую команду на удаленном компьютере, он отправляет графический интерфейс на X-сервер локального компьютера.

РЕДАКТИРОВАНИЕ

извините, я неправильно понял ваш вопрос, на самом деле вы хотите использовать приложение Mac, а не графическое приложение на машине Linux ... Но в Windows и Linux есть несколько текстовых редакторов, которые используют плагины для подключения через ftp и редактирования файлов сервера. Гугл что-то подобное для Mac (я не пользователь Mac) Я нашел эту ссылку для пакета ftp/ssh для textmate. Я надеюсь, что это поможет вам

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .