linux中vim命令怎么查找替换,vim命令行快捷操作及查找替换
一、Vim命令行模式常见快捷方式
1. 三种主要模式:
① 命令(Normal)模式:
默认模式,移动光标,剪切/粘贴文本
② 插入(Insert)或编辑模式:
修改文本
③ 扩展命令(extended command )模式:
保存,退出等
2. 模式间转换:
① 命令模式 --> 插入模式
i insert, 在光标所在处输入
此处按i键,结果如下
I 在当前光标所在行的行首输入
同理,按I键,结果如下
a append, 在光标所在处后面输入
同理,按a键,结果如下
A 在当前光标所在行的行尾输入
同理,按A键,结果如下
o 在当前光标所在行的下方打开一个新行
同理,按o键,结果如下
O 在当前光标所在行的上方打开一个新行
同理,按O键,结果如下
② 插入模式 --------> 命令模式
按ESC键
③ 命令模式 --------> 扩展命令模式
按:进入扩展命令模式,可输入命令
④ 扩展命令模式 --------> 命令模式
按ESC键取消命令或按enter键执行命令可从扩展命令模式进入命令模式
3. 关闭文件方法:
① 扩展命令模式
:q 退出
:q! 强制退出,丢弃做出的修改
:wq 保存退出
:x 保存退出
② 命令模式
ZZ 保存退出
ZQ 不保存退出
4. 扩展命令模式常用命令:
① w 写(存)磁盘文件
② wq 写入并退出
见上面的“关闭文件方式”
③ x 写入并退出
见上面的“关闭文件方式”
④ q 退出
见上面的“关闭文件方式”
⑤ q! 不存盘退出,即使更改都将丢失
见上面的“关闭文件方式”
⑥ r filename 读文件内容到当前文件中
⑦ w filename 将当前文件内容写入另一个文件
⑧ !command 执行命令
⑨ r!command 读入命令的输出
5. 命令模式光标跳转:
① 字符间跳转
h: 左 l: 右 j: 下 k: 上
#COMMAND:跳转由#指定的个数的字符
例如:按3h即向左跳转3个字符
② 单词间跳转
w:下一个单词的词首
e:当前或下一单词的词尾
当前单词词尾:
下个单词词尾:
b:当前或前一个单词的词首
当前单词词首
前一个单词词首
#COMMAND:由#指定一次跳转的单词数
例如:跳转3个单词的词尾,即3e:
③ 当前页跳转
H:页首 M:页中间行 L:页底
zt:将光标所在当前行移到屏幕顶端
zz:将光标所在当前行移到屏幕中间
zb:将光标所在当前行移到屏幕底端
④ 行首行尾跳转
^: 跳转至行首的第一个非空白字符
0: 跳转至行首
$: 跳转至行尾
⑤ 行间移动
G:最后一行
1G, gg: 第一行
6. 命令模式翻屏操作:
① Ctrl+f: 向文件尾部翻一屏
② Ctrl+b: 向文件首部翻一屏
③ Ctrl+d: 向文件尾部翻半屏
④ Ctrl+u:向文件首部翻半屏
7. 命令模式编辑操作:
① 字符编辑
x: 删除光标处的字符
#x: 删除光标处起始的#个字符
例如:删除光标处的3个字符,即3x
xp: 交换光标所在处的字符及其后面字符的位置
~:转换大小写
J:删除当前行后的换行符
② 替换命令(r, replace)
r: 替换光标所在处的字符
例如将光标处的r替换成b,则按rb键
R:切换成REPLACE模式
在命令模式下按R键进入REPLACE模式,可直接对光标所在处逐一进行替换
③ 删除命令
d$: 删除到行尾
d^:删除到非空行首
d0:删除到行首
dd: 删除光标所在的行
#dd:多行删除
如往下删除三行,按3dd
④ 复制命令(y, yank)
y: 复制,行为相似于d命令
⑤ 粘贴命令(p, paste)
p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴
至当前光标所在处的后面
粘贴整行(配合yy命令):
粘贴光标所在处的后面,例如,将光标所在处至行首位置复制粘贴到光标所在处的后面:
P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴
至当前光标所在处的前面
粘贴整行(配合yy命令):
粘贴光标所在处的前面,例如,将光标所在处至行首位置复制粘贴到光标所在处的前面:
⑥ 改变命令(c, change)
c: 修改后切换成插入模式
c$c^c0与之前的d和y类似
cc:删除当前行并输入新内容
C:删除当前光标到行尾,并切换成插入模式
二、Vim查找、替换方法
1. 命令模式:查找
① /PATTERN:从当前光标所在处向文件尾部查找
例如:查找“sshd”字符串
回车即高亮显示“sshd”字符串
② ?PATTERN:从当前光标所在处向文件首部查找
同上,/sshd命令改成?sshd,即向上查找包含sshd的字符串
③ n:与命令同方向
上例,/sshd查找时,按n键即向下查找第二个包含sshd的字符串,并将光标指向该处
如果是?sshd,按n键即向上查找第二个包含sshd的字符串
④ N:与命令反方向
同理,与n键方向相反
2. 扩展命令模式:查找并替换
① s: 在扩展模式下完成查找替换操作
格式:s/要查找的内容/替换为的内容/修饰符
例如:将查找mail字符串并替换成QQ
要查找的内容:可使用模式
例如:查找带有数字的字符串,替换为A
替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可
以使用“&”引用前面查找时查找到的整个内容
例如:查找mail字符串替换为在mail后加上“QQ”
修饰符:
i: 忽略大小写
加上i修饰符后,要查找的字符串无论大小写都匹配
g: 全局替换;默认情况下,每一行只替换第一次出现
例如:将该行中所有的47都替换成99,就需要加上g修饰符,否则只替换最先匹配到的
gc:全局替换,每次替换前询问
每次匹配到后提示是否替换,按照提示选择替换与否,直至将匹配到的字符都处理完
② s: 查找替换中的分隔符/可替换为其它字符
例如:将/sbin/nologin替换成/bin/bash
linux中vim命令怎么查找替换,vim命令行快捷操作及查找替换相关推荐
- Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决
Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决 参考:https://b ...
- Linux中vi不保存强制退出的命令是什么?
本篇文章介绍了Linux中vi不保存强制退出的命令,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧. 所有的 Unix Like 系统都会内建 vi 文书 ...
- linux命令wget的url路径太长,Linux中WGET下载https链接及WGET命令的详解
Linux中WGET下载https链接及WGET命令的详解 使用如下的命令下载https链接: ```bash wget -r -np -nd --accept=gz --no-check-certi ...
- 字串处理 expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。
expr在linux中是一个功能非常强大的命令.通过学习做一个小小的总结. 1.计算字符串的长度.我们可以用awk中的length(s)进行计算.我们也可以用echo中的echo ${#string} ...
- suse 新增用户oracle,在SUSE Linux中让其他用户能运行Oracle命令
SUSE Linux中让其他用户能运行Oracle命令的方法介绍: suid/guid的问题: 要求非Oracle用户也能运行sqlplus等oracle命令. 解决方法: 假如希望设置s u i d ...
- linux 中常见的压缩和解压缩的命令
# linux 中常见的压缩和解压缩的命令 一.tar 1.解压: tar zxvf filename.tar 2.压缩: tar czvf filename.tar dirname 二.gz 1.解 ...
- linux中的 ip addr 和 ip link命令详解
linux中的 ip addr 和 ip link命令详解 一.ip addr命令 我是使用的linux系统是redhat7.3,其它linux的相关操作大同小异(在这里不做赘述) 1.查看 (1). ...
- Linux下dpkg的用法,linux中管理包的apt和dpkg命令用法
1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...
- Linux之sed:修改器按照字符和行数进行筛选和替换行值 选项[动作
说明 sed用于选取替换删除新增 sed [选项] [动作][文件]选项: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕. -e:允许对输入数 ...
最新文章
- python查看所有异常_如何获取python异常发生的实际行号?
- 2021清华本科特奖答辩现场:有人用AI识别甲骨文,有人研究6G,奥运冠军:走下领奖台一切归零...
- git commit如何修改默认编辑器为vim
- 【Python】这款拓展让你的jupyter lab使用更高效
- 列表推导式与生成表达式的区别
- p50会搭载鸿蒙吗,华为Mate40和华为P50也会搭载鸿蒙,华为Mate30跌至白菜价让路
- 线程锁定CPU linux,linux 线程与CPU绑定
- 海信集团:通过数据来驱动企业的管理,让数据真正成为生产力
- 经典小程序源码及其下载地址
- lin接口 连接计算机,db9接口(lin接口db9定义)
- SAPJCO3升级3.1后报错java.lang.UnsatisfiedLinkError: sapjco3.dll解决
- ldaptemplate 分页_分页机皮带跑偏调整方法
- C语言实现lagrange theorem拉格朗日定理的算法(附完整源码)
- matlab rawdat,工控网络安全态势感知算法实现.pdf
- 1055 mysql_mysql8.0.1 报错1055
- 中关村科金李超:多元融合成为音视频技术发展新风向
- 浅析SIEM、态势感知平台、安全运营中心
- 操作系统--进程调度实验报告
- SEO优化怎么提升网站排名
- MT【35】用复数得到的两组恒等式