Я пытался использовать Zsh в моем сеансе emacs, без переназначения всех ключей Zsh в emacs. Я обнаружил, что для этого очень хорошо работает ansi-term, но у меня все еще есть проблемы. Я получал много ненужных символов, я смог исправить это с помощью:
## Setup proper term information for emacs ansi-term mode
[[ $TERM == eterm-color ]] && export TERM=xterm
Но все по-прежнему не работает идеально. Теперь у меня возникают проблемы с выводом вывода за пределы экрана, особенно при использовании чего-то вроде C-r для поиска.
Я обнаружил, что он отлично работает, если вы не изменяете размер окна. Я могу воспроизвести это так:
emacs -qansi-term и используйте zshМожет быть, есть способ увеличить пространство между выводом и минибуфером, чтобы компенсировать перерегулирование?
У кого-нибудь еще Zsh + Ansi-term работает нормально?
Используйте M-r для поиска в истории команд в emacs, а не C-r





Хм. Я не думаю, что когда-либо видел, чтобы какое-либо модное редактирование работало хорошо в рамках ansi-term, хотя я не пробовал его лет 20. Я просто попутно спрошу, пробовали ли вы режим оболочки (оболочка M-x), поскольку в любом случае с EMACS это намного естественнее.
Тем не менее, при чтении файла term.el создается впечатление, что ansi-term выполняет большую работу самостоятельно. вы можете захотеть взглянуть на термин «код сырого режима», начиная со строки 1230, по крайней мере, в EMACS 22.3.
Я понял. Это была проблема конфигурации emacs. Этот бит elisp в моем .emacs вызывал это:
(custom-set-variables
'(fringe-mode nil nil (fringe))
'(fringes-outside-margins t t))
Спасибо за помощь.
Я тоже давно искал это. Для меня добавление следующего в
;; 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.
Попробуйте MultiTerm.
Это единственный режим терминала Emacs, который хорошо работает с zsh. Это позволяет вам легко установить, какие команды вы хотите захватывать с помощью emacs, а какие направлять на терминал. Тем не менее, настроек по умолчанию для меня пока достаточно.
Кроме того, добавьте следующее в ваш .zshrc, чтобы позволить emacs отслеживать ваш текущий каталог, когда вы перемещаетесь по нему.
if [ -n "$INSIDE_EMACS" ]; then
chpwd() { print -P "\033AnSiTc %d" }
print -P "\033AnSiTu %n"
print -P "\033AnSiTc %d"
fi
Это здорово. Вы знаете, как распространить это на ssh-соединения? (например, если предположить, что моя оболочка подключилась к удаленному компьютеру по определенному пути).
@ Амелио Васкес-Рейна - Хотел бы я. Это было бы действительно полезно.
+1 - ты не единственный. Хотя у меня эта проблема возникает только на Mac в режиме tty.