2008-12-15 13 views
15

Я пытался использовать Zsh в моей сессии emacs, без emacs, переназначающего все ключи Zsh. Я нашел, что ansi-term работает очень хорошо для этого, но у меня все еще есть некоторые проблемы. Я получаю много ненужных символов, выводимых с, я был в состоянии исправить это с:Получение Emacs ansi-term и Zsh, чтобы играть красиво

## Setup proper term information for emacs ansi-term mode 
[[ $TERM == eterm-color ]] && export TERM=xterm 

Но все еще не работает отлично. Теперь у меня возникают проблемы с выводом вывода из экрана, особенно при использовании чего-то вроде C-r для поиска.

Любые мысли. У кого-нибудь есть Zsh + Ansi-term, работающий должным образом?

+3

+1 - вы не только один. Хотя, я только переживаю эту проблему на Mac в режиме tty. – SetJmp

ответ

3

Хммм. Я не думаю, что когда-либо видел какие-либо причудливые работы по редактированию в течение ansi-term, хотя я не пробовал его через 20 лет. Я просто прошу, попутно, если вы попробовали shell-mode (оболочка M-x), так как в любом случае это намного более естественно с EMACS.

При этом, прочитав файл term.el, он выглядит как ansi-term, который делает много собственных манипуляций. вы можете посмотреть на код сырого режима, начиная с строки 1230, по крайней мере, в EMACS 22.3.

+0

«Оболочка» была единственной, которая работала для меня. Благодаря! – duma

0

Я понял. Это была проблема конфигурации emacs. Этот бит elisp в моем .emacs вызывал его:

(custom-set-variables 
'(fringe-mode nil nil (fringe)) 
'(fringes-outside-margins t t)) 

Спасибо за помощь.

-1

Ложная сигнализация, которая не исправила. Я обнаружил, что он отлично работает, если вы не изменяете размер окна. Я могу воспроизвести это нравится:

  1. Запуск чистой Emacs -q
  2. Начало ANSI-терм и использование ЗШ
  3. Сделать окно полноэкранного
  4. Output то, что заполняет экран
  5. Тип Cr
  6. Запрос будет удален с экрана

Возможно, есть способ сделать пространство между выходом и минибуфером больше, чтобы компенсировать перерегулирование?

+2

Привет! Пожалуйста, отредактируйте и обновите исходный вопрос вместо добавления «ответов» с дополнительной информацией. –

1

Я искал это также довольно долгое время. Я хотел бы добавить следующие слова:

;; ansi-term 

(global-set-key "\C-x\C-a" '(lambda()(interactive)(ansi-term "/bin/zsh"))) 
(global-set-key "\C-x\ a" '(lambda()(interactive)(ansi-term "/bin/zsh"))) 

работы. Я выбрал это от http://svn.assembla.com/svn/id774/scripts/dot_files/dot_emacs.d/elisp/global-set-key.el.

Уверен, что в этом скрипте есть другие лакомства. Поскольку дополнительный бонусный экран, похоже, хорошо играет с emacs для меня.

12

Пробег: MultiTerm.

Его единственный режим терминала Emacs, который, похоже, хорошо работает с zsh. Это позволяет вам легко установить, какие команды вы хотите захватить emacs и которые вы хотите перенаправить на терминал. Настройки по умолчанию были достаточно хороши для меня до сих пор.

Кроме того, добавьте следующее в свой .zshrc, чтобы позволить emacs отслеживать текущий каталог, когда вы cd.

if [ -n "$INSIDE_EMACS" ]; then 
    chpwd() { print -P "\033AnSiTc %d" } 
    print -P "\033AnSiTu %n" 
    print -P "\033AnSiTc %d" 
fi 
+1

Это замечательно. Вы знаете, как продлить это на ssh-соединения? (например, предполагая, что моя оболочка подключена к удаленному компьютеру по определенному пути). –

+0

@ AmelioVazquez-Reina - Хотел бы я. Это было бы очень полезно. – bengineerd

0

Использование М-р для команды поиска истории в Emacs, а не C-р

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

  • Нет связанных вопросов^_^