
понедельник, 27 апреля 2015 г.
Emacs как IDE для Rust

среда, 22 апреля 2015 г.
Emacs backspace like sublime
В sublime есть одна вещь, которой мне очень не хватало в emacs, при выравнивании текста пробелами, клавиша <backspace> удаляла не один пробел, а сразу столько, сколько входило в один "tab". Это легче показать:

Emacs из коробки так к сожалению не умеет, но как всегда исправить это совсем не сложно…
суббота, 18 апреля 2015 г.
Docker vs virtual machine
Я уже относительно давно приобщился к миру контейнерной виртуализации, в частности к докеру. До этого я довольно активно пользовался виртуальными машинами, хотя впрочем и сейчас продолжаю. И для меня вполне очевидно, что контейнеры в лице Docker, уже сейчас по очень многим параметрам превзошли своего предшественника и в скором времени вытеснят его совсем. Попробую объяснить свою позицию.
понедельник, 13 апреля 2015 г.
Умное назначение горячих клавиш в Emacs
Рано или поздно пользователям Emacs приходится переназначать горячие клавиши. Даже те, кто по идеологическим причинам используют дефолтные сочетания, приходят к тому, что нужно назначить на часто-употребляемую команду более простое сочетание клавиш или повесить hotkey на свой собственный скрипт. В интернетах советуют делать это как-то так:
(global-set-key (kdb "C-a") 'mark-whole-buffer)
Это какое-то время работает, пока не находится плагин, который переопределяет выбранное сочетание на что-то свое...
пятница, 10 апреля 2015 г.
Удаление в Emacs без копирования в буфер обмена
В Emacs есть такие замечательные функции, как удалить слово после курсора (kill-word), перед курсором (backward-kill-word), а так же удалить все символы от курсора до конца строки (kill-line). Однако у них есть одна особенность, они не просто удаляют символы, а еще копируют их в буфер обмена (так называемый kill ring). Лично меня подобное поведение не устраивает, поэтому я написал свои аналоги этих функций.
среда, 8 апреля 2015 г.
Авто установка пакетов в Emacs
Все наверное знают про возможность установки плагинов в Emacs, "M-x package-list-packages" и вперед - выбираем, устанавливаем, удаляем что не нужно. Это возможно удобно, когда мы экспериментируем с плагинами, играемся с новыми. Но допустим синхронизировать подобным образом плагины на всех своих машинах - уже желания никакого нет. Хочется прописать в конфиг названия всех используемых пакетов, а Emacs, пусть сам при загрузке проверит недостающие и доставит их. К сожалению, встроенной функциональности для этого в Emacs нет, однако добавить такую возможность, как и все остальное, в Emacs не сложно...
вторник, 7 апреля 2015 г.
Настройка PageUp PageDown в Emacs
По умолчанию работа клавиш PageUp PageDown в Emacs отличается от других редакторов. Вот в такой ситуации, когда курсор находится в нескольких строчках от верхнего края документа:
в большинстве редакторов PageUp поставит курсор на первую строчку, а Emacs - ничего делать не будет, если вся верхняя часть документа попадает на экран. Не то что бы поведение других редакторов правильное, а в Emacs - нет, просто подобное поведение ожидается уже на уровне рефлексов и когда курсор не двигается - это раздражает.
Но к счастью в Emacs можно поменять поведение почти всего и PageUp/PageDown не исключение, напишем две маленькие функции:
(defun cfg:page-up () (interactive) (condition-case nil (scroll-down) (beginning-of-buffer (goto-char (point-min))))) (defun cfg:page-down () (interactive) (condition-case nil (scroll-up) (end-of-buffer (goto-char (point-max)))))
Они - пододвигают курсор в начало (или в конец для page down) документа, если встроенные функции отказались это делать. Теперь назначаем их на нужные нам клавиши:
(global-set-key (kbd "<prior>") 'cfg:page-up) (global-set-key (kbd "<next>") 'cfg:page-down)
Все готово, можно пользоваться.
Подписаться на:
Сообщения (Atom)