linux入门到精通-第三章-vi(vim)编辑器

2023-09-19 08:00:00

文本编辑器

gedit介绍

gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它使用GTK+编写而成,它十分的简单易用,有良好的语法高亮,对中文支持很好,支持包括gb2312、gbk在内的多种字符编码。gedit是一个自由软件。
这是 Linux 下的一个纯文本编辑器,但你也可以把它用来当成是一个集成开发环境 (IDE), 它会根据不同的语言高亮显现关键字和标识符。

vi(vim)

vi(Visualinterface)编辑器是 Linux 系统中最常用的文本编辑器,vi在linux界有编辑器之神的没有,几乎所有Linux 发行版中都包含 vi 程序。
vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux上也有很多图形界面的编辑器可用,但是vi的功能实那些图形编辑器所无法比拟的。
vim是vi的升级版,它不仅兼容 vi的所有指令,而且还有一些新的特性,例如vim 可以撤消无限次、支持关键词自动完成、可以用不同的颜色来高亮你的代码。vim普遍被推崇为类vi 编辑器中最好的一个。

命令模式

命令模式

任何时候,不管用户处于何种模式,只要按一下ESC键,即可使vi进入命令模式。我们在shell环境(提示符为$)下输入启动vim命令,进入编辑器时,也是处于该模式下。
在命令模式下,用户可以输入各种合法的vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是vi的合法命令,vi会响铃报警。

编辑模式

在命令模式下输入插入命令i (I) 、附加命令a (A) 、打开命令o(O) 、替换命s (S)都可以进入文本输入模式,此时vi窗口的最后一行会显示“插入”。
在这里插入图片描述

末行模式

末行模式下,用户可以对文件进行一些附加处理,尽管命令模式下的命令可以完成很多功能,但要执行一些如字符串查找、替换、显示行号等操作还是必须要进入末模式的。
在命令模式下,输入冒号即可进入末行模式。此时vi窗口的状态会显示出冒号,等待用户输入命令。用户输入完成后,按回车执行,之后vi编辑器又自动返回到命令模式下。

帮助教程

vimtutor

保存文件

一定要先退出插入模式(按ES进入命令模式),然后(小写状态下),shift +zz (按住“shift”+ 按两下“z”键),或者(大写状态下: Zz) 即可保存退出当前文件
第一步: 进入命令模式(ESC)
第二步: shifit+zz

切换到编辑模式

按键功能
i光标位置当前处插入文字
l光标所在行首插入文字
o(字母)光标下一行插入文字(新行)
O(字母)光标上一行插入文字(新行)
a光标位置右边插入文字
A光标所在行尾插入文字
s删除光标后边的字符,从光标当前位置插入
S删除光标所在当前行,从行首插入

光标移动(命令模式下)

按键功能
Ctrl + f向前滚动一个屏幕
Ctrl + b向后滚动一个屏幕
gg到文件第一行行首
G(大写)到文件最后一行行首,G必须为大写
mG或mgg到指定行,m为目标行数
0(数字)光标移到到行首(第一个字符位置)
$光标移到到行尾
I(小写L)向右移动光标
h向左移动光标
k向上移动光标
j向下移动光标
^光标移到到行首(第一个有效字符位置)

复制粘贴

按键功能
[n]yy复制从当前行开始的 n 行
p把粘贴板上的内容插入到当前行

删除

按键功能
[n]x删除光标后 n 个字符
[n]X删除光标前n个字符
D
[n]dd删除从当前行开始的n行(准确来讲,是剪切,剪切不粘贴即为删除)
dG删除光标所在开始到文件尾的所有字符
dw删除光标开始位置的字,包含光标所在字符
d0(0为数字)删除光标前本行所有内容,不包含光标所在字符
dgg删除光标所在开始到文件首行第一个字符开始的所有字符

撤销恢复

按键功能
.(点)执行上一次操作
u撤销前一个命令
ctrl+r反撤销
100 + .执行上一次果作100次

保存退出

按键功能
ZZ(shift+z+z)保存退出

查找

按键功能
/字符串从当前光标位置向下查找 (n,N查找内容切换)
?字符串从当前光标位置向上查找 (n,N查找内容切换)

替换

按键功能
r替换当前字符
R替换当前行光标后的字符(ESC退出替换模式)

可视模式

按键功能
v按字符移动,选中文本,可配合h、i、k、l选择内容,使用d删除,使用y复制
Shift +v行选 (以行为单位)选中文本,可配合h、i、k、l选择内容,使用d删除,使用y复制
Ctrl+v列选选中文本,可配合h、i、k、l选择内容,使用d删除,使用v复制

替换模式

在这里插入图片描述

分屏

在这里插入图片描述

其他用法

在这里插入图片描述

配置文件

在这里插入图片描述

更多推荐

华为数字能源,开启超充新纪元

编辑:阿冒设计:沐由在过去很长的一段时间里,国内某著名品牌火锅是从来不担心获客的。顶峰时期,该品牌每年服务超过1.6亿人次的顾客,翻台率达到了5次/天,几乎创下了餐饮界的最高翻台率。翻台率是餐饮企业最为重要的指标之一,就如同当前风风火火的充电站。任谁都能明白无误地看出,伴随着国内新能源汽车产业规模的不断扩大,投资充电站

大型架构设计的演进之路

Java全能学习+面试指南:https://javaxiaobear.cn今天我们一起看看大型互联网系统架构的演进之路,主要包含三部分内容。第一部分是大型互联网系统的特点,分析大型互联网有哪些特点和挑战,它们是现在一些技术和架构方案产生的原因。第二部分是系统处理能力提升的两种途径,提供了两种面对挑战的解决思路。第三部分

Java-day14(多线程)

多线程0.基本概念程序:为完成特定任务,用某种编程语言编写的一组指令的集合(静态)进程:程序的一次执行过程,或正在执行的一个程序(动态过程)线程:程序内部的一条执行路径,若某个程序支持同一时间执行多个线程,即支持多线程1.多线程的创建和使用继承Thread类创建多线程一个线程只能执行一次start()不能通过Threa

VR科普研学基地科普开放日普乐蛙VR体验馆沉浸式体验设备

广州科普开放日来啦2023年9月广州科普开放日来啦,9月16日周六上午9点,广州卓远非常荣幸地迎来了一批前来体验的家庭。比原定的集合时间提前了近1个小时,已经开始有家长带着小朋友来到了VR科普基地,可见大家对VR科普体验的热情和兴趣之高。趣味VR科普,市民抢着报名!9月科普开放日活动共有131家国家级重点实验室、省级重

2023上半年薪资报告出炉!人均月入过万?!

最近,大家都有听到经济回暖的消息吧?经过三年口罩大考之后,2023年上半年各行各业都迎来复苏,关于职场的话题讨论也不绝于耳。现在就业环境如何?哪些行业更有前途?大家在求职时是选择一线城市还是回二、三线城市?……对于这一系列职场话题,近期猎聘发布的《2023上半年人才流动与薪酬趋势报告》中,列举了很多关于当前人才市场的趋

一台PoE交换机可以为多少个设备提供供电?

如今在安防监控领域,许多网络设备都支持PoE供电。在网络监控工程中,为了节省布线成本并提高便捷性,大多数工程商选择使用PoE供电方案,也就是使用PoE交换机为监控摄像头提供电力。那么,一台功率输出以太网(PoE)工业交换机能够为多少个设备提供电力呢?1、PoE交换机供电标准对于初次接触PoE供电的朋友来说,可能对PoE

使用Selenium进行网页登录和会话管理

随着互联网的快速发展,网页登录和会话管理是许多网站和应用程序的基本功能。通过网页登录,用户可以访问个人账户、购物车订单、历史记录等个性化信息。为了提高用户体验和效率,自动化登录和会话管理成为一个重要的需求。而Selenium作为一种强大的Web自动化工具,为开发人员提供了便捷的方式来实现这些功能。例如我们在访问京东网站

LC926. 将字符串翻转到单调递增(JAVA - 动态规划)

将字符串翻转到单调递增题目描述动态规划题目描述难度-中等LC926.将字符串翻转到单调递增(JAVA-动态规划)如果一个二进制字符串,是以一些0(可能没有0)后面跟着一些1(也可能没有1)的形式组成的,那么该字符串是单调递增的。给你一个二进制字符串s,你可以将任何0翻转为1或者将1翻转为0。返回使s单调递增的最小翻转次

@SpringBootApplication注解说明(InsCode AI 创作助手)

@SpringBootApplication是SpringBoot中的一个关键注解,用于标识一个类是SpringBoot应用程序的主应用程序类。在这篇文章中,我们将详细解释@SpringBootApplication注解以及它在SpringBoot应用程序中的作用。@SpringBootApplication注解的作用

Docker容器数据持久化存储机制

这里写目录标题一、Docker容器数据持久化存储介绍二、Docker容器数据持久化存储方式三、Docker容器数据持久化存储方式应用案例演示3.1dockerrun-v3.1.1创建了本地目录3.1.2未创建本地目录3.2volumes3.2.1创建数据卷3.2.2使用数据卷一、Docker容器数据持久化存储介绍物理机

记录一次久远git仓库迁移

因为项目需求,公司收购了一个第三方的项目,包含源码。需要将该项目上传到我们公司自己的gitlab上。没过脑子一顿操作://查询远程链接gitremote-v//删除原有链接gitremotermorigin//如果需要修改分支名gitbranch-moldnamenewname//修改为自己的gitlab地址gitre

热文推荐