Linux开发工具【vim】

news2024/12/24 3:55:36

Linux开发工具之【vim】

文章目录:

  • Linux开发工具之【vim】
  • 1. Linux软件包管理器yum
    • 1.1 查看软件
    • 1.2. 下载软件
    • 1.3 卸载软件
  • 2. vim编辑器的使用
    • 2.1 vim常用模式
    • 2.2 vim基本操作
    • 2.3 vim命令模式命令集
      • 2.3.1 移动光标
      • 2.3.2 删除文字
      • 2.3.3 复制文本内容
      • 2.3.4 替换文本内容
      • 2.3.5 撤销操作
      • 2.3.6 更改操作
    • 2.4 vim底行模式命令集
      • 2.4.1 列出行号
      • 2.4.2 跳到文件中的某一行
      • 2.4.3 查找字符
      • 2.4.4 退出并返回
      • 2.4.5 文本替换
      • 2.4.6 分屏操作
    • 3. vim配置
      • 3.1 自己配置
      • 3.2 自动化配置

1. Linux软件包管理器yum

什么是软件包?这里举个例子

我们使用手机时是在应用商店下载软件,应用商店里的看到各种软件是在远端服务器上的,服务器上有对应的软件下载服务,我们下载软件时就是从服务器上下载对应的相关文件,对应在Linux机器中,这里手机上的“APP”就相当于软件包,而应用商店就相当于软件包管理器

在Linux下是如何安装软件的呢?

Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。yum(Yellow dog Updater, Modifified)Linux下非常常用的一种包管理器. 主要应用在Fedora RedHat Centos等发行版上

1.1 查看软件

基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装

yum [options] [command] [package ...]

通过 yum list 命令可以罗列出当前一共有哪些软件包,由于包的数目可能非常之多,这里我们需要使用 grep 命令只筛选出我们关注的包

yum list | grep 软件包名

注意:

  • 软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
  • "x86_64" 后缀表示64位系统的安装包, "i686" 后缀表示32位系统安装包. 选择包时要和系统匹配.
  • "el7" 表示操作系统发行版的版本. "el7" 表示的是 centos7/redhat7. "el6" 表示 centos6/redhat6.
  • 最后一列, base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念

1.2. 下载软件

下载软件

yum [选项] install 软件名(必须是root身份)/ sudo yum install 软件名

常用选项

-y:不会弹出选择

yum 会自动找到都有哪些软件包需要下载, 这时候敲“y”确认安装.出现 “complete” 字样, 说明安装完成

注意:

  • 安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
  • yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.

1.3 卸载软件

卸载软件

yum [选项] remove 软件包名(必须是root身份 / sudo yum remove 软件包名

常用选项

-y:不会弹出选择

2. vim编辑器的使用

vim是多模式编辑器。我们可以在上面进行各种语言的代码编写,vim的三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),vim的使用是有一些门槛的,需要多加练习得以熟练的使用,最后还可以根据自己的习惯自定义出属于自己的独特vim

2.1 vim常用模式

命令模式

命令模式就是我们刚进入vim时的初始模式,可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式下,在vim中如果不知道在什么模式下可以无脑按ESC进入命令模式

插入模式

只有在插入模式下,才能进行文字输入,按ESC键可退回到命令模式

底行模式

底行模式下可以进行文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,输入shift + :即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入help vim-modes

2.2 vim基本操作

首先要保证自己的 Linux 中已经安装好了 vim ,如果没有安装,需要在 root 用户下通过指令 yum install -y vim 进行安装

我这里用于演示的vim是已经配置过的,会与刚使用的画面有些出入,不过操作是一样的,问题不大,文章末尾我也会提供配置vim的方法

进入vim

vim 文件名

这里使用 vim test.cc打开文件后就是这个样子,此时我们会发现输入内容并没有被写入,这是因为此时处于命令模式,想要输入内容,需要先单按 i 进入插入模式

退出vim

vim的退出是有些麻烦的,插入模式下无法直接退出vim,需要先进入命令模式,然后切换底行模式,输入wq保存并退出

  • ESC 切换为命令模式

  • 在命令模式下,按 shift + : 进入底行模式

  • 在底行模式下,输入 wq 保存并退出

输入q表示不保存退出vim,输入w表示保存文件内容,输入wq表示保存并退出vim,指令后加!表示强制

命令模式切换插入模式

进入插入模式的方法有很多

  1. Insert 键切换
  2. i 键切换,切换后是从光标当前位置开始输入文件
  3. a 键切换,切换后是从目前光标所在位置的下一个位置开始输入文字
  4. o 键切换,切换后是插入新的一行,从行首开始输入文字

一般常用 i 来切换

命令模式切换底行模式

输入shift + :(按住shift点击:)进入底行模式

2.3 vim命令模式命令集

必须是在命令模式下使用

2.3.1 移动光标

h键、j键、k键、l键:分别控制光标左、下、上、右移一格

G键:光标移动到文本最后

$键:光标移动到所在行行尾

^键:光标移动到所在行行首

w键:光标移动到下个字的开头

e键:光标移动到下个字的结尾

b键:光标移动到上个字的开头

nl键:光标移动到所在行的第n个位置:如:10l、5l

gg键:光标移动到文本开头

shift + g键:光标移动到文本末尾

ctrl + f键:屏幕往前移动一页

ctrl + b键:屏幕往后移动一页

ctrl + d键:屏幕往前移动半页

ctrl + u键:屏幕往后移动半页

2.3.2 删除文字

xx键:删除光标所在位置的一个字符

n + x键:删除光标所在位置后的n个字符,例如5x,删除光标所在位置后的5个字符

X键:删除光标所在的位置的前一个字符

n + X键:删除光标所在位置的前n个字符

dd键:双击d键,剪切所在行

n + dd键:从光标所在行剪切n行,例如3dd键表示从光标所在行剪切3行

2.3.3 复制文本内容

yw键:将光标所在之处到字尾的字符复制到缓冲区中

n + yw键:复制n个字到缓冲区

yy键:双击y键,复制光标所在行到缓冲区

n + yy键:复制从光标所在行往下数n行到缓冲区,例如3yy,表示复制从光标所在行向下的3行文本内容

p键:将缓冲区内的字符贴到光标所在位置(所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能)

2.3.4 替换文本内容

r键:替换光标所在处的字符

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

2.3.5 撤销操作

u键:回到上一个操作

ctrl + r:撤销的恢复

2.3.6 更改操作

c + w键:先按c键再按w键,更改光标所在处的字到字尾处

c + n + w键:c3w:表示更改3个字

shift + ~:快速大小写切换

2.4 vim底行模式命令集

2.4.1 列出行号

设置行号(底行模式下)

set nu

取消行号(底行模式下)

set nonu

2.4.2 跳到文件中的某一行

n号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字12,再回车,就会跳到文章的第12行。

n:行数

2.4.3 查找字符

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

/字符 + n

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

?字符 + n

2.4.4 退出并返回

! 配合常规命令和底行指令可以在不退出vim的情况下执行各种指令

例如,在vim中编写了一个test.cc文件,我们可以在底行模式下输入!g++ test.cc将文件编译链接生成可执行程序,然后输入!./a.out执行程序,执行结束后,会返回vim界面

!+指令:临时退出vim,进行相关信息显示,然后有提示信息:Press ENTER or type command to continue:表示按ENTER键或者其他指令都回退到vim编译器下。

底行模式下的!还有强制的意思,比如!wq强制保存并退出

2.4.5 文本替换

在文档中搜索出原内容,并将其替换为替换内容

%s/原内容/替换内容/g

2.4.6 分屏操作

在写程序时,往往会有几个文件,多开窗口就会让我们的编写更加方便,vim也是支持多开窗口的,指令vs file,新开一个窗口打开file文件,文件不存在会自动创建,此时光标在哪里就是在编写哪个文件,可以使用指令ctrl + ww,进行窗口切换

vs file:分屏状态,打开file文件
ctrl + ww:窗口切换

3. vim配置

3.1 自己配置

自己配置vim需要在自己的家目录~下创建一个vim配置文件.vimrc

然后打开.vimrc文件进行配置编写,如:

这里还可以有很多选择,可以自己到网上搜索,来配置自己独一无二的vim

vim配置的原理就是根据的一个配置文件编写对应的需求来完成的

3.2 自动化配置

vim的配置想要达到完善是很费时费力的,这里我们也可以通过指令下载大佬已经写好的脚本,来自动化配置一个精美的vim

自动化位置步骤:

  1. 复制指令curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
  2. 进入自己的账户,粘贴复制的指令,输入root密码进行安装

image-20230708143850840

特别感谢大佬的脚本提供,原文地址

注意:此自动化安装目前只支持Centos7.6,其他平台可能无法安装

卸载指令

bash ~/.VimForCpp/uninstall.sh

效果展示


Linux开发工具vim,到这里就介绍结束了,本篇文章对你由帮助的话,期待大佬们的三连,你们的支持是我最大的动力!

文章有写的不足或是错误的地方,欢迎评论或私信指出,我会在第一时间改正

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

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

相关文章

设计模式——组合模式

组合模式 定义 组合模式(Composite Pattern)又称为合成模式、部分-整体模式(Part-Whole),主要用来描述部分与整体的关系。 定义:将对象组合成树形结构以表示“部分-整体”的层次结构,使用户对…

【C#】并行编程实战:同步原语(2)

在第4章中讨论了并行编程的潜在问题,其中之一就是同步开销。当将工作分解为多个工作项并由任务处理时,就需要同步每个线程的结果。线程局部存储和分区局部存储,某种程度上可以解决同步问题。但是,当数据共享时,就需要用…

电商项目“商品分类浏览”如何测试?附详细思维导图

电商项目无论是工作中,还是面试中,都是一个高频出现的词。面试官非常热衷提问关于电商项目的问题。例如商品分类怎么测试?购物车怎么测试?订单怎么测试?优惠券怎么测试?支付怎么测试?等等 今天…

【Spring Cloud系列】- Ribbon详解与实战

【Spring Cloud系列】- Ribbon详解与实战 文章目录 【Spring Cloud系列】- Ribbon详解与实战一、什么是Ribbon二、Spring Cloud中Ribbon应用Ribbon使用步骤如下 三、Ribbon负载均衡策略设置3.1 全局策略设置3.2 基于注解的针对单个服务的 Ribbon 负载均衡策略3.2.1 注解方式3.2…

『赠书活动 | 第十五期』《Java核心技术·卷II》

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 『赠书活动 | 第十五期』 本期书籍:《Java核心技术卷II》 公众号赠书:第六期 参与方式:关注公众号:低调而…

折叠屏手机的屏幕,华为Mate X3给出了一份“内外兼修”的解决方案

说起折叠屏手机,屏幕一直都是这个领域的重头戏,很多人都对折叠屏手机有一种刻板印象,那就是脆弱。但是,3月份华为最新推出的Mate X3可以说是非常的亮眼,在内外屏幕、水滴铰链、影像系统等多个核心部件的全方位提升&…

MKPFMSEG字段增强后 关于 BAPI_GOODSMVT_CREATE 的extensionin的增强参数带入。

首先在MKPF 的增强表结构 BAPI_TE_XMKPF 增强字段 如果是行项目上的 BAPI_TE_XMSEG 然后在实际赋值的时候 前面14位数是 10位物料凭证号 4位 年度 CLEAR: ls_extensionin.ls_extensionin-STRUCTURE BAPI_TE_XMKPF.ls_extensionin-valuepart114(50) ls_…

告诉你有哪些音频转换成mp3免费软件

曾经有一个名叫小华的音乐爱好者,他对于收集和欣赏各种类型的音频文件情有独钟。然而,他在构建自己的音乐库时遇到了一个困扰:不同设备和平台支持的音频格式千差万别,这让他无法顺利地播放和分享自己喜爱的音乐。幸运的是&#xf…

GTK列表显示文本和图片

使用GtkTreeView控件显示包含文本和图片的列表,GtkTreeView/GtkListStore或者GtkTreeView/GtkTreeModel使用的是MVC设计理念。 关于MVC: M层: model 数据模型层(处理数据的增删改查) 提供数据 V层: Views 视图层 (数据展示) 渲染数据 C层: controller 控制层(处理业…

【UI框架-uView】Input输入框如何使用前后槽?

【UI框架-uView】Input输入框如何使用前后槽? 官方链接如下:Input输入框 - 前后槽 前槽如下: 后槽如下: 可以看到,前后槽的灵活使用,不仅方便我们的布局,还可以在input中实现复杂的应用。 注意…

Vue 组件化开发

文章目录 前言组件化开发父子组件相互传数据父传子:自定义属性子传父:自定义事件父子组件互传案例 插槽 slot多个插槽 总结组件化开发总结Vue组件的基本组成子组件使用的三个步骤父子组件相互传递数据 前言 提示:这里可以添加本文要记录的大…

jenkins 创建项目的ci

一.创建视图 1.点击加号 选择列表视图 2.输入名称,点击确定 二.创建任务 1.点击到你新建的视图之后,再点击文本中的创建一个新的任务。 2.进入创建页面后首先填写描述 三.选择丢弃旧的构建 保持构建的天数是指:是指保留多少天内的构建 …

【基于FPGA的芯片设计】RISC-V的20条指令CPU设计

实验板卡:xc7a100tlc sg324-2L,共20个开关 实验要求:

【C#】并行编程实战:同步原语(1)

在第4章中讨论了并行编程的潜在问题,其中之一就是同步开销。当将工作分解为多个工作项并由任务处理时,就需要同步每个线程的结果。线程局部存储和分区局部存储,某种程度上可以解决同步问题。但是,当数据共享时,就需要用…

Chrome内建DNS导致的解析错误修复

Index Chrome内建DNSDisable Async DNS resolver Chrome内建DNS 实际上 , Chrome在使用自己的DNS来进行域名的解析 , 这导致有时候一些域名解析会出现错误 , 导致访问速度变慢 , 例如 blog.csdn.net 使用谷歌的 8.8.8.8 dns解析就会 , 解析到香港的ip上去 , 导致访问速度变慢 …

群晖NAS:docker查询注册表失败解决方案 docker安装网心云、mysql等

群晖NAS:docker查询注册表失败解决方案 差不多2023年4月底开始的,docker内不能直接搜索注册表。据说是有人在库里放了一些有意思的东西,被和谐掉了,所以也别指望什么时候能解封。 网上很多案例,都不能用。还有奇葩的…

史上最细接口测试详解,接口测试从0到1实施,一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、接口测试描述定…

【C语言】-- 死循环了怎么办?

#include <stdio.h> int main() {int i 0;int arr[] {1,2,3,4,5,6,7,8,9,10};for(i0; i<12; i){arr[i] 0;printf("hello\n");}return 0; } 阅读上面这个代码&#xff0c;我们会认为这不就是简单的数组访问越界么。那么这段代码就应该会报错&#xff0c;…

macOS Sonoma 14beta 3 (23A5286i)第二个更新「附黑/白苹果镜像下载」

系统镜像下载&#xff1a; 系统介绍 黑果魏叔 7 月12 日消息&#xff0c;苹果今天发布 macOS Sonoma 14.0 Beta 3&#xff08;内部版本号&#xff1a;23A5286i&#xff09;第二个更新。 目前尚不清楚苹果为什么要发布 macOS Sonoma Beta 3 的第二个版本&#xff0c;但它可能…

外包干了2年,我裸辞了...

我25岁&#xff0c;中级测试&#xff0c;外包&#xff0c;薪资13.5k&#xff0c;人在上海。内卷什么的就不说了&#xff0c;而且人在外包那些高级精英年薪大几十的咱也接触不到&#xff0c;就说说外包吧。 假设以我为界限&#xff0c;25岁一线城市13.5k&#xff0c;那22-24大部…