簡體   English   中英

Vim插入序列號遞增

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM