От нехуй делать пробежался по MELPA, вот какие интересные пакетики там нашел.
Вышел emacs 25.1 (первая версия нового мажорного релиза)
https://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00451.html
в общем, будущее уже рядом. В emacs 25, который скоро выйдет, добавили возможность динамически загружать плугины, из shared library. По сути, это решает давно всех заебавшую проблему с FFI.
То есть:
- Инклудим файлик emacs-module.h
(из текущей инсталляции)
- Определяем символ plugin_is_GPL_compatible в библиотеке
- Определяем функцию emacs_module_init
- Пилим экспортируемые функции с требуемой сигнатурой и экспортируем их в рантайм emacs
- Можно грабить караваны
https://diobla.info/blog-archive/modules-tut.html
Выкидвайте свои говноредакторы.
cmake . -DCMAKE_EXPORT_COMPILE_COMMANDS=1
bear make
rc -J .
в каталоге с compile_commands.jsonНаслаждаемся несосущей навигацией по плюсовому проекту из любимого редактора.
Выпилил к хуям cedet. Как же заебись теперь без этой гадости.
почему-то вдруг легло приятным теплом на душу: http://static.bitcheese.net/psto/hirthwork.psto.net/ttghog.html
Ура, выдрочил новую ultime раскладку для emacs с новым модификатором A (Alt).
Left Alt -> Control
Right Alt -> Meta
Winkey -> Super
Menu -> Hyper
Caps Lock -> Alt
Итого, у меня уже пять модификаторов.
На префикс A скорее всего буду потихоньку вешать кастомные моды для Hydra.
Использовать Control на месте левого Alt это просто лютый вин для емаксоблядков (да и не только).
xmodmap:
```
!!! Implement the following layout:
!!! Alt A S D F ...
!!! Shift Z X C V B N M ...
!!! Caps Super Control --Space-- Meta Hyper Control
!! Sec-1.
clear Control
clear Lock
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5
!! Sec-2. System dependent; use xev to find the exact keycodes:
keycode 66 = Alt_L
keycode 37 = Caps_Lock
keycode 64 = Control_L
keycode 105 = Control_R
keycode 108 = Meta_R
keycode 135 = Hyper_L
keycode 50 = Shift_L
keycode 62 = Shift_R
!! Sec-3.
add Control = Control_L Control_R
add mod1 = Meta_L Meta_R
add mod3 = Hyper_L Hyper_R
add mod4 = Super_L Super_R
add mod5 = Alt_L
add Lock = Caps_Lock
```
Из текущих проблем: setxkbmap не сохраняет переключение раскладки по grp:shifts_toggle, grp:shift_caps_toggle после вызова xmodmap.
Получилось навесить на grp:sclk_toggle, но ент не особо удобно. Надо накостылять скриптец который бы я вызвал из xbindkeys и который бы переключал раскладку.
https://github.com/4DA/eshell-toggle
Набыдлил простую фичу: по шоткату (например s-`) показывается консолька eshell под активным окном с каталогом текущего буфера.
По этому же шоткату убирается.
Еще один мегабайт рецептов.
http://doc.rix.si/org/fsem.html
cedet - это огромный такой (поэтому хуево протестированый) кусок кода.
Сегодня обнаружил, что company-complete отваливается со стектрейсом в буферах где нет активного semantic-mode.
Оказывается эта падла модифицирует completion-at-point-functions', который юзает бекенд company-capf, своими хуками, которые отвалиюваются с
error' если в буфере не включен semantic-mode, а кроме как для C или C++ он нахер не упал.
Набыдлил хак, может кому пригодится.
Кто юзал perspecitve или e2wm.
Думаю есть ли что полущ чем elscreen?
Поскольку авторы magit не обламываются менять все хуки с каждой минорной версией, то для того, чтобы git-gutter обновлял буферы после `magit-commit' нужно сделать примерно следующее:
(add-hook 'git-gutter:update-hooks 'magit-after-revert-hook)
(add-hook 'git-gutter:update-hooks 'magit-not-reverted-hook)
Говорят, в IDE от JB есть охуенная фича: go to last change. Перемещается назад в любой файл где было сделано последнее изменение.
Так вот, хочу такое же для сабжа.
Беглый гуглеж ничего не дал, что и не удивительно: в emacs история изменений per-buffer, а не глобальная.
Как по мне так фича охуенная.
Сам привык палить последнии изменение нажимая undo.