Только что под руку подвернулся хороший пример использования регулярных выражений. Разберём его.
Списки можно оформлять по-разному, но, например, в документации Yandex Cloud принят подход, при котором в конце строк ставится точка с запятой, если все строки состоят только из одного предложения. В конце последнего элемента списка ставится точка.
Допустим, у нас уже есть список версий Ubuntu:
Ну, в чём проблема сделать из этого списка такой же, как в первом случае? Просто заменим точки на точку с запятой. Ничего плохого ведь не случится, правда?
Так, погодите-ка. А почему точка в номере версии тоже стала точкой с запятой? Нам этого не надо. Сейчас можно и руками поправить. Но представьте, что у вас список из 50 элементов. В таком случае задачу поможет решить регулярное выражение.
Нам нужно найти точку, стоящую в конце строки.
Символ
Символ конца строки обозначается знаком
Давайте сделаем замену:
1. Выделите список и вызовите команду
2. Введите выражение
3. Введите строку замены
4. Исправьте точку с запятой на точку в последнем элементе списка.
Поздравляю! С помощью регулярных выражений вы сэкономили себе немного времени.
Списки можно оформлять по-разному, но, например, в документации Yandex Cloud принят подход, при котором в конце строк ставится точка с запятой, если все строки состоят только из одного предложения. В конце последнего элемента списка ставится точка.
Версии Debian:
* 12 Bookworm;
* 11 Bullseye;
* 10 Buster;
* 9 Stretch.
Допустим, у нас уже есть список версий Ubuntu:
Версии Ubuntu:
* 14.04 Trusty Tahr.
* 16.04 Xenial Xerus.
* 18.04 Bionic Beaver.
* 20.04 Focal Fossa.
* 22.04 Jammy Jellyfish.
Ну, в чём проблема сделать из этого списка такой же, как в первом случае? Просто заменим точки на точку с запятой. Ничего плохого ведь не случится, правда?
Версии Ubuntu:
* 14;04 Trusty Tahr;
* 16;04 Xenial Xerus;
* 18;04 Bionic Beaver;
* 20;04 Focal Fossa;
* 22;04 Jammy Jellyfish;
Так, погодите-ка. А почему точка в номере версии тоже стала точкой с запятой? Нам этого не надо. Сейчас можно и руками поправить. Но представьте, что у вас список из 50 элементов. В таком случае задачу поможет решить регулярное выражение.
Нам нужно найти точку, стоящую в конце строки.
Символ
.
в регулярных выражениях означает "вообще любой символ", поэтому её надо экранировать:\.
Символ конца строки обозначается знаком
$
:\.$
Давайте сделаем замену:
1. Выделите список и вызовите команду
replace-regexp
.2. Введите выражение
\.$
и нажмите [RET].3. Введите строку замены
;
и нажмите [RET].4. Исправьте точку с запятой на точку в последнем элементе списка.
Поздравляю! С помощью регулярных выражений вы сэкономили себе немного времени.
👍5🔥2
На Boosty вышла новая версия книги, с IComplete, Vertico, Helm и Counsel. Порядок глав мне сейчас не очень нравится. Я даже подумываю отказаться от деления книги на главы по алхимическому принципу.
https://boosty.to/simple-emacs/posts/3be25add-53b5-41c1-918e-034ce37022c4?share=post_link
https://boosty.to/simple-emacs/posts/3be25add-53b5-41c1-918e-034ce37022c4?share=post_link
boosty.to
v25.08.05 - Максим Дунаевский
Posted on Aug 05 2025
👍5
gnu-emacs-for-technical-writers-25.02.09-white.pdf
5.3 MB
А это старая версия книги, от 9 февраля этого года.
Имеет ли смысл использовать Shell внутри Emacs, когда у нас есть GNOME Terminal и другие оболочки? Я вижу как минимум два удобства:
1. С содержимым буфера
2. В командной строке можно использовать kill ring. Это значит, что вы можете вставить любой из множества фрагментов, ранее помещённых в kill-ring.
1. С содержимым буфера
*shell*
можно работать как и с любым другим буфером: копировать, вставлять, вырезать.2. В командной строке можно использовать kill ring. Это значит, что вы можете вставить любой из множества фрагментов, ранее помещённых в kill-ring.
👍5❤1
Как в Emacs получить справку? Очень просто: все последовательности для получения справки начинаются с [C-h] (help). Дальше уже немного сложнее, но всё равно логично:
[C-h b] — bindings, привязки (клавиш);
[C-h c] — commands, команды;
[C-h k] — keys, клавиши;
[C-h m] — modes, режимы.
Запомнить приведённые выше команды и сочетания клавиш несложно. Как видите, здесь есть определённая логика, основанная на первых буквах связанных английских слов. Это основные команды. Остальные можете подсмотреть в минибуфере сами.
Самая интересная из перечисленных последовательностей — [C-h k], потому что она требует продолжениябанкета ввода. Нажмите какую-нибудь последовательность, и Emacs выведет информацию о ней: что за команда, к какому пакету относится и так далее.
[C-h b] — bindings, привязки (клавиш);
[C-h c] — commands, команды;
[C-h k] — keys, клавиши;
[C-h m] — modes, режимы.
Запомнить приведённые выше команды и сочетания клавиш несложно. Как видите, здесь есть определённая логика, основанная на первых буквах связанных английских слов. Это основные команды. Остальные можете подсмотреть в минибуфере сами.
Самая интересная из перечисленных последовательностей — [C-h k], потому что она требует продолжения
👍4