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. 学习java 6.30

    学习内容:Java的运算符与C中类似,虽是类似,还是有点区别,在这里详细说明一下,即字符以及字符串的+操作,字符的+操作执行后需要赋值给表达式中数据范围最大的类型, 字符串的+操作,当+中有字符串,则 ...

  2. Oracle中建表及表操作

    一.创建表 Oracle中的建表语句:create table 表名( 字段名1 数据类型 列属性,字段名2 数据类型 列属性,...... ) 如:创建表OA_DM.DM_GY_USER https ...

  3. YYYY-MM-DD引发的问题

    yyyy 和 YYYY 用YYYY格式化代码 2019-12-31 转 YYYY/MM/dd 格式: 2020/12/31 2020-01-01 转 YYYY/MM/dd 格式: 2020/01/01 ...

  4. shell神器curl命令的用法 curl用法实例笔记

    shell神器curl命令的用法举例,如下: ##基本用法(配合sed/awk/grep) $curl http://www.jquerycn.cn ##下载保存 $curl http://www.j ...

  5. 【Spring Framework】12种spring中定义bean的方法

    前言 在庞大的java体系中,spring有着举足轻重的地位,它给每位开发者带来了极大的便利和惊喜.我们都知道spring是创建和管理bean的工厂,它提供了多种定义bean的方式,能够满足我们日常工 ...

  6. vue 中使用import导入 script 在线链接

    一般我们在vue中导入另外一个文件或者文件中的方法,我们都是使用import来实现他的,那么问题来了,现在我们要导入的不是另外的一个文件,而是在线链接,这该怎么办?我们也使用了 import * as ...

  7. ES6 object.defineProperty

    Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象. Object.defineProperty(obj, prop, ...

  8. 南京邮电大学CTF密码学之MD5-golang与php代码实现

    题目内容:这里有一段丢失的md5密文 e9032???da???08????911513?0???a2 要求你还原出他并且加上nctf{}提交 已知线索 明文为: TASC?O3RJMV?WDJKX? ...

  9. 【C/C++】链表

    #include <bits/stdc++.h> using namespace std; struct node { int data; // 数据 node* next; // 指针 ...

  10. 【dva】model中effects函数的解析

    结构 effects: { *pageQuery({ payload = {} }, { select, call, put }) { const res = yield call(pageQuery ...