【Liunx篇】基础开发工具 - vim

在这里插入图片描述

文章目录

  • 一.vim的基本概念
    • 1.正常/命令模式
    • 2.插入模式
    • 3.底行模式/末行模式
    • 4.视图模式
    • 5.替换模式
  • 二.vim的基本操作
    • 1.进入vim:
    • 2.退出vim:
  • 三.vim正常模式命令集
    • 1.光标定位:
    • 2.复制/粘贴
    • 3.撤销
    • 4.剪切/删除
    • 5. 更改
  • 四.vim底行模式命令集
    • 1.保存/退出
    • 2.调出行号
    • 3.搜索字符
    • 4.命令执行
    • 5.分屏操作
  • 五.补充几个实用的命令
    • 1.命令模式
    • 2.底行模式
    • 3.快速执行历史命令
  • 六.vim的配置
    • 1.vim的配置文件

一.vim的基本概念

 vim是一个专注的编辑器,支持多模式编辑,有命令模式视图模式替换模式插入模式底行模式
在这里插入图片描述

1.正常/命令模式

首次打开vim进入的就是命令模式,命令模式是vim的核心和精华。

  • 功能: 控制屏幕光标的移动,进行字符、单词或行的删除、移动、复制等操作,以及进入插入模式或末行模式。
  • 特点: Vim启动时的默认模式,用于执行各种编辑命令。在此模式下,用户可以通过键盘快捷键快速移动光标,进行文本的浏览和编辑操作。
  • 进入方式: Vim启动后自动进入,或者从其他模式按Esc键返回。

2.插入模式

  • 功能: 允许用户直接在文本中输入内容。
  • 特点: 只有在插入模式下,才可以进行文本输入。
  • 进入方式: 在命令模式下,按下i键即可进入插入模式。
  • 退出方式: 按下Esc键即可退出插入模式,返回正常模式。

3.底行模式/末行模式

  • 功能: 用于执行一些特殊的命令,如文件保存、退出Vim、查找替换、设置环境等。
  • 特点: 提供了一种方便的方式来执行全局命令。
  • 进入方式: 在命令模式下,按下进入底行模式。
  • 退出方式: 按下Esc键即可退出底行模式,返回正常模式。

4.视图模式

  • 功能: 用于选择文本块,方便进行复制、粘贴、删除等操作。
  • 特点: 择文本时有一种鼠标选择的即视感,非常直观。
  • 进入方式: 在正常模式下,按下v键进入字符选择模式,按下V键进入行选择模式,按下Ctrl+v键进入块选择模式。
  • 退出方式: 按下Esc键即可退出视图模式,返回正常模式。

5.替换模式

  • 功能: 用于直接替换光标所在位置的字符。
  • 特点: 在替换模式下,输入的字符将直接替换光标所在位置的字符。
  • 进入方式: 在正常模式下,按下R键即可进入替换模式。
  • 退出方式: 按下Esc键即可退出替换模式,返回正常模式。

二.vim的基本操作

1.进入vim:

指令: vim 文件名
输入vim及文件名称后,就进入vim全屏幕编辑画面,如果文件不存在vim也会新建文件。
在这里插入图片描述
在这里插入图片描述
注意: 进入vim之后,是处于正常模式,你要切换到插入模式才能够输入文字。

正常模式 切换到 插入模式:

  • i:在当前光标位置前插入
  • a:在当前光标位置后插入
  • o:在当前行后插入新行

插入模式 切换到 正常模式:

  • 点击键盘上的Esc键就可以退出到命令模式。(所有模式退到命令模式都是这样)

正常模式 切换到 底行模式:

  • shift + ;,其实就是输入:

2.退出vim:

  • 底行模式下,输入w保存当前文件,输入q退出vim。
  • 底行模式下,wq保存并退出vim。
  • q!:不保存,强制退出vim。

三.vim正常模式命令集

1.光标定位:

  • gg:光标定位到文本最开始。
  • shift+g / G:光标定位到文本最结尾行。(第一个文本所在的地方)
  • n+G:n是任意数字,定位光标到任意行。(第一个文本所在的地方)
  • shift+4 / $:光标定位到行尾。
  • shift+6 / ^:光标定位到行首。
    上面两种方式也被称为锚点
  • hjkl:以字符为单位进行左、下、上、右移动。
  • w/b:光标以单词为单位进行行内或跨行移动。(也可可以配合n使用,一次跨越n个单词)

2.复制/粘贴

  • yy:复制当前行。(也可以配合n使用,一次复制多行)
  • p:粘贴到当前行的下一行。(也可以配合n使用,一次粘贴多份)

3.撤销

  • u:对上一个操作进行撤销,按多次可执行多次撤销。(只要不退出vim,就可以一直撤销)
  • ctrl+r:对u进行撤销。
    这两个命令是环状的,互相可以取消对方

4.剪切/删除

  • dd:剪切/删除当前行。dd完如果不p的话,那就是删除,如果p的话就是剪切
  • x:删除光标所在位置的字符。(也可以配合n使用,一次删除多个字符)
  • shift+x / X: 删除光标所在位置的前面一个字符。(也可以配合n使用,一次删除前n个字符)

5. 更改

  • shift+ `/ ~:快速大小写切换。
  • r:进行文本替换。(也可以配合n使用,进行小范围的文本替换)
  • shift+r / R:模式切换为替换模式,替换光标所到之处的字符。(退出无脑Esc

四.vim底行模式命令集

1.保存/退出

  • w:保存
  • w!:强制保存
  • q:退出
  • q!:强制退出
  • wq:保存并退出
  • wq!:强制保存并退出

2.调出行号

  • set nu:调出行号
  • set nonu:取消行号

3.搜索字符

  • /关键字:先输入/,再输入你想要要查找的字符,如果第一次找的不是你想要的,可以按n,会继续往后寻找。
  • ?关键字:输入?,再输入你先更要查找的字符,如果第一次找的不是你想要的,可以按n,会继续往后寻找。

4.命令执行

  • !:在不退出vim的情况下执行命令。

5.分屏操作

  • vs 文件名:实现多文件分屏。
  • ctrl+ww:实现光标在分屏多文件之间的切换,光标在哪个窗口里面,就对哪一个窗口进行操作。

五.补充几个实用的命令

1.命令模式

  • 批量化注释:ctrl+v ->hjkl->shift+i / I->//->Esc
  • 批量化去注释:ctrl+v->hjkl->d

2.底行模式

  • 批量化替换:%s/被替换的对象/替换的对象/g,gglobal的意思,表示全面的
    例如:将文本中的printf替换成print:%s/printf/print/g

  • 进文件后光标直接到指定行:vim 文件名 +指定行
    例如:进入code.c文件光标直接定位到第15行:vim code.c +15

3.快速执行历史命令

  • !+命令的开始符:快速执行历史命令。
    例如:在这里插入图片描述

六.vim的配置

  未经配置的vim,在插入模式下写代码的时候,没有任何语法提醒,也没有自动补全的功能,使用起来很不方便。要实现在写代码的时候给出提示,需要我们自行对vim进行配置。

1.vim的配置文件

 一般情况下vim的配置都是在一个叫做.vimrc的文件里面。这个文件如果没有我们要手动创建一个。所以vim最根本的配置本质上就是修改当前家目录里的.vimrc的文件,向里面添加配置项。
在这里插入图片描述
示例:
没添加任何配置项的原始vim
在这里插入图片描述
.vimrc文件里面添加显示行号的配置项set nu,保存并退出
在这里插入图片描述

再次打开test.c文件就会发现代码前带上了行号
在这里插入图片描述
一般配置vim都是在你自己的家目录里面配置的,所以一台Liunx机器下有多个用户的前提下,你自己配置的vim影响不了用户。


今天的内容就分享到这里,如果这篇文章对你有帮助,记得点赞,评论+收藏 ,最后别忘了关注作者,作者将带领你探索更多关于Liunx方面的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构---树(Tree)

1. 简介 在数据结构中,树是一种层次结构的数据结构,由节点(node)组成,其中每个节点通过边(edge)与其他节点连接。树是一种非线性的数据结构,广泛用于表示具有层级关系的数据。常见的…

【unity】从零开始制作平台跳跃游戏--界面的认识,添加第一个角色!

在上一篇文章中,我们已经完成了unity的环境配置与安装⬇️ 【Unity】环境配置与安装-CSDN博客 接下来,让我们开始新建一个项目吧! 新建项目 首先进入unityHub的项目页面,点击“新项目”: 我们这个系列将会以2D平台…

Ubuntu K8s

https://serious-lose.notion.site/Ubuntu-K8s-d8d6a978ad784c1baa2fc8c531fbce68?pvs74 2 核 2G Ubuntu 20.4 IP 172.24.53.10 kubeadmkubeletkubectl版本1.23.01.23.01.23.0 kubeadm、kubelet 和 kubectl 是 Kubernetes 生态系统中的三个重要组件 kubeadm: 主…

【ARM】ARM架构麒麟V10安装jdk1.8

ARM架构麒麟V10安装jdk1.8,就一句话安装 yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel 关注我,继续【ARM】安装mysql 简单快捷。

Redis--高并发分布式结构

目录 一、引言 二、redis 1.什么是redis? 三、基础概念 1.什么是分布式? 2.应用服务和数据库服务分离 3.负载均衡 4.分库分表 5.微服务架构 四、总结 一、引言 本篇文章就简单介绍一下什么是redis,以及一些关于高并发和分布式结构的…

Repo管理

文章目录 前言Repo介绍清单仓库清单仓库的组成 初始化Repo同步远程仓库Repo实际应用 前言 我们知道,Git是用来管理某一个仓库,那当一个项目用到了多个仓库时,怎么来同步管理这些仓库呢?这个时候就可以引入Repo管理。 Repo介绍 …

python 数据分析之地图数据绘制

python 数据分析之地图数据绘制 1、根据历史的2023年GDP数据做地图分析 import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams[font.family] SimHei import pandas as pd import folium from folium import Map import geopandas as…

分治算法(单选题)

2-1 分数 2 下列多少种排序算法用了分治法? 堆排序插入排序归并排序快速排序选择排序希尔排序 A.2 B.3 C.4 D.5 正确答案 A 2-2 分数 2 分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决问题,最后将子…

探索 HTTP 请求头中的 “Host” 字段及其安全风险

探索 HTTP 请求头中的 “Host” 字段及其安全风险 大家好,今天我们来聊聊 HTTP 请求头中的“Host”字段,以及它的使用方法和安全风险。 什么是Host字段 在 HTTP 请求头中,“Host”字段是一个至关重要的部分。它告诉服务器,我们…

将 Ubuntu 22.04 LTS 升级到 24.04 LTS

Ubuntu 24.04 LTS 将支持 Ubuntu 桌面、Ubuntu 服务器和 Ubuntu Core 5 年,直到 2029 年 4 月。 本文将介绍如何将当前 Ubuntu 22.04 系统升级到最新 Ubuntu 24.04 LTS版本。 备份个人数据 以防万一,把系统中的重要数据自己备份一下~ 安装配置SSH访问…

渗透测试-前端验签绕过之SHA256

本文是高级前端加解密与验签实战的第1篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256签名来爆破登录。 绕过 通过查看源代码可以看到key为 1234123412341234通过查看源代码可以看到是通过SHA256来进行签名的&#xff0…

解锁医学数据分析新姿势:堆叠图的奇妙世界

在医学数据分析中,数据的可视化是一个非常重要的环节。通过图形展示,我们可以更直观地理解数据之间的关系和趋势。今天,我们将介绍一种非常有用的图形——堆叠图(Stacked Bar Chart),并展示如何在Python中使…

接口测试Day01-HTTP请求

概念 接口:系统之间(外部系统与内部系统,内部系统与内部系统)数据交通的通道。 接口测试:校验 接口回发的 响应数据 与 预期结果 是否一致。 接口测试,可以绕过前端界面。直接对 服务器进行测试&#xff01…

04、GC基础知识

JVM程序在跑起来之后,在数据的交互过程中,就会有一些数据是过期不用的,这些数据可以看做是垃圾,JVM中,这些垃圾是不用开发者管的,它自己会有一套垃圾回收系统自动回收这些内存垃圾,以备后面继续…

一、STM32MP257开发板初体验

文章目录 STM32MP257开发板初体验1. 硬件介绍2. 下载编译源码3. 烧录4. 启动 STM32MP257开发板初体验 从本篇文章开始本专栏将详细记录学习STM32MP257过程中的学习心得,旨在详细掌握嵌入式LINUX中的全流程内容,主要包括启动流程分析、驱动分析、Yocto系…

分析M0G突破后急剧下跌内因,x.game阐述不利面延续多久

MOG最新消息显示,美国唐纳德-的一则声明公开表示支持一种基于以太坊网络ERC-20代币标准的病毒式meme代币——Mog Coin(MOG),这一消息迅速发酵。然而,令人意想不到的是,在这位全球知名政治人物的背书之后&am…

P8772 求和 P8716 回文日期

文章目录 [蓝桥杯 2022 省 A] 求和[蓝桥杯 2020 省 AB2] 回文日期 [蓝桥杯 2022 省 A] 求和 题目描述 给定 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1​,a2​,⋯,an​, 求它们两两相乘再相加的和,即 S a 1 ⋅ a 2 a 1 ⋅ a 3 ⋯ a…

【优选算法】二分算法(在排序数组中查找元素的第一个和最后一个位置,寻找峰值,寻找排序数组中的最小值)

二分算法简介: 提到二分我们可能都会想起二分查找,二分查找要求待查找的数组是有序的,与我们今天讲的二分算法不同,并不是数组元素严格按照有序排列才可以使用二分算法,只要数组中有一个点可以将数组分为两个部分&…

升级Ubuntu 24.04 LTS报错“Oh no! Something has gone wrong.”

强烈建议:升级Ubuntu系统之前先配置好SSH远程访问 最近升级Ubuntu系统(18->24),经历了一些惊魂时刻,复盘下来没有重装系统的最得益于SSH访问。 在升级到24.04版本时,一切似乎表现得很正常,…

大模型底座 Transformer 的核心技术解析

1. 引言 说明目标 在深度学习领域,Transformer架构已成为近年来最重要的技术突破之一。它最早由Vaswani等人在2017年的论文《Attention is All You Need》中提出,迅速成为自然语言处理(NLP)和其他序列建模任务的核心工具。传统方法…