Highlights of this release include:
* Emacs can now load shared/dynamic libraries (modules)
* Experimental support for Cairo drawing
* Enhanced network security (TLS/SSL certificate validity and the like)
* New minor mode 'electric-quote-mode' for using curved quotes as you type
* Character folding support in isearch.el
* Xwidgets: a new feature for embedding native widgets inside Emacs buffers
* New and improved facilities for inserting Unicode characters
С помощью Xwidgets например можно встроить WebKit:
Веб-справка во встроенном WebKit
YouTube видео внутри Emacs
(качество плохое исключительно из-за gif сжатия, в реальности такое же как и в других барузерах)
EP>* Xwidgets: a new feature for embedding native widgets inside Emacs buffers
Xwidgets: a new feature for embedding native widgets inside Emacs buffers. If you have gtk3 and webkitgtk3 installed, and Emacs was built with xwidget support, you can access the embedded webkit browser with 'M-x xwidget-webkit-browse-url'. This opens a new buffer with the embedded browser. The buffer will have a new mode, 'xwidget-webkit-mode' (similar to 'image-mode'), which supports the webkit widget.
Интересная штука, но я им так и не сумел начать пользоваться. В последний раз остановило то, как автоподстановка работает. Может ты знаешь как это дело починить, кстати... Что я хочу (и что есть у меня в Vim):
Начал набирать текст – выпал список автоподстановки (тут у Emacs всё прекрасно). Дальше я хочу что бы список формировался не на основании совпадения строки, а на основании вхождения символов. Пример:
Здравствуйте, kaa.python, Вы писали: KP>Интересная штука, но я им так и не сумел начать пользоваться.
Да уж, времени требует прилично чтобы нормально войти, впрочем как и Vim. Но в качестве активности для прокрастинации вполне себе Да и отдача какая-никакая есть. KP>В последний раз остановило то, как автоподстановка работает. Может ты знаешь как это дело починить, кстати... Что я хочу (и что есть у меня в Vim): KP>Начал набирать текст – выпал список автоподстановки (тут у Emacs всё прекрасно). Дальше я хочу что бы список формировался не на основании совпадения строки, а на основании вхождения символов. Пример: KP>asd -> asdfg, awsedr, ...
Ключевые слова для поиска: fuzzy search.
Я использую Helm (в Vim близкий аналог — ctrlp.vim) — он даёт такой поиск для любого списка будь-то автодоподление, выбор буфера, запуск команды по M-x, справка, вывод списка хоткеев, поиск недавнего файла, поиск файла в проекте, выбор файла в директории, поиск по тэгам, и даже есть интерактивный live-grep:
поиск файла в проекте
интерактивный live-grep
Также, в самом движке автодоплнения может быть свой дополнительный UI вывода списков (помимо стандартного, к которому подцепляется Helm) — тогда нужно искать опцию fuzzy search именно для этого конкретного движка.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Ключевые слова для поиска: fuzzy search. EP>Я использую Helm (в Vim близкий аналог — ctrlp.vim)
Я его и смотрел, но он вроде как-то в стороне от выпадающего списка стоит. Идея дополнительного полноценного окна в котором будет список мне не симпатична. Есть возможность именно выпадающий список фильтровать (но сам писать я это однозначно не хочу)?
Здравствуйте, kaa.python, Вы писали:
KP>Я его и смотрел, но он вроде как-то в стороне от выпадающего списка стоит. Идея дополнительного полноценного окна в котором будет список мне не симпатична. Есть возможность именно выпадающий список фильтровать (но сам писать я это однозначно не хочу)?
Выпадающие списки это UI конкретного пакета автодополнения, и смотреть/искать нужно именно fuzzy настройки/хотеки/команды конкретного пакета — я не знаю про какой именно ты говоришь.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Выпадающие списки это UI конкретного пакета автодополнения, и смотреть/искать нужно именно fuzzy настройки/хотеки/команды конкретного пакета — я не знаю про какой именно ты говоришь.
Да, я пытался использовать auto-complete в купе с fuzzy режимом. Крутил-вертел долго, но результат оказался никакой
P.S. если подскажешь как сделать fuzzy-дополнялку на основе Helm, буду очень благодарен (у меня сомнения закрались что я пробовал)!
Здравствуйте, kaa.python, Вы писали:
KP>P.S. если подскажешь как сделать fuzzy-дополнялку на основе Helm, буду очень благодарен (у меня сомнения закрались что я пробовал)!
Здравствуйте, kaa.python, Вы писали:
KP>>>P.S. если подскажешь как сделать fuzzy-дополнялку на основе Helm, буду очень благодарен (у меня сомнения закрались что я пробовал)! EP>>Для какого-то конкретного языка/языков? KP>Как минимум для C++, еще хорошо бы для Python.
Если используется auto-complete — нужно установить пакет ac-helm, это добавит функцию ac-complete-with-helm — её можно например повесить на какой-нибудь хоткей.
Если используется company (другой агрегатор авто-дополнений, субъективно намного более популярный и распространённый) — то нужно установить helm-company, что добавит аналогичную функцию helm-company.
Для C++ самые точные авто-дополнения те что на базе Clang — есть как для company, так и для ac — это например Rtags, Irony, есть даже поддержка YouCompleteMe — который изначально был для Vim.
Всякие Gtags, Ctags, Etags — естественно менее точные.
Для Python это авто-дополнения на базе Jedi.
Можно установить пакет elpy — там в комплекте автодополнение для company, подсветка стилистических ошибок и т.д. Помимо непосредственно пакета elpy для Emacs, нужно установить несколько Python'овских модулей: pip install jedi flake8 importmagic autopep8 (из документации elpy)
Из коробки в Emacs работает автодополнение по символам/словам из всех открытых буферов (соответственно самое неточное) — механизм динамических аббревиатур — dabbrev. Это подобие встроенного в Vim механизма ctrl-p, ctrl-n.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Если используется company (другой агрегатор авто-дополнений, субъективно намного более популярный и распространённый) — то нужно установить helm-company, что добавит аналогичную функцию helm-company.
Покрутил helm-company, оно, конечно, работает, но криво и ощущение что сильно "сбоку". Основная беда в том, что fuzzy-подстановка начинает работать только при уже активировавшемся буфере helm-company. Если же он еще не активен (к примеру я набираю emb в надежде увидеть emplace_back) то выходит облом вида "автоподстановка не найдена". Печаль, конечно
Здравствуйте, kaa.python, Вы писали:
KP>Покрутил helm-company, оно, конечно, работает, но криво и ощущение что сильно "сбоку".
Да, есть такое.
Непосредственно в самом выпадающем списке Company (без Helm) работают следующие хоткеи:
C-s включает поиск в выпадающем списке (дальше вводишь подстроку)
C-M-s включает фильтрацию в выпадающем списке по подстроке
F1 или C-h выводит справку для выбранного символа (если есть)
C-w открывает код для выбранного символа
KP>Основная беда в том, что fuzzy-подстановка начинает работать только при уже активировавшемся буфере helm-company. Если же он еще не активен (к примеру я набираю emb в надежде увидеть emplace_back) то выходит облом вида "автоподстановка не найдена". Печаль, конечно
Да, печаль. Вот в этом тикете ссылаются на производительность, но у того же Helm нормальная производительность, да и фильтрация самого Company C-M-s справляется без проблем.
Под Vim кстати что используешь для fuzzy авто-дополнения? YouCompleteMe?