深入了解Linux —— 学会使用vim编辑器
前言
学习了
Linux
中的基本指令也理解了权限这一概念,但是我们怎么在Linux
下写代码呢?
本篇就来深入学习Linux
下的vim
编辑器;学会在Linux
下写代码。
软件包管理器
1. 软件包?
- 在Linux下安装软件,通常是下载程序的源码,进行编译获得可执行程序。
- 这样太麻烦了,于是就有了将常用的软件提前编译好做成软件包(相当于
Linux
中安装程序),放在一个服务器上,通过包管理器可以非常方便的获取到这个编译好的软件包,直接安装。yum
就是Linux下非常常用的一种包管理器,(应用于Fedora
、RedHat
和Centos
等发行版本上)。- 在
Ubuntu
上,只要使用apt
作为包管理器。
2. Linux中软件
首先,在Linux下安装软件,是在软件包服务器上查找对应软件,下载请求进行安装。
对于
Linux
软件安装这里就不解释那么多了,现在知道yum
安装软件即可。
Vim编辑器
首先,先来看一下Vi
/Vim
键盘图
看起来好乱,我知道你很急,但你先别急;随我细细看来。
1. 什么是Vim编辑器?
vim 是一款常用的文本编辑器,特别适合在Linux和Unix操作系统下进行程序开发、系统管理等工作。使用 vim 可以高效地编辑各种类型的文件,例如代码文件、配置文件等。在Linux系统中,大部分配置文件都是ASCII的纯文本形式存放的,因此使用vim进行编辑是非常方便和实用的。
在Vim
之前呢,使用Vi
;Vim
可以说是Vi
plus版本;
Vim
和Vi
都是多模式编辑器,不同的是Vim
相比于Vi
有一些新的特性,语法加亮,可视化操作、不仅可以在终端运行,也可以运行于windows、macOS等。
2. vim的安装
首先输入指令vim
,如果显示下图界面,就表示已经安装过了
这里按
:
(Shift
+;
),然后输入q
,然回车即可退出。
安装vim
:
安装非常简单,直接执行下图指令即可。
yum install -y vim
3. Vim常见的工作模式
vim作为一款 多模式的编辑器,有着各种各样的模式,共12种,但是正常情况学会使用其中的
5
种即可应用于多数开发环境。
正常/普通/命令模式(Normal mode)
进入
Vim
编辑器的默认模式,该模式下可以控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进⼊Insert mode
下,或者到last line mode
插入模式((Insert mode)
在命令行模式下,按
i
键进入插入模式;只有在该模式下,才能进行内容的写入;按
Esc
可以返回命令行模式
底行模式
在命令行模式下,按
:
(Shift
+;
)键进入插入模式;文件保存和退出都在底行模式才能执行,也可以进行文件替换,查找字符串,列出行号等操作。
最经常使用的就是上面这三种模式,其他的模式就不在叙述了;感兴趣可以去学习一下其他模式
命令行模式命令集
命令行的相关指令有很多,这里将其进行简单分类。
移动光标:
先来看光标相关的指令
gg
:定为光标至文本最开始
G
:定位光标到文本结束
当然,也可以定位到任意行,只需加上n
即可
$
:定位到行结尾
$
这个符号是键盘上的Shift
+4
(英文下),作用是定位到行结尾位置
^
:定位到行开头
$
这个符号是键盘上的Shift
+6
(英文下),作用是定位到行开头位置
w
:以单词为单位,向后移动
有了光标定位行,行结尾和开头;那如果行内容特别长,我们还是需要一个一个移动光标至特定位置;
w
可以加速我们的移动,让我们在一行内移动光标不再是一个字符应该字符移动,而是以单词为单位(是Linux中识别,不是指英语单词)。
b
:以单词为单位,向前移动
只有向后移动可不行,
b
和w
相反,b
可以以单词为单位向前移动。(这里就不再演示了)。
复制/剪切 与 粘贴:
yy
:复制当前行
yy
可以赋值当前行内容,n
+yy
可以复制从当前行开始的n行内容。
p
: 贴到当前行的下一行
p
粘贴,将内容粘贴到当前行的下一行,n
+p
可以粘贴n
行。
dd
:剪切当前行
dd
剪切当前行,n
+dd
剪切从当前行开始的后面n
行。
yw
: 将光标位置到字尾的字符复制到缓冲区
yw
复制光标位置到字尾的字符,n
+yw
复制n
个字符。
撤销:
u
: 撤销操作,回到上一次操作之前
Ctrl
+ R
: 对u
的撤销操作进行撤销。
这两个操作比较有意思,
u
可以撤销Ctrl
+R
的撤销操作,而Ctrl
+R
又可以撤销u
的撤销操作。
删除:
x
:删除光标当前位置的字符
x
可以删除光标当前位置的字符,n
+x
可以删除从光标当前位置开始后面n
个位置的字符。
X
:删除光标位置的前一个字符。
X
删除光标位置前,n
+X
可以删除光标位置前n
个字符。
X
就是删除光标位置前的字符,这里就不演示了。
修改:
r
: 修改光标当前位置的内容
r
可以修改光标当前位置的内容,n
+r
可以修改光标从当前位置开始后面n
个字符的内容。
插入模式命令集
插入模式主要用于内容的写入,命令集相对较少;
命令行模式下,按i
即可进入插入模式
Shift
+方向键上下移动
:移动光标并选择文本
Shift
+Insert
:粘贴剪切板中的内容
shift
+i
将光标快速切换到 当前行行首
shift
+a
将光标快速切换到 当前行行尾
shift
+o
将光标快速切换到 上一行行首
插入模式下,按Esc
键即可返回命令行模式。
底行模式命令集
命令行模式下,按:
即可进入底行模式。
列出/取消行号
set nu
: 列出行号
set nonu
: 取消行号
跳转到某一行:
n
:在冒号后输⼊⼀个数字,再按回车键就会跳到第n行了
查找字符:
/关键字
:按/
键,然后输入想要查找的字符,如果第一次找的不是想要的哪一个,可以按n
跳转到下一个查找到的内容
?关键字
:按?
键,然后输入想要查找的字符,如果第一次找的不是想要的哪一个,可以按n
跳转到下一个查找到的内容
保存和退出:
w
:保存文件
q
: 退出vim
,(q!
强制退出)。
通常情况下
wq
一起使用,保存并退出。
4. vim
使用便利操作
同时打开多个文件
在我们已经使用vim打开一个文件时,如果想要再打开另外一个文件,这时就在命令行模式下输入
vs 文件名称
即可。
替换模式:快速注释
在
vim
中存在一种模式,可以快速替换文本内容—— 替换模式
现在我们想要注释多行数据,如果在插入模式中一行一行注释就有点太慢了;现在使用替换模式快速注释。
操作如下:
- 首先在命令行模式下按
Ctrl
+v
进入视图模式- 在视图模式下选择多行(
h
左、j
下、k
上、l
右)- 按
A
(Shift
+a
),进入插入模式- 注释后,返回命令行模式即可
批量化去注释
能批量化注释,那也要会批量化去注释
- 首先在命令行模式下按
Ctrl
+v
进入视图模式- 在视图模式下选择多行(
h
左、j
下、k
上、l
右)- 按
d
删除即可
到这里,vim的基本操作相信你已经了解,并且已经回使用vim来编写一段代码了。
使用体验提升:vim的配置
如果
vim
没有任何配置,使用起来就十分不方便,这里简单配置一下
- 在目录
/etc/
下,有一个vimrc
的文件,这是系统中公共的vim
配置文件,对所有用户都有效。- 建议在自己的家目录下配置即可;在家目录下创建配置文件,名
.vimrc
(一个隐藏文件)。vim .vimrc
打开.vimrc
文件 自己配置vim
常用配置:
- 设置语法高亮:
syntax on
- 显示行号:
set nu
- 设置缩进:
set shiftwidth=4
如果有实力,可以自己配置;当然也可以使用别人配置好的vim。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2oul0hvapjsws
相关文章:

深入了解Linux —— 学会使用vim编辑器
前言 学习了Linux中的基本指令也理解了权限这一概念,但是我们怎么在Linux下写代码呢? 本篇就来深入学习Linux下的vim编辑器;学会在Linux下写代码。 软件包管理器 1. 软件包? 在Linux下安装软件,通常是下载程序的源码…...
C05S01-Web基础和HTTP协议
一、Web基础 1. Web相关概念 1.1 URL URL(Uniform Resource Locator,统一资源定位符),是一种用于在互联网上标识和定位资源的标准化地址,提供了一种访问互联网上特定资源的方法。URL的基本格式如下所示:…...

MIT工具课第六课任务 Git基础练习题
如果您之前从来没有用过 Git,推荐您阅读 Pro Git 的前几章,或者完成像 Learn Git Branching 这样的教程。重点关注 Git 命令和数据模型相关内容; 相关内容整理链接:Linux Git新手入门 git常用命令 Git全面指南:基础概念…...
计算机网络安全
从广义来说,凡是涉及到网络上信息的机密性、报文完整性、端点鉴别等技术和理论都是网络安全的研究领域。 机密性指仅有发送方和接收方能理解传输报文的内容,而其他未授权用户不能解密(理解)该报文报文完整性指报文在传输过程中不…...
Delphi 实现键盘模拟、锁定键盘,锁定鼠标等操作
Delphi 模拟按键的方法 SendMessageA 说明: 调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回SendMessage所包含4个参数: 1. hwnd 32位的窗口句柄窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数…...

RTK数据的采集方法
采集RTK(实时动态定位)数据通常涉及使用高精度的GNSS(全球导航卫星系统)接收器,并通过基站和流动站的配合来实现。本文给出RTK数据采集的基本步骤 文章目录 准备设备设置基站设置流动站数据采集数据存储与处理应用数据…...
Next.js 入门学习
一、引言 在现代 Web 开发领域,Next.js 已成为构建高性能、可扩展且用户体验卓越的 React 应用程序的重要框架。它基于 React 并提供了一系列强大的特性和工具,能够帮助开发者更高效地构建服务器端渲染(SSR)、静态站点生成&#…...

2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现: 人的大脑结构非常复杂,内部交织密布着神经和血管,所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术,通常需要…...
安卓底层相机流的传输方式
这是安卓 相机流的定义 typedef enum {CAM_STREAMING_MODE_CONTINUOUS, /* continous streaming */CAM_STREAMING_MODE_BURST, /* burst streaming */CAM_STREAMING_MODE_BATCH, /* stream frames in batches */CAM_STREAMING_MODE_MAX} cam_streaming_mode_t; 在ca…...

【单链表】(更新中...)
一、 题单 206.反转链表203.移除链表元素 876.链表的中间结点BM8 链表中倒数最后k个结点21.合并两个有序链表 二、题目简介及思路 206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路简单,但是除了要两个指针进…...

开源堡垒机JumpServer配置教程:使用步骤与配置
开源堡垒机JumpServer配置教程:使用步骤与配置 上一篇文章星哥讲了如何安装JumpServer堡垒机,本篇文章来讲如何配置和使用JumpServer。 安装成功后,通过浏览器访问登录 JumpServer 地址: http://<JumpServer服务器IP地址>:<服务运…...

上门服务小程序开发,打造便捷生活新体验
随着互联网的快速发展,各种上门服务成为了市场的发展趋势,不管是各种外卖、家政、美甲、维修、按摩等等,都可以提供上门服务,人们足不出户就可以满足各种需求,商家也能够获得新的拓展业务渠道,提高整体收益…...
iOS中的类型推断及其在Swift编程语言中的作用和优势
iOS中的类型推断及其在Swift编程语言中的作用和优势 一、iOS中的类型推断 类型推断(Type Inference)是编程语言编译器或解释器自动推断变量或表达式的类型的能力。在支持类型推断的语言中,开发者在声明变量时无需显式指定其类型,…...
工业检测基础-缺陷形态和相机光源选型
缺陷形态与相机选择依据 微小点状缺陷(如微小气泡、杂质颗粒) 相机选择依据: 分辨率:需要高分辨率相机,无论是面阵还是线阵相机,以确保能够清晰地分辨这些微小的点。对于面阵相机,像元尺寸要小&…...
Python100道练习题
Python100道练习题 BIlibili 1、两数之和 num1 20 num2 22result num1 num2print(result)2、一百以内的偶数 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以内的奇数 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…...

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序
2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分(包括支架)、LED灯头、控制箱(包含控制器、蓄电池)、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…...

【JavaWeb后端学习笔记】Java上传文件到阿里云对象存储服务
阿里云对象存储 1、创建阿里云对象存储节点2、上传文件2.1 修改项目配置文件2.2 定义一个Properties类获取配置信息2.3 准备一个alioss工具类2.4 创建注册类,将AliOssUtil 注册成Bean2.5 使用AliOssUtil 工具类上传文件2.6 注意事项 使用阿里云对象存储服务分为以下…...
网盘管理系统
文末获取源码和万字论文,制作不易,感谢点赞支持。 设计题目:网盘管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软…...
learn-(Uni-app)跨平台应用的框架
使用 Vue.js 开发所有前端应用的框架,开发者编写一份代码,可发布到iOS、Android、Web(包括微信小程序、百度小程序、支付宝小程序、字节跳动小程序、H5、App等)等多个平台。 跨平台:Uni-app 支持编译到iOS、Android、W…...
趋同进化与趋异进化的区别及分析方法-随笔03
趋同进化与趋异进化的区别及分析方法 1. 引言 在生物学中,进化是指生物种群随着时间的推移,通过遗传变异、自然选择、基因漂变等机制的作用,逐渐改变其基因型和表型的过程。进化的方式有很多种,其中趋同进化(Converg…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
模型参数、模型存储精度、参数与显存
模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...