vim独家秘技两条(1)在任意列中插入等差数列(非插件)(2)利用shell命令插入某个目录下的所有文件名(可用于cocos2d-x android的.mk脚本配置)(上)
2013-12-09 10:13
597 查看
在任意行内插入有序数列
我们目标是在 30行的“I LOVE U!”的“U”和“!”之间,
纵向插入公差为1的等差数列。(即插入:1,2,3...)
1,先让我们用神器的方法创建30行的“I LOVE U!”
第1步:连续按两次[ESC]键,确保在一般模式。
第2步:键入30
第3步:[shift]+o(插入多行文字)
第4步:输入“I LOVE U!”
第5步:[ESC]键
第6步:gg(回到首行)
2,生成一个数列
不通过vim插件我们不能在任意列插入数列,但是我们可以通过一些变通的方法实现。首先我要制造出来一个等差序列。这边有多种方法实现。你可以参考用“宏录制”方法,在全文最下方空白部分制造一列有序数列,再将其拷贝黏贴到需要插入的列。
下面我们就讨论比较巧妙的一种方法。在行首插入一列有序数列.
首先你要先选中我们要添加数列的行数:
第1步:通过“块操作”ctrl+v进入块操作。
第2步:这里我们要为前30行插入数列,于是我们可以先gg回到行首
第3步:然后再键入29j,选中30列首字母。
第4步:然后执行命令:
:let i=1 | '<,'>g/^/ s//\=i.' '/ | let i+=1
详解:
{
(a)let {expression} 即赋值命令。let i=1 给变量 i 赋值 1。let i+=1 给变量 i 的值增加 1。
(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,犹豫我们的总函数是30行(两位数)所以只要向右移动一格。
第4步:然后再键入29j,选中30列首字母。
第5步:按d键 剪切选中的“列块”(注:y是复制,x是删除)
第6步:删除所有行首空格
:%s/^ *//
第7步:gg光标回文首,然后7l移动到U字母上(也可通过h,j,k,l方向键移动到该位置)
第8步:p黏贴。
下一篇:http://blog.csdn.net/liuyuyefz/article/details/17220177
我们目标是在 30行的“I LOVE U!”的“U”和“!”之间,
纵向插入公差为1的等差数列。(即插入:1,2,3...)
1,先让我们用神器的方法创建30行的“I LOVE U!”
第1步:连续按两次[ESC]键,确保在一般模式。
第2步:键入30
第3步:[shift]+o(插入多行文字)
第4步:输入“I LOVE U!”
第5步:[ESC]键
第6步:gg(回到首行)
2,生成一个数列
不通过vim插件我们不能在任意列插入数列,但是我们可以通过一些变通的方法实现。首先我要制造出来一个等差序列。这边有多种方法实现。你可以参考用“宏录制”方法,在全文最下方空白部分制造一列有序数列,再将其拷贝黏贴到需要插入的列。
下面我们就讨论比较巧妙的一种方法。在行首插入一列有序数列.
首先你要先选中我们要添加数列的行数:
第1步:通过“块操作”ctrl+v进入块操作。
第2步:这里我们要为前30行插入数列,于是我们可以先gg回到行首
第3步:然后再键入29j,选中30列首字母。
第4步:然后执行命令:
:let i=1 | '<,'>g/^/ s//\=i.' '/ | let i+=1
详解:
{
(a)let {expression} 即赋值命令。let i=1 给变量 i 赋值 1。let i+=1 给变量 i 的值增加 1。
(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,犹豫我们的总函数是30行(两位数)所以只要向右移动一格。
第4步:然后再键入29j,选中30列首字母。
第5步:按d键 剪切选中的“列块”(注:y是复制,x是删除)
第6步:删除所有行首空格
:%s/^ *//
第7步:gg光标回文首,然后7l移动到U字母上(也可通过h,j,k,l方向键移动到该位置)
第8步:p黏贴。
下一篇:http://blog.csdn.net/liuyuyefz/article/details/17220177
相关文章推荐
- vim独家秘技两条(1)在任意列中插入等差数列(非插件)(2)利用shell命令插入某个目录下的所有文件名(可用于cocos2d-x android的.mk脚本配置)(下)
- shell脚本:拷贝android源码下所有的Android.mk到特定目录
- 一个用于导出android项目配置宏为单个独立xml文件的shell脚本
- 一个shell脚本清空所有vim的配置!!
- 编写一个SHELL脚本,可以获得指定目录下的所有文件及文件夹的大小。输出的样式与 ls -lh 命令相同。
- shell脚本 过滤出对应目录下的所有png文件名
- user 版本 在system/bin/目录创建 shell命令 Android.mk
- Linux shell编程 5 ---- 利用shell脚本遍历某个目录下的所有文件
- shell脚本――批量增加、删除、重命名当前目录下所有文件名后缀
- android.mk中添加目录中所有cpp
- 很实用的sh脚本,【批量文件替换】【ssh远程命令执行】【统计某一目录下面所有文档总行数】等
- Vim编辑器和shell命令脚本
- Vim Skills——Windows利用Vundle和Github进行Vim配置和插件的同步
- batT脚本如何自动执行 adb shell 以后的命令(android抓包)
- shell脚本—插入命令2r
- 在任意目录下使用某个shell脚本
- 使用shell命令sed将指定目录下的所有文件中指定的字符串替换成指定的字符串
- shell脚本批量修改目录下所有文件中的部分语句
- android利用apkplug框架实现主应用与插件通讯(传递任意对象)实现UI替换
- 利用shell脚本批量复制文件到给定目录