Linux命令(三)vim编辑器的常用命令
.subTitle { background: rgba(51, 153, 0, 0.53); border-bottom: 1px solid rgba(0, 102, 0, 1); border-top-left-radius: 7px; border-top-right-radius: 7px; color: rgba(255, 255, 255, 1); height: 1.8em; line-height: 1.8em; padding: 5px }
1. vi和vim介绍
vim是vi的升级版。都是Linux系统环境下的文件编辑器
2. 进入vim编辑器
vim 文件名(注:若文件名存在,则打开这个文件;文件名如果不存在,仍然能够进入vim编辑器,保存后退出会创建这个名字的文件
3. 退出
在退出之前,若在编辑状态按键盘上的【Esc】键
1) 不保存退出 :q
2)保存退出 :wq
3) 不保存强制退出 :q!
4. 输入内容
vim有三种模式:分别是命令模式;编辑模式;底行模式。三种可以相互切换
(图片来自网络)
1) 按【i】/【o】/【a】键进入编辑模式 可自由输入
【i】表示以插入方式编辑,类似于平时的insert编辑方式;
【o】表示以open方式编辑,即该方式下 会另起一行进行编辑;
【O】表示以Open方式编辑,即该方式下 在上一行进行编辑;
【a】表示以追加方式(append)编辑,在当前光标的下一个字母开始编辑;
【A】表示以追加方式(Append)编辑,在当前光标行的末尾开始编辑;
2) 按【Esc】键退出编辑模式进入命令模式,此时可照第3条的方式退出
5. 在命令模式下,浏览文件内容常用操作
1) 使用【:set nu】显示行号
2) 输入大写字母【G】,把光标定位到最后一行
3) 输入【gg】,回到第一行
4) 上下左右移动光标
① ↑ ↓ ← →
② H J K L
6. 在命令模式下,编辑内容的常用命令
1) 【dd】表示删除当前行
2) 【u】 撤销刚才的操作
3) 【Ctrl + r】 重做刚才的操作
4) 【yy】 复制当前行
5) 【p】 将剪切板的内容粘贴到当前行的下一行
7. 在命令模式下的搜索
格式: /关键词
搜索的结果使用【n】表示往下一个,【N】表示往上一个
8. 在命令模式下的区块操作
使用【Ctrl + V】 进入区块操作,然后按上下左右键可选定执行区块操作的范围,对选中的进行操作。可使用【Shift + I】 进入编辑模式进行编辑
9. 在命令模式下替换用法
1)将光标所在位置的 abc 替换为 xyz,那么就这样:【:s/abc/xyz/】,即格式为:【:s/】
2)将光标所在行的abc替换为xyz,那么就这样:【:s/abc/xyz/g】,即格式为:【:s/xx/xxx/g】
3)替换文件中所有行中的 abc替换为xyz,只需在替换命令的最前面加上了“1,$”,类似与“m,n”的格式,那么就这样:【:1,$s/abc/xyz/g】,格式为:【:1,$s/xx/xxx/g】
转义替换:
4)当前行里所有的“S.”替换为“S->”,就需要用到转义符:【:s/S\./S->/g】。因为点号“.”为特殊匹配符,在正则中表示单个字符,所以如果想匹配点号,就需要把“\”放在点号前面,表示取消点号的特殊意义。
5)将aaa 2008-07-01 bbb 替换为 aaa '2008-07-01' bbb, 则这样写:【:1,$s/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)/'\1'/g】
还有其他更复杂的,我们要逐步解释一下,这里面共涉及了三个知识点:
第一个知识点:[0-9] 表示 0 到 9 之间的任一个数字,这是正则中表示数字集合的标准写法。
第二个知识点:{n} 表示将此符号前面的元素重复 n 遍,所以 [0-9]{4} 就表示一个四位数的数字。
第三个知识点:如果在匹配方案中用到了(),则表示要暂存括号中所匹配到的内容,而 \1 表示替换为暂存的内容(题外话:如果存在多个括号组,则后面要通过编号来依次对应,如 \1、\2、\3 等)。
Linux命令(三)vim编辑器的常用命令的更多相关文章
- VIM编辑器的常用命令及使用!
在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版. Vim能够得到这么多厂商与用户的认可,原因就是在Vim编辑器中有三种模式——命令模式.末 ...
- vim编辑器的常用命令
按ESC键跳到命令模式,然后::w - 保存文件,不退出 vim.:w file -将修改另外保存到 file 中,不退出 vim.:w! -强制保存,不退出 vim .:wq -保存文件,退出 vi ...
- Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令
Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...
- 4.Vim编辑器与Shell命令脚本
第4章 Vim编辑器与Shell命令脚本 章节简述: 本章首先讲解如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸 ...
- 你一定要知道的关于Linux文件目录操作的12个常用命令
写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操 ...
- Linux检查和收集硬件信息的常用命令总结
Linux检查和收集硬件信息的常用命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux基础真的很重要,基础不牢,地动山摇.这句话我是听老男孩创始人冉总说的一句话,起初 ...
- [转帖]linux中systemctl详细理解及常用命令
linux中systemctl详细理解及常用命令 2019年06月28日 16:16:52 思维的深度 阅读数 30 https://blog.csdn.net/skh2015java/article ...
- linux中systemctl详细理解及常用命令
linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...
- Linux内存运维操作及常用命令
Linux内存运维操作及常用命令 1.问题诊断 1.1 什么是 Linux 服务器 Load Average? 1.2如何查看 Linux 服务器负载? 1.3服务器负载高怎么办? 1.4如何查看服务 ...
随机推荐
- 【Azure API 管理】解决调用REST API操作APIM(API Management)需要认证问题(Authentication failed, The 'Authorization' header is missing)
问题描述 在通过REST API的方式来管理APIM资源,需要调用Azure提供的management接口.而这所有的接口,都是需要有Token并且还需要正确的Token.如若不然,就会获取到如下的错 ...
- SonarQube插件
关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧. 或者上微软的官方网站进行下载 将下载的插件上传到自己的sonarqube的服务的机器上,放置插件目录下,重启sonarqube即可 ...
- 面试题五:Spring
Spring IoC 什么是IoC? 容器创建Bean对象,将他们装配在一起,配置并且管理它们的完整生命周期. Spring容器使用依赖注入来管理组成应用程序的Bean对象: 容器通过提供的配置元数据 ...
- [心得]zookeeper
1. 什么是zookeeper? 分布式协调服务 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管 ...
- 南京大学计算机基础 ELF和可执行文件格式
1.可重定位目标文件格式 主要是由ELF头,一些节比如.text节,.rodata节,.data节,.bss节等,前面是只读的,后面是可读可写的,加上一个节头表 1.1 ELF头里面主要包含了16字节 ...
- Oracle如何以逗号分隔的字符串拆分为多行数据
近期在工作中遇到某表某字段是可扩展数据内容,信息以逗号分隔生成的,现需求要根据此字段数据在其它表查询相关的内容展现出来,第一想法是切割数据,以逗号作为切割符,以下为总结的实现方法,以供大家参考.指教. ...
- Leetcode No.53 Maximum Subarray(c++实现)
1. 题目 1.1 英文题目 Given an integer array nums, find the contiguous subarray (containing at least one nu ...
- Leetcode No.1 Two Sum(c++哈希表实现)
1. 题目 1.1 英文题目 Given an array of integers nums and an integer target, return indices of the two numb ...
- 知识全聚集 .Net Core 技术突破 丨ABP vNext 开始
介绍 很久没有更新博客了,之前想更新但是发现博客园崩了,外加工作上的调换也比较忙,最近有了点时间我来继续更新下这个系列的文章. 今年3月份我带着我们研发组同事,将公司产品从老Abp重构到Abp vNe ...
- Django基础07篇 ORM操作
1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...