linux笔记10--编辑器之神VIM
文章目录
- 1. 简单介绍
- ① 为什么叫vim
- ② linux常见的编辑器
- ③ 注意事项
- ④ 其它
- 2. 操作模式的划分
- ① 两种 -- 国际上
- 普通模式(命令操作模式)
- 插入模式
- ② 三种 -- 国内
- 普通模式
- 如何进入与退出
- 界面
- 插入模式
- 如何进入与退出
- 界面
- 命令模式
- 如何进入与退出
- 界面
- 常见的命令模式
- ③ 区别
- ④ 其它
- 3. 命令
- ① 移动光标
- ② 翻页
- ③ 不同方式编辑文本以及跳跃单词
- 编辑文本
- 插入
- 删除
- 撤销操作
- 跳跃单词
- ④ 跳跃行首行尾
- ⑤ 大括号跳跃函数段落
- ⑥ 替换字母
- ⑦ 光标移动到代码首行的开头
- ⑧ 访问当前目录所有文件夹
- ⑨ 注意
- 4. vim复制剪切粘贴
- ① 复制
- 缺点
- ② 粘贴
- ③ 剪切
- 5. Visual可视化模式
- ① 作用
- ② 操作方式
- 删除或选择全部代码
- 光标移动到所选文本的开头或结尾
- 矩阵选择
- 补全角落
- 向上选择文本
- 快速选择某个单词
- 快速删除或替换某个单词
- ③ 视图模式其它用法
- 代码缩进
- 大小写转换
- 6. 查找和替换
- ① Windows中记事本
- ② Linux中vim
- 查找
- 替换
- ① 替换单个
- ② 替换整行
- ③ 替换整个文件的(替换全局文档)
- ④ 替换指定行(全局替换)
- 临时显示行号
- 跳跃到指定行
- ⑤ 全局替换带提示(②的升级):
- 7. vim的基础配置
- ① ll查看home目录
- ② 创建.vimrc文件
- ③ 配置vim
- ④ 更新当前终端
- ⑤ 检测是否配置成功
- 8. 推荐
1. 简单介绍
① 为什么叫vim
① GNU中的开发人员把 vi 移植到 linux 当中以后,他们就不能再用 vi 这个名字了。
② 准确来说,vim只是一个简称,全称应该是vi improved。
② linux常见的编辑器
命令版:
vi – 原始Unix最初使用的编辑器
nano
emacs – 神的编辑器 用的多
vim – 编辑器之神 用的多
界面版:
KWrite
Gnome
注:
① Ubuntu自带的编辑器:text editor
② 服务器都是server版(纯命令)的,没有界面版
③ 注意事项
① 使用vim之前必须先安装vim,因为它自带的库有些有问题
② centos上显示的可能不是vim,而是vi
④ 其它
① vim好处很多,例如:可以快速跳转到长文档的开头或者末尾等,在下面的小节中可以感受到
② vim不太容易上手,需要一段时间适应(其实主要由于习惯问题),而且vim不安装插件就没有任何代码提示。因此,业界里有一个吹牛的话:牛逼的人总是想办法让工具变得更难用,来提高自己
③ 使用vim的两种人:1. 临时需要用服务器写一些东西(文档、配置、脚本等)或者编辑一些东西;2. 单纯喜欢vim
④ vim的使用与否也要根据个人习惯而言
⑤ 当今世界最流行的还是vim
⑥ 好的工具和插件确实帮助我们提高了开发效率,但从某种角度来说不能提高我们的水准
⑦ vim
2. 操作模式的划分
① 两种 – 国际上
普通模式(命令操作模式)
普通模式:操作文件的时候 (例如:查找、撤销、复制粘贴、全选、翻页、保存等)
插入模式
插入模式:编辑文件内容的时候
② 三种 – 国内
普通模式
普通模式:操作文件的时候 (例如:查找、撤销、复制粘贴、翻页、全选等)
如何进入与退出
进入:vim + 文件名
退出:冒号 + q 具体参见下述命令模式这一部分中常见的命令模式这一部分
界面
插入模式
插入模式:编辑文件内容的时候
如何进入与退出
进入:普通模式下按一下 i 即可 (原因:插入的英文是insert)
退出:Esc键
界面
命令模式
命令模式:普通模式输入冒号的一瞬间就进入了命令模式
如何进入与退出
进入:普通模式下按一下 shift + ; (即输入冒号)即可
退出:Esc键
界面
常见的命令模式
① :w – 只保存不退出 (w代表write,写入文件的意思)
② :q – 退出 (q代表quit,退出的意思)
③ :wq – 保存退出
④ :q! – 不保存退出
③ 区别
国内把用命令退出普通模式这个阶段,单独分离了出来,并且命名为命令模式。
④ 其它
我们可以发现在桌面版里用vim打开代码时,存在高亮;但是 server版里没有高亮(不过高亮效果可以后期自己设置,vim中的很多东西是可以调整的) 。
3. 命令
① 移动光标
① 通常情况下:方向键上下左右
② vim:
h:向左
j:向下
k:向上
l:向右
注:
① vim被称为编辑器之神,是因为用它写代码时可以将双手绝对的投放在左半边键盘上
② hhkb键盘没有方向键的目的就是,尽可能地避免使用方向键,减少时间消耗。
③ 一些大佬喜欢使用mbp(全称:MacBook Pro,苹果公司生产的一款笔记本电脑型号)编写代码
② 翻页
① 通常情况下:
PgUp:向上
PgDn:向下
② vim:
Ctrl + F:下一页
Ctrl + B :上一页
Ctrl + E:向下 滚动翻页
Ctrl + Y:向上 滚动翻页
G :移动到文档最后一行
gg:移动到文档第一行
注:VIM中所有的命令区分大小写
③ 不同方式编辑文本以及跳跃单词
编辑文本
插入
i(insert):光标位置之前插入字符
a(append):光标位置之后插入字符
o:直接enter到下一行输入(无论你在当前行的哪个位置)
删除
x:删除光标所在字符
dd:删除光标所在行
dw:删除光标当前位置到当前单词的结尾(包括空格)的文本
撤销操作
u:撤销操作
跳跃单词
b(back):跳跃首字母(即将光标移动到当前或前一个单词的开头)
e(end):跳跃尾字母(即将光标移动到当前或下一个单词的结尾)
w(word):跳跃至下一个单词的首字母
大跳:
shift联合操作 – 只找大单词,忽略标点符号和空格
shift + b
shift + e
shift + w
④ 跳跃行首行尾
shift + 6 (^):跳跃到本行的开头
shift + 4($):跳跃到本行的末尾
0:直接跳到本行开头(包含空白字符)
⑤ 大括号跳跃函数段落
大括号相当于一个段落(代码块)
{ :跳至段落开头
} :跳至段落结尾
注:可以写个类似代码查看效果
⑥ 替换字母
r:替换光标所在字母(按下字母 r -> 按下要替换成的字母)
R:替换光标所在字母后还可以一直输入,直到按了Esc键退出
⑦ 光标移动到代码首行的开头
gg
⑧ 访问当前目录所有文件夹
vim .
仍然通过h j k l上下左右移动
想要编辑哪个文件就把光标移到到哪个文件,然后回车
⑨ 注意
① 普通模式下,尽量不要使用Backspace键(退格键)和Delete键,因为vim中的Backspace和Delete有时候可能会代表一些命令
② 插入模式下,尽可能别使用Backspace键
4. vim复制剪切粘贴
vim中有一个专门的缓冲区,记录复制、剪切、删除的数据
① 复制
yw:复制一个单词(从当前字符开始到当前单词的末尾,包含空格)
y$:从当前字符开始往后复制到行末尾
缺点
只有粘贴出来才知道复制了什么
② 粘贴
p(put):释放(即将最后一次复制或者剪切文本粘贴到当前光标位置之后)
③ 剪切
vim中准确来说没有剪切的概念。
dd(dw等删除操作) -> 光标移动到目标位置 -> p:可以理解为剪切操作
5. Visual可视化模式
① 作用
在不借助鼠标的情况下选择文本(借助 h j k l 键)
② 操作方式
普通模式下按 v 或 V 键 进入可视化模式
V(visual):只能按行复制
v(visual):可以借助h j k l 键上下左右随意复制,甚至可以使用之前学过的跳跃命令 (如:使用w键跳跃单词复制)
y:文本选择结束
p:粘贴
d:删除
gg:普通模式下移动到首行代码开头
删除或选择全部代码
① 删除:
gg(移动到首行代码开头) -> v -> G(全选) ->d
② 全选:
gg -> v -> G ->y
光标移动到所选文本的开头或结尾
o键
矩阵选择
Ctrl + v
例子(同时操作多行):
步骤一:ctrl +v
步骤二:y
步骤三:p
补全角落
v -> 0 或者 ctrl + v -> 0均可
向上选择文本
v -> -(减号) 或者 V -> - 或者 ctrl + v -> -均可
快速选择某个单词
在单词任意角落:
① v -> a -> w
② v -> a -> b(包含’ () ‘括号)
③ v -> a -> B(包含’ { } ‘括号)
④ v -> a -> < 或者 v -> a -> > (包含’ <> '括号)
了解更多
快速删除或替换某个单词
光标放在单词开头:① 删除:v -> e -> c ② 替换:v -> e -> c -> 替换成的字符
③ 视图模式其它用法
代码缩进
缩进一行(不进入视图模式):i -> Tab
缩进很多行(视图模式):shift -> >
取消缩进(视图模式):shift -> <
大小写转换
shift + ~ (普通模式下也有效):大写变小写 小写变大写
选择文本后 -> 按U:全转换成大写
选择文本后 -> 按u:全转换成小写
6. 查找和替换
① Windows中记事本
编辑 -> 查找(替换)
输入查找内容(替换内容)
② Linux中vim
查找
查找模式: / + 要查询的内容(+ 回车)
继续向下查询:n
例如:
① 输入完查询内容:
② 回车(下方白块消失,上方绿色方块不停闪烁):
③ 按n:绿色方块移动到下一个int位置,然后不停闪烁
替换
命令模式
① 替换单个
冒号s/替换的内容/替换成什么(+ 回车)
例如:
② 替换整行
冒号s/替换的内容/替换成什么/g(+ 回车)
③ 替换整个文件的(替换全局文档)
冒号%s/替换的内容/替换成什么(+ 回车)
④ 替换指定行(全局替换)
冒号 替换起始行,替换到哪一行s/替换的内容/替换成什么/g(+ 回车)
例如(将9-20行的int替换为long):
临时显示行号
冒号set number
跳跃到指定行
行号 + gg
例如跳跃到50行:直接50gg就行,不用输入冒号
⑤ 全局替换带提示(②的升级):
冒号s/替换的内容/替换成什么/gc(+ 回车)
c:comment – 注释、提示
例如(一个一个确认是否用long替换当下的int):
7. vim的基础配置
VIM和编辑器一样,可以配置主题、颜色、输入方式和习惯等内容
① ll查看home目录
发现没有所需的vim文件,只有一个.viminfo
② 创建.vimrc文件
touch .vimrc
③ 配置vim
配置vim:用vim编辑.vimrc文件中的内容
set syntax=on:常亮
set tabstop=4:每个tab之间的空当(开发时的要求,目的:统一进度),现有的Tab字符会显示为4个空格宽度
set softtabstop=4:在插入模式中按下Tab键会插入4个空格
set number:显示行号
set enc=utf-8:文件编码
set showmatch:括号匹配(实际上Ubuntu已经配好了)
注:其他常用配置可以去github搜索
④ 更新当前终端
source .vimrc
⑤ 检测是否配置成功
用vim随便打开一个文件(发现有行号等效果,说明配置成功):
8. 推荐
frank的linux课教程 以上笔记全部来源于此
-----------------------------------未完待续...------------------------
---------------------------出现问题欢迎批评指正啊 ---------------------
相关文章:
linux笔记10--编辑器之神VIM
文章目录 1. 简单介绍① 为什么叫vim② linux常见的编辑器③ 注意事项④ 其它 2. 操作模式的划分① 两种 -- 国际上普通模式(命令操作模式)插入模式 ② 三种 -- 国内普通模式如何进入与退出界面 插入模式如何进入与退出界面 命令模式如何进入与退出界面常见的命令模式 ③ 区别④…...
安全管理中心-集中管控(6点)
记忆内容: 应划分出特定的管理区域,对分布在网络中的安全设备或安全组件进行管控。(三级新增) 应能够建立一条安全的信息传输路径,对网络中的安全设备或安全组件进行管理。(三级新增) 应对网络…...
使用electron打包Vue前端项目的详细流程
使用electron打包Vue前端项目的详细流程 需要更改的东西 路由模式的修改 # 修改前:url不带#mode: history# 修改后:url带#mode: hash全局修改Cookies为localStorage 由于打包成exe或deb这类可执行文件后,本地是没有 Cookies 全局搜索Cooki…...
《计算机英语》 Unit 4 Information Management 信息管理
Section A Information Storage 信息存储 1. The importance of Information信息的重要性 词汇 reside vi属于,驻留 tablet n平板电脑 laptop n笔记本电脑 repository n仓库 claim n索赔 regulatory n法规 contractua…...
如何打包数据库文件
使用 mysqldump 命令: mysqldump -u username -p database_name > output_file.sql username 是数据库的用户名。database_name 是要导出的数据库名称。output_file.sql 是导出的 SQL 文件名,可以自定义。 示例: mysqldump -u root -p…...
iOS抓包指南 正则过滤爬取
解读iOS抓包 抓包 (packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。 什么是正则表达式? 正则表达式(regular expression)是用来描述…...
FLASH仿真EEPROM---基于智芯Z20K11XM
一、介绍 电可擦和可编程只读存储器(EEPROM)可以对字节或字编程和擦除。EEPROM中的数据即使断电也能保持,但Z20K1xx芯片不含EEPROM。然而,闪存可以通过EEPROM仿真软件来模拟EEPROM。Z20K1xx包含两个flash阵列。编程和擦除操作可以在一个数组上进行&#…...
阿里云PAI大模型评测最佳实践
作者:施晨、之用、南茵、求伯、一耘、临在 背景信息 内容简介 在大模型时代,随着模型效果的显著提升,模型评测的重要性日益凸显。科学、高效的模型评测,不仅能帮助开发者有效地衡量和对比不同模型的性能,更能指导他…...
应用图扑 HT for Web 搭建拓扑关系图
拓扑结构在计算机网络设计和通信领域中非常重要,因为它描述了网络中的设备(即“点”)如何相互连接(即通过“线”)。这种结构不仅涉及物理布局,即物理拓扑,还可以涉及逻辑或虚拟的连接方式&#…...
Django Aggregation 使用指南
Django Aggregation 使用指南 在构建Django应用时,我们经常需要对数据库中的数据进行汇总或聚合操作。例如,计算某个字段的平均值、最大值或最小值。这篇文章将详细介绍如何在Django中使用聚合查询,并结合实例进行说明。 聚合查询简介 Dja…...
嵌入式学习——Linux操作系统——文件编程练习
1.使用fread和fwrite方式完成任意普通文件的拷贝功能。 模拟 文件下载 #include <stdio.h>void do_copy(FILE *fp_s,FILE *fp_d) {char buf[100] {0};int ret;while (ret fread(buf,sizeof(char),sizeof(buf),fp_s))fwrite(buf,sizeof(char),ret,fp_d); }//./a.out sr…...
用JavaScript实现了一个简单的图像坐标点标注工具
这段代码实现了一个简单的图像标注工具,允许用户在加载的图像上进行点选标注,并且通过右键确认一个点序列来形成一个多边形。 标注效果如下 实现代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"U…...
Pytorch深度解析:Transformer嵌入层源码逐行解读
前言 本部分博客需要先阅读博客: 《Transformer实现以及Pytorch源码解读(一)-数据输入篇》 作为知识储备。 Embedding使用方式 如下面的代码中所示,embedding一般是先实例化nn.Embedding(vocab_size, embedding_dim)。实例化的…...
HSP_10章 Python面向对象编程oop_基础部分
文章目录 P107 类与实例的关系1.类与实例的关系示意图2.类与实例的代码分析 P109 对象形式和传参机制1. 类与对象的区别和联系2. 属性/成员变量3. 类的定义和使用4. 对象的传递机制 P110 对象的布尔值P111 成员方法1. 基本介绍2. 成员方法的定义和基本使用3.注意事项和使用细节…...
JavaWeb系列十七: jQuery选择器 上
jQuery选择器 jQuery基本选择器jquery层次选择器基础过滤选择器内容过滤选择器可见度过滤选择器 选择器是jQuery的核心, 在jQuery中, 对事件处理, 遍历 DOM和Ajax 操作都依赖于选择器jQuery选择器的优点 $(“#id”) 等价于 document.getElementById(“id”);$(“tagName”) 等价…...
Gone框架介绍30 - 使用`goner/gin`提供Web服务
gone是可以高效开发Web服务的Golang依赖注入框架 github地址:https://github.com/gone-io/gone 文档地址:https://goner.fun/zh/ 使用goner/gin提供Web服务 文章目录 使用goner/gin提供Web服务注册相关的Goners编写Controller挂载路由路由处理函数io.Rea…...
Lipowerline5.0 雷达电力应用软件下载使用
1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:289…...
STM32学习之一:什么是STM32
目录 1.什么是STM32 2.STM32命名规则 3.STM32外设资源 4. STM32的系统架构 5. 从0到1搭建一个STM32工程 学习stm32已经很久了,因为种种原因,也有很久一段时间没接触过stm32了。等我捡起来的时候,发现很多都已经忘记了,重新捡…...
AI绘画Stable Diffusion 超强一键去除图片中的物体,免费使用!
大家好,我是设计师阿威 在生成图像时总有一些不完美的小瑕疵,比如多余的物体或碍眼的水印,它们破坏了图片的美感。但别担心,今天我们将介绍一款神奇的工具——sd-webui-cleaner,它可以帮助我们使用Stable Diffusion轻…...
零基础STM32单片机编程入门(一)初识STM32单片机
文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...





























