一、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命令行快捷操作及查找替换相关推荐

  1. 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 ...

  2. Linux中vi不保存强制退出的命令是什么?

    本篇文章介绍了Linux中vi不保存强制退出的命令,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧. 所有的 Unix Like 系统都会内建 vi 文书 ...

  3. linux命令wget的url路径太长,Linux中WGET下载https链接及WGET命令的详解

    Linux中WGET下载https链接及WGET命令的详解 使用如下的命令下载https链接: ```bash wget -r -np -nd --accept=gz --no-check-certi ...

  4. 字串处理 expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。

    expr在linux中是一个功能非常强大的命令.通过学习做一个小小的总结. 1.计算字符串的长度.我们可以用awk中的length(s)进行计算.我们也可以用echo中的echo ${#string} ...

  5. suse 新增用户oracle,在SUSE Linux中让其他用户能运行Oracle命令

    SUSE Linux中让其他用户能运行Oracle命令的方法介绍: suid/guid的问题: 要求非Oracle用户也能运行sqlplus等oracle命令. 解决方法: 假如希望设置s u i d ...

  6. linux 中常见的压缩和解压缩的命令

    # linux 中常见的压缩和解压缩的命令 一.tar 1.解压: tar zxvf filename.tar 2.压缩: tar czvf filename.tar dirname 二.gz 1.解 ...

  7. linux中的 ip addr 和 ip link命令详解

    linux中的 ip addr 和 ip link命令详解 一.ip addr命令 我是使用的linux系统是redhat7.3,其它linux的相关操作大同小异(在这里不做赘述) 1.查看 (1). ...

  8. Linux下dpkg的用法,linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...

  9. Linux之sed:修改器按照字符和行数进行筛选和替换行值 选项[动作

    说明 sed用于选取替换删除新增 sed [选项] [动作][文件]选项: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会把经过sed命令处理的行输出到屏幕. -e:允许对输入数 ...

最新文章

  1. python查看所有异常_如何获取python异常发生的实际行号?
  2. 2021清华本科特奖答辩现场:有人用AI识别甲骨文,有人研究6G,奥运冠军:走下领奖台一切归零...
  3. git commit如何修改默认编辑器为vim
  4. 【Python】这款拓展让你的jupyter lab使用更高效
  5. 列表推导式与生成表达式的区别
  6. p50会搭载鸿蒙吗,华为Mate40和华为P50也会搭载鸿蒙,华为Mate30跌至白菜价让路
  7. 线程锁定CPU linux,linux 线程与CPU绑定
  8. 海信集团:通过数据来驱动企业的管理,让数据真正成为生产力
  9. 经典小程序源码及其下载地址
  10. lin接口 连接计算机,db9接口(lin接口db9定义)
  11. SAPJCO3升级3.1后报错java.lang.UnsatisfiedLinkError: sapjco3.dll解决
  12. ldaptemplate 分页_分页机皮带跑偏调整方法
  13. C语言实现lagrange theorem拉格朗日定理的算法(附完整源码)
  14. matlab rawdat,工控网络安全态势感知算法实现.pdf
  15. 1055 mysql_mysql8.0.1 报错1055
  16. 中关村科金李超:多元融合成为音视频技术发展新风向
  17. 浅析SIEM、态势感知平台、安全运营中心
  18. 操作系统--进程调度实验报告
  19. SEO优化怎么提升网站排名
  20. MT【35】用复数得到的两组恒等式

热门文章

  1. 一加Ace怎么样?旗舰机水准的性能王牌
  2. c语言左移函数_corl_,全国计算机等级三级网络技术上机题库100套.doc
  3. 基于FFmpeg和Wasm的Web端视频截帧方案
  4. FortiGate防火墙配置日志定时上传
  5. 如何增肥,变成肌肉男【转】
  6. 如何用java实现每天给家人说晚安!!!
  7. 2012中国知识管理论坛成功举办,演讲内容公开了
  8. 联想小新15怎么样?看完对比便知道
  9. 微信爬爬猫---公众号文章抓取代码分析
  10. 产品结构优化叠加渠道红利释放,劲仔食品是下一个食品大牛股吗?