Vim中插入等差数值

原创 2016年08月29日 23:15:29

在任意行内插入有序数列
在18行的”My name is Albert!” 的“Albert”和“!”之间,纵向插入公差为2的等差数列。

1,先让Vim创建18行的“My name is Albert!”

第1步:连续按两次[ESC]键,确保在一般模式。
第2步:键入18
第3步:[shift]+o(插入多行文字)
第4步:输入“My name is Albert!”
第5步:[ESC]键
第6步:gg(回到首行)

2,生成一个数列

首先我要制造出来一个等差序列。这边有多种方法实现。你可以参考用“宏录制”方法,在全文最下方空白部分制造一列有序数列,再将其拷贝黏贴到需要插入的列。
下面我们就讨论比较巧妙的一种方法。在行首插入一列有序数列.
首先,您要先选中我们要添加数列的行数
第1步:通过“块操作”ctrl+v进入块操作。
第2步:这里我们要为前18行插入数列,于是我们可以先gg回到行首
第3步:然后再键入18j,选中18列首字母。
第4步:然后执行命令:
:let i=1 | ‘<,’>g/^/ s//\=i.’ ‘/ | let i+=2
详解:

(a)let {expression} 即赋值命令。let i=1 给变量 i 赋值 1。let i+=2 给变量 i 的值增加 2
(b) | 在这里用来连接先后依次执行的命令。
(c) ‘<,’>指示的是命令作用域为所选中的文字。
(d) g/{pattern}/{command} 即global命令,一段为模式,一段为命令。
(e) 模式“^”即正则表达式的行首。
(f) s/{pattern}/{text}/{flags} 即substitude命令。s//\=i/ 的 {pattern} 为空,即默认当前模式,即 global 所给的模式“^”。{text} 为 \=i,即替换成 i 的值。省却了{flags}。
(g)i.’ ’ 用 .来连接字符串(或者数字+字符串)
所以上述命令的执行效果就是对选中的文字行开头插入连续的行号,并在数字后面加上一个空格。

3,现在我们把生成的数列选中,剪切并插入

第1步:ctrl+v进入块操作。
第2步:gg回到行首
第3步:然后再键入1l,犹豫我们的总函数是18行(两位数)所以只要向右移动一格。
第4步:然后再键入18j,选中18列首字母。
第5步:按d键 剪切选中的“列块”(注:y是复制,x是删除)
第6步:删除所有行首空格
:%s/^ *//
第7步:gg光标回文首,然后18l移动到!上
第8步:p黏贴。

版权声明:本文为博主原创文章,未经博主允许不得转载。

有多少种方式可以在vim中插入递增的数字

Table of Contents 有多少种方式可以在vim 中插入行号1 在文本中插入行号 1.1 使用line()函数1.2 使用ex命令1.3 使用range()函数1.4 加法运算1.5 ...
  • xxq_2011
  • xxq_2011
  • 2016年04月08日 18:19
  • 5113

Vim中插入等差数值

在任意列中插入等差数列
  • cmdn_wuhua0904
  • cmdn_wuhua0904
  • 2016年08月29日 23:15
  • 291

vim+cscope+ctags打造属于自己的IDE

所谓工欲善其事,必先利其器。作为专业码农,特别是长期在Unix系统上展开工作(查看源代码、coding)的码农,没有一个极致的IDE环境,工作效率会很受影响的。当然啥时候Unix系统如果有Visual...
  • scaleqiao
  • scaleqiao
  • 2015年03月15日 17:35
  • 2441

VIM中常用序列生成及数值转换

"output A-Z exe "let i=65|while i
  • tms_li
  • tms_li
  • 2013年01月15日 22:49
  • 1514

VIM可视模式插入一列

按键CTRL-V进入可视模式 选择一列 按键I(shift + i) 输入要插入的字符 按键ESC 一列被插入...
  • FAR0001
  • FAR0001
  • 2015年05月12日 23:21
  • 656

vim自动生成main函数和自动添加注释

vim自动生成C代码和自动添加注释
  • fengjunwang1980
  • fengjunwang1980
  • 2016年06月28日 21:47
  • 1320

vim+Doxygen实现注释自动生成

借鉴文章:https://www.cnblogs.com/zzqcn/p/4660615.html 为自己的代码写好注释是一个良好的习惯,而编写Doxygen风格的注释更是可以通过doxygen工...
  • bodybo
  • bodybo
  • 2017年12月01日 14:06
  • 217

利用VIM为源码添加行号

VIM编辑器是可以显示行号的。但是,有时候我们需要在整个代码的行首添加行号,怎么实现呢?实现的方法有很多,这里就介绍我知道的一种吧。 在每行行首添加某个字符串 :%s/^/your_string/...
  • u013490896
  • u013490896
  • 2016年01月23日 15:08
  • 1964

Linux vim如何实现文件中多行或者所有行相同列插入相同的字符串

1.可用于在选中的行上插入相同的内容 vi 下,如何在每行中插入?(类似UltraEdit的列编辑) 1: 定位光标 2: CTRL+v             #进入Visual Mode。 3:...
  • ZZ7ZZ7ZZ
  • ZZ7ZZ7ZZ
  • 2015年05月04日 11:16
  • 4535

超详细的vim+cscope 的使用规则 转载

写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE.但是对我等从Windows平台转移过来的Coder来说...
  • lhf_tiger
  • lhf_tiger
  • 2012年01月28日 00:25
  • 45877
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Vim中插入等差数值
举报原因:
原因补充:

(最多只允许输入30个字)