2016-11-17 25 views
2

我創建了一個宏用一個範圍(http://vim.wikia.com/wiki/Ranges)操作,如:編輯Vim的宏與一系列的操作,是指標籤

:.,'bs/ .*$\n/ /ge^M 

我當時就想來編輯它,我通常不使用let (http://vim.wikia.com/wiki/Macros#Editing_a_macro):

:let @b=':.,'bs/ .*$\n/ /ge^Mdd' 

但對於這些例子中,「宏定義會導致編輯失敗。如何解決這個問題?要麼是可選範圍語法,要麼是在定義時避免引號的方式。

我知道我可以重新錄製宏,但實際版本比這個要長得多!

+4

使用雙引號。 – romainl

+1

gah!謝謝!如果您將其作爲答案放入,我會將其標記爲正確。 – user2242865

回答

3
  • 單引號需要這樣的字符串內將翻倍::let @b=':.,''bs/ .*$\n/ /ge^Mdd'
  • 你可以使用雙引號,但隨後又雙反斜線(如果有的話):let @b=":.,'bs/ .*$\\n/ /ge^Mdd"
  • 相反的:let,你可以:put b成暫存緩衝區,編輯,然後"by$再次進入寄存器。