1、vim编辑器简介

vim是一个全屏幕纯文本(绘个表格或者插个图片就不要想了)编辑器,是vi编辑器的增强版,我们主要讲解的是vim编辑器。

vim编辑器的主要优势就是不需要鼠标的介入就可以完成所有的编辑操作。如果你非常熟练的使用vim编辑器,编辑文档时要比鼠标介入操作的快多了。

在使用vim编辑器的时候可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如:

# 定义别名
[root@localhost ~]# alias vi='vim'

注意:这样定义的别名是临时生效,如果需要永久生效,请放入环境变量配置文件~/.bashrc

vim编辑器对比vi编辑器所增强的功能之一,就是文件内容有颜色的提示,方便我们识别和区分内容和错误(颜色主要的作用是排错)。

使用vi编辑器查看~/.bashrc文件。

执行命令:[root@localhost ~]# vi .bashrc

如下图所示:

使用vim编辑器查看~/.bashrc文件。

执行命令:[root@localhost ~]# vim .bashrc

如下图所示:

2、vim的工作模式

使用vim编辑文件时,存在 3 种工作模式,分别是命令模式、输入模式和编辑模式(末行模式),这 3 种工作模式可随意切换。

如下图所示:

(1)命令模式

在Shell提示符后输入命令vim + 文件名,进入vim编辑器,此时就处于命令模式下。

提示:

vim + 文件名命令,如果文件名存在,则直接打开文件显示内容。如果文件名不存在,就新建一个文件。vim后边的文件名无论有没有都不会报错,都能正确执行。

此时,从键盘上输入的任何字符都被作为编辑命令来解释,例如,aappend)表示附加命令,iinsert)表示插入命令等。

在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。

另外,在命令模式下输入的字符(即vim命令)并不在屏幕上显示出来例如,输入i,屏幕上并无变化,但通过执行i命令,编辑器的工作方式却发生变化:由命令模式变为输入模式。

如果输入的字符不是vim的合法命令,则机器发出“报警声”。

(2)输入模式

输入模式用于字符编辑。在命令模式下输入iao等命令后进入输入模式,此时从键盘上输入的所有字符都被都被vim编辑器插入到正在编辑的缓冲区中,被当做该文件的内容显示在屏幕上。

例如,在命令方式下输入字母i,进到输入模式,然后再输入i,就在屏幕上相应光标处添加一个字母i

按Esc键可从输入模式返回到命令模式。如果已在命令模式下,那么按下Esc键就会发出“嘟嘟”声。为了确保用户想执行的vim命令是在命令模式下输入的,不妨多按几下Esc键,听到嘟声后再输入命令。

在实际工作中需要进入输入模式,你用哪一个命令都行。主要用于文本编辑,和记事本类似,输入数据就好。

(3)最后行模式(末行模式)

在命令模式下,按:键进入末行模式,此时vim编辑器会在屏幕的底部显示:符号,作为末行模式的提示符,等待用户输入相关命令。命令是以Enter键或者ESC键结束的命令行,命令执行完毕后,vim编辑器自动回到命令模式。

常用末行模式的命令如下:

  • :w:保存不退出。

    :w 新文件名 :把文件另存为新文件。

    如::w /root/abc
  • :q:不保存退出。
  • :wq:保存退出。
  • :!:强制。

    :q!:强制不保存退出,用于修改文件之后,不保存数据退出。所有用户都可以执行的。

    :wq!:虽制保存退出,当文件的所有者或者root用户,对文件没有写权限的时候,强制写入数据使用。(只有文件的所有者或者root用户可执行)

    注意以上两个命令的区别。

『学了就忘』vim编辑器基础 — 94、vim编辑器介绍的更多相关文章

  1. 『学了就忘』Linux系统管理 — 81、进程管理介绍

    目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...

  2. 『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令

    目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6 ...

  3. 『学了就忘』Linux权限管理 — 56、不可改变位权限(chattr)

    目录 1.命令格式 2.查看文件系统属性chattr权限 3.示例 文件系统属性chattr权限,也叫不可改变位权限,该权限没有风险,但是他能限制root用户. 1.命令格式 [root@localh ...

  4. 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令

    目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...

  5. 『学了就忘』vim编辑器基础 — 97、vim使用技巧

    目录 1.在vim中导入其他文件内容或命令结果 (1)导入其他文件内容 (2)在vim中执行系统命令 (3)导入命令结果 2.设定快捷键 3.字符替换 4.多文件打开 vim使用技巧,就是vim编辑器 ...

  6. 『学了就忘』Linux用户管理 — 52、用户组管理相关命令

    目录 1.添加用户组 2.删除用户组 3.把用户添加进组或从组中删除 4.有效组(了解) 1.添加用户组 添加用户组的命令是groupadd. 命令格式如下: [root@localhost ~]# ...

  7. 『学了就忘』Linux权限管理 — 54、sudo授权

    目录 1.什么是sudo授权 2. sudo授权说明 3.sudo命令的使用 示例1 示例2 示例3 1.什么是sudo授权 在Linux系统中,/sbin/和/usr/sbin/两个目录中的命令只有 ...

  8. 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤

    目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...

  9. 『学了就忘』Linux系统定时任务 — 89、任务调度工具anacron

    目录 1.任务调度工具anacron介绍 2.新旧版本Linux中anacron工具的区别 3./etc/cron.{daily,weekly,monthly}目录说明 4.anacron命令 5./ ...

随机推荐

  1. Shell 分发脚本

    目录 Shell分发脚本 原理 rsync命令分析 特点 基本语法 实现 需求 环境变量 脚本实现 知识点 获得当前路径的目录dirname 获得当前路径的文件名basename shell远程执行命 ...

  2. 数仓:解读 NameNode 的 edits 和 fsimage 文件内容

    一.edits 文件 一)文件组成 一个edits文件记录了一次写文件的过程,该过程被分解成多个部分进行记录:(每条记录在hdfs中有一个编号) 每一个部分为: '<RECORD>...& ...

  3. nit是虱子的卵

    如题.[牛津] (egg of a) louse or other parasitic insect 虱或其他寄生虫(的卵). 忘了在那个帖子里说nit: 虱子了. 为了凑字数,迄今为止六级/考研单词 ...

  4. Qt5的安装和编译

    Ubuntu18.04安装Qt5 1.配置unbuntu 和宿主机共享文件夹安装vmware-tools 2.下载 Qt  http://download.qt.io/archive/qt/ 3.修改 ...

  5. 数据存储SharePreferences详解

    1.SharedPreferences存储 SharedPreferences时使用键值对的方式来存储数据的,也就是在保存一条数据时,需要给这条数据提供一个对应的键,这样在读取的时候就可以通过这个键把 ...

  6. java Map集合类

    ---恢复内容开始--- Map提供了一个更通用的元素存储方法,Map集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值. 了解Map接口和方法 ...

  7. mybatis-插件开发

    在Executor.StatementHandler.parameterHandler.resultSetHandler创建的时候都有一步这样的操作xxxHandler=interceptorChai ...

  8. treeTable实现排序

    /* * * TreeTable 0.1 - Client-side TreeTable Viewer! * @requires jQuery v1.3 * * Dual licensed under ...

  9. Dubbo提供者的异步执行

    从前面"对提供者的异步调用"例子可以看出,消费者对提供者实现了异步调用,消费者线程的执行过程不再发生阻塞,但提供者对IO耗时操作仍采用的是同步调用,即IO操作仍会阻塞Dubbo的提 ...

  10. springMVC中响应的返回值获取方式

    package com.hope.controller;import com.hope.domain.User;import org.springframework.stereotype.Contro ...