Использование emacs на многих хостах
Вопрос
На ежедневной основе я:
- используйте несколько рабочих станций под управлением Linux, Windows или macOS X
- редактируйте файлы на дополнительных хостах Linux, которые не являются ни одной из упомянутых выше рабочих станций
Единственным общим элементом здесь является то, что Интернет соединяет все эти хосты:рабочие станции и серверы.Я также могу синхронизировать все конфигурационные файлы на своих рабочих станциях и запускать X-сервер на всех из них.Каков правильный способ запуска emacs?Я не хочу жертвовать какими-либо функциями.
В моем идеальном мире я могу ввести 'emacs foo.txt' на удаленном хосте, и с помощью X forwarding произойдет какое-то волшебство для отображения файла в существующем сеансе emacs на моей рабочей станции.
Отсутствие решений
- бродяга:когда я управляю удаленным хостом, редактор - это всего лишь часть моего рабочего процесса.Мне нужен открытый терминал, чтобы я мог быстро запускать другие команды.бродяга совершенно не подходит для этого.
- конфигурационные файлы в Emacs:отстой, я хочу графическое изображение
Если у вас нет положительного ответа на мой вопрос, пожалуйста, не просто догадывайтесь.Спасибо.
Решение
Ты пробовал трахаться с eshell
?Вы можете "cd /remote.host:/some/path" и редактировать файлы оттуда, и если вы введете не встроенный, он запускает канал ssh для его запуска.Довольно ловко.
Другие советы
Я не понимаю, почему tramp не является решением проблемы.Вы можете редактировать с помощью tramp и делать все, что вам нужно, в терминале, используя xterm + ssh.
Что ж, если вы можете настроить X клиентов на своих устройствах Windows и OSX, вы должны иметь возможность запускать X-версию emacs на любой из этих платформ и возвращать дисплей на свою рабочую станцию.Это дало бы вам ваш приятный интерфейс WIMP.
Однако есть несколько решений для того, чтобы держать терминал открытым для одного и того же окна.Один из них заключается в том, чтобы просто дважды подключиться к нему по telnet.Один раз для вашего сеанса emacs и один раз для оболочки.
Другой вариант, конечно, заключается в использовании meta-x shell
чтобы вызвать буфер оболочки внутри emacs.Настоящий гуру emacs предпочитает запускать свою операционную систему внутри emacs, а не наоборот.:-)
Подход, который я использую, основан на управлении исходным кодом скриптов Emacs и важных общих файлов (с использованием Git).Это дает мне согласованную базу кода, поэтому мне не нужно запоминать, на каком хосте есть какой скрипт или файл (или версия того, что я ищу).Git особенно хорошо подходит для поддержки этого механизма, и у меня в значительной степени вошло в привычку ежедневно обновлять репозиторий master origin.В сценариях (как в сценариях оболочки Emacs, так и в сценариях bash) Я использую машинный код для обработки локальных требований.Эта система действует уже более года, и я нахожу ее достаточно эффективной.Это техника, которую, как я видел, рекомендовали в течение некоторого количества лет.Я нашел это неуклюжим с CVS и Subversion, но git, похоже, приспособлен для этой работы.Тем не менее, мне нравится решение, которое вы выбрали в качестве дополнительного инструмента, и я с нетерпением жду возможности добавить его в наш микс.