VIM中的替换命令使用
vim替换语法
:[range]s/{目标}/{替换}/[flag]
分隔符可以使用/
,#
,+
三种,替换命令中默认s后面的第一个字符为分隔符
[range]
不写range:默认为光标所在的行
.:光标所在的行
n:第n行
$:最后一行
'a:标记a所在的行(之前要使用ma做过标记)
.+1:当前光标所在行的下面一行
$-1:倒数第二行(这里说明我们可以对某一行加减某个数值来取得相对的行)
m,n:第m~n行
%:所有行(与 1,$ 等价)
?chapter?:从当前位置向上搜索,找到的第一个chapter所在的行(其中chapter可以是任何字符串或者正则表达式)
/chapter/:从当前位置向下搜索,找到的第一个chapter所在的行(其中chapter可以是任何字符串或者正则表达式)
注意:上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏移量。
[flag]
c: confirm,每次替换前询问;e: error, 不显示错误;g: globle,不询问,整行替换。如果不加g选项,则只替换每行的第一个匹配到的字符串;i: ignore,忽略大小写。
注意:这些选项可以合并使用,如 cgi 表示不区分大小写,整行替换,替换前询问
[正则表达]
数量
* 匹配0-任意个
\+ 匹配1-任意个
\? 匹配0-1个
\{n,m} 匹配n-m个
\{n} 匹配n个
\{n,} 匹配n-任意个
\{,m} 匹配0-m个
位置
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾
元字符
. 匹配任意字符
[abc] 匹配方括号中的任意一个字符,可用-表示字符范围。如[a-z0-9]匹配小写字母和数字
[^abc] 匹配除方括号中字符之外的任意字符
\d 匹配阿拉伯数字,等同于[0-9]
\D 匹配阿拉伯数字之外的任意字符,等同于[^0-9]
\x 匹配十六进制数字,等同于[0-9A-Fa-f]
\X 匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f]
\l 匹配[a-z]
\L 匹配[^a-z]
\u 匹配[A-Z]
\U 匹配[^A-Z]
\w 匹配单词字母,等同于[0-9A-Za-z_]
\W 匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]
\t 匹配<TAB>字符
\s 匹配空白字符,等同于[\t]
\S 匹配非空白字符,等同于[^\t]
注意:在正则式中以 \(
和 \)
括起来的正则表达式,在后面使用的时候可以用 \1
、\2
等变量来访问
\(
和 \)
中的内容。
vim替换命令详解
vim在命令模式下
1、替换某一行字符
:s/abc/def
替换当前行第一个 abc 为 def(等效于:.s/abc/def/
)
:s/abc/def/g
替换当前行所有的 abc 为 def(等效于:.s/abc/def/g
)
:ns/abc/def
替换第n行第一个 abc 为 def
:$s/abc/def
替换最后一行第一个 abc 为 def
2、替换某几行的字符
:.,+5s/abc/def
替换当前行及以下5行的第一个 abc 为 def
:.,+5s/abc/def/g
替换当前行及以下5行的所有的 abc 为 def
:1,.s/abc/def/g
替换第一行到当前行的所有的 abc 为 def
:m,ns/abc/def/g
替换第m行到第n行的所有的 abc 为 def
:1,$s/abc/def/g
替换第一行到最后一行的所有的 abc 为 def
3、替换所有的字符
:%s/abc/def
替换所有行的第一个 abc 为 def
:%s/abc/def/g
替换所有的 abc 为 def
正则表达
删除以空格或TAB开头到结尾的空行:
%s/^[ |\t]*$//
或者g/^[ |\t]*$/d
把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法
:%s/abc\(.*\)xyz/xyz\1abc/g
:%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g
VIM中的替换命令使用相关推荐
- vim 中的替换命令
查找并替换 1显示行号 :set nu 2隐藏行号 :set nonu 3查找关键字 :/you ##效果:查找文件中出现的you,并定位到第一次出现的位置,按n匹配到下一个you,N匹配到上一个 ...
- vi/vim 中可以使用 :s 命令来替换字符串。
vi/vim 中可以使用 :s 命令来替换字符串.以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询. :s/vivian/s ...
- vim中执行shell命令小结
vim中执行shell命令,有以下几种形式 1):!command 不退出vim,并执行shell命令command,将命令输出显示在vim的命令区域,不会改变当前编辑的文件的内容 例如 :!ls - ...
- vim 中如何替换选中行或指定几行内的文本
以下命令将文中所有的字符串idiots替换成managers: :1,$s/idiots/manages/g 2. 通常我们会在命令中使用%指代整个文件做为替换范围: :%s/search/repla ...
- Vim中的常用命令总结(持续补充完善)
文章目录 前言 VIM命令 Vim的三种模式 (1) 命令模式 (2) 插入模式 (3) 退出模式 跳转 (1) gg :跳转到文件开头 (2) Shift + g :跳转到文件结尾 分割窗口 (1) ...
- vi/vim中复制粘贴命令
1. 选定文本块.使用v进入可视模式,移动光标键选定内容. 2.复制的命令是y,即yank(提起) ,常用的命令如下: y 在使用v模式选定了某一块的时候,复制选定块到缓冲区用: ...
- Linux中文件替换命令
在Linux系统中,经常与遇到将很多文件拷贝后,只需要修改其中几个配置,这时候就可以用sed命令一次性进行替换修改. 将 file_name文件中的old-char全部替换为 new-char,相应的 ...
- Vim中如何替换字符串
替换字符串 全局,替换字符串: 命令模式 :% s/old/new/g old,new不需要双引号,g表示全局,如果没有g就是每一行的第一个会被改变 例子: % s/test_shm_tool.c/$ ...
- 在vim中使用查找命令查找指定字符串
要自当前光标位置向上搜索,请使用以下命令: /pattern Enter 其中,pattern 表示要搜索的特定字符序列. ...
最新文章
- C++_泛型编程与标准库(七)
- linux mint系统分区,Win7删除了linuxmint的系统分区如何恢复
- Design Pattern - Facade(C#)
- 如何在SQL Server中使用触发器
- 京东每日特价专栏仿写
- jQuery EasyUI datagrid本地分页
- linux线程池简单实例
- CVE-2021-3129:Laravel远程代码漏洞复现分析
- 利用pushState开发无刷页面切换
- Linux进程被视为文件,Linux下如何知道文件被那个进程写
- mysql升级代码_phpstudy 升级mysql 及MySQL服务等问题(示例代码)
- 金税盘怎么安装在电脑上_金税盘处于锁死期不能开票怎么办?
- MySQL binlog日志三种模式选择及配置
- SDR与DDR的区别
- 获取GridView控件总列数
- bridging the gap between anchor-based and anchor-free detection via adaptive training sample select
- javascript的ActiveXObject造成“Automation服务器不能创建对象”
- 地理信息安全在线培训考试-判断题
- HarmonyOS鸿蒙学习笔记(1)基于eTS的入门应用结构简单梳理
- python算法 之 猜词游戏
热门文章
- R语言矩阵新增一列并提前作为第一列
- vue-router浅忆一下
- 【项目管理】--- 变更过程
- windows10桌面_Windows10自带的桌面便签太好用了!
- 计算机科学只用向量还是矢量,请高手指点:向量、数量、矢量、标量的区别和 – 手机爱问...
- 引用账户锁定无法登录_win10系统无法登陆提示引用账户当前已锁定,且可能无法登录的解决方法...
- 在PPT插入备注时,如何在放映时只让演讲者看到,其他人看不到
- mysql企业版集群版区别_MySQL版本Enterprise/Community/Cluster等版本的区别
- 电大通用计算机考试,电大计算机考试试题
- 固体物理 2022.9.30