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黏贴。

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

相关文章推荐

JSP登陆范例等差等比求和

  • 2009年12月08日 13:59
  • 44KB
  • 下载

等差区间(写的很脑残)——中国(北方)大学生程序设计训练赛(第一周)F

[等差区间][z]Description 已知一个长度为 n 的数组 a[1],a[2],…,a[n],我们进行 q 次询问,每次询问区间 a[l],a[l+1],…,a[r−1],a[r]...

bzoj 2124: 等差子序列 树状数组&hash

这道题太神了根本想不到QAQ。        题目就是求是否存在i        我们不妨枚举中间那个数为x,然后按照输入的顺序对x进行操作。如果x满足条件,也就是存在两个数y和z,x-y=z-x,并...

[BZOJ 2124] 等差子序列 Hash+树状数组(附粗略证明)

题目传送门:【BZOJ 2124】 题目大意:共输入 T 组数据。每组数据给一个 1 到 N 的排列,询问是否存在至少三个数按下标顺次排列组成等差数列。( N ≤ 10000,T ≤ 7 )...
  • ArcCCcp
  • ArcCCcp
  • 2017年07月28日 15:10
  • 112

对等差分数组

创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference)(△ or ⊕)数组. 给出两个集合 (如集合 A = {1, 2, 3} 和集合 B =...

C++ 插入排序并统计数值出现的次数

运行结果:-12 -12 -12 -12 0 0 1 1 1 2 2 3 3 3 4 4 4 4 3 3 3 2 2 1 1 1 0 0 -1...
  • oadjing
  • oadjing
  • 2015年09月08日 18:05
  • 188

qt4.8与达梦数据库间的插入和更新字符串数值问题

最近使用qt-creator2.4.1和qt-4.8.1-mingw对达梦数据库进行插入和更新字符串数值发现了一些小问题,也许是qt4本身与达梦DM7之间的一些问题,个人不是很清楚,但是也有正确实现的...

第十三周项目1.5 折腾数组(5) 在数组中插入新数值

/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:test.cpp *作 者:anGelovEr 王坤 *完成日期...

bzoj2124 等差子序列

位运算+线段树维护哈希值
  • sdfzyhx
  • sdfzyhx
  • 2016年06月05日 19:54
  • 522
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Vim中插入等差数值
举报原因:
原因补充:

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