『学了就忘』vim编辑器基础 — 94、vim编辑器介绍
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
后边的文件名无论有没有都不会报错,都能正确执行。
此时,从键盘上输入的任何字符都被作为编辑命令来解释,例如,a
(append
)表示附加命令,i
(insert
)表示插入命令等。
在命令模式下,从键盘上输入的任何字符都被当作编辑命令来解释,而不会在屏幕上显示。
另外,在命令模式下输入的字符(即vim
命令)并不在屏幕上显示出来例如,输入i
,屏幕上并无变化,但通过执行i命令,编辑器的工作方式却发生变化:由命令模式变为输入模式。
如果输入的字符不是vim
的合法命令,则机器发出“报警声”。
(2)输入模式
输入模式用于字符编辑。在命令模式下输入i
、a
、o
等命令后进入输入模式,此时从键盘上输入的所有字符都被都被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编辑器介绍的更多相关文章
- 『学了就忘』Linux系统管理 — 81、进程管理介绍
目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...
- 『学了就忘』vim编辑器基础 — 96、末行模式中的相关命令
目录 1.在文档中显示行号 2.是否显示文档内容相关颜色 3.是否将查找的字符串高亮显示 4.是否显示右下角的状态栏 5.是否在左下角显示如"--INSERT--"之类的状态栏 6 ...
- 『学了就忘』Linux权限管理 — 56、不可改变位权限(chattr)
目录 1.命令格式 2.查看文件系统属性chattr权限 3.示例 文件系统属性chattr权限,也叫不可改变位权限,该权限没有风险,但是他能限制root用户. 1.命令格式 [root@localh ...
- 『学了就忘』vim编辑器基础 — 95、命令模式中的相关命令
目录 1.移动光标操作 2.删除或剪切操作 3.复制操作 4.撤销操作 5.替换操作 6.补充一个知识点 命令模式中的命令主要取代的是Linux系统中鼠标的操作. vim编辑器的快捷键一般都集中在命令 ...
- 『学了就忘』vim编辑器基础 — 97、vim使用技巧
目录 1.在vim中导入其他文件内容或命令结果 (1)导入其他文件内容 (2)在vim中执行系统命令 (3)导入命令结果 2.设定快捷键 3.字符替换 4.多文件打开 vim使用技巧,就是vim编辑器 ...
- 『学了就忘』Linux用户管理 — 52、用户组管理相关命令
目录 1.添加用户组 2.删除用户组 3.把用户添加进组或从组中删除 4.有效组(了解) 1.添加用户组 添加用户组的命令是groupadd. 命令格式如下: [root@localhost ~]# ...
- 『学了就忘』Linux权限管理 — 54、sudo授权
目录 1.什么是sudo授权 2. sudo授权说明 3.sudo命令的使用 示例1 示例2 示例3 1.什么是sudo授权 在Linux系统中,/sbin/和/usr/sbin/两个目录中的命令只有 ...
- 『学了就忘』Linux文件系统管理 — 64、磁盘配额的配置步骤
目录 1.手工建立一个5GB的分区 2.建立需要做限制的三个用户 3.在分区上开启磁盘配额功能 4.建立磁盘配额的配置文件 5.开始设置用户和组的配额限制 6.启动和关闭配额 7.磁盘配额的查询 8. ...
- 『学了就忘』Linux系统定时任务 — 89、任务调度工具anacron
目录 1.任务调度工具anacron介绍 2.新旧版本Linux中anacron工具的区别 3./etc/cron.{daily,weekly,monthly}目录说明 4.anacron命令 5./ ...
随机推荐
- Redis | Redis常用命令及示例总结(API)
目录 前言 1. Key(键) 1.1 键的基本操作功能 del move sort rename renamenx migrate 1.2 键的获取功能 type exists randomkey ...
- 学习java 6.30
学习内容:Java的运算符与C中类似,虽是类似,还是有点区别,在这里详细说明一下,即字符以及字符串的+操作,字符的+操作执行后需要赋值给表达式中数据范围最大的类型, 字符串的+操作,当+中有字符串,则 ...
- 零基础学习java------36---------xml,MyBatis,入门程序,CURD练习(#{}和${}区别,模糊查询,添加本地约束文件) 全局配置文件中常用属性 动态Sql(掌握)
一. xml 1. 文档的声明 2. 文档的约束,规定了当前文件中有的标签(属性),并且规定了标签层级关系 其叫html文档而言,语法要求更严格,标签成对出现(不是的话会报错) 3. 作用:数据格式 ...
- 'this' pointer in C++
The 'this' pointer is passed as a hidden argument to all nonstatic member function calls and is avai ...
- maven根据profile,resources,filters来区分部署环境
项目过程中,在不同的阶段,分别需要部署开发环境,测试环境,线上环境.如果都用一套配置文件,很容易弄乱,所以维持多套配置文件很有必要. maven提供了一组属性以供开发人员灵活搭配,可以根据环境来打包, ...
- Mysql 分页查询sql优化
先查下数据表的总条数: SELECT COUNT(id) FROM ts_translation_send_address 执行分页界SQL 查看使用时间2.210s SELECT * FROM ts ...
- Sqlite 常用操作及使用EF连接Sqlite
Sqlite是一个很轻,很好用的数据库.兼容性很强,由于是一款本地文件数据库,不需要安装任何数据库服务,只需引入第三方开发包就可以.Sqlite的处理速度比MySql和PostgreSQL更快,性能很 ...
- 第三届“传智杯”全国大学生IT技能大赛(初赛A组)题解
留念 C - 志愿者 排序..按照题目规则说的排就可以.wa了两发我太菜了qwq #include<bits/stdc++.h> using namespace std; const in ...
- 【Fastjson】Fastjson反序列化由浅入深
Fastjson真-简-介 fastjson是由alibaba开发并维护的一个json工具,以其特有的算法,号称最快的json库 fastjson的使用 首先先创一个简单的测试类User public ...
- vue在某页面监听键盘输入事件
需求:在某一网页,通过上下左右键控制一些操作 实现: 1.基本代码: 因为没有绑定特定的元素.所以我们将事件绑定到document上. //当前页面监视键盘输入 document.onkeydown ...