Открой двери Emacs в окнах, или как собрать приемлемый .emacs под Windows

    Доброе время суток, %username%, давно хотел поделиться с тобой своим emacs файлом.

    Дело в том что, мое обращение в веру было омрачено неудобностью и может быть даже не приемлемостью работу с емаксом без предварительной настройки. Тем более, что под Windows емакс выглядит чарующе дико, и пугает большинство программеров и админов до смерти. Я этот путь посвящения в тайны емакса, я по-моему прошел, поэтому хочу расписать свой config емакса, может быть кто-то подчеркнет что-то новое, а кто-то еще и обратится в нашу веру. Сразу предупреждаю, что это, фактически, сборная солянка, которую я строил в течении последнего полугода работы в этом редакторе.

    1. Под виндой некорректно работает кодировка поэтому, есть это
    (set-language-environment 'UTF-8)
    (setq default-input-method 'russian-computer)
    (set-selection-coding-system 'windows-1251)
    (set-default-coding-systems 'windows-1251)
    (prefer-coding-system 'windows-1251)


    2. Настройка приятных сердцу цветов
    (custom-set-faces
    '(default ((t (:inherit nil :stipple nil :background "gray17" :foreground "snow" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width normal :foundry "outline" :family "Courier New"))))
    '(cursor ((t (:background "peach puff"))))
    '(font-lock-comment-delimiter-face ((default (:inherit font-lock-comment-face)) (((class color) (min-colors 16)) (:background "green"))))
    '(font-lock-comment-face ((nil nil)))
    '(font-lock-doc-face ((t (:inherit font-lock-string-face :background "black")))))

    (set-background-color "#333333")
    (set-foreground-color "#ffffff")


    3. Связывание модов по расширениям файлов, можете продолжить для себя
    (autoload 'javascript-mode "javascript" nil t)
    (setq auto-mode-alist
    (append
    '(
    ( "\\.el$". emacs-lisp-mode)
    ( ".emacs". emacs-lisp-mode)
    ( "\\.py$". python-mode)
    ( "\\.pyw$". python-mode)
    ( "\\.html$". sgml-mode)
    ( "\\.xml$". sgml-mode)
    ( "\\.js$". javascript-mode)
    ( "\\.cpp$". c++-mode)
    ( "\\.h$". c++-mode)
    )))
    (global-font-lock-mode 1) ;; эта хитрая заточка, включает разум емакса для подсветки синтаксиса


    4. Еще кучка хитрых заточек
    (tool-bar-mode -1) ;; выключить тубар
    (setq scroll-step 1) ;; шаг =1
    (setq default-tab-width 4) ;; табы по 4
    (global-hl-line-mode 1) ;; подсветка строки с курсором
    (windmove-default-keybindings 'meta) ;;
    (fset 'yes-or-no-p 'y-or-n-p) ;; просим емакс быть кратким
    (iswitchb-mode 1) ;; режим переключения буферов
    (desktop-save-mode t) ;; сохранять буфера после закрытия


    5. Это надпись здесь, что легко переходить в конфиг-файл
    (defun load-config ()
    (interactive)
    (find-file "~/.emacs"))
    (global-set-key "\C-x/" 'load-config)


    6. Шорт-каты для облегчения жизни в тяжелых офисных условиях
    (global-set-key [(control tab)] 'previous-buffer)
    (global-set-key [(control shift tab)] 'next-buffer)
    (global-set-key [f4] 'revert-buffer)
    (global-set-key [f5] 'call-last-kbd-macro)
    (global-set-key [f8] 'linum-mode) ;; без этой штуки жить нельзя
    (global-set-key [f11] 'ibuffer)
    (global-set-key [f10] 'bookmark-bmenu-list) ;; Это покруче, Ctrl-D в тотал командере, сохраняйте букмарки везде (C-xrm) и открывайте их.


    7. И еще шорт-катов
    (global-set-key [?\C-'] 'toggle-truncate-lines) ;; режим word-wrap по-православному
    (global-set-key "\C-cr" 'rename-buffer)
    (global-set-key "\C-c!" 'revert-buffer)
    (global-set-key "\C-z" 'undo) ;; по умолчанию емакс уходит в бакграунд
    (global-set-key "\C-c\C-r" 'replace-string)


    8. Это уже просто от лени.
    (add-hook 'javascript-mode-hook 'linum-mode 'toggle-truncate-lines)
    (add-hook 'python-mode-hook 'linum-mode)


    Похожие публикации

    Средняя зарплата в IT

    120 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 6 474 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
    Реклама
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее

    Комментарии 32

      0
      А я вот уже джва года хочу емакс с риббонами и прочими рюшечками. Ну не вписывается его гуй в мой Aero…
      • НЛО прилетело и опубликовало эту надпись здесь
          +13
          Far manager — это Emacs для windows — это в мемориз )))
            0
            Ну вы блин сравнили. Или это такая попытка потроллить, а я в полночь плохо соображаю? :)
          • НЛО прилетело и опубликовало эту надпись здесь
              0
              возможно, вы правы. буду смотреть
              • НЛО прилетело и опубликовало эту надпись здесь
                • НЛО прилетело и опубликовало эту надпись здесь
                  • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  в последнее время чаще сижу на семерочке (так получилось, не по собственному желанию, хотя начинаю влюблятся в нее), ну естественно без емакса как-то не привычно чтоли) столкнулся с проблемой запуска emacsclientw.exe, решил её тупо, запускаю runemacs.exe при загрузке, сворачиваю, прописываю emacsclientw.exe как редактор для totalcommander и на душе спокойнее) хоть как-то вовлек emacs в свою виндосовскую жизнь) это я так решил написать с чем сталкивался, раз уж пошел разговор о emacs и windows)
                    0
                    вы хитрец, но идейка хорошая.
                    –2
                    А нормальный текстовый редактор там уже появился? (:
                      +2
                      нет, никак не могут добавить нормальный гуи с блэкджэком и шлюхами. не любит столлмэн азартные игры и голых баб…
                        0
                        в 73.1 обещают и тех, и других — главное быть способным тогда.
                          0
                          главное пережить столлмэна)
                        0
                        0
                        А можно сборкой выложить?
                        Желательно портабельное с установленными плагинами и готовыми конфигами. Если ещё под веб разработку заточенное — вообще супер.
                          0
                          скачайте емакс 23.1, и вставьте все что написано в файл — .emacs.
                          Правда должен разочаровать вас, пока не разберетесь что к чему, и не научитесь играть другими клавишами на клавиатуре — ничего не выйдет.
                            0
                            сборка отсюда: ftp.gnu.org/pub/gnu/emacs/windows/ под 7кой даже не запускатеся :(
                              0
                              Я бы посоветовал иначе начинать :-D

                              1) Просто голый емакс

                              2) десяток туториалов по настройке и простым приемам.

                              3) и постепенно собирать свой собственный .emacs

                              В индивидуальности — кайф и фигуры высшего пилотажа.

                              Кстати. Первый из советов. Помогает во всех программах в принципе. Если обнаружите как перебиндить Ctrl на Caps Lock под виндой — сразу делайте. Во-первых, это удобней даже при нажатии Ctrl-c, Ctrl-v; во-вторых, мизинец при наборе команд не устает.
                                0
                                Да, это путь воина. Причем упущен главный пункт: Воин должен считать, что он уже умер, тогда эмоции не мешают ему.
                                  0
                                  собственно по этому и была просьба выложить рабочую настроенную версию
                                  0
                                  Вот во всех подобных советах я одного не понимаю: вы что, только одним контролом пользуетесь из двух? Гораздо удобнее мизинцем одной руки нажимать Control, а другой рукой — клавишу с буквой. Так и всякие руководства по постановке рук для десятипальцевого набора говорят… Ну, поменяю я левый контрол с капсом, и что это изменит по сути? Только путаница лишняя.
                                  Капс лок должен раскладку переключать, ИМХО.
                                    0
                                    Никто ничего не должен :) У меня, например, правый winkey переключает раскладку.

                                    Я перескакиваю в зависимости от сочетания клавиш, ближе они к левой стороне клавиатуры или правой. Народ, не изучавший специально слепую печать — те часто жмут левой рукой сочетания типа C-w, C-x, C-z, C-a, C-e.

                                    Когда-то и я донажимался до онемевшего мизинца. А caps lock в роли Ctrl очень естественно лежит прямо под мизинцем левой руки, палец двигать не надо.
                            +3
                            Ваш конфиг, чарующе бесполезен :) Все равно делать нечего, пробегусь по нему:

                            > (set-language-environment 'UTF-8)

                            Для емакса в виндусе полезна переменная file-name-coding-system, установленная в cp1251, иначе кириллические имена файлов будут вопросами.

                            > (set-background-color "#333333")

                            Половина настроек цветовой темы в custom-set-faces, половина вручную. Зачем? Если уж начал писать, то писать в одном месте.

                            > ( "\\.el$". emacs-lisp-mode)

                            ВНЕЗАПНО, это и все ниже и так есть по умолчанию, незачем засирать конфиг бесполезным.

                            > (setq scroll-step 1)

                            Сказал раз, говори и два:

                            ;; smart scrolling
                            (setq scroll-step 1; плавный скроллинг
                            scroll-conservatively 100000; не прыгать на середину страницы при скроллинге
                            scroll-margin 5; начинать промотку страницы за 5 сток до края
                            scroll-preserve-screen-position t); без этого не будет нормально работать страница вниз/вверх

                            > [(control tab)] "\C-cr"

                            Все нормальные люди давно уже используют унифицированный способ записи кейбиндингов. Примеры:

                            (global-set-key (kbd «C-S-») 'shrink-window-horizontally)
                            (global-set-key (kbd «S-») 'my-scroll-up)
                            (global-set-key (kbd «C-w») 'kill-region-or-backward-word)
                            (global-set-key (kbd «C-c C-p») 'paredit-mode)

                            Парсер, конечно, заменил кавычки :)

                            > linum-mode) ;; без этой штуки жить нельзя

                            Только расскажите юному падавану, что с этой штукой при скроллинге у вас периодически курсор будет прыгать на середину страницы :)

                            Ну и, конечно, не указана куча must have опций и настроек.
                              0
                              Не знаю как можно жить без recenter'инга ^_^ Но тем не менее. На что вы предлагаете заменить linum?
                                0
                                Даже если тебе чего-то очень хочется, ты можешь без этого обойтись © В общем случае, предлагаю вообще не использовать нумерацию строк, не очень-то оно и нужно.
                                0
                                Так рассказали бы об этих недостающих must have настройках…
                                –1
                                > сказал а, скажи и б
                                давай мастхав лист, и свой .emacs
                                0
                                Было бы интересно услышать, кто для каких задач использует Emacs и какими фичами пользуется. Просто любопытства/статистики ради. Вот я использую так:
                                Платформа: Linux/Ubuntu
                                Задачи:
                                — Кодинг (С++, Bash, Python, Perl.....)
                                — Кастомизированная рабочая система/оргнанайзер (Дневник, заметки, списки задач, управление проектами)
                                — Редактор конфигов
                                Фичи (самые часто употребляемые):
                                — workspaces (как screen)
                                — org-mode (для органайзера)
                                — таблицы/электронные таблицы из org-mode
                                — tramp — редактирование через сетевые протоколы
                                — shell (ansi-term)
                                  0
                                  ecb, cedet (для C++ и erlang), gnus.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое