4

Когда SSHing к удаленному серверу, Eshell ведет себя не очень хорошо, например:

M-x eshell
ssh server
<tab> *inserts literal tab instead of trying to complete*

Например, нажатие <tab> вставляет буквенную вкладку. Нет ли способа получить завершение табуляции, взаимодействие с lisp (как, например, find-file blah) и т.д. Через SSH? Вся документация, которую я прочитал, говорит, что Eshell «TRAMP-осведомлен», что, я полагаю, означало, что он мог справиться с этим.

Я просто ошибаюсь в своем предположении, что это будет работать по SSH, или что-то сломано?

Это на предварительном тестировании Emacs 24.0.94.

1 ответ1

6

SSH фактически интегрирован в Eshell с использованием режима Tramp, поэтому вместо запуска команды "ssh" вы используете cd со специальным путем:

~ $ cd /ssh:user@host.com:~
/ssh:user@host.com:/home/user $ 

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

Если ваша мышечная память выдает вас, и вы продолжаете вводить "ssh", вы можете определить псевдоним в eshell (он будет автоматически сохранен в ~/.emacs.d/eshell/alias)

$ alias ssh 'cd /ssh:$1:~'

Также следует отметить, что когда Eshell находится на удаленном сервере и вы нажимаете C-x C-f он завершает имена файлов на удаленном сервере. Они будут автоматически загружены в локальный буфер и записаны обратно через SCP. Вы можете сделать это и без Eshell, это особенность tramp-mode.

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