码迷,mamicode.com
首页 > 系统相关 > 详细

vim一行内交换单词的次序以及文本数据的列交换

时间:2015-04-04 18:31:29      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:vim

需求描述

1.假设将英文中所有中文名字为“Fan JianQiang”改成“QiangJian Fan”技术分享

2.将所有“change world,change mind!”替换成“change mind, change world!”技术分享

3.将下面示例数据的age列和ID列对换

name age ID  slary
a 20  1   10
b 19  2   10
c 21  3   10
d 21  5   10
e 22  4   10
f 23  6   10
g 23  7   10
h 17  8   10
j 24  10  10
k 26  9   10

命令实现

针对1、2需求最直接的方法就是整体文本替换;针对需求3,可以使用块选择,然后剪切,粘贴!不过不是本博文要阐述的内容。下面介绍另外一种实现方式:

需求1命令

:%s/\ (Fan\ ) \ (Jian\ )\ (Qiang\ )/\3\2 \1/

需求2命令

:%s/\ (world\ ), change \ (mind\ )/\2, change \1/

需求3命令

:%s/\ ([1-9][0-9]\ )  \ ([1-9].\ )/\2  \1/


这就是\ (\ )的使用方式

包含在其中的pattern将会存储起来,从左到右依次编号,一行当中最多存储9个。访问它们通过编号访问!比如上面的需求2,world存到编号1,mind存到编号2;因此\2, change \1就把world和mind调换为mind, change world,然后替换!需求1和需求3同理!

说明:由于\ 和(结合成了网页斜字体的转义。而不能显示,这里每个 \ 和 ( 中间都加了空格,注意空格不是命令的一部分

vim一行内交换单词的次序以及文本数据的列交换

标签:vim

原文地址:http://blog.csdn.net/cwcmcw/article/details/44873797

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!