Завершение вкладок в сеансах SSH в режиме оболочки Emacs - PullRequest
11 голосов
/ 13 января 2011

Мой текущий шаблон использования emacs приводит к тому, что у меня открыто несколько буферов в режиме оболочки, каждый из которых запускает сессию ssh. Однако у меня возникла проблема с этим - когда я пытаюсь завершить табуляцию имен файлов и других вещей в моем удаленном сеансе, оболочка пытается использовать дополнения, доступные на локальном компьютере, а не на удаленном компьютере.

Например, если файл ~/foobar существует на локальном компьютере, а ~/frob существует на удаленном компьютере, при вводе ~/f нажатие клавиши табуляции приводит к ~/foobar вместо правильного завершения. Если я использую ssh вне emacs и попробую то же самое, я получу правильное завершение ~/frob.

Как я могу получить завершение табуляции, чтобы завершить, как это происходит в обычных сеансах SSH?

Позднее примечание: M-x cd RET /ssh:host.example.com:/path/to/me также, кажется, подталкивает его к возможности изящно справляться с завершением табуляции.

Ответы [ 2 ]

11 голосов
/ 13 января 2011

Emacs не может отслеживать текущий каталог (каталог по умолчанию) при подключении к другим компьютерам.

Вы можете установить default-directory на имя файла бродяги, например / ssh: YOURHOST: / home / dir ", на свой текущий буфер оболочки вручную.

Я запускаю shell-сессии на удаленном компьютере, в основном, через tramp-bookmarks / shell. Tramp автоматически устанавливает default-directory . Но есть ошибка в отслеживании каталогов на удаленных файлах, которая исправленав багажнике (не выпущено).

http://comments.gmane.org/gmane.emacs.bugs/39082

10 голосов
/ 01 февраля 2011

Вместо запуска оболочки M-x и запуска ssh на удаленном компьютере, посетите каталог на удаленном компьютере (используя Tramp), а затем запустите оболочку M-x в этом буфере Dired.

...