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同理!

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

时间: 2024-10-27 06:04:06

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

vim - Vi IMproved, 一个程序员的文本编辑器

总览 (SYNOPSIS) vim [options] [file ..] vim [options] - vim [options] -t tag vim [options] -q [errorfile] ex view gvim gview rvim rview rgvim rgview 描述 (DESCRIPTION) Vim 是 一个 同 Vi 向上兼容的 文本 编辑器, 可以 用来 编辑任何 ASCII 文本, 特别 适合 用来 编辑 程序. 它对 Vi 作了 许多 增强: 多层撤销,

JAVASE02-Unit08: 文本数据IO操作 、 异常处理

Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** * java.io.Ob

文本数据的机器学习自动分类方法(转)

http://blog.csdn.net/jdbc/article/details/50586042 本文为第一部分,着重介绍文本预处理以及特征抽取的方法. 随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类.组织和管理,已经成为一个具有重要用途的研究课题.而在这些数据中,文本数据又是数量最大的一类."文本分类是指在给定分类体系下,根据文本内容自动确定文本类别的过程"(达观数据科技联合创始人,张健).文本分类有着广泛的应用场景,例如: 新闻网站包含大量报道文章,基于文章内容,

背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 读写文本数据 读写二进制数据 读写流数据 示例1.演示如何读写文本数据FileSystem/ReadWriteText.xaml <Page x:Class="Windows10.FileSystem.ReadWriteText" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x

JDBC学习笔记(三)大文本数据的读写

一.用JDBC向数据库插入大文本数据 String sql = "insert into my_clob values (null, ?)"; ps = conn.prepareStatement(sql); File f = new File("D:\\BaiduNetdiskDownload\\mysql\\jdbc.sql"); Reader reader = new BufferedReader(new FileReader(f)); ps.setChara

JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import java.io.IOException; /** * java标准IO(input/output)操作 * 输入流InputStrean:用于从数据源读取数据到程序中 * 输出流OutputStream:用于将数据发送至目标 * * 流划分为:节点流,处理流 * 节点流:又叫做低级流,特点:数据源明确,

Bulk Insert:将文本数据(csv和txt)导入到数据库中

将文本数据导入到数据库中的方法有很多,将文本格式(csv和txt)导入到SQL Server中,bulk insert是最简单的实现方法 1,bulk insert命令,经过简化如下 BULK INSERT schema_name . table_name FROM 'data_file' WITH ( FIELDTERMINATOR = 'field_terminator', ROWTERMINATOR = 'row_terminator', DATAFILETYPE=‘WideChar’ )

文本数据的机器学习自动分类方法

文本数据的机器学习自动分类方法(上): http://www.infoq.com/cn/articles/machine-learning-automatic-classification-of-text-data?utm_source=tuicool&utm_medium=referral 文本数据的机器学习自动分类方法(下): http://www.infoq.com/cn/articles/machine-learning-automatic-classification-of-text-

读写文本数据

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px Helvetica; color: #29556f } 使用其他分隔符或行终止符打印 问题: 你想使用print() 函数输出数据,但是想改变默认的分隔符或者行尾符. 解决方案: 可以使用在print() 函数中使用sep 和end 关键字参数,以你想要的方式输出.比如: 1 #正常输出 2 print('dmeon', 89 , 8, 23) 3 4 #指定分隔符, 5 print('dm