6

В настоящее время я заинтересован в переходе с vim на emacs.

Одной из наиболее убедительных причин этого является плавная интеграция со средой Unix. У самых опытных пользователей emacs, которые я видел, в нижней части окна отображается приглашение bash, а stdout направляется в буфер прямо над ним. Затем они взаимодействуют с выходом таких программ, как grep, интересным образом.

Я нахожусь на Ubuntu 10.04, и среда emacs по умолчанию, кажется, мало для меня способ интеграции. Например, в режиме M-x shell вывод основных команд, таких как ls производит много странных символов, и нажатие стрелки вверх не идет к предыдущим командам.

Какие-нибудь рекомендации по правильному направлению?

4 ответа4

5

Возможно, вы захотите попробовать eshell (Mx eshell), или вы можете прочитать о командах и ярлыках для команды shell (Mx shell). eshell - это оболочка, написанная на emacs lisp, которая почти безупречно интегрируется с Emacs. Моя единственная жалоба в том, что это не так быстро, как обычная оболочка.

Что касается настройки всего остального, я рекомендую стартовый комплект emacs, который содержит ряд полезных скриптов и модулей elisp для расширения и настройки emacs.

Emacs - это приобретенный вкус. Люди, которых вы наблюдали, вероятно, имеют десятилетия опыта emacs - они начинали так же невежественно, как и вы. Я бы порекомендовал вам попробовать и прочитать несколько книг по этому предмету - изучение GNU Emacs - это то, чему я научился, а после этого руководство по GNU Emacs - отличное руководство и справочник.

4

Что касается получения достойной установки, вы можете пойти двумя способами:

  1. слепо использовать настройки других людей / веб-страниц (например, стартовый комплект Emacs)
  2. на самом деле думайте о том, что вы хотите, задавайте вопросы, учитесь и настраивайте свои .emacs самостоятельно

По моему опыту, многие выбирают первый маршрут, и это нормально. Вы получаете несколько удобных настроек без особых усилий. Тем не менее, вы на самом деле не знаете больше, чем до того, как сделали большой вырез / вставку.

Если вы потратите время и зададите вопросы (как вы делали с shell и ls), вы получите настроенный опыт Emcas, который действительно соответствует вашим потребностям. Кроме того, у вас будет гораздо лучшее представление о том, что возможно и как вы можете туда добраться. Недостатком является то, что требуется небольшая работа (не так много, но это не ноль, и это пугает многих).

Итак, чтобы начать вас по пути просветления (если вы решите принять красную таблетку), я дам решение вашей конкретной проблемы. Примечание. Имея так мало информации о вашей настройке, я сделаю некоторые обоснованные предположения о ваших конкретных проблемах.

ls показывает все виды прикольных символов, потому что у вас есть команда ls выводит специальные символы для цветов на ваших обычных терминалах (возможно, у вас есть псевдоним ls --color). M-x term справляется с этим правильно, но это также работает:

(ansi-color-for-comint-mode-on)

Вместо клавиш со стрелками вы можете использовать Mp и Mn для перехода к предыдущим / следующим командам. Или вы можете связать клавиши со стрелками, чтобы сделать то, что вы хотите:

(add-hook 'shell-mode-hook
      (lambda ()
    (define-key shell-mode-map (kbd "<up>") 'comint-previous-input)
    (define-key shell-mode-map (kbd "<down>") 'comint-next-input)))
1

Мне интересно, что ваша причина перехода с vim на emacs связана с интеграцией Unix и с тем, что вы видели emacs folk с буферами оболочки и т.д., Поскольку это говорит об уровне вашего опыта работы с этими двумя редакторами в целом. Ни emacs, ни vim не выходят "из коробки" так, как вы хотели бы, а действуют как платформы для разработки рабочего процесса.

Например, vim поставляется не с функциональностью, которую вы описали, а с плагинами, такими как conque и addon-async, во многом так же, как emacs. Скорее, он начинается с (так же, как Emacs - через M-!) возможность запустить внешнюю команду и направить ее в новый буфер (:r! command).

Я здесь не для того, чтобы отговорить вас от emacs, а скорее для того, чтобы выучить что-либо из этого - выбрать один и погрузиться в него. Если у вас есть друзья, которые знают emacs, попросите их конфигурационные файлы. Спросите, какие плагины вам могут понравиться, или как получить конкретную функциональность. Самый сложный вопрос для тех, у кого есть опыт: «Что мне делать дальше?"

Как указывалось ранее, стартовый комплект emacs великолепен, как и скринкаст с peepcode, откуда он пришел. Кроме того, большая часть Learning GNU Emacs доступна бесплатно через Google Книги. Что касается реальных плагинов, которые я использую, то мне нравится что-нибудь для завершения кода и autopair.el для установки соответствующих скобок. Кроме того, ознакомьтесь с мармеладом для вещей, которые могут представлять интерес для языков и сред, в которых вы работаете. Это приведет вас к более ориентированным вопросам о конкретной функциональности.

Удачи в редактировании квеста!

0

Используйте Mx ansi-term вместо Mx shell - так у вас будет настоящий эмулятор терминала в Emacs. Он не идеален, но, безусловно, лучше работает с такими приложениями, как Mutt, Top и т.д.

Я также рекомендую вам взглянуть на Emacs Dev Kit - менее известную альтернативу начальному набору Emacs. Хотя в альфа-версии он имеет много полезных настроек, которые можно легко использовать повторно.

Вы также должны взглянуть на Emacs Wiki и Mastering Emacs.

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