emacs: Orgmode, как составить список из блока строк

Есть ли способ скрыть такой блок строк

line1  
line2 
linen

в

1. line1
2. line2
n. linen

Использование Emacs в режиме организации


person Oleg Tarasenko    schedule 12.02.2010    source источник


Ответы (4)


не знаю, есть ли прямой путь, по крайней мере, пока о нем не слышал. Но один из подходов — использовать string-rectangle (C-x r t) для добавления 1. ко всем строкам, а затем нажать C-c C-c для обновления нумерации.

Для string-rectangle вы бы поставили точку и отметили следующим образом:

v---mark
line1 with some text
line2 with more text
<---point

После M-x: string-rectangle: 1. вы получите:

1. line1 with some text
1. line2 with more text

Нажатие C-c C-c даст вам правильную нумерацию!

Проще, потому что это дает вам визуальную обратную связь, это включить CUA-mode и использовать C-return для создания прямоугольного выделения, затем вы можете начать печатать на всех строках параллельно. См. также это видео на YouTube.

person danielpoe    schedule 12.02.2010
comment
Убедитесь, что вы проверили прямоугольники CUA (как описано на emacs-fu ), с ними гораздо приятнее работать, чем с ванильными прямоугольниками. Но использование прямоугольников для приведенной выше проблемы — лучшее рабочее решение :) - person monotux; 23.09.2010

самый короткий способ, который я знаю, это: выделить строки, включая их символ новой строки,

line1
line2
line3

Затем выполните M-x org-ctrl-c-minus (нажмите C-c -) и вы получите

- line1  
- line2 
- line3

Затем выполните M-x org-shiftright (нажмите <S-right>) два раза и получите желаемое

1. line1  
2. line2 
3. line3
person gregor    schedule 03.10.2010
comment
Когда я делаю C-c -, он вставляет только - в первую строку, следующие строки имеют отступ. - person Liam; 22.01.2012
comment
Выберите регион, прежде чем нажимать C-c -. - person SabreWolfy; 16.02.2012
comment
В org 7.8.06 C-c - в выбранном регионе вставляет только - в первую строку. Версия org, которую я использовал ранее, должна была вести себя по-другому из-за моего комментария выше. - person SabreWolfy; 07.04.2012
comment
Используйте C-u C-c -, чтобы вставить - в начале каждой строки в выбранной области. Из организационной справки в Emacs: Если это обычный текст, измените регион на элемент. С префиксным аргументом ARG измените каждую строку региона на элемент. - person SabreWolfy; 07.04.2012

См. также org-toggle-item для преобразования в обычный текстовый список или нумерованный список.

person incandescentman    schedule 11.07.2015
comment
Только дает мне неупорядоченный список. Тем не менее, полезно. - person ijoseph; 04.02.2019

Нашел это на emacsworld.blogspot.com (я внес небольшие изменения):

В Emacs 24.1 файл NEWS имел это новое дополнение к командам прямоугольника.

** Новая команда `C-x r N' (`rectangle-number-lines') нумерует строки в текущем прямоугольнике. С аргументом префикса это запрашивает число для подсчета и для строки формата.

Теперь вы можете легко нумеровать строки или списки без использования макроса или дополнительных функций elisp. Отметьте вертикальную область текста (может помочь использование режима переходной маркировки), шириной 1 символ, а затем нажмите C-x r N и все. Emacs нумерует строки.

Если вы используете префиксную команду Cu (например, Cu Cx r N), вам будет предложено ввести начальную цифру и строку формата, поэтому вы можете начать с произвольного числа и указать точку, скобку или что-то еще, что должно предшествовать или следовать за ним. номер.

person troyfolger    schedule 08.09.2016