Recently I had a list of things in a org buffer that I wanted to turn into a numbered list but couldn’t find an elegant way to do it.
The solution I came up with was to use a regex-replace to insert
1. in front of each line. Then I used org-mode’s
C-c C-c to renumber the lines.
I also asked on #org-mode on irc. Two interesting solutions were suggested.
- use string-rectangle
- use org-mode’s org-toggle-item
use the string-rectangle function via the keyboard shortcuts:
C-x r t 1 . <SPC>
string-rectangle is new to me but seems as though it could be very useful. Thanks quicksilver for that suggestion.
which is described as:
Insert separator line in table or modify bullet status of line.
Also turns a plain line or a region of lines into list items.
Calls `org-table-insert-hline', `org-toggle-item', or
`org-cycle-list-bullet', depending on context.
The trick is to prefix it with C-u which supplies ARG to the function org-toggle-item which changes each line in a region into an item.
C-u C-c - then
S-right until you get to the list type you want.
Thanks Thumper_ for that suggestion.
UPDATE: zhen pointed me to rectangle-number-lines, which I did look at before but it’s default option numbers the lines without the full stop after each number. As I wanted this for org-mode, I really wanted the numbers to be formatted as “1. “. After reading the help on rectangle-number-lines though, I found that if you prefix it with the argument command
C-u it will ask you for a starting number and the format of the numbers.
∴ Select a rectangle at least one column wide of the lines you want to number then
C-u C-x r N <ENTER><backspace>.<spc><ENTER>