Linux:文本编辑器 - vim

news2024/10/7 20:33:21

Linux:文本编辑器 - vim

    • vim基本操作
    • 普通模式
      • 模式切换
      • 移动光标
      • 复制粘贴
      • 删除
      • 替换
      • 撤销
    • 底行模式
      • 行号
      • 查找


vim基本操作

Vim(Vi Improved)是一款功能强大的文本编辑器,是Unix/Linux系统中广泛使用的编辑器之一。它源于上世纪70年代开发的Vi编辑器,后来经过不断完善和扩展而发展成为Vim。

Vim的主要特点包括:

  • 高度可配置和扩展性:Vim支持大量插件和脚本,用户可以根据需求自定义Vim的行为。
  • 高效的编辑模式:Vim采用基于模式的编辑方式,用户可以通过键盘命令快速完成各种编辑操作。
  • 跨平台:Vim支持多种操作系统,包括Linux、macOS和Windows。
  • 丰富的功能:Vim提供了语法高亮、代码折叠、多缓冲区编辑等强大的编辑功能。

Vim是一款功能强大、高度可定制的文本编辑器,广泛应用于各种编程和文本编辑场景。它的发展历程也体现了开源软件不断创新和完善的过程。

使用vim前,如果你没有下载过,可以执行以下指令下载vim:

yum install -y vim

执行该指令需要root权限,要么加上sudo进行提权,要么以root身份执行。

下载好vim后,我们就可以用它来编辑文本了,vim既可以直接编辑现有文本,也可以直接创建一个不存在的文件

语法为:

vim 文件名

比如在此我要编辑一个test.c的文件,就输入vim test.c,打开后界面如下:

在这里插入图片描述

这个时候你还不能编辑,vim是有多种模式的,默认情况下处于普通模式。此时不能编辑文本,如果想要书写文本,要进入插入模式只需要按一下i,就可以从普通模式进入插入模式。此时你的左下角会有INSERT样式,说明你成功进入了插入模式。

在这里插入图片描述

现在你就可以正常编辑代码了,我这里写一个简单的C语言代码:

在这里插入图片描述

那么要如何退出保存呢?想要退出保存,就先进入底行模式,而当前的插入模式不能直接进入底行模式,要先按下Esc键回到普通模式。当你左下角的INSERT消失了,就说明你退出插入模式了,如果想从普通模式进入底行模式,按下shift + ;,其实也就是按下一个,此时你会发现你的光标跳转到了底部,并且底部多出了一个冒号:

在这里插入图片描述

说明你成功进入底行模式了,先教两个基本的命令:

w:保存当前修改
q:退出

一般来说,我们会选择保存并退出,此时只需要把两个字母一起输入即可wq

在这里插入图片描述

再摁下Enter键,表示执行该指令,此时我们就可以退出vim了。如果你这个文件原先就存在于目录中,你可以用cat试试有没有修改成功,如果你这个文件是直接通过vim创建的,那么你可以使用ls看看该文件有没有创建出来。

在我的目录下,已经有该文件,并且写入成功了:

在这里插入图片描述

我们简单讲解完了vim的三个模式:

Vim有以下几种主要的工作模式:

  1. 普通模式(Normal mode):
  • 这是Vim的默认模式。
  • 在这个模式下,键盘输入的字符被解释为命令,而不是插入文本。
  • 用户可以使用各种快捷键进行文本编辑、光标移动、文件操作等。
  1. 插入模式(Insert mode):
  • 在这个模式下,键盘输入的字符会被直接插入到文档中。
  • 用户可以输入新的文本,编辑现有文本。
  • 通过按下 iao 等命令可以进入插入模式。
  1. 底行模式(Command-line mode):
  • 在这个模式下,用户可以输入Vim的各种命令,如保存、退出、查找替换等。
  • 通过按下 :shift + ;)进入命令行模式。

接下来我就详细讲解各个模式下的操作。


普通模式

模式切换

vim有非常多种模式,而普通模式是所有模式的枢纽,不论进入任何一种模式,都要先回到普通模式。插入模式,底行模式等等各种模式想要切回普通模式,都是按Ecs

普通模式进入插入模式

i:从光标位置开始编辑文本
a:从光标位置的下一个位置开始编辑文本
o:在光标位置插入新的一行,并从行首开始编辑文本

普通模式进入底行模式

:,也就是shift + ;


移动光标

处于普通模式时,有很多快速移动光标的键位:

键位功能
h光标向左移动,相当于
j光标向下移动,相当于
k光标向上移动,相当于
l光标向右移动,相当于
Gshift + g光标移动到文本末尾
#G# + shift + g光标移动到第#
$shift + 4光标移动到当前行末尾
^shift + 6光标移动到当前行开头
w以单词为单位,光标移动到下一个单词开头
b以单词为单位,光标移动到上一个单词开头
#l光标移动到该行第#个位置
gg光标移动到文本开始

复制粘贴

键位功能
dd剪切当前光标所在行
#dd剪切当前光标开始的#
yw把光标所处的单词,复制到缓冲区
#yw把光标开始的#个单词,复制到缓冲区
yy把光标所处的行,复制到缓冲区
#yy把光标开始的#行,复制到缓冲区
p将缓冲区的内容,复制到光标开始的位置
#p将缓冲区的内容,复制到光标开始的位置,连续复制#

删除

键位功能
x删除光标所在的字符
#x删除光标开始的#个字符
Xshift + x删除光标前一个字符
#X# + shift + x删除光标前#个字符

替换

键位功能
r + xxx将光标所处的字符替换为xxx
#r + xxx将光标开始的#个字符替换为xxx

这里要介绍另外一个模式,替换模式,按下shift + r就可以进入替换模式。此时输入的所有内容都会直接覆盖原先的内容,同样的如果需要退出,按Esc即可回到普通模式。


撤销

键位功能
u撤销上一次操作

底行模式

进入底行模式,按下shift + 即可,然后在:后面输入指令。

行号

输入set nu:在文件的每一行前列出行号
输入set nonu:取消每一行前的行号

效果如下:

在这里插入图片描述


查找

/xxx:查找xxx字符串,如果不是当前在字符串,按n会跳到下一个该字符串

比如输入/hello

在这里插入图片描述

其就会高亮标注所有匹配的字符串,此时再按下n,光标就会跳转到下一个字符串。不过这个高亮是不会自己消除的,不论你后面进入什么模式,这个高亮都会一直存在。

此时就要输入以下指令:

noh:取消高亮


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

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

相关文章

初识--数据结构

什么是数据结构?我们为什么要学习数据结构呢....一系列的问题就促使我们不得不了解数据结构。我们不禁要问了,学习C语言不就够了吗?为什么还要学习数据结构呢?这是因为:数据结构能够解决C语言解决不了的问题&#xff0…

数据结构和算法:回溯

回溯算法 回溯算法(backtracking algorithm)是一种通过穷举来解决问题的方法,它的核心思想是从一个初始状态出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选…

spring-cloud微服务openfeign

Spring Cloud openfeign对Feign进行了增强,使其支持Spring MVC注解,另外还整合了Ribbon和Nacos,从而使得Feign的使用更加方便 优势,openfeign可以做到使用HTTP请求远程服务时就像洞用本地方法一样的体验,开发者完全感…

unity学习(83)——细节名称和血条

眼中有细节,学习的过程才能平稳! 1.游戏更新时把名字也更新 代码如下: 效果如下: 2.因为是第三人称,从背后看,所以名称应该水平对称,翻转一下!rotate y180 游戏内效果如下&#xf…

IEC101、IEC103、IEC104、Modbus报文解析工具

一、概述 国际电工委员会第57技术委员会(IEC TC57)1995年出版IEC 60870-5-101后,得到了广泛的应用。为适应网络传输,2000年IEC TC57又出版了IEC 60870-5-104:2000《远东设备及系统 第5-104部分:传输规约-采…

【数据交换格式】网络socket编程温度采集智能存储与上报项目技术------JSON、TLV

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

数据结构__顺序表和单链表

顺序表的改进 问题: 1. 中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。 3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了…

安卓逆向 | 某X游戏垂类Web nonce

*本案例仅做分析参考,如有侵权请联系删除 1.逻辑分析 通过XHR断点,然后逐步往上调发现nonce生出处。 在console执行下函数 其中 i,是当前日期和时间的秒级时间戳,并将其向下取整到最接近的整数。 i = ~~(+_.w() / 1e3)w</

CLI举例:上下行连接路由器(路由引流)

CLI举例&#xff1a;上下行连接路由器&#xff08;路由引流&#xff09; 介绍了集群设备&#xff0c;上下行连接路由器的配置举例。 组网需求 如图1所示&#xff0c;上行网络使用BGP&#xff0c;下行网络使用OSPF&#xff0c;多数据中心统一通过路由器R4接入Internet。 希望…

C++位图和布隆过滤器(含哈希切割)

文章目录 C位图和布隆过滤器&#xff08;含哈希切割&#xff09;1、位图&#xff08;Bitmap&#xff09;1.1、位图的概念1.2、位图的使用1.3、位图的模拟实现1.4、位图相关面试题 2、布隆过滤器&#xff08;Bloom Filter&#xff09;2.1、布隆过滤器的概念2.2、布隆过滤器的插入…

【通信原理笔记】【三】模拟信号调制——3.5 角度调制(FM、PM)与其频谱特性

文章目录 前言一、相位与频率二、PM和FM的数学表示三、FM的频谱四、FM信号的带宽——卡松公式总结 前言 在之前介绍的几种调制方式中&#xff0c;我提到信噪比时计算的是用户解调后的信噪比&#xff0c;然而在北邮通信原理课中考虑的是解调器输入的信噪比&#xff0c;即考虑的…

一键破解WB多条带--Swissprot数据库

WB条带不符合预期&#xff1f; 不要着急扔掉结果&#xff0c;有可能是重要信息忽略了哟&#xff01;Swissprot带你了解蛋白大小的前因后果。 UniProtKB/Swiss-Prot (reviewed) 是一个高质量人工注释且非冗余的蛋白序列数据库。其中包含各类实验结果、计算得到的特征信息和文献…

损失函数-交叉熵 梯度下降

文章目录 1、交叉熵的简单例子1.2、Classification Error&#xff08;分类错误率&#xff09;1.3、Mean Squared Error (均方误差)1.4、交叉熵损失函数1.5、二分类 2、什么是梯度下降法&#xff1f;2.2、梯度下降法的运行过程2.3、二元函数的梯度下降 1、交叉熵的简单例子 参考…

动力与智能的碰撞:高效控制下的Profinet与EtherCAT逆变器融合

在实施工业自动化解决方案时&#xff0c;特别是当涉及到西门子S7-1200/1500系列PLC的集成时&#xff0c;一个常见的问题就是是确保不同通信协议之间的兼容性。在这种情况下&#xff0c;我们面临的是将这些PLC与支持EtherCAT通信功能的逆变器设备相连接的需求。西门子PLC通常利用…

浏览器密码框明文密文兼容edge的问题

在网页中注册会员的时候&#xff0c;经常需要输入用户名&#xff08;账号&#xff09;和密码&#xff0c;在输入密码的时候&#xff0c;为了防止用户输错密码&#xff0c;经常会给密码框加一个小功能&#xff0c;就是点击密码框右侧闭着的小眼睛&#xff0c;可以让密文变成明文…

蓝桥杯真题 买不到的数目 结论题 数论

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f468;‍&#x1f3eb; 数论&#xff1a;pxpy 不能表示的最大数为pq-p-q的证明 最大能表示的数为&#xff1a; p q − p − q ( p − 1 ) ( q − 1 ) pq-p-q(p-1)(q-1) pq−p−q(p−1)(q−1) 则最大不能表示的数为 ( p − …

Tubi 十岁啦!

Tubi 今年十岁了&#xff0c;这十年不可思议&#xff0c;充满奇迹&#xff01; 从硅谷一个名不见经传的创业小作坊&#xff0c;转变成为四分之一美国电视家庭提供免费流媒体服务的北美领先的平台&#xff1b; 从费尽心力终于签下第一笔内容合作协议&#xff0c;到现在与 450 …

实验:基于Red Hat Enterprise Linux系统建立RAID磁盘阵列

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 什么是磁盘阵列&#xff08;RAID&#xff09; 1. 为虚拟机添加4块大小为20G的硬盘nvme0n【2-5】&#xff0c;将nvme0n【2、3、4】三块硬盘 建立为raid5并永久挂载&#xff0c;将RAID盘全部空间制作逻辑卷&#…

软件开发自媒体获客避坑:啥都能干=啥都抓不着=啥都干不了。

我就结合我的经验谈一下粗浅的看法&#xff0c;权当抛砖引玉了。 一、自媒体流量本质是一种泛流量 自媒体流量通常指的是通过自媒体平台&#xff08;如微信公众号、微博、知乎等&#xff09;获取的泛流量。泛流量是指广泛的、来自不同渠道的流量&#xff0c;包括通过搜索引擎…

面试官为什么喜欢考察Vue底层原理

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…