[Linux入门]---文本编辑器vim使用

2023-09-21 06:00:00

1.Linux编辑器-vim使用

在这里插入图片描述

vi/vim作为Linux开发工具之一,从它的键盘操作图也可以知道,它的操作不会很简单,但如果我们认真学习的话,想熟练地使用也不会很难!
在这里插入图片描述
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vimvi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x windowmac oswindows

2.vim的基本概念

vim编辑器有很多种模式,我们目前掌握命令模式(command mode)插入模式(insert mode)底行模式(last line mode)

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode;vim编辑器默认进入命令模式,该模式不能写代码,需要转换到插入模式,此时可以按a\s\i\o其中一个键可以从命令模式转换到插入模式
    在这里插入图片描述
    在这里插入图片描述
  • 插入模式(Insert mode)
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+;(其实为:) 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes,输入: w (保存当前文件),输入: wq (存盘并退出vim),输入: q! (输入q!,不存盘强制退出vim),输入:wq!(强制保存并退出该文件)
    在这里插入图片描述

4.vim正常模式命令集

从正常模式进入插入模式

  • 「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
  • 「s」进入插入模式后,删除光标所在位置的字符,从删除字符的位置开始输入字符。
  • 「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
  • 「o」进入插入模式后,是插入新的一行,从行首开始输入文字;
    我们提前编辑好一段代码,统一让光标在如下位置,观察以不同方式进入插入模式的效果
    在这里插入图片描述
    「a」切换进入插入模式
    在这里插入图片描述
    「s」进入插入模式后
    在这里插入图片描述
    「i」切换进入插入模式
    在这里插入图片描述
    「o」进入插入模式后> 在这里插入图片描述

从插入模式转换为命令模式

「ESC」键后,即可从插入模式转换为命令模式

移动光标

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
    「l」,分别控制光标左、下、上、右移一格
    在这里插入图片描述
    接下来以该光标位置为基准,进行按键学习
    在这里插入图片描述
  • [gg]键:进入到文本行开始
  • 在这里插入图片描述
  • 「G」(即shift+g):移动到文本行末尾
  • 在这里插入图片描述
  • 「nG」(即n+shift+g):光标定位到任意行
    在这里插入图片描述
  • 「 $ 」(即shift+$键):移动到光标所在行的行尾。+ 在这里插入图片描述
  • 「^」(即shift+^):移动到光标所在行的“行首”

在这里插入图片描述

  • 按「w」:光标跳到下个字的开头
  • 按「b」:光标回到上个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「nl」:光标移到该行的第n个位置(n为数字)
  • 按「ctrl」+「b」:屏幕往“后”移动一页(即向上移动一页)
  • 按「ctrl」+「f」:屏幕往“前”移动一页(即向下移动一页)
  • 按「ctrl」+「u」:屏幕往“后”移动半页(即向上移动半页)
  • 按「ctrl」+「d」:屏幕往“前”移动半页(即向下移动半页)

删除文字

  • x」:每按一次,删除光标所在位置的一个字符
  • #x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
  • X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
  • #X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
  • dd」:删除光标所在行
  • #dd」:从光标所在行开始删除#行。
    注意:这里的#表示数字(0、1、2...),不是表示字符

复制

  • yw」:将光标所在之处到字尾的字(文字、单词)复制到缓冲区中。
  • #yw」:复制#个字(文字、单词)到缓冲区。
  • yy」:复制光标所在行到缓冲区。
  • #yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  • p」:将缓冲区内的字符贴到光标所在位置。
  • #p」:将缓冲区内的字符粘贴#份到光标所在位置的下一行
    注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能;「#dd」为剪切功能,配合“p”配合也可以完成复制配合的功能。

替换

  • ~」(即shift+~):将光标所在位置的字符进行大小写转换。
  • r」:替换光标所在处的字符。
  • R(即shift+r):替换光标所到之处的字符,直到按下「ESC」键为止。该模式为vim的替换模式!

撤销

  • u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
  • ctrl + r」:撤销的恢复(反撤销)

更改

  • cw」:更改光标所在处的字到字尾处。
  • c#w」:例如,「c3w」表示更改3个字(文字、单词)。

跳至指定行

  • ctrl」+「g」:列出光标所在行的行号。
  • #G」:例如,「15G」,表示移动光标至文章的第15行行首。

5.vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入

  • 列出行号
    set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
    set nonu」:取消行号设置。
    在这里插入图片描述
  • 跳到文件中的某一行
    #」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如 再回车,就会跳到文章的第15行。
  • 查找字符
    /关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要「n」会往后(适合从顶部向下)寻找到您要的关键字为止。
    ?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要按「n」会往前(适合从底部往上)寻找到您要的关键字为止。
  • 保存文件
    w」: 在冒号输入字母「w」就可以将文件保存起来
  • 离开vim
    q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim
    wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
  • 多文件切换
    vs + 文件名,打开多文件编辑窗口,如果该文件存在,直接打开文件进行编辑;如果文件不存在,创建文件后再进行编辑。
    ctrl+ww,光标在多文件窗口切换。
  • vim编辑器中使用外部命令
    !+外部指令」,使用英文感叹号加上指令,可以在不退出vim编辑器的情况下,使用外部指令,按Enter键(回车键)可以回到vim编辑器中进行输入命令!

5.总结

本章我们一起学习了,vim编辑器的三种模式:命令模式、插入模式、底行模式,这三种模式的关系如下:
在这里插入图片描述

更多推荐

基于Hadoop的网上购物行为分析设计与实现

有需要本项目的可以私信博主,提供部署和讲解服务!!!!!本研究基于淘宝用户行为的开源数据展开大数据分析研究,通过Hadoop大数据分析平台对阿里天池公开的开源数据集进行多维度的用户行为分析,为电商销售提供可行性决策。本次研究选取了2021年12月1日-18号的数据,其中每一行数据集包含用户的每一次的行为。首先我们将数据

HarmonyOS开发:解决DevEco Studio低版本导入高版本项目运行失败问题

前言基于DevEcoStudio4.0Beta2,hvigorVersion为3.0.2,开发了一个项目,上传到了远程仓库,当同事下载后,却始终无法运行,频繁报错,由于API都是使用的9,第一感觉就是开发环境不同,于是,让其发来了他的开发环境,DevEcoStudio3.1.1Release,hvigorVersion

java版工程管理系统Spring Cloud+Spring Boot+Mybatis实现工程管理系统源码

工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理工程项目各模块及其功能点清单一、系统管理1、数据字典:实现对数据字典标签的增删改查操作2、编码管理:实现对系统编码的增删改查操作3、用户管理:管理和查看用户角

MYSQL04高级_逻辑架构剖析、查询缓存、解析器、优化器、执行器、存储引擎

文章目录①.逻辑架构剖析②.服务层-查询缓存③.服务层-解析器④.服务层-优化器⑤.服务层-执行器⑥.MySQL8执行原理①.逻辑架构剖析①.服务器处理客户端请求②.连接层系统(客户端)访问MySQL服务器前,做的第一件事就是建立TCP连接经过三次握手建立连接成功后,MySQL服务器对TCP传输过来的账号密码做身份认证

Windows/Linux(命令、安装包和源码安装)平台各个版本QT详细安装教程

前言本文章主要介绍了Windows/Linux平台下,QT4,QT5,QT6的安装步骤。为什么要把QT版本分开介绍呢,因为这三个版本,安装步骤都不一样。Windows平台,QT4的QtCreator,QT库和编译器是分开的,需要分别单独下载安装。QT5将QtCreator,QT库和编译器都集成到了一起,只需要下载安装包

如何在 Excel 中计算日期之间的天数

计算两个日期之间的天数是Excel中的常见操作。无论您是规划项目时间表、跟踪时间还是分析一段时间内的趋势,了解如何在Excel中查找日期之间的天数都可以提供强大的日期计算功能。幸运的是,Excel提供了多种简单的方法来获取两个日期之间的天数。继续阅读以了解在Excel中计算日期差异的不同公式和函数。为什么在Excel中

Java实现添加文字水印、图片水印功能实战

java实现给图片添加水印实现步骤:获取原图片对象信息(本地图片或网络图片)添加水印(设置水印颜色、字体、坐标等)处理输出目标图片java实现给图片添加文字水印获取原图片对象信息第一步:获取需要处理的图片获取图片的方式,通常由两种:一种是通过下载到本地,从本地读取(本地图片);另外一种是通过网络地址进行读取(网络图片)

Ribbon负载均衡

文章目录1.Ribbon2.负载均衡原理1.服务端负载均衡2.客户端负载均衡3.负载均衡流程4.负载均衡策略5.自定义负载均衡策略1.代码方式2.配置文件方式6.饥饿加载1.RibbonSpringCloudRibbon是一套基于NetflixRibbon实现的客户端负载均衡和服务调用工具。Ribbon是一个基于HTT

SpringBoot的学习要点

黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(springboot2完整版)_哔哩哔哩_bilibili博客阅读:Microservices中文文档:SpringBoot中文文档spring官网:https://start.spring.io/thymeleaf官方文档阅读(英文版

Unity中Shader实现模板测试Stencil

文章目录前言一、UI中的遮罩1、Mask——>模板测试2、RectMask2D——>UNITY_UI_CLIP_RECT二、模板缓冲区Stencil一般是和Pass平行的部分,Pass部分写的是颜色缓冲区Stencil:Comp(比较操作)Pass(模版缓冲区的更新)三、实际使用1、在使用模板缓冲区前,需要如下图设置一

在 Windows 上安装 NodeJS

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录安装vm-windows、node.js和npm替代版本管理器安装VisualStudioCode替换代码编辑器安装Git使用适用于Linux的Windows子系统进行生产如果你不熟悉如何使用Node.js进行

热文推荐