На выходных поработал с интерпретатором Python в интерактивном режиме. VIM опять никому не нужен, а вот сочетания Emacs вполне себе работают: [C-a], [C-e], [M-f], [M-b], [C-f], [C-b] и ещё некоторые. Возможно, даже стоит написать статью на Хабр, где рассказать, что сочетания из Emacs можно использовать в Python и GNOME Terminal, а сочетания из VIM только в самом VIM.
👍1
По мотивам поста про бесячий автокомплит просто выложу свой код настройки
Теперь описание.
1. Если пакет не установлен,
2. В строке состояния ничего не выводится. Для этого я использую Delight. Код установки и инициализации в моём
3. Пакет
4. Настройки — самое интересное. То, о чём написано в ОП-посте, решается через правку
5. Всё остальное уже вкусовщина, настраивайте по своему усмотрению.
company-mode
:;; 📦 COMPANY-MODE
;; https://company-mode.github.io/
;; Автодополнение
(use-package company
:ensure t
:init
(unless (package-installed-p 'company)
(package-vc-install '(company
:url "https://github.com/company-mode/company-mode.git"
:branch "1.0.2")))
:delight ""
:demand t
:custom
(company-idle-delay 0.5 "Задержка вывода подсказки — полсекунды")
(company-minimum-prefix-length 2 "Минимум 2 знака, чтобы company начала работать")
(company-show-quick-access t "Показывать номера возле потенциальных кандидатов")
(company-tooltip-align-annotations t "Выровнять текст подсказки по правому краю")
(company-tooltip-limit 15 "Ограничение на число подсказок")
:hook ((adoc-mode
css-mode
dockerfile-mode
emacs-lisp-mode
html-mode
latex-mode
lisp-data-mode
minibufer-mode
nxml-mode
org-mode
python-mode
rst-mode
ruby-mode
web-mode
) . company-mode)
:bind
(:map company-active-map
("TAB" . company-complete-common-or-cycle)
("M-/" . company-complete)
("M-." . company-show-location)))
Теперь описание.
1. Если пакет не установлен,
package-vc-install
сделает это, при чём поставит фиксированную версию 1.0.2, а не нестабильную из MELPA.2. В строке состояния ничего не выводится. Для этого я использую Delight. Код установки и инициализации в моём
init.el
размещается выше.3. Пакет
company
загружается не сразу, а в фоне. Прямо после запуска он мне не нужен, поэтому :demand t
.4. Настройки — самое интересное. То, о чём написано в ОП-посте, решается через правку
company-idle-delay
и, при необходимости, company-minimum-prefix-length
.5. Всё остальное уже вкусовщина, настраивайте по своему усмотрению.
Telegram
Стой под стрелой
Бесит, когда автокомплит включен во время набора. Сидишь, никого не трогаешь, пишешь себе «pri», а оно радостно: «privet»? «pribor»? «prihod»? И твой же код рядом заслоняет. А ты, может, на него смотрел, может, в соседней строчке, которую заслонили, ответ…
👍1🔥1
Главная проблема 9 каналов из 10, касающихся Emacs, заключается в том, что там обсуждают не Emacs.
По возможности избегайте чтения таких каналов: может сложиться впечатление, что Emacs состоит из одних только проблем.
org-mode
, DooM Emacs, Emacs Prelude, Evil, ошибки при работе фрагментов кода, взятых со StackOverflow, и хорошо если не из вопроса, а из ответов...По возможности избегайте чтения таких каналов: может сложиться впечатление, что Emacs состоит из одних только проблем.
👌7🙈3
Если вы до сих пор не используете Counsel, то самое время попробовать:
В Counsel встроено множество команд, заменяющих собой стандартные команды. Главное удобство заключается в поиске. Например,
Если вы ранее настроили Helm, не забудьте отключить часть его функций, чтобы не было конфликтов.
#counsel
;; 📦 COUNSEL
;; https://elpa.gnu.org/packages/counsel.html
;; Автодополнение на основе Ivy
(use-package counsel
:ensure t
:bind
(:map global-map
("M-x" . counsel-M-x)
("C-x C-f" . counsel-find-file)
("M-y" . counsel-yank-pop)
("C-h f" . counsel-describe-function)
("C-h v" . counsel-describe-variable)
("C-h l" . counsel-find-library)
("C-c c" . counsel-compile)
("C-c g" . counsel-git)
("C-x 8 RET" . counsel-unicode-char)))
В Counsel встроено множество команд, заменяющих собой стандартные команды. Главное удобство заключается в поиске. Например,
counsel-M-x
фильтрует записи по регулярному выражению прямо во время ввода команды!Если вы ранее настроили Helm, не забудьте отключить часть его функций, чтобы не было конфликтов.
#counsel
This media is not supported in your browser
VIEW IN TELEGRAM
Демонстрация работы
counsel-M-x
Пакет
Техписам тоже будет полезен при настройке тем AsciiDoc или Sphinx.
https://github.com/DevelopmentCool2449/colorful-mode
colorful-mode.el
обновился до стабильной версии 1.1.0
. Он используется для отображения цветов в буферах. Если вы часто работаете с CSS или HTML-кодом, то вам этот пакет будет полезен тем, что фон строки с кодом цвета типа #FF2200
будет иметь именно этот оттенок красного! Также пакет распознаёт коды типа cyan
, red
, black
и тому подобное.Техписам тоже будет полезен при настройке тем AsciiDoc или Sphinx.
;; 📦 COLORFUL-MODE
;; https://github.com/DevelopmentCool2449/colorful-mode
;; Отображение цветов прямо в буфере. Наследник `raibow-mode.el'.
(use-package colorful-mode
:ensure t
:hook ((css-mode
emacs-lisp-mode
web-mode) . colorful-mode))
https://github.com/DevelopmentCool2449/colorful-mode
GitHub
GitHub - DevelopmentCool2449/colorful-mode: 🎨Preview any color in your buffer
🎨Preview any color in your buffer. Contribute to DevelopmentCool2449/colorful-mode development by creating an account on GitHub.
А вы знали, что для ReStructured Text и Sphinx существует LSP-сервер? А он есть и называется Esbonio. Сегодня мне удалось его настроить вопреки инструкциям с сайта разработчиков, поэтому в ближайшем обновлении книги на Boosty будет целая глава про это. Всем остальным придётся ждать 3 месяца 😊
hl-line.el
— это встроенный пакет. Всё, что он делает — подсвечивает активную строку. Конечно, у нас есть Pulsar и Beacon, но hl-line-mode
не конфликтует с ними, а образует симбиоз. Единственное, что могу посоветовать — выбирайте тему оформления так, чтобы в ней подсвеченная строка нормально читалась. Например, в doom-monokai-pro
приходилось напрягать глаза, зато в ef-autumn
всё в порядке.(require 'hl-line)
(global-hl-line-mode 1)
Впрочем, с
use-package
тоже можно:(use-package hl-line
:config (global-hl-line-mode 1))
Telegram
GNU EMACS для технических писателей
Пакет pulsar.el обновился до версии 1.2.0. Что он делает? Он заставляет "вспыхивать" строки, на которых находится курсор. Допустим, вы переключились на другой буфер. Где сейчас находится курсор? Приходится искать или нажимать [C-l]. pulsar-mode подсветит…
👍2
На Boosty опубликовано техническое обновление книги. В AsciiDoc пустые строки являются частью синтаксиса, и иногда из-за этого одна глава "прилипает" к другой. Вставил пустые строки в начало, кажется, всех файлов, кроме
src/index.adoc
. Сейчас структура оглавления должна быть корректной. Обо всех найденных ошибках можете писать мне на почту dunmaksim@yandex.ru или в Telegram-канал с обсуждением книги.boosty.to
v25.02.20 - Максим Дунаевский
Техническое обновление, связанное с исправлением вёрстки.
👍3
В книгу вчера были добавлены описания того, как работать с окнами Emacs. Частично продублирую контент сюда.
[C-x 0] — закрыть активное окно.
[C-x 1] — сделать активное окно единственным. Все прочие окна будут закрыты.
[C-x 2] — разделить активное окно горизонтальной чертой.
[C-x 3] — разделить активное окно вертикальной чертой.
[C-x 4 1] и [C-x 4 4] — это префиксы. Указанная после них команда будет принудительно выполнена в том же самом окне или в отдельном соответственно. Кстати, существует несколько сокращений по умолчанию. Например, не нужно отдельно вызывать Dired, достаточно нажать [C-x 4 d], и указанный каталог будет открыт в новом окне.
[C-x 0] — закрыть активное окно.
[C-x 1] — сделать активное окно единственным. Все прочие окна будут закрыты.
[C-x 2] — разделить активное окно горизонтальной чертой.
[C-x 3] — разделить активное окно вертикальной чертой.
[C-x 4 1] и [C-x 4 4] — это префиксы. Указанная после них команда будет принудительно выполнена в том же самом окне или в отдельном соответственно. Кстати, существует несколько сокращений по умолчанию. Например, не нужно отдельно вызывать Dired, достаточно нажать [C-x 4 d], и указанный каталог будет открыт в новом окне.
👍2🔥1
Какое действие выполняет последовательность [C-x 4 f]?
Anonymous Quiz
8%
Запуск find-grep
63%
Запуск find-file
29%
Создаёт окно и перемещает в него курсор
Пожалуй, постановка последнего опроса не вполне корректна, ведь при выполнении
find-file-other-window
формально Emacs создаёт новое окно и перемещает в него курсор. Постараюсь в следующий раз формулировать вопросы и ответы без спешки.Надоело, что в русской раскладке не работает команда
dired-up-directory
, привязанная к [^]. Решил проблему радикально:(keymap-set dired-mode-map ":" 'dired-up-directory)
👍2🤯1
Последнее время дичайше обновляются разные пакеты:
1. Counsel и Ivy до 0.15.0. Используется для быстрого поиска. Может заменить собой [M-x], тогда команды можно будет искать не по начальным буквам, а по регулярным выражениям. Но не только их.
2. Eglot до 1.18. Это такая реализация интерфейса для LSP-сервера от проекта GNU.
4. Jinx до 1.12. Наконец-то нормальная проверка орфографии, в том числе для мультиязычных текстов. В отличие от Flyspell автоматически проверяет весь буфер, а не только введённые строки.
5. Org до 9.7.24. Про этот режим можно отдельную книгу написать. Органайзер, список дел, список задач и так далее.
1. Counsel и Ivy до 0.15.0. Используется для быстрого поиска. Может заменить собой [M-x], тогда команды можно будет искать не по начальным буквам, а по регулярным выражениям. Но не только их.
counsel-load-theme
отличная замена для load-theme
, а counsel-describe-function
— для describe-function
. Странно, что этот пакет (точнее, семейство пакетов) до сих пор не стали встроенными.2. Eglot до 1.18. Это такая реализация интерфейса для LSP-сервера от проекта GNU.
4. Jinx до 1.12. Наконец-то нормальная проверка орфографии, в том числе для мультиязычных текстов. В отличие от Flyspell автоматически проверяет весь буфер, а не только введённые строки.
5. Org до 9.7.24. Про этот режим можно отдельную книгу написать. Органайзер, список дел, список задач и так далее.
GitHub
GitHub - abo-abo/swiper: Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man! - abo-abo/swiper
👍8
В разработке Emacs используется SemVer, но не совсем обычный. Версии с минорным
29.0 — для разработчиков;
29.1 — релиз;
30.0 — для разработчиков;
30.1 — релиз.
0
— это версии для разработчиков, а вот если минорная версия 1
и выше, то это уже считается релиз для повседневного пользования. Именно поэтому так странно выглядит история версий:29.0 — для разработчиков;
29.1 — релиз;
30.0 — для разработчиков;
30.1 — релиз.
👍8
Маленькая хитрость: в русской раскладке не работает сочетание [M-@], потому что при этом вводится не собака, а двойная кавычка. Но поскольку команда
mark-word
используется довольно часто, а сочетание [M-"] ни к чему не привязано, имеет смысл добавить в init.el
такую строку:(keymap-global-set "M-\"" 'mark-word) ;; Чтобы в RU раскладке тоже работало
👍1