【Linux】Linux中的编辑器vim

news2025/4/6 0:34:19

🏖️作者:@malloc不出对象
⛺专栏:Linux的学习之路
👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈
在这里插入图片描述

目录

    • 前言
    • 一、vim的概念
    • 二、命令模式
      • 2.1 命令模式下的基本指令
        • 2.1.1 复制粘贴
        • 2.1.2 删除/剪切
        • 2.1.3 移动光标
        • 2.1.4 其他命令
      • 2.2 进入插入模式
    • 三、底行模式
      • 3.1 底行模式下的常用命令
    • 四、vim的配置
      • 4.1 vim手动配置
      • 4.2 vim的一键配置
    • 五、vim的注意事项


前言

本篇文章我们将要讲解的是Linux中的编译器vim,简单来说你就可以把它当成windows下的记事本,它是我们工作当中非常重要的工具!!

一、vim的概念

vim 是一种多模式的编辑器。那 vim 有多少中模式呢?vim 总共有 13 中模式,但是最常用的模式就只有 3~5 种,分别是命令模式、插入模式、底行模式、替换模式和视图模式,接下来我们将重点学习前三种模式的切换和使用。

  • 命令模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode(打开vim默认所处的模式)。
  • 插入模式:只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
  • 末行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入。

在这里插入图片描述

今天我们先来学习这四种模式,视图模式的切换和使用下次我们遇到了再来讲吧。

二、命令模式

2.1 命令模式下的基本指令

2.1.1 复制粘贴

指令功能说明
yy复制光标所在行的整行内容
nyy复制从光标所在行开始向下的n行内容,n为正整数,表示复制的行数
p粘贴,将复制的内容粘贴在光标所在行的下一行
npp将复制的内容粘贴n次

2.1.2 删除/剪切

指令功能说明
dd剪切光标所在行的内容(如果未进行粘贴就是删除)
ndd剪切光标所在行在内的n行内容
x删除光标所在位置的字符
X删除光标所在位置的前一个字符
nx删除光标所在位置及其向后的n-1个字符(不超过当前行,左侧->右侧)
nX删除光标所在位置及其向前的n-1个字符(不超过当前行,右侧->左侧)

2.1.3 移动光标

指令功能说明
$(shift+4)将光标移动到该行的行尾
^(shift+6)将光标移动到该行的第一个非空字符处
0将光标移动到该行的行首
G(shift+g)将光标移动到文件最后一行的第一个非空字符处
nG将光标移动到文件第n行的第一个非空字符处
gg将光标移动到文件第一行的第一个非空字符处
w将光标向后移动一个字(单词)
nw将光标向后移动n个字
b将光标向前移动一个字
nb将光标向前移动n个字
h向左移动光标
l向右移动光标
j向下移动光标
k向上移动光标
上下左右键向上下左右移动光标(新式键盘的移动方式)

2.1.4 其他命令

命令功能说明
~(shift+1)字符大小写切换
r替换光标所在位置的字符,如:rx是指将光标所在位置的字符替换为x
nr将光标所在位置的字符及其向后n-1个字符替换为指定字符
R进入替换模式,替换光标所到之处的字符,直至摁下 “Esc” 键为止
u表示恢复功能,即撤销上一次的操作(Windows下的Ctrl+z,撤销)
Ctrl + r撤销上一次的u操作(Windows下的Ctrl+y,还原)
ctrl + v + hjkl + I + // + Escctrl + v进入视图模式,hjkl选中区域,I输入内容,选中区域开头全部添加//,Esc退出就表示注释功能

2.2 进入插入模式

指令功能说明
i从光标所在的位置开始插入新的字符
I从光标所在行的行首开始插入新的字符
a从光标所在位置的下一个字符开始插入新的字符
A从光标所在行的行尾开始插入新的字符
o增加一行,并将光标移动到下一行的开头开始插入新的字符
O在当前行的上面增加一行,并将光标移动到上一行的开头开始插入新的字符

三、底行模式

在命令模式下输入 “:”、“/” 或者 “?”,即可进入底行模式。在该模式下,用户输入的任何字符串都会被当成命令,会在 vim 的最下面一行显示,摁下回车键后会执行该命令。如果该字符串不是一个有效的命令,则会出现错误提示。

3.1 底行模式下的常用命令

命令功能说明
w保存文件,但不退出 vim(w:write)
w!对于只读文件,强制保存修改的内容,但不退出 vim
q退出 vim,如果文件有过修改,则必须先保存文件
q!强制退出 vim 而不保存文件
wq保存文件并退出 vim
vs 文件名创建或打开文件并分屏(光标所处位置即当前所处哪个文件)
Ctrl + ww将光标切换到下一个文件(通常与vs 文件名配合使用)
!command不退出 vim 执行Linux指令,按任意键继续
s/pattern1/pattern2/g将光标所在行的字符串pattern1替换为pattern2
%s/pattern1/pattern2/g将所有行的字符串pattern1替换为pattern2
g/pattern1/s/pattern2将所有行的字符串pattern1替换为pattern2
/查找匹配字符串功能,输入 “/字符串”,系统便会自动查找并突出显示所有找到的字符串,然后转到找到的第一个字符串。如果想继续向下查找,可以摁 “n” 键;向上查找则摁 “N” 键
?也可以使用 “?字符串” 来查找指定的字符串,它的使用与 “/字符串” 相似,但它是向前查找字符串
set xx设置xxx功能,例如:set nu在文件中每行开头显示行号等

四、vim的配置

vim 的配置是一人一份的,一个用户配置的 vim 是自己的,不影响别的用户。每个人虽然用的是同一个 vim 程序,但是大家用的是不同的 vim 配置。每个用户在自己的家目录都有一个属于自己的配置文件.vimrc,用户的家目录是没有.vimrc的,需要自己创建。所谓的 vim 基本配置,就是修改自己的.vimrc文件,不要动任何不属于自己的配置文件。

4.1 vim手动配置

我们在自己的家目录输入vim .vimrc创建 vim 的配置文件,然后再文件内输入一下配置选项,根据个人的喜好去配置。但是对新手来说不建议,因为有些插件还是比较麻烦的。
vim在启动时,会自动在当前用户的目录下寻址配置文件,如果没有就是默认的vim。

4.2 vim的一键配置

这里有一个已经配置好了的vim插件,大家可以直接复制这个指令进行配置,下载完成之后按照提示继续操作就好了。

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

在这里插入图片描述

安装完成后就是这样的样式:

在这里插入图片描述

五、vim的注意事项

vim 文件,如果该文件已经存在就打开文件,如果不存在创建打开。

vim的注意事项:

1.不知道当前所在模式,无脑Esc切换到命令模式
2.退出的时候,一般都是先保存再退出
3.vim中操作尽量不要使用鼠标和滑轮(Linux中也是如此,例如:man、more中),滑轮也是一个指令


本篇文章的讲解就到这里了,如果有任何问题或者疑问欢迎大家评论区随时交流哦orz~🙈🙈

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

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

相关文章

SpringBoot【开发实用篇】---- 数据层解决方案

SpringBoot【开发实用篇】---- 数据层解决方案 1. SQL数据源技术持久化技术数据库技术 2. NoSQLSpringBoot整合Redis安装基本操作整合 SpringBoot整合MonggoDB安装基本操作整合 SpringBoot整合ES安装基本操作整合 开发实用篇前三章基本上是开胃菜,从第四章开始&…

“1+X+N”模式助力企业数字化转型

近期,中电金信顺利完成某股份制银行“基于战略解析与业务架构的全行科技规划项目”交付。针对客户的实际业务需求,中电金信采用“1XN”服务模式,服务客户全面的企业架构转型规划。项目组联合行方协同创新,首次将企架建模方法应用于…

【腾讯云 findops Crane集训营】深入了解 Crane 开源项目之实验操作指南

引言: 最近我参加了由腾讯云联合 CSDN 推出的“腾讯云 Finops Crane 开发者集训营”活动,通过这个活动我对腾讯云的 Finops Crane 开源项目有了更深入的了解。在本篇博客中,我将分享我对该项目的认识和体验,并介绍其中一些关键特性…

C++:使用红黑树封装map和set

目录 一. 如何使用一颗红黑树同时实现map和set 二. 红黑树的节点插入操作 三. 红黑树迭代器的实现 3.1 begin()和end() 3.2 operator和operator-- 3.3 红黑树迭代器实现完整版代码 四. map和set的封装 附录:用红黑树封装map和set完整版代码 1. RBTree.h文件…

表情识别 emotion recognition

facial expression recognition 表情,人脸上的肌肉状态,可以表达人类的情绪。 1970年,Ekman定义了六种基本表情 如何定义? 动作单元(action unit)是定义表情的重要工具。 心理学家和生物学家认为,人的表情可以分解…

【HCIP】三层架构综合实验

目录 需求: 一、拓扑设计 二、配置 ①eth-trunk ②创建vlan & 划分vlan & trunk干道配置 ③STP生成树根节点备份&负责分担 ④SVI及VRRP网关冗余设置 ⑤DHCP ⑥通公网 ⑦验证 三层架构:核心层,汇聚层,接入层 …

QT桌面项目(第一个应用程序 桌面壁纸软件)

文章目录 前言一、壁纸切换程序的布局二、添加资源文件三、代码编写四、主界面代码五、程序的编写思路六、程序效果总结 前言 上节课我们已经做好了APP的按键图标了,这篇文章就让我们来开始制作第一个桌面程序吧。 一、壁纸切换程序的布局 这个是windows上浏览器…

vue3使用指南

vue3使用指南 主要介绍vue3的使用&#xff0c;同时会涉及到vue2&#xff0c;并会讲解其中的一些差异。 安装 CDN引入 如果想快速体验&#xff0c;可以直接通过cdn进行引入。 <div id"app">{{msg}}</div> <script src"https://unpkg.com/vue…

谷歌推出下一代大型语言模型 PaLM 2

谷歌在 2023 年度 I/O 大会上宣布推出了其下一代大型语言模型 PaLM 2&#xff0c;擅长高级推理任务&#xff0c;包括代码和数学、分类和问答、翻译和多语言能力以及自然语言生成。 谷歌声称 PaLM 2 是一种最先进的语言模型&#xff0c;要优于其之前所有的 LLM&#xff0c;包括…

网络拓扑架构规划设计

小型组网架构 1.网络拓扑 终端用户接入到交换机,交换机直连防火墙构成的简单网络,防火墙连接internet,对内网的用户进行安全控制 2.特点 用户接入数量较少:小型网络应用于接入用户数量较少的场景,一般支持几个至几十个用户 网络覆盖范围小:网络覆盖范围一般也是一个…

网络拓扑图制作软件

1.亿图图示(EdrawMax) 最像VISIO的网络拓扑制作工具 亿图图示实际上就是国产的Visio,与Visio非常相似。支持B/S架构,查看拓扑非常方便,模版也比较丰富。缺点与Visio也类似,画简单的网络拓扑没有问题,但针对大型网络拓扑管理而言,既需要能制作拓扑,又需要具有管理分析…

Hystrix详解及实践---SpringCloud组件(四)

Hystrix详解及实践 1.Hystrix简介2.雪崩问题3.服务降级、线程隔离、原理3.1.服务降级实践&#xff08;在feign的基础上实现&#xff09;1 添加Hystrix依赖2.在yml中开启熔断功能3.编写降级逻辑4.重启测试 4.服务熔断(Circuit Breaker)、原理4.1. 熔断原理4.2.动手实践 5.Hystri…

5个模板非常多的免费样机素材分享

样机素材是设计行业的不可缺少的素材之一&#xff0c;设计师可以将自己的设计作品&#xff0c;应用到一个效果图中进行展示&#xff0c;让你的设计作品看起来更加形象逼真。 本文分享5个非常给力的样机素材网站 1.即时设计资源社区 即时设计是一款「专业UI设计工具」&#x…

【edusrc】某校园网登录系统存在的一个简单爆破

前言 红中(hong_zh0) CSDN内容合伙人、2023年新星计划web安全方向导师、 华为MindSpore截至目前最年轻的优秀开发者、IK&N战队队长、 阿里云专家博主、华为网络安全云享专家、腾讯云自媒体分享计划博主 本文主讲思路&#xff0c;可能有点废话。 该漏洞已修复 最开始的思…

华为OD机试真题 Java 实现【字符串重新排序】【2023Q1 100分】

一、题目描述 给定一个字串s&#xff0c;s包含以空格分隔的若干个单词&#xff0c;请对s进行如下处理后输出&#xff1a; 1、单词内部调整 对每个单词字母重新按字典序排序。 2、单词间顺序调整: 统计每个单词出现的次数&#xff0c;并按次数降序排列&#xff1b;次数相同…

存下吧!Spring高频面试题总结

Spring是什么&#xff1f; Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 Spring的优点 通过控制反转和依赖注入实现松耦合。支持面向切面的编程&#xff0c;并且把应用业务逻辑和系统服务分开。通过切面和模板减少样板式代码。声明式事务的支持。可以从单…

Windows系统下Chromedriver.exe安装及配置

Windows系统下Chromedriver.exe安装及配置 在利用selenium工具进行Web自动化测试时&#xff0c;必须先要安装浏览器驱动&#xff0c;通常比较常用的是谷歌浏览器和火狐浏览器。 一、浏览器驱动下载地址 1.浏览器驱动官网&#xff1a;http://chromedriver.storage.googleapis…

计算环境安全

计算环境安全 操作系统安全安全机制标识与鉴别访问控制权限管理信道保护安全审计内存保护与文件系统保护 安全部署原则操作系统安全配置密码远程暴力破解安全审计 针对系统的攻击信息收集公开信息收集-搜索引擎信息收集与分析的防范 缓冲区溢出缓冲区溢出基础-堆栈、指针、寄存…

Dubbo源码篇03---点点直连如何实现及背后原理

Dubbo源码篇03---从点点直连探究Complier编译的原理 什么是点点直连实际需求如何实现动态编译&#xff1f;如何发起调用?点点直连原理实现点点直连消费端提供端测试 点点直连小结 什么是点点直连 Dubbo正常的请求模型&#xff0c;都是消费端从注册中心拉取服务提供者列表&…

spring 命令执行 (CVE-2022-22947)

漏洞原理 该漏洞产生的原因是由于&#xff0c;当AddResponseHeaderGatewayFilterFactory传入的值进行计算(getValue())的时候&#xff0c;会逐一向上调用对应的方法&#xff0c;直到进入带有SpEL表达式解析器的位置进行最后的解析&#xff0c;从而触发了SpEL表达式注入漏洞。漏…