[英]Vim Insert Sequence with incremental numbers
我希望在一行上打開它:
"".format(...)
到這個:
"{0}, {1}, {2}, ..... {n}".format(...)
其中n
是我想重復的元素數。 無需手動插入每個參數。
我不知道這種方式是否適合您:
"I(cursor here)
".format(...)
執行命令:
:r! seq -s, -f "{\%g}" 0 20
然后加入( J
)這三行。 在您的情況下20為n
。
或"I".format(...)
要插入模式,請按ctrl-R
然后輸入=system("seq -s, -f '{%g}' 0 20")
將光標放在空的雙引號之間,我可以這樣做(對於n
= 5):
i<C-R>=join(map(range(5), 'printf("{%d}", v:val)'), ', ')<CR>
一些vimgolf狂熱者可能會進一步濃縮。 但是我可能會為其編寫一個映射(如果需要如此頻繁地發生),或者像這樣手動進行:
5i{0}, <Esc>^f0;<C-A>;2<C-A>;3<C-A>;4<C-A>
我會使用一個宏,例如:
0a{0}, <esc>lqqyF{f"PB<C-a>;q
然后只需將n-1與@q
。 例如4@qXX
將給出:
"{0}, {1}, {2}, {3}, {4}, {5}".format(...)
Windows中沒有“ seq”命令,因此我更喜歡這樣:
:call append(".", map(range(6), '"{".v:val."},"'))
然后使用“ 6J”加入這些行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.