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

目录

简述

vim的三种模式

概述

转换方式

文本编辑

命令模式

插入(编辑)模式

底行模式

搜索关键字

显示行号

替换

多文件打开


简述

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

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

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

  • vim的一般使用方法:

vim filepath

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

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

vim的三种模式

概述

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

转换方式

文本编辑

命令模式

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

root@localhost \~# vim /etc/gitlab/gitlab.rb

p 粘贴复制的内容到光标所在行之上

dd 删除当前光标所在行

cc 剪切当前光标所在行

u 取消前一个动作

此时处于命令模式下。

插入(编辑)模式

在命令模式下输入a、A、i 、I、o、O中任何一个字符即可进入插入模式,在此模式下才可以对文件进行编辑,输入内容。在此模式下按 ESC键 退出到命令模式

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指数字)

搜索关键字

例如搜索 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」再按上下箭头的方式在两个文件之间切换。

如果是左右打开两个文件,可以通过先按 「ctrl + w」再按左右箭头的方式在两个文件之间切换。

参考: https://blog.csdn.net/Sevel7/article/details/105189768

https://blog.csdn.net/JunLeon/article/details/120407552

https://zhuanlan.zhihu.com/p/155973403

欢迎点赞、评论

相关推荐
huangdong_6 分钟前
1688商品图片批量下载与SKU图自动分类技术完整实现方案
运维·服务器
yyuuuzz13 分钟前
独立站运营的几个技术层面常见问题
大数据·运维·服务器·网络·数据库·aws
utf8mb4安全女神14 分钟前
MySQL8.0.43的下载安装【二进制安装】【shell脚本】【环境准备】【my.cnf配置】【修改密码】
linux·服务器·网络
凡人叶枫20 分钟前
Effective C++ 条款33:避免遮掩继承而来的名字
linux·服务器·开发语言·c++·嵌入式开发
凡人叶枫21 分钟前
Effective C++ 条款31:将文件间的编译依存关系降至最低
linux·开发语言·c++·php·嵌入式开发·effective c++
MXsoft61825 分钟前
**用自动化脚本给MAC误阻断留条后路:可审计、可回滚的准入控制方案**
运维·macos·自动化
ai_coder_ai41 分钟前
在自动化脚本中如何调用大语言模型?
运维·语言模型·自动化
冰帆<1 小时前
[特殊字符] 深度起底:突破火山引擎 Ark-Helper 的 Linux 底层环境死锁,顺手魔改一份 Windows 一键安装脚本!
linux·windows·火山引擎
我星期八休息1 小时前
Linux系统编程—mmap文件映射
java·linux·运维·服务器·数据库·mysql·spring
java_cj1 小时前
从kubectl源码学pprof:生产环境性能分析的实战指南
运维·云原生·容器·kubernetes