在Linux中vim的三种模式分别为:命令模式、末行模式、编辑模式。以下是三者的关系图:

三种模式的彼此切换:

命令模式是vim中的默认模式。

命令模式切换至末行模式: 使用英文冒号(:)。

末行模式切换至命令模式: 按一下esc 或者 两下esc 或者 删除末行的全部命令。

命令模式切换至编辑模式: 按键 i 或者 a。

编辑模式切回命令模式: 按下esc。

其中,末行模式 和 编辑模式 之间,不能直接切换,必须切换到命令模式,再进行切换。

接下来细化到每个模式下的各种命令操作:

一、末行模式

末行模式中基本的操作有保存、另存、退出、查找、替换

  1、保存

    语法: :w (write)

    说明: 将已做的更改进行保存,主要是编辑模式操作完成之后的操作。

  2、另存

    语法: :w 文件路径

    说明:  保存和另存命令基本相似,区别在于另存需要指定文件的保存路径。

    

  3、退出

    语法: :q(quit)

    说明: 如果不想保存直接退出可使用(:q!), 其中!表示强制

    

  4、查找

    语法: /需要查找的字符串

    说明:可使用n(向下切换)、N(向上切换),改变光标位置。查找的位置会高亮

    

  5、替换

    语法: :s /被替换的字符/替换成的字符

    说明: 对当前行的首次出现的字符进行替换

    

    语法: :s /被替换的字符/替换的字符/g

    说明:对当前行的所有匹配的字符进行替换,g代表global

    

    语法:%s /被替换的字符/替换的字符

     说明:对整个文档的每一行首次匹配的字符串进行匹配替换

    

    语法: %s /被替换的字符串/替换的字符串/g

    说明: 替换整个文档匹配上的字符

    

二、命令模式

命令模式中基本的操作有:光标的移动、删除、复制。

    1、光标的移动

    语法:定位到最后一行 (G)

       定位到第一行 (两个gg)

       光标定位到指定行 (数字+G)

       光标上衣或下移 (数字+↑ 或 数字+↓)

    2、删除

    语法:删除当前行(dd)[行号重置]

    说明:删除当前行下一行不上移,文档行号会重新索引。

    语法:删除当前行(D)[当前行置空,保留当前行号]

    说明:删除当前行下一行不上移,删除后当前行留空

    语法:删除多行(数字+dd)

    说明:删除当前光标所在下一行的n条行数,n代表所填的数字。

    注意:在vim中,删除和剪切命令是一样的,可用粘贴命令显示出来。

    3、复制

    语法:复制当前行(yy)

    语法:复制多行(数字+yy)

    说明:表示复制当前行一下指定的行数

    温馨提示:复制完成后,可用p(parse)进行粘贴,粘贴在所在行的下一行

三、编辑模式

命令模式中基本的操作有进入编辑 和 退出。

    1、进入编辑

    语法:a (afterinsert)表示在光标后进行编辑插入

       i (insert) 表示在当前光标出进行编辑插入

    2、退出

    语法:使用esc即可退出 编辑模式

四、扩展

    1、行号的显示问题

    一般情况下,vim通过在末行模式中添加:set nu命令进行行号的显示,但这并不是

    全局的,通常在下一次打开文件时,行号会自动消失,为了便于操作,我们通常会

    修改vim的配置文件,来使得行号显示对全局生效。

    vim的配置文件位于当前用户的家目录。若没有可自行创建。文件名称为.vimrc

    

    在 当前文件输入 "set nu", 即可实现全局行号显示有效。

    2、异常关闭处理

    在文件没有正常关闭的情况下,如未保存直接通过远程窗口关闭。

    

    解决此问题的方式是:删除该文件的交换文件

    提示信息已经十分明确。交换文件.vimrc.swp在文件未被正常关闭时,自动创建。

    所以使用命令: rm -f .vimrc 即可

    注意:一般交换文件的通常格式为: 文件名.swp

     3、重做 / 撤销

    如果想要撤销操作,在末行模式中输入 :u

    取消撤销为: ctrl + r

    进行多步撤销为: 数字 + u

    4、:wq和:x退出的方式有何区别?

     在实际开发还是建议使用:x方式退出。
     区别在于wq的方式无论文件是否有修改都会对文件的最后修改时间进行改变。
     而:x只有在文件内容真正改变时才会修改文件最后修改时间。

逐步搭建Lamp环境之vim的三种模式以及基本命令的更多相关文章

  1. vim的三种模式

    vim的三种模式(最基本的) 命令模式:在该模式下是不能对文件进行编辑的,可以输入快捷键进行一些操作(删除. 复制.移动光标.粘贴)[打开默认                  是进入命令模式] 编辑 ...

  2. linux中vim编辑器三种模式及常用命令的使用

    Linux命令经常使用才会烂熟于心 命令行模式: 移动光标: 向下左右箭头可以移动光标: 将光标移动到行尾:$; 将光标移动到行头:^: 将光标移动到页尾:shift+g; 将光标移动到页头:1+sh ...

  3. [币严区块链]ETH搭建节点区块数据同步的三种模式:full、fast、light

    ETH  全节点Archive(归档)模式数据量增长图 上述图表可通过链接查看:https://etherscan.io/chartsync/chainarchive 通过上表,可以看到截止2019年 ...

  4. vi和vim的三种模式

    1.一般模式 用vi 或vim 命令 ——>一般模式 2. 插入模式 i,o,a,r 及其各自大写 ——>插入模式 一般用 i 3.命令行模式 用命令来完成 读取,存盘,替换,离开vim ...

  5. VIM 三种模式和常用命令

    引言 大数据开发工作中,周围的同事不是用 VIM 就是 Emacs,你要是用 UltraEdit 或 notepad++ 都不好意思跟人家打招呼...什么插件呀.语法高亮呀.拼写检查呀,能给它开的都给 ...

  6. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  7. Ubuntu18.04下搭建LAMP环境

    一.Apache2 web 服务器的安装 : 可以先更新一下服务器 1.sudo apt-get update             # 获取最新资源包 2.sudo apt-get upgrade ...

  8. CentOS 6.5 下源码搭建LAMP环境

    参考网站: http://wenku.baidu.com/link?url=Cvkqss2E9mnxXOZigMWPaCfqwsBxnm0sZ4aKE2oLAgQ888XxeC0DWOChxVqiHz ...

  9. •搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机

    本节所讲内容: 实战:搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机 LAMP架构:??? Linux+Apache+Mysql+PHP Linux+Apache+Mysql/MariaDB ...

随机推荐

  1. Treats for the Cows

     Treats for the Cows Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64 ...

  2. hbase建表

    import java.util.ArrayList; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hb ...

  3. Android 开发笔记___textview_聊天室效果

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  4. 实现 node_modules 共享

    参考:https://segmentfault.com/a/1190000000610038 Gruntjs 作为前端工程化工具,能够很好的对前端资源进行管理(校验,合并,压缩). 久之,发现一个问题 ...

  5. Clipboard 剪辑板

    ie是最早支持剪辑板相关事件(并且允许javascript接入)的浏览器(鼠标右键复制)   相关事件: beforecopy— Fires just before the copy operatio ...

  6. RPC 调用简述

    首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网 ...

  7. asp.net core 开发的https证书服务-agilelabs.net

    创建证书-生成CSR(Certificate Sign Request): 填写证书基本信息 接下来我们就可以看到创建的证书签名请求信息(CSR): 为我们刚才创建的CSR签名: 签名的意思是说通过证 ...

  8. 微服务下的契约测试(CDC)解读

    1. 前言 有近两周没有在公众号中发表文章了,看过我之前公众号的读者都知道,公众号中近期在连载<RobotFramework接口自动化系列课程>,原本计划每周更新一篇,最近由于博主在带一个 ...

  9. 利用java的net包来实在数据采集的功能

    最近有好多朋友问我,数据抓取用java怎么做,就是每天把新浪的内地新闻频道的新闻前20条,抓到自己的网站或系统里,今天我统一在这里提供一个简单的例子,由于在这个过程中还需要解析html字符串,所以,我 ...

  10. 在昆明网络SEO的走向站外的优化该何去何从?

    昨天大概讲了SEO的站内优化,今天我们来讲讲网站站外的优化. 站外主要以第三平台为主,其中包含站外推广:常规推广.外链建设:利用第三方平台优化关键词排名: 1.博客平台,现在有好多博客平台是很不错的, ...