2012-01-04 7 views
8

При использовании многопользовательского термина для запуска терминала в emacs я хотел бы иметь возможность вставлять команду в многопользовательское окно, а затем запускать ее. В настоящее время, когда я это делаю, вставленный элемент появляется в многовременном окне ввода, однако, если я нажимаю enter, команда игнорируется. Он также не отображается в истории терминала. Например, я вставивВ Emacs, как я могу вставить многопользовательский

эхо «привет»

Похоже, это сработало - я вижу текст после приглашения. Но когда я попал в него, он не выполняется. Я использую мульти-термин: http://www.emacswiki.org/emacs/MultiTerm

ответ

11

функция yank по умолчанию не работает с multi-term или более именно с term-mode, потому что дергать не «на самом деле» вставлено. Чтобы вставить, вы должны использовать функцию term-paste, которая привязана к S-insert по умолчанию. Конечно, вы можете связать Cy использовать его в term-mode

(add-hook 'term-mode-hook (lambda() 
          (define-key term-raw-map (kbd "C-y") 'term-paste))) 
+0

я добавил это в моих .emacs, но не радость. – ebeland

+0

@ebeland: Я пробовал его с '-q', и он работает, поэтому что-то не так с вашей конфигурацией. Чтобы попробовать: 'emacs -q', перейдите в буфер' * scratch * 'и вставьте (или напишите) предыдущий фрагмент и оцените его (с помощью 'Cx Ce' или' Mx eval-buffer RET'), затем загрузите ' multi-term.el' и начать новый термин с 'Mx multi-term'. – Daimrod

+0

Я сделаю снимок в понедельник, когда я войду. Спасибо за помощь! – ebeland

5

В перспективе-режиме (который использует мульти-терм) существует два режима ввода:

  • режим линии
  • char

Вы можете переключиться в режим линии с помощью CcС-J затем дергать текст, переключиться обратно в режим полукокса С-СС-к и выполнить команду. Я думаю, что char-mode используется как режим ввода, который работает , как и вы ожидали, что работа терминала будет работать. Например, если вы наберете что-то в командной строке и разрежьте его C-x, то C-y вставляет то, что вы вырезали из командной строки. Я думаю, линейного режима в качестве режима ввода, который вы ожидаете от текста. буфер в emacs.

Для получения подробной информации о двух входных режимах проверки this page

Смежные вопросы