emacs: Orgmode, how to make a list from a block of lines

前端 未结 4 1733
盖世英雄少女心
盖世英雄少女心 2021-02-01 07:02

Is there a way to covert such block of lines

line1  
line2 
linen

into

1. line1
2. line2
n. linen

Using Emac

相关标签:
4条回答
  • 2021-02-01 07:07

    See also org-toggle-item to convert to plain-text list or numbered list.

    0 讨论(0)
  • 2021-02-01 07:12

    Found this on emacsworld.blogspot.com (I made some minor edits):

    In Emacs 24.1, the NEWS file had this new addition to the rectangle commands.

    ** New command `C-x r N' (`rectangle-number-lines') numbers the lines in the current rectangle. With a prefix argument, this prompts for a number to count from and for a format string.

    This allows you to now number lines or lists easily without using a macro or additional elisp functions. Mark a vertical region of text (using transient mark mode may help), 1 character wide, and then hit C-x r N and that's it. Emacs numbers the lines.

    If you use the prefix command C-u (for example, C-u C-x r N), it will prompt you for a starting digit and the format string, so you can start at an arbitrary number and specify a period or paren or whatever to precede or follow the number.

    0 讨论(0)
  • 2021-02-01 07:18

    the shortest way I know of is: highlight the lines, including their newline character,

    line1
    line2
    line3
    

    Then execute M-x org-ctrl-c-minus (press C-c -) and you will get

    - line1  
    - line2 
    - line3
    

    Then run M-x org-shiftright (press <S-right>) twice and you get the desired

    1. line1  
    2. line2 
    3. line3
    
    0 讨论(0)
  • 2021-02-01 07:26

    don't know if there is a direct way, haven't heard of it yet at least. But one approach would be to use string-rectangle (C-x r t) to prepand 1. to all lines and then hit C-c C-c to update the numbering.

    For string-rectangle you would put point and mark the following way:

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

    After M-x: string-rectangle: 1. you will get:

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

    Hitting C-c C-c will give you the correct numbering!

    Easier because it gives you visual feedback is to enable CUA-mode and use C-return to create a rectangle selection, then you can start typing on all lines in parallel. See also this video on youtube.

    0 讨论(0)
提交回复
热议问题