Vim 如何在不同长度的多行末尾追加数字序列?
我正在重写一些脚本。我想在许多行后面附加如下内容:Vim 如何在不同长度的多行末尾追加数字序列?,vim,emacs,editor,Vim,Emacs,Editor,我正在重写一些脚本。我想在许多行后面附加如下内容: short=s[ verylongword=s[ P=s[ 这些数字: 0 1 2 要获得此信息: short=s[0 verylongword=s[1 P=s[2 我试过VIM ctrl+v put我不能把它们放在这行的末尾。。。如果无法使用vim,哪种方法是即使使用emacs也可以做到这一点的最佳方法 编辑: 现在我知道如果我在我的例子中的列中有一个数字,我就可以这样做,所以问题是如何在不先写序列号的情况下更快地追加一个数字序列 你问
short=s[
verylongword=s[
P=s[
这些数字:
0
1
2
要获得此信息:
short=s[0
verylongword=s[1
P=s[2
我试过VIM ctrl+v put我不能把它们放在这行的末尾。。。如果无法使用vim,哪种方法是即使使用emacs也可以做到这一点的最佳方法
编辑:
现在我知道如果我在我的例子中的列中有一个数字,我就可以这样做,所以问题是如何在不先写序列号的情况下更快地追加一个数字序列 你问vim或Emacs 在Emacs中,您只需选择要修改的行,然后执行:
replace-regexp RET $ RET \# RET
在库存Emacs设置中,将使用M-x替换regexp
\是一种特殊的替换,从0开始,每次进行替换时递增。这是伟大的,你当然可以将它与其他elisp替代品混合使用
例如,如果要对条目从100开始编号:
replace-regexp RET $ RET \,(+ 100 \#) RET
使用vim,您可以使用以下搜索和替换语句
%s/$/\=line('.')-1
崩溃
% apply to entire buffer
s substitute
/$ search for end of line
/\=line('.')-1 replace with linenumber - 1
在Emacs中,也可以使用键盘宏来执行此操作。第一行末尾的点short=s[,定义如下: F3开始宏定义 F3插入宏计数器默认从0开始 C-f移动到下一行的开头 C-e移动到行的末尾 F4结束宏定义 执行宏 通过反复按F4键手动操作 指定表示要重复宏的次数n的前缀参数:C-u n F4 指定前缀参数0以对所有剩余行重复宏:C-u n F4
如果您希望编号以不同于零的值开始,请通过发出M-x kmacro set counter来设置宏计数器值。此命令的默认键绑定为C-x C-k C-C。@G M:是否始终希望从0开始添加递增的数字?G M可能重复:您能响应战术编码器的查询吗?存在断开连接在你的问题标题和你得到的答案之间,因为你的例子使用了一个升序的数字序列。你想要任意内容行的答案,还是仅仅是一个数字序列的答案?@phils事实上我只是想添加多行,但因为另一个问题有很多答案,所以我改变了这个问题,是吗思考是正确的做法吗?非常感谢!是的,在这种情况下,我认为这是一个很好的改变-它阻止了这是另一个问题的重复,而不会以任何方式使您的答案无效。我只是想解决我的问题,无论如何,我都可以使用这两个编辑器,因此如果在emacs中更容易,我可以使用它。。。