Linux开发工具之【vim】

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.hqwc.cn/news/14750.html

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

相关文章

UE特效案例 —— 魔法翅膀

一,环境配置 创建默认地形Landscape,如给地形上材质需确定比例;添加环境主光源DirectionalLight,设置相应的强度和颜色;PostProcessVolume设置曝光,设置Min/Max Brightness为1; 与关闭Game Sett…

【SpringBoot3】--01.快速入门、基本框架原理、常用注解、yaml配置文件、日志配置

文章目录 SpringBoot3核心特性1.简介1. 1前置知识1.2 环境要求1.3SpringBoot是什么 2.快速入门2.1开发流程2.1.1创建项目2.1.2导入场景2.1.3 主程序2.1.4 业务2.1.5 测试2.1.6 打包 2.2 特性小结2.2.1 简化整合2.2.2简化开发2.2.3 简化配置2.2.4 简化部署2.2.5 简化运维 2.3 Sp…

macbook安装chatglm2-6b

1、前言 chatglm安装环境还是比较简单的,比起Stable diffusion安装轻松不少。   安装分两部分,一是github的源码,二是Hugging Face上的模型代码;安装过程跟着官方的readme文档就能顺利安装。以下安装内容,绝大部分是…

功夫这个词,西方语言中没有

功夫这个词,西方语言中没有 功夫一种意思是武侠片的武功之意 另一种意思就是【下功夫】 趣讲大白话:只要功夫深,铁棒磨成针 【趣讲信息科技220期】 #非著名IT人安志强的趣味笔记# **************************** 西方词语怎么翻译功夫的&#…

准确率 99.9% 的离线IP地址定位库

Ip2region 是一个离线 IP 地址定位库,准确率高达 99.9%,搜索性能为 0.0x 毫秒。DB 文件只有几兆字节,其中存储了所有 IP 地址。 支持 Java、PHP、C、Python、Nodejs、Golang、C#、lua 等查询绑定。查询算法使用二叉树、B树和内存搜索算法。 …

QT day2

second.h文件&#xff1a; #ifndef SECOND_H #define SECOND_H#include <QWidget> #include <QWidget> #include <QDebug> #include <QIcon> #include <QButtonGroup> #include <QPushButton> #include <QLabel> #include <QLin…

Python+CNN 手写公式识别计算系统

系统&#xff1a;Win10 环境&#xff1a;Pycharm/Vscode Python3.7 效果图&#xff1a; 部分代码如下&#xff1a; import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torchvision import datasets,transforms#定义…

尚硅谷Docker实战教程-笔记06【Docker容器数据卷】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】尚硅谷Docker实战教程-笔…

K8s 内存泄漏处理方法

问题描述&#xff1a; 1. 安装go环境 2. 下载地址: https://golang.google.cn/dl/[rootk8s-master home]# rm -rf /usr/local/go && tar -C /usr/local/ -zxvf go1.17.3.linux-amd64.tar.gz3. 永久配置go 环境[rootk8s-master home]# vim /etc/profile export GOPATH…

Openpose原理总结

Openpose是一种开源的实时多人姿态估计库&#xff0c;由卡耐基梅隆大学开发。它通过分析图像或视频中的人体关键点来估计人体的姿态&#xff0c;识别身体的各个部分&#xff0c;并推断出人体的姿势信息。 Openpose能够同时检测和跟踪多个人的姿态&#xff0c;可以用于人机交互、…

Linux 内核级通用内存池 —— kmalloc 体系

目录 kmalloc 内存池中都有哪些尺寸的内存块 kmalloc 内存池如何选取合适尺寸的内存块 kmalloc 内存池的整体架构 KMALLOC_RECLAIM 表示需要分配可以被回收的内存&#xff0c;RECLAIM 类型的内存页&#xff0c;不能移动&#xff0c;但是可以直接回收&#xff0c;比如文件缓存页…

[NSSRound#13 Basic]flask?jwt?解题思路过程

过程 打开题目链接&#xff0c;是一个登录框&#xff0c;不加验证码&#xff0c;且在注册用户名admin时提示该用户名已被注册&#xff0c;因此爆破也是一种思路。不过根据题目名字中的提示&#xff0c;jwt&#xff0c;且拥有注册入口&#xff0c;注册一个用户先。 注册完用户…