2012-06-22 83 views
3

我想爲formatlistpat選項嘗試不同的正則表達式。任何建議最簡單的方法來做到這一點?輕鬆編輯formatlistpat?

我知道在插入模式我可以使用<Ctrl+r>粘貼在一個註冊。而且我可以使用這個來編輯宏。有選擇的等價物嗎?或者更簡單的東西?

我想到的另一個想法是使用set命令在其中找到一個緩衝區。但我不確定將選項值放入緩衝區的方式,因此可以對其進行編輯。

有什麼想法?提示?建議?

+0

Uhmm,當你說不同的正則表達式,你的意思是不同的正則表達式格式(VIM支持三個,如果我不是錯誤的;差異是微妙的,但在那裏),或者你只是想嘗試一些正則表達式,看看他們是否工作。 我並沒有完全瞭解關於粘貼的內容,以及要粘貼到哪裏。或編輯部分。 – Rook

+0

我完全正確地使用了模式已經存在的正則表達式格式/語法 - 這是我從與替換相關的模式中熟悉的。 要編輯宏,我可以將包含宏的寄存器粘貼到緩衝區中,編輯它,然後將其粘貼回寄存器中。 我希望只是調整formatlistpat而不搞亂它。 在提出問題的同時,我已經手動將該值以set命令的形式輸入緩衝區。而我一直在排隊並使用:@ =反覆運行。這對我有用。 – Mike

回答

4

當您正在編輯的命令行,你這裏有兩種選擇:

  1. 使用自動完成:

    set formatlistpat=<Tab> 
    

    (不是真的標籤,而是任何一個 'wildchar'/ 'wildcharm' 是設置)。這將使用當前選項值填充命令行,並正確轉義。我不能爲這個特別的選擇建議這種方式,因爲雙轉義看起來很醜,在大多數模式中有很多轉義。

  2. 使用表達式寄存器(無論是在命令行和在插入模式下工作):

    let &formatlistpat=<C-r>=string(&formatlistpat)<CR> 
    

    注意,在這種情況下,逃避不是自動完成。使用:letstring()更容易,然後爲:set做適當的轉義。

+0

太棒了。我使用來完成選項名稱,但不是值。這有幫助。我忘記了&選項語法和表達式寄存器。很有幫助!謝謝... – Mike

1

基於ZyX's answer,以下是有效的.vimrc文件:

let &formatlistpat="^\s*\d\+[\]:.)}\t ]\s*\|^\s*[-*]\s+" 
let &formatlistpat=string(&formatlistpat)