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

news2025/2/27 5:54:55

文章目录

  • 1.Linux编辑器-vim使用
  • 2.vim的基本概念
  • 4.vim正常模式命令集
    • 从正常模式进入插入模式
    • 从插入模式转换为命令模式
    • 移动光标
    • 删除文字
    • 复制
    • 替换
    • 撤销
    • 更改
    • 跳至指定行
  • 5.vim末行模式命令集
  • 5.总结

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编辑器的三种模式:命令模式、插入模式、底行模式,这三种模式的关系如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1027239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(VS报错)已在 xxxxx.exe 中执行断点指令(__debugbreak()语句或类似调用)-解决方法C++创建对象四种方式

上述报错困扰了我好几天,在网上搜了一天,到最后还是没有解决问题 试过通过项目属性->C/C>代码生成->启用增强指令集->选择AVX,这种方法也没用 但问题出现在创建对象时内存分配问题上 方法一: 如果是这样创建对象&a…

Linux学习-HIS系统(1)

Git安装 #安装中文支持(选做) [rootProgramer ~]# echo $LANG #查看当前系统语言及编码 en_US.UTF-8 [rootProgramer ~]# yum -y install langpacks-zh_CN.noarch #安装中文支持 [rootProgramer ~]# vim /etc/locale.co…

将docker镜像打成tar包

# 打包 docker save -o zookeeper.tar bitnami/zookeeper:3.9.0-debian-11-r11# 解压 docker load -i zookeeper.tar

Jenkins学习笔记2

Jenkins下载安装: 从清华源开源镜像站上下载jenkins的安装包: 安装的是这个版本。 关于软件的版本,尽量使用LTS,长期支持。 首先是安装openjdk: yum install fontconfig java-11-openjdk[rootlocalhost soft]# java …

springcloudalibaba和nacos版本对应关系

文章目录 一、背景二、解决bug历程 一、背景 因为公司项目需要升级springcloud的版本,升级后服务启动时连接不上nacos(如下图) 二、解决bug历程 历程一 一开始直接百度“Client not connected, current status:STARTING”这个错误&#x…

【基于Thread多线程+随机数(Random)+java版本JDBC手动提交事务+EasyExcel读取excel文件,向数据库生成百万级别模拟数据】

基于Thread多线程随机数(Random)java版本JDBC手动提交事务EasyExcel读取excel文件,向数据库生成百万级别模拟数据 基于Thread多线程随机数(Random)java版本JDBC手动提交事务EasyExcel读取excel文件,向数据库…

最佳实践:TiDB 业务写变慢分析处理

作者:李文杰 数据架构师,TUG 广州地区活动组织者 在日常业务使用或运维管理 TiDB 的过程中,每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循,通过经验的积累可以快速的定…

9.20号作业实现钟表

1.widget.h #include <QPainter> //画家 #include <QTimerEvent> #include <QTime> #include<QTimer> //定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Wid…

基于Xml方式Bean的配置-初始化方法和销毁方法

SpringBean的配置详解 Bean的初始化和销毁方法配置 Bean在被实例化后&#xff0c;可以执行指定的初始化方法完成一些初始化的操作&#xff0c;Bean在销毁之前也可以执行指定的销毁方法完成一些操作&#xff0c;初始化方法名称和销毁方法名称通过 <bean id"userService…

Linux 目录结构介绍

对上面的说明: root 目录 &#xff1a; linux 超级权限 root 的主目录 home 目录 &#xff1a; 系统默认的用户主目录&#xff0c;如果添加用户是不指定用户的主目录&#xff0c;默认在/home 下创建与用户同名的文件夹 bin 目录 &#xff1a; 存放系统所需要的重要命令&am…

设计模式:简单工厂、工厂方法、抽象工厂

参考 Java设计模式之创建型&#xff1a;工厂模式详解&#xff08;简单工厂工厂方法抽象工厂&#xff09; - 知乎 工厂方法 以生产手机为例&#xff0c;具体的UML图如下&#xff1a; 这种方法的优点是对于用户来说&#xff0c;不再需要面对具体的生产逻辑&#xff0c;只需要将生…

k8s的安装

我这里使用vmware创建了三台虚拟机&#xff0c;k8s的虚拟机建议最少2核、4G内存&#xff0c;我的电脑配置不高采用的2核、3G的配置&#xff1b; 安装k8s之前需要先安装docker&#xff0c;docker的安装参考&#xff1a;docker的安装及使用_docker的安装和使用_骑士999111的博客-…

光伏电池建模及温度光照的影响曲线MATLAB仿真

微❤关注“电气仔推送”获得资料 模型介绍&#xff1a; 需要MATLAB2018B及以上的版本&#xff01;&#xff01; 首先根据根据环境修正公式搭建光伏电池仿真模型&#xff1a; 温度变化下的IU、PU仿真及曲线&#xff1a; 光照变化下的IU、PU仿真及曲线&#xff1a; 文件说明&a…

SSD上 NVIDIA Jetson Orin NANO系統如何刷

对于AI计算性能高达40TOPS的Jetson Orin Nano开发套件来说&#xff0c;如果缺少性能够好的存储相匹配&#xff0c;会让总体执行效益大打折扣。为此&#xff0c;NVIDIA在Jetson Orin Nano开发套件上配置2个M.2接口&#xff08;如下图&#xff09;&#xff0c;最高能安装2片高速P…

Spring Boot启动源码分析

一&#xff0c;前言 版本&#xff1a;spring-boot-starter-parent版本为2.3.0 Spring Boot项目的启动入口是一个main方法&#xff0c;因此我们从该方法入手即可 二&#xff0c;源码分析 跟踪run方法 /*** SpringApplication的方法* param primarySource 启动类的class* p…

静态顺序表及基本操作具体实现

静态顺序表及几个基本操作 &#x1f391;定义一个顺序表&#x1f391; 初始化——置空顺序表&#x1f391;创建一个顺序表&#x1f391;打印顺序表各结点的值&#x1f38a;&#x1f38a; 顺序表基本操作&#x1f383;头插&#x1f383;尾插&#x1f383;头删&#x1f383;尾删 …

mysql报错:mysql8插入sql关键字“rank”问题

标题 一、背景二、报错展示三、排查四、结论 一、背景 在设计表的需要定义一个排名的字段&#xff0c;于是定义了“rank”字段&#xff0c;使用mybatisplus进行插入的时候&#xff0c;项目报错。 二、报错展示 1、项目插入报错 2、mysql中直接insert报错 三、排查 通过ins…

SpringCloud Gateway--网关服务基本介绍和基本原理

&#x1f600;前言 本篇博文是关于SpringCloud Gateway的基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力…

快速解决AndroidStudio代码提示失效问题

在编写代码时&#xff0c;代码不自动提示&#xff0c;发现代码自动提示设置正常&#xff0c;所以查询到问题原因在于节能模式的开启&#xff0c;具体解决方式如下&#xff1a; 关闭节能模式 如上图所示&#xff0c;将Power Save Mode前面的对勾去掉&#xff0c;则完成节能模式…

系统检测到您的账户不符合国家相关法律法规或《支付宝用户服务协议》约定,暂时无法签约当前产品

最新一直在开发支付宝小程序&#xff0c;遇到的各种问题颇多&#xff0c;技术上的问题都好解决&#xff0c;开发平台上的问题&#xff0c;真的是让我心力交瘁&#xff0c;自己分析不出原因&#xff0c;打支付宝客服电话永远得不到解答。 现在把自己有一些收获的问题&#xff0…