Linux基础开发工具—vim

目录

1、vim的概念

2、vim的常见模式

2.1 演示切换vim模式

3、vim命令模式常用操作

3.1 移动光标

3.2 删除文字

3.3 复制

3.4 替换

4、vim底行模式常用命令

4.1 查找字符

5、vim的配置文件


1、vim的概念

Vim全称是Vi IMproved,即说明它是Vi编辑器的增强版。

Vim是一种多模式编辑器,不同模式下按键功能不同。

2、vim的常见模式

vim的常见模式有三种:命令模式、插入模式、底行模式。

命令模式(Normal mode)

vim打开文件时默认的模式,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段进入插入模式下,或者到底行模式。

插入模式(Insert mode)

只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令模式。该模式是我们后面使用得最频繁的编辑模式。在命令模式下按i\o\a等即可进入插入模式。

底行模式(last line mode)

可以执行文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,按下shift+: 即可进入该模式,按「ESC」键可回到命令模式

三种模式的切换


2.1 演示切换vim模式

在bash中输入vim+文件名就可以用vim打开文件,此时vim为默认的命令模式

这就是进入了vim且模式为命令模式

从命令模式进入插入模式,需要输入i/o/a。

i\o\a的区别:

i进入后光标在位置不变,但推出后若在一行的首个字符,光标不变,不在就会到上一个字符的位置。

o进入后会光标在上一次的行换行到下一行,退出插入模式回到命令模式后,光标位置不变。

a进入后光标会转移到上一个字符的下一个位置,退出插入模式回到命令模式后,光标会回到在插入模式所处字符的上一个字符位置。

在命令模式下按 : (冒号)即 【shift+;】,就可以进入底行模式


3、vim命令模式常用操作

3.1 移动光标

gg:光标定位到文件开头。
shift + g(G):光标定位到文件结尾。
n + shift + g(nG):光标定位到文件第n行。
shift + 6(^):光标定位到行开始。
shift + 4($):光标定位到行结尾。
h、j、k、l:左、下、上、右移动。

3.2 删除文字

x :每按一次,删除光标所在位置的一个字符
n + x :例如,「6x」表示删除光标所在位置的“后面(包含自己在内)"6个字符
X :大写的X,每按一次,删除光标所在位置的“前面”一个字符
n + X :例如,「20X」表示删除光标所在位置的“前面”20个字符

以上都是在一行内的操作。是一行内的前后。
dd :删除光标所在行
n + dd :从光标所在行开始删除n行

3.3 复制

yw :将光标所在之处到字尾的字符复制到缓冲区。
n + yw :复制n个字到缓冲区。
yy :复制光标所在行到缓冲区。
n + yy :例如,「6yy」表示连续复制从光标所在的该行“往下数”6行文字到缓冲区。
p :将缓冲区内的字符粘贴到光标所在位置。

n + p : 例如,「6p」表示连续粘贴从光标所在的该行“往下数”6行。

注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

u :撤销

ctrl + r :对撤销撤销

dd :剪切

n + dd :剪切n行

3.4 替换

r :替换光标所在的字符

n + r :替换光标所在的后n个字符

shift + r(R) :替换光标所到之处的字符,直到按下「ESC」键为止。

3.5 批量化注释

批量化注释

1、ctrl v(进入可视化模式)

2、h、j、k、l区域选择,j

3、shift + i = I

4、//

5、ESC

批量化去注释

1、ctrl v

2、h、j、k、l区域选择

3、d


4、vim底行模式常用命令

列出行号:set nu

跳转到文件中的某一行:n

保存文件:w

离开vim:q,如果无法离开,在 q 后面加 ! 强制离开vim,此时一般并没有退出,按任意键又可以返回vim。

保存并退出:wq

分屏:vs 文件名

4.1 查找字符

/ + 关键字 :先按 / 键,再输入想要查找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往后寻找到需要要的关键字为止。
? + 关键字 :先按 ? 键,再输入想要查找的字符,如果第一次找的关键字不是想要的,可以一直按 n 会往前寻找到需要的关键字为止。


5、vim的配置文件

系统中公共的vim配置文件在/etc目录下面,是一个叫vimrc的文件。配置这个文件对所有用户都生效

每个用户的家目录下都有自己的配置文件.vimrc,如果没有可以创建一个。配置这个文件只对该用户有效。

对vim的配置就是对这个名为vimrc.vimrc的文件内容的修改。

对于vim的配置,大家可以按照vim的配置代码进行一个一个地配置,也可以在网络上寻找别人公开的vim配置文件进行使用,这里不再赘述。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构与算法效率分析:时间复杂度与空间复杂度详解(C语言)

1. 算法效率 1.1 如何衡量一个算法的好坏? 在计算机程序设计中,衡量算法优劣的核心标准是效率。但效率不仅指运行速度,还需要综合以下因素: 时间因素:算法执行所需时间 空间因素:算法运行占用的内存空间…

使用arm嵌入式编译器+makefile编译管理keil项目

目录 # arm嵌入式编译器-知识 # arm嵌入式编译器-知识 --- arm嵌入式编译器(百度云盘)下载:arm嵌入式编译器 keil, 链接 提取码: 8a6c arm官方使用教程: Arm Compiler 6 User Guide linux 安装完了有个非常重要的一步…

SwiftUI学习笔记day1---Stanford lecture1

SwiftUI学习笔记day1—Stanford lecture1 课程链接:Lecture 1 | Stanford CS193p 2023课程大纲:代码仓库:github/iOS 文章目录 SwiftUI学习笔记day1---Stanford lecture11.在Xcode中创建一个swiftUI的工程2.简单认识Xcode这个IDE3.尝试理解示…

vanna+deepseekV3+streamlit本地化部署

文章目录 1、vanna介绍1.1、基本介绍1.2、工作原理1.3、优点 2、vannadeepseekV3mysqlstreamlit本地化部署2.1、创建conda环境,安装依赖2.2、Mysql数据准备2.3、新建pycharm项目2.4、封装deepseek大模型2.5、定义MyVanna2.6、构建streamlit的app2.7、app演示 1、van…

【LangChain接入阿里云百炼deepseek】

这是目录 前言阿里云百炼注册账号使用代码执行结果 前言 大模型爆火,现在很多教程在教怎么使用大模型来训练Agent智能体,但是大部分教程都是使用的OpenAI。 最近阿里云推出DeepSeek-R1满血版,新用户可享100万免费Token额度。 今天就教大家怎…

【优选算法】二分法(总结套路模板)

目录 1. 题目一 :二分查找 解题思路: 模板总结(简单版,不适用所有情况) 代码实现: 2. 题目二 解题思路: 模板总结(几乎万能) 代码实现: 3. 题目…

Qt开源控件库(qt-material-widgets)的编译及使用

项目简介 qt-material-widgets是一个基于 Qt 小部件的 Material Design 规范实现。 项目地址 项目地址:qt-material-widgets 本地构建环境 Win11 家庭中文版 VS2019 Qt5.15.2 (MSVC2019) 本地构建流程 克隆后的目录结构如图: 直接使用Qt Crea…

游戏引擎学习第147天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾 具体来说,我们通过隐式计算来解决问题,而不是像数字微分分析器那样逐步增加数据。我们已经涵盖了这个部分,并计划继续处理音量问题。不过,实际上我们现在不需要继续处理…

uni-app打包成H5使用相对路径

网上找了一圈,没用,各种试,终于给试出来了,主要是网络上的没有第二步,只有第一步,导致打包之后请求的路径没有带上域名 运行的基础路径设置为./ config.js文件里面的baseUrl路径改成空字符,千万…

知识社区:打破传统知识传播的壁垒

知识社区的诞生 当今,知识库的上传与下载已无法满足现代用户对知识获取的多样化需求。随着信息量的爆炸式增长和用户需求的日益复杂化,传统的、静态的知识库显得力不从心。用户渴望能够实时互动、即时反馈、多维度探索知识的平台。正是在这样的背景下&am…

洛谷 P5534 【XR-3】等差数列 python

这题不用向下取整//就会错,不太能理解为什么...感觉对结果好像没什么影响啊 a1, a2, n map(int,input().split()) d a2 - a1 an a1 d * (n-1) s (a1an)*n//2 print(s)

机器人路径规划、轨迹优化系列课程

机器人路径规划、轨迹优化课程-第一讲-轨迹规划导论_哔哩哔哩_bilibili 机器人路径规划、轨迹优化课程-第二讲-Dijkstra算法原理讲解_哔哩哔哩_bilibili 机器人路径规划、轨迹优化课程-第四讲-A*算法原理和代码讲解_哔哩哔哩_bilibili 机器人路径规划、轨迹优化课程-第五讲-…

qemu-kvm源码解析-内存虚拟化

内存虚拟化介绍 宿主机上的程序地址转换时为 HVA(宿主机虚拟地址)--MMU-->HPA(宿主机物理地址) 而宿主机上的虚拟机面临两层转化需求: GVP(虚拟机虚拟地址)--MMU-->GPA(虚拟机物理地址) GPA(虚拟机物理地址)--VMM-->HPA(宿主机物理地址) 虚…

WireShark自动抓包

背景 异常流量检测是当前保护网络空间安全的重要检测方法。 对流量的研究,首先需要在系统中进行抓包,并对包进行分析。 这里对WireShark自动抓包进行简要介绍。 操作步骤 1、选择“捕获”>“选项”。 2、在Input下,选择要抓包的网络接…

【CSS3】练气篇

目录 CSS 基本概念CSS 的定义CSS 的作用CSS 语法 CSS 引入方式内部样式表外部样式表行内样式表 选择器基础选择器标签选择器类选择器id 选择器通配符选择器 画盒子文字控制属性字体大小字体粗细字体倾斜行高字体族font 复合属性文本缩进文本对齐文本修饰线文字颜色 CSS 基本概念…

Trae AI IDEA安装与使用

文章目录 背景第一步、下载安装第二步、登录与使用优势异常处理 背景 最近比较热的 Trae 开发工具,在本地下载使用,记录下来。 第一步、下载安装 下载地址:【Trae中文版下载地址】,下载的安装文件名为:【Trae CN-Se…

【Godot4.4】写入和读取ZIP文件

概述 Godot提供了ZIPPacker类型来读写ZIP压缩包文件。本文是简单的写入和读取文件操作测试笔记。 写入纯文本文件 extends Buttonfunc _ready():write_zip_file("1.zip",func(zip_packer):write_txt_file_to_zippack(zip_packer,"1.txt","hhhhh&qu…

SpringBoot基础Kafka示例

这里将生产者和消费者放在一个应用中 使用的Boot3.4.3 引入Kafka依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId> </dependency>yml配置 spring:application:name: kafka-1#kafka…

µCOS-III从入门到精通 第十三章(事件标志组)

参考教程&#xff1a;【正点原子】手把手教你学UCOS-III实时操作系统_哔哩哔哩_bilibili 一、事件标志组简介 1、概述 &#xff08;1&#xff09;事件标志位是一个“位”&#xff0c;用来表示事件是否发生。 &#xff08;2&#xff09;事件标志组是一组事件标志位的集合&am…

LiveGBS流媒体平台GB/T28181常见问题-视频流安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口流地址校验

LiveGBS流媒体平台GB/T28181常见问题频流安全控制HTTP接口鉴权勾选流地址鉴权后401Unauthorized如何播放调用接口流地址校验&#xff1f; 1、安全控制1.1、HTTP接口鉴权1.2、流地址鉴权 2、401 Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.…