Как использовать Emacs в качестве терминала и для программирования
В настоящее время я использую emacs и iTerm. iTerm сводит меня с ума просто потому, что я не могу редактировать текст, и я засыпаю, пытаясь переместить курсор от одного конца длинной команды к середине.
Итак, я хотел бы сделать терминальные вещи с Emacs.
Тем не менее, я чувствую, что придерживаюсь разделения "терминал-мир" и "мир программирования".
У меня есть команда Mac OS для переключения на iTerm (из любого окна), что я хотел бы сделать в Emacs: из любой точки ОС нажмите клавишу и в конечном итоге окажетесь в терминале в Emacs.
C-w
в iTerm позволяет закрыть терминал, и C-t
открывает новую вкладку. Работает хорошо (хотя я думал, как легко в Emacs будет просто что-то вроде "убить текущий терминал и создать новый" в одной команде).
Обратите внимание, что переключение между буферами также легко в iTerm, нет возможности переключиться на "бесполезный" буфер (для терминала), такой как *scratch*
или же *messages*
, Я считаю их полезными в мире программирования.
Всякий раз, когда я специально захожу в Emacs, моя среда программирования готова.
Как я могу получить лучшее из обоих миров? Т.е. держать их обоих разделенными и легко доступными, или настроить Emacs так, чтобы оба могли без проблем жить в одном и том же месте?
2 ответа
Независимо от того, используете ли вы Emacs GUI (рекомендуется) или версию терминала, а также независимо от того, используете ли вы свежий экземпляр Emacs или emacsclient для подключения к другому экземпляру в режиме сервера или демона, вам, вероятно, нужно этот:
M-x ansi-term
Он предложит вам вашу оболочку по умолчанию, обычно / bin / bash, нажмите Enter, и вы получите полную оболочку в буфере. Самое замечательное в том, что вы можете заменить оболочку по умолчанию на любую похожую интерактивную вещь, которая вам нравится, и заставить ее работать так, как вы ожидаете в терминале. Так что в моем случае я периодически использую это с интерпретатором Python вместо bash. Есть пара небольших причуд для переключения между более Emacs-подобным поведением и более терминально-подобным поведением, но в остальном. По умолчанию они связаны с Cc Cj и Cc Ck.
Я предлагаю просто поиграть с ними какое-то время, чтобы привыкнуть к ним. Я закончил тем, что связал бит Mx ansi-term с одной из функциональных клавиш.
Я использую много Emacs shell-mode
: http://wikemacs.org/wiki/Shell
Мне нравится, что буфер оболочки похож на обычный буфер emacs, т. Е. Весь текст. Так что я могу
- поиск в буфере (или
helm-swoop
), - Я могу изменить цвет шрифта ключевых слов по запросу и т. Д.
- Я могу сделать URL кликабельными
- Я могу сделать имена файлов кликабельными (супер полезно при компиляции)
- Я могу иметь завершение оболочки лучше, чем Zsh
- ...
Я часто использую две хитрости: пакет shell-here
открыть оболочку в текущем каталоге (не уверен, что сейчас это нормальное поведение) и shell-pop
выскакивает окно оболочки. В связи с этим я активно использую elscreen
иметь больше рабочих зон. Есть еще много советов в ссылке, скажите мне, что вы думаете!