开发工具vim

news2025/7/6 5:55:14

一、开发工具vim

vim的安装:yum  install  -y  vim

指令:vim  --version可以查看当前的版本信息,没有弹出信息就是没有安装。

装的vim是没有相关配置文件的,配置文件需要后面自己装。

之前说过,vs2019是集成软件编译器,也叫集成开发环境。集编写,调试,编译,链接,运行功能于一体;而Linux下这些功能需要不同的软件来实现。vim就是一个编辑器,和Windows下记事本的定位是一致的,只能进行文本的编写。也就是说vim负责了代码的编写任务。vim的功能相当强,是一款多模式的编辑器。同时也意味着学习成本高。

首先创建一个test.c文件,然后vim  test.c显示出来的界面如下:

正常进入vim中,会进入命令模式,也是默认模式。此时按键盘上的大多数键是没有用的。如果想要退出,shift+ ;  即 ' : ',进入底行模式。输入q,enter退出,如果在之前乱按的过程中按到了i或者a或者其他什么,就不能这样退出了。解决方案在后面。

在左下角,回车后退出test.c文件

学会退出后,再进入vim,输入i,会进入插入模式

左下角:

然后就可以进行代码的编写了,完成代码编写后,再shift + ; 即 : ,:会以文本的形式在存放文件中。这是因为在插入模式下,所有的输入内容都会变成文本输入到文件中。想要退出,按电脑左上角的esc,此时进入命令模式。

然后再shift + ;  输入q,enter退出。有的电脑在进行内容的更改后,必须输入wq才能退出。wq是保存文件内容并退出的意思。如果不小心用q退出会报这样的错误:

这时Ctrl + c可以重新进入命令模式(自己试出来的,不知道会不会有什么隐患)

从底行模式进入命令模式也是esc键。底行模式和插入模式之间的转换要通过命令模式过渡。

命令模式下的文本批量化操作(都是在命令模式下进行的):

1.批量化的复制粘贴剪切:

光标移动到要复制的行数上,输入yy,界面是没有反应的,然后在要粘贴的位置,按p,就会粘贴出来,输入5p就粘贴5行,10p就10行。如果要复制两行,输入2yy,p,就能粘贴两行出来。

光标移动到要剪切的行数上,输入dd,就能剪切内容,同样通过p粘贴出来。同样可以在前面加上数字达到剪切n行的效果。

注意:数字不要从右侧的数字键盘上输入,数字键盘上的1被按会进入插入模式。

yy:复制当前行;nyy复制当前行以下n行。

p:粘贴在当前行后面;np粘贴n次到当前行后面。

dd:剪切当前行;ndd剪切当前行以下n行。

2.撤销

撤销刚才的操作,输入u就行。

如果需要撤销撤销的行为,Ctrl + r

对于最近的两次误操作,可以在两次操作直接来回跳转。

u:撤销

Ctrl + r:针对u操作,再次进行撤销

3.行数跳转

在阅读万行以上的文本时,需要进行行数的跳转,比如需要光标跳转到文本的结尾:shift + g即 G 。需要光标跳转到文本的第一行:输入gg。如果需要光标跳转到12345行:输入12345,shift + g。

在文本某一行特别长的情况下,如果需要让光标跳转到本行的结尾:shift + 4(不是右边的4)即 $ 。如果需要让光标跳转到本行的开头:shift + 6(不是右边的6)即 ^ 。$和^通常被称为锚点。

如果需要快速移动到某行文本的中间:按w,光标会以单词为单位向后移动,与之相对,按b,光标会以单词为单位向前移动。

最后是一个建议:进行上下左右移动时,不推荐用右边上下左右键进行移动,而是用h j k l 来进行光标的移动,因为在后面批量化注释的内容中,不支持上下左右键,只能用h j k l 。四个按键分别对应:左,下,上,右。老式键盘中,没有上下左右键,也是 h j k l 负责上下左右移动的。

记忆方式:h,最左边,左;l,最右边,右;k,King王在上,上;j,Jack骑士在下,下。

shift + g:G:快速让光标跳转到文本结尾

gg:快速让光标跳转到文本开头

n + shift + g:快速让光标跳转到文本第n行

shift + 4:$:快速让光标跳转到本行的结尾

shift + 6:^:快速让光标跳转到本行的开始

w:以单词为单位,向后移动一个单位

b:以单词为单位,向前移动一个单位

h j k l :左下上右移动

注释多行:首先将光标移动到要注释行的行首,然后Ctrl + v,进入V-BLOCK模式,然后通过j,k上下移动选择要注释的行,然后shift + i,进入INSERT模式,输入//后,按esc键进入命令行模式,之前通过上下移动的选定的代码就注释完毕了。

4.字符修改

在写代码是发现,写了一段后,要大写的忘记开大写了。在Windows下,只能把错误的部分删掉,重新输入正确的。在Linux下,可以使用shift + ` 即 ~ 来将小写转换成大写,大写转换为小写。在光标所在位置,按shift + ` 就能转换大小写,按一次转换一个字母,符号不进行转换。

如果需要将光标所在字符替换,除了删除重输,还可以按r,然后输入要替换的字符,如果需要替换多个,就输入数字n + r,然后输入要替换的字符,光标所在位置及后面n-1个字符就都替换成输入的字符了。

如果需要输入内容直接覆盖光标所在位置的内容:shift + r,即R。这时已经进入第四种模式了,但是就简单的当做一个命令就行。然后输入要覆盖的内容。完成操作后要esc退出模式。R的作用是进行批量化替换。

现在可以通过dd达到整行删除的效果,但如果需要删除一个字符呢?按x。就会删除当前光标所在的字符。如果在前面加上数字n,就会删除光标所在字符,即后面n-1个位置的字符。

shift + ` :~:大小写快速转换。

r:替换光标所在位置的字符,支持n + r。

shift + r:R:批量化替换光标位置的字符

x:删除光标所在位置的字符,支持n + x。

以上命令熟悉后,vim就能处理大多数问题了。

还有这些命令中的一些并不是唯一的,存在具有相似功能的命令,比如i是进入插入模式;a:光标往后移动一格进入插入模式;o:在光标下一行进入插入模式。

任何模式都可以通过esc来回到命令模式。

vim还有一些配置需要安装(只支持centos 7),和yum安装不一样,仔细阅读。

安装步骤在gitee.com上搜索vimforapp然后下翻,就能看到了。

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

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

相关文章

【畅购商城】购物车模块之修改购物车以及结算

目录 购物车操作:修改 分析 接口 后端实现:更新 前端实现:修改 前端实现:全选 后端实现:删除数据 结算 跳转页面 购物车操作:修改 分析 接口 PUT http://localhost:10010/cart-service/carts 后…

python数学基础——单词统计

这个练习使用的是英文的单词统计,使用split通过单词中间的空格来做区分,在遍历的过程中通过对【字典】类型进行【字典推导式】的处理来计算每个单词出现的频次。但是由于过程中我们通过re的正则表达式来替换掉了很多的符号,并没有替换成空&am…

【网页设计】web前端期末大作业html+css

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

Day12--自定义组件-渲染my-search组件的基本结构

1.自定义搜索组件 我的操作: 1》在uni_modules中右键新建uni_modules插件: 2》看看效果图: ************************************************************************************************************** 2.在分类页面的 UI 结构中&…

工作中常用的设计模式--策略模式

一般做业务开发,不太容易有大量使用设计模式的场景。这里总结一下在业务开发中使用较为频繁的设计模式。当然语言为Java,基于Spring框架。 1 策略模式(Strategy Pattern) 一个类的行为或方法,在运行时可以根据条件的不同,有不同的…

verilog练习——基础语法

目录 基础语法 VL1 四选一多路器 VL2 异步复位的串联T触发器 VL3 奇偶校验 VL4 移位运算与乘法 VL5 位拆分与运算 VL6 多功能数据处理器 VL7 求两个数的差值 VL8 使用generate…for语句简化代码 VL9 使用子模块实现三输入数的大小比较 VL10 使用函数实现数据大小端转…

数据结构题目收录(二十五)

1、排序趟数与序列的原始状态无关的排序方法是()。 Ⅰ、直接插入排序 Ⅱ、简单选择排序 Ⅲ、冒泡排序 Ⅳ、基数排序 A:Ⅰ、ⅢB:Ⅰ、Ⅱ、ⅣC:Ⅰ、Ⅱ、ⅢD:Ⅰ、Ⅳ 解析 交换类的排序,其趟数和…

GUI编程--PyQt5--QDiaglog

文章目录QDialogQFontDialogQColorDialogQFileDialogQInputDialogQDialog 对话框基类,继承QWidget;用于短期任务,分为模态、非模态 模态,阻塞在当前窗口;分为应用程序级别&窗口级别(仅阻塞关联的窗口&…

关于使用鼠标时间mouseMove拖拽元素及元素抖动的解决方案

最近在做一个画布相关的项目时有一个场景是移动画布,最先开始想到的是拖拽事件,但是用户希望元素是实时的变化,所以决定使用mouseMove事件来做。 思路 通过mouseDown事件确定鼠标按下的位置根据mouseMove事件来计算出鼠标相对初始状态的横向…

MySQL锁杂谈

【说明】 1.MySQL版本5.7.37 2.事务隔离级别 REPEATABLE-READ 3.表结构 Create Table: CREATE TABLE isolation_innodb (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(10) DEFAULT NULL,money int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT4…

jsp库存管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 库存管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发,数据库为Mysql,使用ja…

VMware Cloud Director数据库操作

VMware Cloud Director 是一个云服务平台,以自助服务模式提供安全、隔离、弹性的虚拟数据中心计算、网络、存储和安全。在NFV整个架构中属于VIM层,与NFVI层(对VMware来说即vSphere虚拟化环境)对接获取虚拟化资源并提供给租户。 NF…

服务访问质量(QoS)——QoS技术概述与配置

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.QoS技术概述 1.QoS的应用需求 ①网络拥塞的影响&#xff1a…

【Linux】项目自动化构建工具:make/Makefile的使用

文章目录一、背景1、make和makefile是什么?2、为什么要使用make和makefile?二、原理1、使用make和makefile2、依赖关系和依赖方法3、具体原理4、项目清理一、背景 1、make和makefile是什么? make是一个命令,是一个解释makefile中指令的命令…

Linux项目:自主web服务器

文章目录项目描述Web与 http 发展史DNSURI URL URNHTTP 概述项目纲要项目架构套接字的封装HTTP服务启动日志信息与工具类请求、响应类读取请求读取请求行读取请求报头分析请求行分析请求报头读取正文构建响应预处理返回静态网页CGI机制CGI机制的基本概念CGI函数的实现子CGI程序…

【点云处理】点云法向量估计及其加速(4)

上篇文章【点云处理】点云法向量估计及其加速(3)介绍了如何使用pcl提供的gpu版本法向量计算接口对点云发向量计算进行加速。不足之处在于点云k近邻查找依然比较耗时,成为影响整体计算性能的瓶颈。这篇文章就如何优化点云K近邻查找效率进行实验。上一篇文章的示例代码…

redis数据库的下载安装/免安装版

文章目录下载方式一下载方式二免安装版redis是一款高性能的NOSQL系列的非关系型数据库这里分享三个下载源,只介绍免安装版下载方式一 官网下下载https://redis.io(国外网站下载速度比较慢) 下载方式二 Redis中文网http://www.redis.net.cn…

想你所想,华为云桌面Workspace助你轻松办公

想你所想,华为云桌面Workspace助你轻松办公 双11作为近年来最受关注的购物季,从最开始的电商,到现在各行各业纷纷下场推出活动,期望在此段时间内迅速积累用户,从而提升产品知名度和用户基础。华为云也不例外&#xff0…

学生个人博客网页设计作品 学生个人网页模板 个人网页制作 HTML学生个人网站作业设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

应用商店的ASO和搜索引擎的SEO的区别

ASO和SEO,目标相似,有着异曲同工之妙,两者都是提高搜索排名的方式,具体有什么区别呢?今天柚鸥ASO给大家做一下总结。 SEO是指搜索引擎优化,利用搜索引擎的规则来提高网站(例如:百度…