我想爲formatlistpat
選項嘗試不同的正則表達式。任何建議最簡單的方法來做到這一點?輕鬆編輯formatlistpat?
我知道在插入模式我可以使用<Ctrl+r>
粘貼在一個註冊。而且我可以使用這個來編輯宏。有選擇的等價物嗎?或者更簡單的東西?
我想到的另一個想法是使用set命令在其中找到一個緩衝區。但我不確定將選項值放入緩衝區的方式,因此可以對其進行編輯。
有什麼想法?提示?建議?
我想爲formatlistpat
選項嘗試不同的正則表達式。任何建議最簡單的方法來做到這一點?輕鬆編輯formatlistpat?
我知道在插入模式我可以使用<Ctrl+r>
粘貼在一個註冊。而且我可以使用這個來編輯宏。有選擇的等價物嗎?或者更簡單的東西?
我想到的另一個想法是使用set命令在其中找到一個緩衝區。但我不確定將選項值放入緩衝區的方式,因此可以對其進行編輯。
有什麼想法?提示?建議?
當您正在編輯的命令行,你這裏有兩種選擇:
使用自動完成:
set formatlistpat=<Tab>
(不是真的標籤,而是任何一個 'wildchar'/ 'wildcharm' 是設置)。這將使用當前選項值填充命令行,並正確轉義。我不能爲這個特別的選擇建議這種方式,因爲雙轉義看起來很醜,在大多數模式中有很多轉義。
使用表達式寄存器(無論是在命令行和在插入模式下工作):
let &formatlistpat=<C-r>=string(&formatlistpat)<CR>
注意,在這種情況下,逃避不是自動完成。使用:let
和string()
更容易,然後爲:set
做適當的轉義。
太棒了。我使用
基於ZyX's answer,以下是有效的.vimrc
文件:
let &formatlistpat="^\s*\d\+[\]:.)}\t ]\s*\|^\s*[-*]\s+"
let &formatlistpat=string(&formatlistpat)
Uhmm,當你說不同的正則表達式,你的意思是不同的正則表達式格式(VIM支持三個,如果我不是錯誤的;差異是微妙的,但在那裏),或者你只是想嘗試一些正則表達式,看看他們是否工作。 我並沒有完全瞭解關於粘貼的內容,以及要粘貼到哪裏。或編輯部分。 – Rook
我完全正確地使用了模式已經存在的正則表達式格式/語法 - 這是我從與替換相關的模式中熟悉的。 要編輯宏,我可以將包含宏的寄存器粘貼到緩衝區中,編輯它,然後將其粘貼回寄存器中。 我希望只是調整formatlistpat而不搞亂它。 在提出問題的同時,我已經手動將該值以set命令的形式輸入緩衝區。而我一直在排隊並使用:@ =反覆運行。這對我有用。 – Mike