【Linux】编辑器 vim

news2024/11/19 7:43:57

1、vim的基本概念

  • vi/vim【一款文本编辑器】
  • vim【一款多模式编辑器】
  • vi/vim 的区别简单点来说,它们都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于 x window、 mac os、windows

2、vim的5种常用模式

  • 正常/普通/命令模式(Normal mode)
    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入 Insert mode 下,或者到 last line mode
  • 插入模式(Insert mode)
    只有在 Insert mode 下,才可以做文字输入,按「ESC」键可回到命令行模式
  • 底行模式(last line mode)
    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,「shift + :」即可进入该模式
  • 替换模式【shift + r = R】
  • 视图模式【ctrl + v】
  • 要查看你的所有模式:打开vim,底行模式直接输入「:help vim-modes」

在这里插入图片描述


3、vim的基本操作

  • 进入vim,在系统提示符号输入vim 及文件名称后,就进入vim 全屏幕编辑画面:
    [LMY@hecs-38755 ~]$ vim test.c
    【注】进入vim之后,是处于 [正常模式],你要切换到 [插入模式] 才能够输入文字。
  • [正常模式] 切换至 [插入模式]
    输入a
    输入i
    输入o
  • [插入模式] 切换至 [正常模式]
    目前处于 [插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到 [正常模式] 再删除文字。当然,也可以直接删除。
  • [正常模式] 切换至 [末行模式]
    「shift + ;」, 其实就是输入「:」
  • 退出 vim 及保存文件,在 [命令模式] 下,按一下「:」冒号键进入「底行模式」
    : w (保存当前文件)
    : wq (存盘并退出vim)
    : w!强制写入
    : q! (不存盘强制退出vim)
    : wq!强制保存并退出vim)

4、vim命令模式命令集

(1)光标命令

按[gg]【定位到文本开始】
按[shift+g(G)]【定位到文本末尾】
按[n + shift+g]【定位到第 n 行】
按[shift + 6(^)]【定位到该行的最左侧】
按[shift + 4($)]【定位到该行的最右侧】
vim 可以直接用键盘上的光标来上下左右移动,但正规的 vim 是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头

(2)复制粘贴命令

「yw」:将光标所在之处到字尾的字符复制到缓冲区中,即复制单词【「nyw」复制 n 个单词到缓冲区】
「yy」:复制光标所在行到缓冲区。【可以 nyy 复制 n 行】
「p」:将缓冲区内的字符贴到光标所在位置【注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能】【可以「np」粘贴 n 次】

(3)撤销上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」:撤销的恢复【对 ctrl + r 后悔,还按 u】

(4)删除

「x」:每按一次,删除光标所在位置的一个字符【可以 nx 删除后面 n 个字母】
「X」:大写的X,每按一次,删除光标所在位置的 “前面” 一个字符【可以 nx 删除前面 n 个字母】

「dd」:删除光标所在行【和 p 配合,实现剪切】【可以 ndd 剪切 n 行】

(5)替换

「r」:替换光标所在处的字符【支持 nr 用一个字符替换多个字符】
「R」:进入替换模式,替换光标所到之处的字符,直到按下「ESC」键为止

(6)补充命令

「shift + ~ 」:自动切换字母大小写
「shift + # 」:自动查询选出和光标所在单词相同的所有单词,按 n 倒着查看下一个


5、vim底行模式命令集

  • : set nu显示行号
  • : set nonu去掉行号
  • : !gcc test.c加了!,不退出 vim 直接编译
  • : !./a.out加了!,不退出 vim 直接运行
    在这里插入图片描述
  • : /XXX搜索关键字)【按 n 查下一个】

6、补充(如何注释解注释)

在这里插入图片描述

7、添加信任列表(实现sudo)

在这里插入图片描述

8、配置vim

👉【链接:自动配置 vim】

在这里插入图片描述

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

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

相关文章

Android高德地图截屏功能(可包含自定义控件)

一、不包含自定义控件 地图 SDK 支持对当前屏幕显示区域进行截屏,可以对地图、覆盖物(包含信息窗口)、Logo进行截取屏幕,这其中不包括地图控件、Toast窗口。 详细示例如下: // 对地图进行截屏aMap!!.getMapScreenSho…

ajax day3

3、将普通对象转为查询参数字符串形式: 创建URLSearchParams参数,再用toString方法转为字符串 4、xhr对象 请求参数:body参数 5、promise promise对象一旦被兑现或拒绝,就是已敲定了,状态无法再被改变。故此处先执行…

基于Python和mysql开发的智慧校园答题考试系统(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的智慧校园答题考试系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都…

第十章 数组和指针

本章介绍以下内容: 关键字:static 运算符:&、*(一元) 如何创建并初始化数组 指针(在已学过的基础上)、指针和数组的关系 编写处理数组的函数 二维数组 人们通常借助计算机完成统计每月的支出…

konisGraph学习。复杂查询优化记录

最近有需求是查两个公司之间的投资关系 比如 a和b之间有哪些直接投资和间接投资。 例如 a->b a->e->b a->c->d->b b->f->a 需求是查出7跳以内的ab之间的投资关系 v的标签是company_name,属性是company_name ,eid 其中ideid e的标签是inv…

恒林家居引入纷享销客CRM系统,领跑家居行业营销数字化进程

近日,恒林家居股份有限公司((股票代码:603661以下简称为“恒林家居”)携手纷享销客在湖州召开了CRM项目启动会。双方领导及核心项目人员齐聚一堂,展开了深度交流并达成了重要共识。 作为家居行业的领军企业…

查看创建好的数据库

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 语法格式: show create database 数据库名称; 案列:查看testing数据库信息 mysql> show create database testing; ------------------------…

源代码防泄密和工控安全方案简介

客户情况 某新能源电池企业专业从事于新能源锂离子动力电池和储能电池的研发、生产和销售,具备电芯、模组、BMS及Pack的完整资源开发能力。公司致力于通过持续不断地改进电池技术,为全球锂离子动力和储能领域提供数字化精准高效的新能源解决方案。 该企…

【Spring Boot 源码学习】OnClassCondition 详解

Spring Boot 源码学习系列 OnClassCondition 详解 引言往期内容主要内容1. getOutcomes 方法2. 多处理器拆分处理3. StandardOutcomesResolver 内部类4. getMatchOutcome 方法 总结 引言 上篇博文带大家从源码深入了自动配置过滤匹配父类 FilteringSpringBootCondition&#x…

说完 Java 的 Abstract 后再来说说接口 (interface )

如你对 Abstract 修饰的抽象类不是非常了解的话,请自行先考古下。 这篇文章需要对 Java 定义过的抽象类有一些基本的了解才可以。 抽象类和抽象方法 用 Abstract 修饰的类,叫做抽象类,那么用 Abstract 修饰的方法叫做抽象方法。 在 Java 中…

LabVIEW更改Tab所选标签的颜色

LabVIEW更改Tab所选标签的颜色 在开发过程中,有时会出现要将不同tab页设置不同颜色的情况。此VI允许编程方式更改前面板选项卡控件上选项卡的颜色。它是突出显示所选选项卡的理想选择 在某些应用程序中,用户希望在按下时突出显示选项卡控件。此VI使用事…

算法从未放弃你,放弃你的只有你自己

在人生的旅程中,我们常常会遇到各种挫折和困难。有些人在面对困境时,会选择放弃,将责任归咎于命运或外部环境。然而,算法教给我们一个重要的道理:永远不要放弃 当我们遇到问题或挑战时,算法可以帮助我们找到…

AWT中常用组件

基本组件 组件名 功能 Button Button Canvas 用于绘图的画布 Checkbox 复选框组件(也可当做单选框组件使用) CheckboxGroup 用于将多个Checkbox 组件组合成一组, 一组 Checkbox 组件将只有一个可以 被选中 , 即全部变成单…

python 使用requests爬取百度图片并显示

爬取百度图片并显示 引言一、图片显示二、代码详解2.1 得到网页内容2.2 提取图片url2.3 图片显示 三、完整代码 引言 爬虫(Spider),又称网络爬虫(Web Crawler),是一种自动化程序,可以自动地浏览…

C++数据结构--红黑树

目录 一、红黑树的概念二、红黑树的性质三、红黑树的节点的定义四、红黑树结构五、红黑树的插入操作参考代码 五、代码汇总 一、红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过…

数字花园的指南针:微信小程序排名的提升之道

微信小程序,是一片数字花园,其中各种各样的小程序竞相绽放,散发出各自独特的芬芳。在这个花园中,排名优化就像是精心照料花朵的园丁,让我们一同走进这个数字花园,探寻如何提升微信小程序的排名优化&#xf…

Idea项目爆红

解决办法: 方案一:重新加载Maven依赖 方案二:清除缓存 方案三: 在当前项目下执行以下命令,重新生成.iml文件 mvn idea:module

Hadoop的安装和使用,Windows使用shell命令简单操作HDFS

1,Hadoop简介 Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的,它具有以下几个方面的特性。 高可靠性。 高效性。 高可扩展性。 高容错性。 成本低。 运行在Linux平台上。 支持多种编程…

【Redis7】--2.十大数据类型

文章目录 Redis十大数据类型1.Key通用命令1.1keys *1.2EXISTS1.3DEL1.4EXPIRE1.5TTL1.6TYPE1.7DBSIZE1.8SELECT1.9MOVE1.10FLUSHDB1.11FLUSHALL1.12help1.13CONFIG 2.Redis十大数据类型2.1String2.1.1SET和GET2.1.2MSET和MGET2.1.3INCR、INCRBY2.1.4SETNX和SETEX2.1.5MSETNX2.1…

Android笔记(二十九):利用python自动生成多语言

背景 项目需要支持十几种多语言,而且每个版本的新功能ui都有很多地方需要多语言,如果手动添加非常耗时,于是设计了一个python脚本,通过excel表格转化多语言到项目values/strings文件内 步骤 android工程项目结构 脚本位于langu…