Linux-vim文本编辑器-三种模式-vim里的替换

news/发布时间2024/5/16 7:33:00
1.
vi 和 vim 命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其
配置文件的参数。
vim 编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成。
vim 其实是 vi 的升级版
 
2.
vim三种工作模式
Vim编辑器中设置了三种模式: 命令模式、编辑模式、末行模式,每种模式分别又支持多种不同的命令快捷键,大大提高了工作效率,而且用户在习惯之后也会觉得相当顺手。要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。
 

 

命令模式:vim /etc/passwd
 
# 进行快捷键操作
## 光标的跳转
Shift + g | G                    // 将光标跳转到文件最后一行
gg                                   // 将光标跳转到文件的第一行
Ngg                                // 将光标跳转到指定的行(N为阿拉伯数字)
Shift + 4 | $                    // 将光标跳转到当前所在行的行末
Shift + 6 | ^ | 0               // 将光标跳转到当前所在行的行首
 
## 复制粘贴
yy                                  // 复制光标所在行的整行内容
p(小写p)                   // 将复制的内容粘贴到光标所在行的下一行
P(大写P)                  // 将复制的内容粘贴到光标所在行的上一行
Nyy|yNy                       // 将光标所在行整行内容及下面N-1行内容复制 (N为阿拉伯数字)
 
## 剪切删除
dd                                // 将光标所在行一整行内容,剪切(删除)
Ndd | dNd                    // 将光标所在行及下面N-1行内容剪切(N为阿拉伯数字)
Shift + d | D                 // 将光标所在字符及后面整行内容剪切(删除)
x                                  // 删除当前光标所在字符
Shift + x | X                 // 将光标所在当前字符的前一个字符删除
d + Shift + g | dG        // 将光标所在行及后面所有行内容删除
 
## 撤销回滚替换
u                                 // 撤销上一次操作
Ctrl + r                        // 恢复上一次撤销的操作
r                                 // 替换光标当前所在的一个字符
Shift + r | R                // 从光标所在字符开始进行替换直到按ESC结束
 
## 翻页
Ctrl + b                      // 向前翻页
Ctrl + f                       // 向后翻页
 
4.编辑模式
-- INSERT --
像正常的Windows文本编辑器一样,可以随意写入内容
 
## 从命令模式如何进入编辑模式
i                                // 在光标所在位置进入编辑模式(输入内容在光标之前)
I                               // 将光标跳转到光标所在行的行首并进入编辑模式(输入内容在光标之前)
a                              // 将光标跳转到光标所在字符的后一个字符并进入编辑模式(输入内容在光标之前)
A                              // 将光标跳转到光标所在行的行末并进入编辑模式(输入内容在光标之前)
s                              // 将光标所在字符删除并进入编辑模式(输入内容在光标之前)
S                              // 将光标所在行的整行内容删除并进入编辑模式
o                              // 将光标移动到当前所在行的下一行并进入编辑模式
O                             // 将光标移动到光标所在行的上一行并进入编辑模式
 
末行模式(底行模式)
# 在编辑器的左下角进行操作
显示行号、搜索、替换、保存、退出 ...
 
# 进入末行模式的方法
1)在命令模式下,输入冒号
2)在命令模式下,输入/                 (搜索想要的内容)

 

:w                            // 只保存但是不退出
:q                            // 退出但不保存 (没有改内容)
:wq                         // 保存退出 快捷键 Shift + zz | ZZ
:x                            // 保存退出 和:wq相等
:q!                          // 强制退出
:w!                         // 强制保存
:wq!                       // 强制保存并退出

 

E37: No write since last change (add ! to override)                         // 文件写入内容,没有保存,无法直接退出,除非强制退出
E45: 'readonly' option is set (add ! to override)                               // 只读文件,无法保存退出,只有root用户可以强制保存退出
E212: Unable to open and write files                                               // 文件无法写入,没有写入权限
E212: Can't open file for writing                                                      // 文件无法写入,文件写入到一个不存在的目录中

 

替换
:%s                               #要被替换的内容#替换的内容#g
%:                              所有行
s:                               search 搜索
g:                               全局替换

 

光标跳转及命令
 
## 显示行号
:set number 简写 :set nu
 
## 取消显示行号
:set nonumber 简写 :set nonu
 
## 光标跳转到指定行
:N (N为阿拉伯数字)
 
## 忽略大小写
:set ic
 
## 取消忽略大小写
:set noic## 自动缩进
:set ai
 
## 取消自动缩进
:set noai
 
## 显示制表符,结束符...
:set list
 
## 取消
:set nolist
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/13213888.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

httprunner 4.x学习 - 04提取(extract)和校验(validate)

前言 支持 2 种响应结果字段提取方式:1.jmespath 表达式:响应结果为 JSON 结构,采用 jmespath 表达式进行参数提取。参考教程https://jmespath.org/tutorial.html2. 正则表达式(regex):返回的非JSON 格式,可以用正则表达式(regex) 提取。需要具备一定的正则知识 extra…

Python3 YOLOv8 车牌号识别提取

参考https://blog.csdn.net/Pan_peter/article/details/130465041 (参考教程) https://wwwf.lanzout.com/iCY5N0uhltdg (car.pt 已下载) https://github.com/ultralytics/ultralytics/issues/2046 (可视化参数问题) https://cloud.tencent.com/developer/article/2214890 (…

C++U6-12-阶段复习测评

7、贝尔曼福特算法,是按顺序一轮一轮的松弛,如果有可以松弛的那就再来一轮;这个题第二轮就没有可以松弛的了,所以就没有第3轮了 8、这题是dijkstra算法,算法逻辑是: Dijkstra 最短路径算法的步骤如下:初始化:创建一个距离数组 dist,用于存储起点到每个节点的初始估计…

H3C配置IRF实现网络设备堆叠

网络设备虚拟化-H3C交换机堆叠配置堆叠的概述 在此之前了解一下什么是堆叠,堆叠是指将多台交换机设备通过线缆连接后组合在一起,虚拟化成一台设备,是一种横向虚拟化技术。堆叠作为一种横向虚拟化技术,将多台设备在逻辑上虚拟成一台设备,可以简化网络的配置和管理。华三的虚…

小小逻辑判断符的错误使用,资损几万块

小小逻辑判断符,资损几万块分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/故事 这是一个真实事件,三年前老猫负责公司的支付资产业务。为了响应上级号召,加强国央企之间的合作,公司新谈了一个支付对接的渠道(当然这个支付渠道其实很冷门的,也是为了对接而对接…

MySQL 函数

汇总函数 rollup rollup是 SQL 关键字,在 MySQL 中得用with rollup。它是group by子句的扩展,用于统计后增加一行汇总数据。 举例,现有库存表,我们按仓库名称分组,统计每个仓库的产品总量,最后来一个汇总。 mysql> SELECT * FROM inventory; +----+---------------+--…