Linux Vim 使用 显示行号、替换、查找、多文件打开等骚操作

目录

简述

vim的三种模式

概述

转换方式

文本编辑

命令模式

插入(编辑)模式

底行模式

搜索关键字

显示行号

替换

多文件打开


简述

vi编辑器是Linux系统下标准的编辑器。

那么简单的理解,就像是Windows下的记事本。

补充:vim是vi的升级版,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

  • vim的一般使用方法:

vim filepath

//如果直接输入vim则打开一个新文件

  • vim 有 3 种工作模式,分别是命令行模式、编辑模式、最底行模式。

vim的三种模式

概述

  • 命令行模式:最初进入vi之后的模式,该模式下可以移动光标进行浏览,整行删除,但无法输入文字。
  • 编辑模式:只有在该模式下,用户才能进行文字的编辑输入。
  • 最底行模式:该模式下,光标位于屏幕底行,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。

转换方式

文本编辑

命令模式

直接用命令(vi 文件名)打开一个文件的话,默认是在命令模式下。

root@localhost \~\]# vim /etc/gitlab/gitlab.rb ![](https://i-blog.csdnimg.cn/direct/4a821045938748768fbfd625839a5462.png) > p 粘贴复制的内容到光标所在行之上 > > dd 删除当前光标所在行 > > cc 剪切当前光标所在行 > > u 取消前一个动作 此时处于命令模式下。 ![](https://i-blog.csdnimg.cn/direct/72d0e2fb02d9424bb3c0903a8a16d80d.png) ### 插入(编辑)模式 > 在命令模式下输入a、A、**i** 、I、o、O中任何一个字符即可进入插入模式,在此模式下才可以对文件进行编辑,输入内容。在此模式下按 **ESC键** 退出到命令模式 ## ![](https://i-blog.csdnimg.cn/direct/97f83cb257c34c1f8253ae314975633c.png) > a、A、i、I、o、O字符作用如下: > > 1. a:在当前光标下一位开始编辑 > > 2. A:在当前光标所在行行尾开始编辑 > > 3. i:在当前光标开始编辑 > > 4. I:在当前光标所在行行首开始编辑 > > 5. o:在当前光标的下一行开始编辑 > > 6. O:在当前光标的上一行开始编辑 ### 底行模式 > 在命令模式下,通过输入 **:** (英文冒号)即可切换到底行模式,底行模式下可以做一些保存,字符替换等操作,底行模式下命令以回车结束,退出或者返回命令模式,或者**双击Esc**返回命令模式。 常用的底行模式下的命令如下: > **:set nu 显示行号** > > :set nonu 取消显示行号 > > :q 只退出,不保存 > > :wq 保存退出 > > :q! 强制退出 > > :wq! 强制保存退出 > **:%s/old/new 将old替换成new** > **:/string 查找字符串** > **:n 定位到n行(n指数字)** ![](https://i-blog.csdnimg.cn/direct/a1e3f883cd164bcea6e47af033124c39.png) ## 搜索关键字 **例如搜索 the写法:/the +回车** > 1、/+关键字 ,回车即可。 **/the** > > 此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置; > > 2、?+关键字,回车即可。?the > > 此为从文档挡圈位置向上查找关键字,按n键向上查找关键字; > > 3、查找单词"the"(忽略大小写) > > : /the\c //从光标位置开始查找 n 下一个 N 上一个 ## 显示行号 : set number //可简化为 set nu ## 替换 > :1,10s/old/new/g**替换 1 到 10 行** 所有 old 为 new(s 表示替换) > > :%s/old/new/g 替换整个文件的 old 为 new(% 是一个变量,在这里代表整篇文档) ## **多文件打开** 在 vim 中可以同时打开两个文件 ```bash [root@hepingfly]# vim -o gitlab.rb gitlab-secrets.json 上下分屏打开两个文件(小 o) [root@hepingfly]# vim -O gitlab.rb gitlab-secrets.json 左右分屏打开两个文件(大 O) ``` 如果是上下打开两个文件,可以通过先按 「ctrl + w」再按上下箭头的方式在两个文件之间切换。 ![](https://i-blog.csdnimg.cn/direct/3ad6ceb72f7449e095ef8fbc2b68b511.png) 如果是左右打开两个文件,可以通过先按 「ctrl + w」再按左右箭头的方式在两个文件之间切换。 ![](https://i-blog.csdnimg.cn/direct/5cdd7554a9634f419e5bb20bcd1c2433.png) 参考: https://blog.csdn.net/Sevel7/article/details/105189768 https://blog.csdn.net/JunLeon/article/details/120407552 [https://zhuanlan.zhihu.com/p/155973403](https://zhuanlan.zhihu.com/p/155973403 "https://zhuanlan.zhihu.com/p/155973403") 欢迎点赞、评论

相关推荐
Linux运维老纪1 小时前
Ansible 守护 Windows 安全(Ansible Safeguards Windows Security)
linux·windows·网络安全·自动化·云计算·运维开发·asible
bjzhang751 小时前
重启CentOS系统的rsyslogd服务
linux·centos·rsyslogd服务
Lw老王要学习1 小时前
Linux基础篇、第一章_01_3安装虚拟机手动安装部署Ubuntu22.04服务器
linux·运维·云计算
jsons11 小时前
Cliosoft安装
linux·运维·服务器
后院那片海1 小时前
Nginx核心功能
linux·服务器·nginx
运维实习生~1 小时前
Promtail+Loki+Grafana监控日志
linux·grafana
Mr-Apple2 小时前
docker安装Canal1.1.5,MySQL5.7踩坑
运维·docker·容器
默心2 小时前
CentOS环境下搭建seata(二进制、MySQL)
linux·mysql·centos
qxqxa2 小时前
dma_request_slave_channel_compat 与 dma_request_channel 的区别
linux·驱动开发