2011-12-25 37 views
0

在組織模式下,我想將區域轉換爲列表。將區域轉換爲列表

說我有以下文字

One 
Two 
Three 

我怎樣才能把它變成下面的列表(通過手動編輯它時除外)?

- One 
- Two 
- Three 

是否有一些命令,我​​可以運行,以實現後,我已經標記的區域?

+0

您可以使用Emacs的正則​​表達式引擎將'^'替換爲區域上的' - ',但我不知道它的命令。 – fge 2011-12-25 21:56:52

+1

[emacs:Orgmode,如何從一行中創建列表]的可能重複(http://stackoverflow.com/questions/2250930/emacs-orgmode-how-to-make-a-list-from-a - 行代碼) – jfs 2011-12-26 00:56:56

回答

6

有很多方法。這裏有幾個:

  1. query-replace-regexp:要麼標示的區域,或只是移動點線1的開始,然後用C-M-%^RET-RET。如果您標記了該區域,則可以使用以取代該地區的所有比賽。

  2. string-rectangle:設置在1號線開始的標誌,將光標移動到3行的開頭,鍵入CX[R 噸-RET

  3. cua-selection-mode:如果啓用cua-selection-mode(我在.emacs中打開這個選項),你可以在第1行的開頭激活一個矩形,用C-RET,將點移動到第3行的開頭,輸入-, d然後再次鍵入C-RET以取消激活該矩形。

  4. 鍵盤宏:在第1行,鍵入F3CX開始錄製,然後-SPC作爲宏的內容,和F4CX停止錄製。現在您可以標記區域並鍵入C-xC-kr將該宏應用於該區域中的每一行。

  5. 我不知何故錯過了這是關於組織模式,這使得它成爲emacs: Orgmode, how to make a list from a block of lines(見gregor's answer)的重複。

+0

最後的選擇(5)可能是組織模式中最好的選擇。 'C-c -'(Ctrl-C減號)應該將行變換成列表。我有時有第一個項目的對象,它不是一個列表項目,在最壞的情況下,你可能不得不手動改變它,然後其他應該正確遵循(我不完全確定它爲什麼有時失敗,但不是其他)。 – 2011-12-27 16:13:42