Какой самый быстрый и надежный способ работы с файлами на компьютере с Linux и Emacs на компьютере с Windows? Мне нужно иметь возможность легко копировать и вставлять текст между фреймами Emacs и использовать все сочетания клавиш. Итак, Putty и Cygwin исключены. Я пробовал режим TRAMP, но он просто зависает, когда я пытаюсь подключиться.
3 ответа
Бродяга, безусловно, правильный ответ. Если у вас есть проблема с Tramp, исправьте ее. Простейший способ запустить Tramp под Windows - это plink
, компонент туннелирования и сценариев PuTTY для ssh. Cygwin's ssh
- это еще одна возможность.
Одна проблема, с которой я столкнулся, заключается в том, что plink
заставляет переменную окружения TERM
к xterm
. Это может привести к тому, что ваш .profile
или другой сценарий входа в систему будет отправлять данные, думая, что он общается с терминалом, но эти данные будут путать ваши сценарии. Обычно вы вызываете plink
с опцией -T
, чтобы запретить эмуляцию терминала. В Emacs использовать метод plinkx
Tramp, что заставляет TERM
dumb
на удаленной стороне:
(if (eq system-type 'windows-nt)
(setq tramp-default-method "plinkx"))
На удаленной стороне, убедитесь , что ваши логины файлы не испускают никакого вывода , такие как подсказка , когда $TERM
dumb
Вместо того, чтобы запускать Emacs локально, почему бы не запустить его удаленно на компьютере с Linux и не показывать его в локальном окне X.
Что тебе понадобится:
- X Server для Windows: некоторые возможные бесплатные решения включают Xming, Cygwin/X (я знаю, вы сказали, что нет Cygwin.)
- Emacs на хосте Linux
- Способ запуска удаленной команды (что-то вроде ssh)
Основные шаги:
- Запустите свой X-сервер в Windows
- Запустите Emacs удаленно, и он будет отображаться на вашем локальном X-сервере. Я обычно делаю это с помощью ssh, выполняя команду "ssh -X @ emacs". Кроме того, вы можете войти в систему Linux, установить переменную DISPLAY («export DISPLAY =:0») и запустить emacs.
Я думаю, когда вы сказали, что "замазка и cygwin исключены", вы имели в виду не использовать emacs напрямую из консоли Cygwin или оболочки PuTTY, а использовать ntemacs (Emacs для Windows) с tramp-доступом к вашим Linux-блокам.
Хорошие новости - это возможно! :) Я использую комбинацию ntemacs и Cygwin (для доступа по ssh) с хорошими результатами.
Вот что вам нужно сделать.
Установите Cygwin с установленным openssh (если вы не уверены, то просто установите все) и настройте свой ssh, чтобы вы могли беспрепятственно обращаться к своим Linux-блокам, для чего обратитесь к этой короткой и приятной статье.
Скопируйте cygwin-mount Майкла Кука и Клауса Берндла из emacswiki и поместите его в скажем ~/.emacs.d/plugins/cygwin-mount (или в любое место, где живут сторонние пакеты emacs).
В вашем .emacs есть что-то вроде следующего для активации cygwin-mount.
(add-to-list 'load-path "~/.emacs.d/plugins/cygwin-mount")
(defvar cygwin-bin-dir
"c:/cygwin/bin/"
"*Directory of Cygwin bin.")
(when (eq (window-system) 'w32)
(progn
(setenv "PATH" (concat cygwin-bin-dir ";" (getenv "PATH")))
(setq exec-path (cons cygwin-bin-dir exec-path))
(require 'cygwin-mount)
(cygwin-mount-activate)))
- Теперь перезапустите emacs и Cx Cf и введите "/sshx:your_host:" в минибуфере (обратите внимание на конечный двоеточие). Если все идет хорошо, должен появиться tramp/ssh, и вы сможете увидеть удаленные каталоги.
Надеюсь это поможет.