.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编辑器的常用命令的更多相关文章

  1. VIM编辑器的常用命令及使用!

    在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版. Vim能够得到这么多厂商与用户的认可,原因就是在Vim编辑器中有三种模式——命令模式.末 ...

  2. vim编辑器的常用命令

    按ESC键跳到命令模式,然后::w - 保存文件,不退出 vim.:w file -将修改另外保存到 file 中,不退出 vim.:w! -强制保存,不退出 vim .:wq -保存文件,退出 vi ...

  3. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  4. 4.Vim编辑器与Shell命令脚本

    第4章 Vim编辑器与Shell命令脚本 章节简述: 本章首先讲解如何使用Vim编辑器来编写.修改文档,然后通过逐个配置主机名称.系统网卡以及Yum软件仓库参数文件等实验,帮助读者加深Vim编辑器中诸 ...

  5. 你一定要知道的关于Linux文件目录操作的12个常用命令

    写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操 ...

  6. Linux检查和收集硬件信息的常用命令总结

    Linux检查和收集硬件信息的常用命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux基础真的很重要,基础不牢,地动山摇.这句话我是听老男孩创始人冉总说的一句话,起初 ...

  7. [转帖]linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 2019年06月28日 16:16:52 思维的深度 阅读数 30 https://blog.csdn.net/skh2015java/article ...

  8. linux中systemctl详细理解及常用命令

    linux中systemctl详细理解及常用命令 https://blog.csdn.net/skh2015java/article/details/94012643 一.systemctl理解 Li ...

  9. Linux内存运维操作及常用命令

    Linux内存运维操作及常用命令 1.问题诊断 1.1 什么是 Linux 服务器 Load Average? 1.2如何查看 Linux 服务器负载? 1.3服务器负载高怎么办? 1.4如何查看服务 ...

随机推荐

  1. 【Azure API 管理】解决调用REST API操作APIM(API Management)需要认证问题(Authentication failed, The 'Authorization' header is missing)

    问题描述 在通过REST API的方式来管理APIM资源,需要调用Azure提供的management接口.而这所有的接口,都是需要有Token并且还需要正确的Token.如若不然,就会获取到如下的错 ...

  2. SonarQube插件

    关于插件我本身使用不多,如果看不惯英文界面,那么就先装个中文插件吧. 或者上微软的官方网站进行下载 将下载的插件上传到自己的sonarqube的服务的机器上,放置插件目录下,重启sonarqube即可 ...

  3. 面试题五:Spring

    Spring IoC 什么是IoC? 容器创建Bean对象,将他们装配在一起,配置并且管理它们的完整生命周期. Spring容器使用依赖注入来管理组成应用程序的Bean对象: 容器通过提供的配置元数据 ...

  4. [心得]zookeeper

    1. 什么是zookeeper? 分布式协调服务 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管 ...

  5. 南京大学计算机基础 ELF和可执行文件格式

    1.可重定位目标文件格式 主要是由ELF头,一些节比如.text节,.rodata节,.data节,.bss节等,前面是只读的,后面是可读可写的,加上一个节头表 1.1 ELF头里面主要包含了16字节 ...

  6. Oracle如何以逗号分隔的字符串拆分为多行数据

    近期在工作中遇到某表某字段是可扩展数据内容,信息以逗号分隔生成的,现需求要根据此字段数据在其它表查询相关的内容展现出来,第一想法是切割数据,以逗号作为切割符,以下为总结的实现方法,以供大家参考.指教. ...

  7. Leetcode No.53 Maximum Subarray(c++实现)

    1. 题目 1.1 英文题目 Given an integer array nums, find the contiguous subarray (containing at least one nu ...

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

  9. 知识全聚集 .Net Core 技术突破 丨ABP vNext 开始

    介绍 很久没有更新博客了,之前想更新但是发现博客园崩了,外加工作上的调换也比较忙,最近有了点时间我来继续更新下这个系列的文章. 今年3月份我带着我们研发组同事,将公司产品从老Abp重构到Abp vNe ...

  10. Django基础07篇 ORM操作

    1.新增(类似数据库操作的insert) # 新增 #方式一: models.Category.objects.create(name='MySQL') #方式二: c = models.Catego ...