1.替换变量
在正规表达式中使用
\( 和 \)
符号括起正规表达式,即可在后面使用\1、\2等变量来访问 \(
和 \) 中的内容。
example:
·将 data1 data2
修改为 data2
data1
-----------------------------------
:s/\(\w\+\)\s\+\(\w\+\)/\2\t\1
-----------------------------------
·将
Doe, John 修改为 John
Doe
-----------------------------------
:%s/\(\w\+\), \(\w\+\)/\2
\1/
-----------------------------------
2.利用函数式替换
用法:
---------------------------
:s/替换字符串/\=函数式
---------------------------
说明:
·函数式可以有多个,返回值可以用字符串连接符.连接起来,如line(".")返回匹配行号(:help
line() ),submatch(n)可以引用\1、\2的内容,其中submatch(0)引用匹配的整个内容;
·函数式也可以是字符串常量,用双引号引起来。函数式也可以是任意表达式,需要用小括号引起来,如(3+2*6);
·函数式还可以是寄存器中的内容,通过"@寄存器名"访问,如@a(不需要加引号,但是还是需要用.来连接);
example:
·要将下列8行的data0依次变成data0~7(前面的数字是行号)
double
data0;
double data0;
double data0;
double data0;
double
data0;
double data0;
double data0;
double
data0;
如果安装有perl的话,我以前一般都是借助perl来完成这件事情:
---------------------------------------------------------------------------
:r
!perl -n -le "if(s/^(double\s+data)\d;/$1$k;/){ $k++; print $_; }"
%:p---------------------------------------------------------------------------
其中%:p表示包含完整路径的文件名
现在只用vim我们就可以完成这样的事情:
首先将光标移到125行(line(".")返回当前匹配行的行号,line("'a")返回mark
a的行号):
---------------------------------------------------------------------------
ma
:%s/^\(double\s\+data\)\d\(;\)/\=submatch(1).(line(".")-line("'a")+1).submatch(2)/g
---------------------------------------------------------------------------
再或者
首先将光标移到125行(line("'V7j
:%s/^\(double\s\+data\)\d\(;\)/\=submatch(1).(line(".")-line("'
---------------------------------------------------------------------------
3.匹配的开始与结束
\zs和\ze可以用于替换操作中指明替换的开始与结束,如上例中可以以更短的操作来实现:
---------------------------------------------------------------------------
ma
:%s#^double\s\+data\zs\d\ze#\=(line(".")-line("'a")+1)#g
---------------------------------------------------------------------------
另外,还可以使用vim表达式来实现上述功能:
---------------------------------------------------------------------------
:let
n=0 | g/^double\s\+data\zs\d/s//\=n/ | let
n+=1
---------------------------------------------------------------------------
其中
·| 用来分割不用的命令;
·g
在匹配后面模式的行中执行指定的ex命令
·\zs
指明匹配由此开始
·s//\=n
对匹配模式进行替换,匹配模式为空,表示以上一次匹配成功的模式,
并且指明替换是一个表达式;
4.
高级递增替换
把下面几句放到
_vimrc
-------------------------------
let g:I=0
function!
INC(increment)
let g:I =g:I + a:increment
return
g:I
endfunction
------------------------------
·对于上述问题,可以这样解决:
-----------------------------------------------------
:let
I=-1 | %s/^
double\s\+data\zs\d\ze/\=INC(1)/
-----------------------------------------------------
·还可以生成数字序列,如生成1~100间隔为5的数字序列:
--------------------------------------
:let
I=0 | ‘a,’b
s/^/\=INC(5)/
--------------------------------------
Normal
0
7.8
磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
分享到:
相关推荐
《vim高级使用技巧详解》 vim作为一款强大的文本编辑器,深受程序员和系统管理员的喜爱。本文将深入探讨一些vim的高级使用技巧,帮助有经验的用户提升编辑效率。 1. **插入行号** - `g/^/exec "s/^/".strpart...
Easwy大牛的高级VIM技巧网页版是一个专门针对Vim进阶使用的教程,旨在帮助用户提升在Vim中的工作效率。 在Vim的世界里,掌握高级技巧意味着能更快地编写代码、查找和替换文本,以及进行复杂的文件操作。以下是一些...
本文将介绍一些VIM编辑器的高级技巧,旨在帮助那些已经熟悉基本操作并希望进一步提高工作效率的用户。这些技巧不仅适用于VIM,也适用于其前身VI编辑器。 #### 二、选定文字与拷贝粘贴 1. **可视模式**:通过`v`键...
通过学习和实践《Vim实用技巧》中的代码示例,你可以掌握这些高级技巧,将Vim打造成个人专属的高效开发环境。书中的每个示例都旨在帮助你深入理解Vim的工作方式,并将其应用于日常编程任务中,真正实现“Edit Text ...
通过学习VIM中文手册,你不仅可以掌握基本编辑技巧,还能深入探索VIM的高级特性,提升编程和文本编辑的效率。VIM是一个值得投入时间学习的工具,一旦熟悉其工作方式,你将会发现它的强大和效率无与伦比。
《Vim实用技巧》这本书旨在帮助用户掌握Vim的高级用法,提升编辑效率。 一、Vim的基本操作 1. 启动与退出:通过命令行输入`vim`加文件名启动,使用`:q`退出,`:q!`强制退出,`:wq`保存并退出。 2. 模式切换:Vim...
本资料包包含了“vim中文文档”和一些“常用技巧”,旨在帮助用户更高效地掌握和使用Vim。 中文文档部分: 1. **界面与操作模式**:Vim有三种主要模式——正常模式(Normal mode)、插入模式(Insert mode)和...
### vim高级实用手册知识点解析 #### 一、简介与背景 `vim`是Vi Improved的缩写,是在Vi基础上改进而来的高级文本编辑器。它不仅继承了Vi的所有特性,而且还增加了很多强大的功能,比如多级撤销、语法高亮、命令...
### Vim高级功能 1. **使用GUI版本**:在图形用户界面环境中使用Vim,包括使用鼠标、剪贴板和选择模式等。 2. **做大修改**:掌握Vim的大规模文本修改功能,如记录与回放命令、替换文本、命令范围的定义以及改变文本...
**vim的实用技巧** 在IT领域,vim作为一个强大的文本编辑器,因其高效、灵活和高度可定制性而深受...本书“vim的全新实用技巧高清第二版”将更全面地介绍这些技巧和更多高级特性,是vim爱好者不可多得的参考资料。
本手册主要包含Vim的基本使用方法和高级技巧,目的是让用户能快速掌握Vim的操作并提高编辑效率。 手册中首先介绍了Vim的帮助文件的使用,包括如何移动光标、关闭窗口、离开Vim以及如何使用光标键和命令行进行高效...
最后,手册可能会包含一些实用技巧和解决问题的方法,比如在Vim中运行外部命令、使用Vim与版本控制系统集成,以及如何调试程序等。 总之,《vim用户手册中文》是Linux和Unix用户掌握Vim不可或缺的参考资料。通过...
- **在线资源**:除了官方文档外,互联网上有大量的Vim教程、插件介绍和使用技巧分享。 - **社区支持**:加入Vim用户社区,参与讨论和技术交流,有助于快速解决遇到的问题。 #### 四、具体操作技巧举例 - **移动...
《vim中文参考手册》是广大vim用户不可或缺的学习资源,它详尽地介绍了这款强大的文本编辑器的使用方法和技巧,被誉为vim的“葵花宝典”。vim,全称Vi Improved,是在传统Vi编辑器的基础上发展起来的一个强大且高度...
本书中的技巧按照功能和应用场景进行了分类,下面列举了一些关键章节及其涵盖的主题: 1. **基础操作**: - 快速移动光标 - 搜索和替换文本 - 使用模式切换提高效率 2. **文本编辑**: - 复制、剪切和粘贴操作的...
在“vim最新中文帮助文档”中,你可以找到关于Vim的详尽信息,包括基本操作、高级编辑技巧、宏定义、脚本编写以及Vim的配置和扩展。以下是一些关键知识点: 1. **基础操作**:Vim有三种模式——普通模式、插入模式...