我怎样才能在Vim的计数器变量没有Python或Ruby?
题
我没有蟒蛇/红宝石启用。我的问题:我经常有写东西像下面这样:
%macro(200701);x gzip /home/test/200701.txt;run;
%macro(200702);x gzip /home/test/200702.txt;run;
%macro(200703);x gzip /home/test/200703.txt;run;
%macro(200704);x gzip /home/test/200704.txt;run;
%macro(200705);x gzip /home/test/200705.txt;run;
%macro(200706);x gzip /home/test/200706.txt;run;
%macro(200707);x gzip /home/test/200707.txt;run;
%macro(200708);x gzip /home/test/200708.txt;run;
%macro(200709);x gzip /home/test/200709.txt;run;
%macro(200710);x gzip /home/test/200710.txt;run;
%macro(200711);x gzip /home/test/200711.txt;run;
%macro(200712);x gzip /home/test/200712.txt;run;
%macro(200801);x gzip /home/test/200801.txt;run;
%macro(200802);x gzip /home/test/200802.txt;run;
%macro(200803);x gzip /home/test/200803.txt;run;
%macro(200804);x gzip /home/test/200804.txt;run;
%macro(200805);x gzip /home/test/200805.txt;run;
%macro(200806);x gzip /home/test/200806.txt;run;
%macro(200807);x gzip /home/test/200807.txt;run;
%macro(200808);x gzip /home/test/200808.txt;run;
%macro(200809);x gzip /home/test/200809.txt;run;
%macro(200810);x gzip /home/test/200810.txt;run;
%macro(200811);x gzip /home/test/200811.txt;run;
%macro(200812);x gzip /home/test/200812.txt;run;
是否有一个快速的方式在Vim中做到这一点?
我通常输入:
%macro(200701);x gzip /home/test/200701.txt;run;
然后发出以下命令:
yy11p10<up>13<right>r2<down>r3<down>r4<down>...
因此,换句话说,I 11分多次粘贴线,然后使用“取代炭”命令通过日期列表运行。然后,我将复制整个块并在新的块将输入
:s/2007/2008/<enter>12&11<up>12&
在第二块来代替2007 2008
Vim的仅仅是如此强大的I图必须有更好的方法然后不断通过手动12上的每个线的替换1。
解决方案
写的第一行:
%macro(200701);x gzip /home/test/200701.txt;run;
然后,同时仍然在该行上,进入命令模式,并记录一个宏一该复制线(yyp
),递增所述第一数量(CTRL-A,书面^A
),移动一个字符向右(l
),然后递增其他数:
qayyp^Al^Aq
(注意,开始和停止宏录制与q
发生的情况。)现在播放宏一 110倍:
110@a
其他提示
它也可以用vim 7函数完成:
:let t=map(range(200801,200815), '"macro(".v:val.");x gzip /home/test/".v:val.".txt;run;"')
:put=t
如果您拥有的Unix / Linux的核心工具为您的性格有 一种方式是更容易记住,至少如果你习惯于使用 块命令:
(1)使用SEQ生成序列(1)
:r!seq 200801 200812
SEQ还允许格式化这样的:
:r!seq -f "\%03.0f" 10 121
百分号必须转义。
(2)双用Vim的块命令块: 标记与C-V,抽出,放置
(3)插入(或附加)这个块之间的文本: 标记与C-V中,插入与I
请参阅:帮助嵌段可视更多
另请参见 Vimtip#150 。
这解释了如何标记的文本块,并自动增加标记的块的数量。
不隶属于 StackOverflow