Linux 基础开发工具 : Vim编辑器

Vim 是 Linux 和其他类 Unix 系统上广泛使用的文本编辑器之一。它基于更早的 vi 编辑器,但添加了许多增强功能和扩展。Vim 是“Vi IMproved”的缩写,意为“改进的 Vi”,我们常使用Vim编辑器编写c/c++代码。

ps:该篇介绍均为最基础介绍

Vim编辑器

安装Vim

首先,我们需要使用yum包管理器安装Vim。yum是基于RPM的软件包管理器

sudo yum install -y vim  //-y 是直接安装不需要确认

所有安装命令都是需要root权限的

如果已经安装vim编辑器

系统会提示我们已经安装!

Vim的使用

我们可以使用vim直接创建并编辑文件,或者是使用touch创建文件,使用vim进入编辑

使用Vim之前我们需要知道Vim编辑器的各个状态

不可以直接从编辑模式进入底行模式,相反一样不可以

命令模式(普通模式):

在这个模式下,我们可以使用Vim编辑器提供的编辑器对我们所写的代码进行编辑 (复制,粘贴,剪切  ....... )

对文本的操作命令:

yy : 将当前光标所在行进行复制
p : 将复制或者是剪切的数据进行粘贴
dd : 剪切当前行也可以用这个命令进行删除 
x : 删除当前位置的字符
// 对于这4种操作,都可以在前面加上一个
//常数 n  yy dd 是复制或者剪切从光标所在行开始往下n行进行复制或者粘贴,
x 是从当前位置删除几个字符
//p 则是复制 n 次

光标操作:

上下操作:

shift + g : 光标定位到文件末尾
gg : 光标定位到文件最开始
n + shift + g : 光标定位到n行  

左右操作:

shift + 6 (^) : 将光标定位到当前行的最开始
shift + 4 ($) : 将光标定位到当前行的结尾
w , b  : 以单词为单位左右移动
h , j , k , l :  左,下,上,右 移动 以字符为单位

其他操作:

shift + r  替换模式  ->  

可以从键盘输入直接替换掉当前光标所在的字符,delete键可以撤销替换的操作

 shift + v 可视行模式

多行注释

Shift + V   // 进入可视行模式
j           // 选择多行
:           // 进入命令行模式,自动变为 :'<,'>
s/^/#/      // 添加注释符号 #
Enter       // 执行命令

 底行模式

文件操作

:w - 保存当前文件。
:wq - 保存并退出。
:q - 退出。
:q! - 强制退出,不保存更改。
:w filename - 另存为 filename 文件。
:e filename - 打开 filename 文件。
:r filename - 读取 filename 文件的内容并插入到当前文件中。

设置选项

:set number - 显示行号。
:set nonumber - 隐藏行号。
:set tabstop=4 - 将制表符宽度设置为4个空格。
:set ignorecase - 搜索时忽略大小写。
:set hlsearch - 高亮显示搜索结果

 编辑器里直接使用command命令

在底行模式下,输入的命令前加上  '  !  ' 即可 我们可以直接编译代码或者是使用

vs + 文件名 打开另外一个文本进行对比编辑

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

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

相关文章

Blender中保存透明图片

在Blender中保存透明图片&#xff0c;主要是通过在渲染设置中调整背景透明度&#xff0c;并选择合适的文件格式来保存图像。以下是一个详细的步骤指南&#xff1a; 一、设置渲染属性 打开Blender并加载你想要渲染的模型。在右侧的属性编辑器中&#xff0c;找到并点击“渲染属…

解决Visual studio内报错信息:MSB8036:找不到 Windows SDK 版本问题

问题描述&#xff1a; 找不到WindowsSDK版本&#xff0c;请安装所需版本的Windows SDK&#xff0c;或者在项目属性页中通过右键单击解决方案并选择“重定解决方案目标”来更改SDK版本。 首先&#xff0c;如果你尝试了以下两种方法&#xff1a; &#xff08;1&#xff09;重新…

【Qt】 FFmpeg+Qt windows 32位或者64位环境搭建

简介 目前Ffmpeg官网&#xff08;64位连接&#xff09;下载的均为64位编译的&#xff0c;这要求我们采用的Qt creator也采用64位编译器。但是仍存在部分用户采用32位编译器&#xff0c;所以这部分用户需下载32 Ffmpeg&#xff08;32位连接&#xff09;。 根据使用的编译器位数…

Linux下安装Redis(超简单)

1.下载 选着自己需要下载的版本后&#xff0c;右击选择复制链接&#xff0c;然后利用命令进行下载&#xff0c;进入Xshell控制台&#xff0c;输入wget将复制的链接粘帖上&#xff0c;这里我选择的是6.0.6版本。 命令如下&#xff1a; wget https://download.redis.io…

7款主流大模型实测:简单的数感测试全翻车

实测strawberry中有2个字母“r”&#xff1f;不会比大小的大模型也几乎数不对数&#xff0c;数理能力差到惊人&#xff01; 科技新知 原创 谁能想到&#xff0c;号称“超级大脑”的大模型&#xff0c;竟然在几道简单的数学题上败给了小学生。 近日&#xff0c;国内火热的音乐…

Vue.js 2 项目实战(三):综合案例-小黑记事本

前言 Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。它的设计目标是通过采用易于上手的结构和强大的功能&#xff0c;使前端开发变得更加简便和高效。以下是 Vue.js 的一些关键特性和优点&#xff1a; 核心特性 声明式渲染 Vue.js 使用声明式语法来描述用户界面&a…

HR怎么看待PMP证书呢?

不是HR&#xff0c;但 HR 的招人标准也是根据市场跟岗位需求来的吧。据我了解&#xff0c;PMP 证书目前还是有市场的&#xff0c;大家可以根据自己的行业跟公司&#xff0c;去判断下 PMP 的含金量&#xff0c;看自己是否需要去考。一定要结合自己的需求分析&#xff0c;盲目跟风…

【QT】定时器事件 - QTimerEvent QTimer

qt 系统 - 定时器 定时器1. QTimerEvent2. QTimer3. 获取系统日期及时间 定时器 Qt 中在进行窗口程序的处理过程中&#xff0c;经常要周期性的执⾏某些操作&#xff0c;或者制作⼀些动画效果&#xff0c;使用定时器就可以实现。所谓定时器就是在间隔⼀定时间后&#xff0c;去执…

EXO项目解析:pynvml怎么实现监控的,包括什么参数

目录 pynvml怎么实现监控的,包括什么参数 pynvml实现监控的方式 pynvml包括的主要参数 GPU功耗的组成 举例说明 注意事项 EXO项目解析:https://github.com/exo-explore/exo?tab=readme-ov-file 这段代码是一个使用setuptools库编写的Python包安装脚本,主要用于定义和…

GIT命令学习 一

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 ☁️运维工程师的职责&#xff1a;监…

【Git】(基础篇六)—— 发现好项目

发现github上的好项目 在开源社区中&#xff0c;发现好的项目&#xff0c;不论是对于自己的学习&#xff0c;还是在前人的基础上继续改进&#xff0c;都十分重要&#xff0c;本文为你介绍如何在github上面找到好的项目&#xff08;gitee同理&#xff09; 关注活跃大牛 GitHu…

ARM架构(二)—— arm v7-a/v8/v9寄存器介绍

1、ARM v7-A寄存器 1.1 通用寄存器 V7 V8开始 FIQ个IRQ优先级一样&#xff0c; 通用寄存器&#xff1a;31个 1.2 程序状态寄存器 CPSR是程序状态毒存器&#xff0c;保存条件标志位&#xff0c;中断禁止位&#xff0c;当前处理器模式等控制和状态位。每种异常模式下还存在SPS…

实现接口幂等性的8种解决方案

古语云&#xff1a;“一而再&#xff0c;再而三&#xff0c;其效不二” 俗语讲&#xff1a;被虐千百遍&#xff0c;依然如初恋 数学符号&#xff1a;f(f(f(x))) f(x) 即无论操作执行一次还是多次&#xff0c;其效果始终如一&#xff0c;不会有差异。这就是幂等性。 文章导读 什…

FPGA-PLL IP核的使用

1.前言 IP核是使用FPGA进行快速开发的一大法宝&#xff0c;FPGA有几个常用的IP核&#xff0c;如今天要写的PLL&#xff0c;即锁相环&#xff0c;还有FIFO&#xff0c;ROM等。熟练使用这些IP核&#xff0c;在一一些大型的项目中会省很多的精力&#xff0c;今天就通过一个实例来…

55 、mysql的存储引擎、备份恢复以及日志备份、恢复

一、数据库的存储引擎&#xff1a; 1.1、存储引擎的概念 概念&#xff1a;存储引擎&#xff0c;就是一种数据库存储数据的机制&#xff0c;索引的机制&#xff0c;索引的技巧&#xff0c;锁定水平。 存储的方式和存储的格式。 存储引擎也属于mysql当中的组件&#xff0c;实…

Linux挂载磁盘目录

一、背景 由于安装oracle数据库&#xff0c;磁盘空间不足&#xff0c;已经加了存储&#xff0c;但是没有挂载&#xff0c;需要将/dev/sdb全部挂载到/oracle目录下 [rootdatabase-001 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk …

HTTPServer改进思路2(mudou库核心思想融入)

mudou网络库思想理解 Reactor与多线程 服务器构建过程中&#xff0c;不仅仅使用一个Reactor&#xff0c;而是使用多个Reactor&#xff0c;每个Reactor执行自己专属的任务&#xff0c;从而提高响应效率。 首先Reactor是一种事件驱动处理模式&#xff0c;其主要通过IO多路复用…

Linux实用操作三

文章目录 Linux实用操作三网络传输ping命令介绍&#xff1a;示例&#xff1a; wget命令介绍&#xff1a;示例&#xff1a; curl命令介绍&#xff1a;示例&#xff1a; 端口介绍&#xff1a;端口的划分&#xff1a;查看端口占用&#xff1a; 进程管理进程介绍&#xff1a;查看进…

基于WebGoat平台的SQL注入攻击

目录 引言 一、安装好JAVA 二、下载并运行WebGoat 三、注册并登录WebGoat 四、模拟攻击 1. 第九题 2. 第十题 3. 第十一题 4. 第十二题 5. 第十三题 五、思考体会 1. 举例说明SQL 注入攻击发生的原因。 2. 从信息的CIA 三要素&#xff08;机密性、完整性、可用性&…

【MySQL-17】存储过程-[变量篇]详解-(系统变量&用户定义变量&局部变量)

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…