工作中常用Vim的命令

Hi, 我是你们的老朋友,主要专注于嵌入式软件开发,有兴趣不要忘记点击关注【码思途远】


目录

0. ctags -R

1.认识 Vim的几种工作模式

2.高频使用命令

2.1 修改文件

2.2 关于行号

2.3 删除多行,删除部分

2.4 复制粘贴

2.5 光标移动

2.6 撤销命令

2.7 翻页命令

2.8 查找和跳转

2.9 替换文本

2.10 退出

Vim 命令大全

总结


Vim 对于做Linux 嵌入式相关的工作,Vim 应该都比较熟悉,本章节将总结一些使用频率较高的一些相关操作,一些少用的这里就不再做介绍,说得太多,也记不住,以下将以实际情景进行介绍,基本可以完成相关基础操作。

0. ctags -R

ctags -R 这个确实不是vim命令,但是为什么第一个就要介绍它,因为在Linux 中,如果使用Vim进行浏览代码跳转都是非常有用,所以一般会在代码的根目录下输入:

ctags -R

1.认识 Vim的几种工作模式

提到Vim 可能还不知道有几种工作模式,根据网上分类有多种方式,有分3类,4类,6类,7类等等,这里考虑常用的方式分类为4种模式:

vim file.c开始进入的模式叫做‌Normal 模式

当处于Normal模式下,输入i,a,o 可以进入Insert 模式,也就是我们经常编辑的文件模式,退出Insert 模式直接按下Esc返回到Normal模式

当处于Normal 模式下,输入v或者V进入Visual 模式可以进行选择文本,进行一些剪切,复制等操作,按下Esc可以返回Normal 模式

当属于Normal 模式下,输入:可以进入Command 模式,命令以回车的方式又返回到Normal 模式

2.高频使用命令

2.1 修改文件

# vim 打开文件
vim file.c
# 输入i 就可以正常的操作,添加,删除等操作,通过上下左右进行移动光标;

2.2 关于行号

# 显示行号
:set nu
# 跳转到xxx行号
:xxx
# 不要显示行号
:set no nu

2.3 删除多行,删除部分

# 1. 非编辑模式下 
# 删除当前行,按下dd
​
# 删除多行,光标所在开始数,行数和d结合
# 删除4行,按下:4d
​
​
# 2. 编辑模式下:
# 删除范围
 

2.4 复制粘贴

# 1. 采用行号为单位的复制
​
# yy 复制当前行
# p 在当前行下粘贴
# np 粘贴n次
​
# nyy 复制n行
​
# 2. Visual 模式下复制粘贴
​
# 按v进入可视模式,(大V是行可视化,小v是字符可视化,Ctrl+v 是块可视化)
# 按下ctrl , 通过上下左右进行选择区域,或者j,k,h,l选择范围
# 移动文件尾部G ,文件头部gg
​
# 按下p 粘贴

2.5 光标移动

# 1. 方向性的有 ikhl
​
# 2. 移动到文件头 gg, 移动到尾部 G
​
# 3. 移动到行首

2.6 撤销命令

# 小写u 撤销
# 大写U 撤销对整行的操作
# Ctrl+r  即撤销的撤销

2.7 翻页命令

# Ctrl+f 向下翻一页
# Ctrl+b 向上翻一页
​
# 当然你使用PgUp PgDn 也行。

2.8 查找和跳转

# 查找
# /abc abc为你要查找的字符串
# /^abc  以abc为行首的行
# /abc$  以abc为行尾的行# n 往后查找
# N 往前查找# 跳转行号
# :n n为行号

2.9 替换文本

# 当前文本中的admin 全部替换成 hywelstar
# :1,$s/admin/hywelstar/g 

2.10 退出

# :wq 保存并退出
# :q! 不保存并强制退出 
# :w file  保存到file 文件去
# 按下ZZ 直接退出

Vim 命令大全

这张图应该都见过,比较全面

总结

本章节主要对Vim在工作中常用的命令进行整理,只需要掌握以上10个重要的,问题不大,再结合ctags 应该会更方面。如果不想使用Vim, 当然可以使用常用的代码编辑工具eclipse, vscode , Source insight 等工具,但有时候在服务器上这种无界面画或者又没有samba, nfs 这种服务,采用Vim 看看。

推荐阅读:

vim mode tips

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

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

相关文章

如何在 Vue 2 中使用 Swiper 5.4.5 处理静态与后端数据不能切换问题

一、文章大纲 1.前言 介绍 Swiper 作为一款强大的轮播组件,常用于处理图片、文章、商品等内容的滑动展示。 在 Vue.js 项目中集成 Swiper,尤其是在 Vue 2 中使用,常见的两种数据来源:静态数据与后端数据。 在 Vue 2 项目中集成 Swiper 5.4.5 2.如何通过 npm 安装 Swiper…

究极炫酷3D立方体宇宙

演示动画:https://life.mdjsjd.me/2024/12/27/3d-cube-animation/ 一个使用Python和Pygame制作的炫酷3D立方体动画效果。结合了多种视觉特效,包括: 动态旋转的3D立方体炫彩渐变的颜色系统星空背景粒子效果动态残影拖尾效果深度透视投影 主要特性 动态变换: 立方…

什么是 Azure OpenAI ?了解微软 Azure OpenAI 和 OpenAI 的关系

一、什么是Azure OpenAI ? 微软已与 OpenAI 合作以实现三个主要目标: ⦿利用 Azure 的基础结构(包括安全性、合规性和区域可用性),帮助用户构建企业级应用程序。 ⦿在微软产品(包括 Azure AI 产品以及以外…

Linux day 1129

家人们今天继续学习Linux,ok话不多说一起去看看吧 三.Linux常用命令 3.1 Linux命令体验 3.1.1 常用命令演示 在这一部分中,我们主要介绍几个常用的命令,让大家快速感 受以下 Linux 指令的操作方式。主要包含以下几个指令: ls命…

mysql8 从C++源码角度看 Statement cancelled due to timeout or client request异常

##Statement cancelled due to timeout or client request 异常 Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client requestat com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1932)at …

【数据结构-单调队列】力扣1438. 绝对差不超过限制的最长连续子数组

给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。 如果不存在满足条件的子数组,则返回 0 。 示例 1: 输入&#x…

SAP HCM 标准报表与前台操作的增强差异逻辑分析(rhgrenz4)

导读 增强差异:SAP的HCM模块组织和人事增强都有标准的增强点,不管你调用标准的函数还是前台操作都会触发对应的增强。所以很多业务不需要考虑那么多分散点,只要找到一个合适的增强点,就能解决很多和外围系统集成的业务逻辑,今天遇…

【Spring】Spring DI(依赖注入)详解——自动装配——手动装配与自动装配的区别

在spring开发中,依赖注入(Dependency Injection,DI)是实现松耦合和高内聚设计的重要模式。它使得对象的创建和管理与其依赖关系分离,从而提高了代码的可维护性、可测试性和灵活性。Spring框架通过IoC(控制反…

EZ-USB™ FX3 USB 5 Gbps 外设控制器

EZ-USB™ FX3 USB 5 Gbps 外设控制器 EZ-USB™ FX3 提供 USB 5Gbps 至 32 位数据总线,并配备 ARM9,可为任何系统添加 USB 3.0 连接 英飞凌的 EZ-USB™ FX3 是业界用途最广泛的 USB 外围设备控制器,可以为几乎任何系统添加 USB 5Gbps 连接。 …

【数据仓库】spark大数据处理框架

文章目录 概述架构spark 架构角色下载安装启动pyspark启动spark-sehll启动spark-sqlspark-submit经验 概述 Spark是一个性能优异的集群计算框架,广泛应用于大数据领域。类似Hadoop,但对Hadoop做了优化,计算任务的中间结果可以存储在内存中&a…

数据库容灾备份的意义+分类+执行工具!

数据库容灾解决方案的背景 数据库容灾(Disaster Recovery,DR)解决方案的背景主要源于企业对数据安全性、业务连续性和系统高可用性的需求。随着数字化转型的加速,企业的数据量迅猛增长,数据库已成为支撑核心业务的关键…

PDF怎么压缩得又小又清晰?5种PDF压缩方法

PDF 文件在日常办公与学习中使用极为频繁,可想要把它压缩得又小又清晰却困难重重。一方面,PDF 格式本身具有高度兼容性,集成了文字、图像、矢量图等多样元素,压缩时难以兼顾不同元素特性,稍不注意,文字就会…

SpringBoot数据字典字段自动生成对应code和desc

效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。 1. 定义注解 …

【YashanDB知识库】imp导入数据库时,报错YAS-08023

本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7849010.html?templateId1718516 **【问题分类】**数据导入导出 **【关键字】**imp、YAS-08023 【问题描述】 导出数据库时,使用以下命令,导出正常&#xff1…

又一年。。。。。。

2024,浑浑噩噩的一年。 除了100以内的加减法(数据,数据,还是数据。。。。。。),似乎没做些什么。 脸盲症越来越重的,怕是哪天连自己都不认得自己的了。 看到什么,听到什…

FreeRTOS: ISR(中断服务例程)和 TCB(任务控制块)

在讨论 ISR(中断服务例程)和 TCB(任务控制块,Task Control Block)时,我们实际上是在探讨 FreeRTOS 中两个不同但又相互关联的概念:一个是用于处理硬件或软件触发的中断事件,另一个是…

GoldenDB组件及对应的用户和进程

1. GoldenDB组件及对应的用户和进程 GoldenDB数据库由管理节点、全局事务节点GTM、计算节点CN、数据节点DN等组成。 1.1. 管理节点 管理节点分为集群管理、Insight运维管理平台(InsightServer、RDB、ZK)。 1.1.1. 集群管理 1. 集群管理包括Metadatas…

OpenStack系列第四篇:云平台基础功能与操作(Dashboard)

文章目录 1. 镜像(Image)添加镜像查看镜像删除镜像 2. 卷(Volume)创建卷查看卷删除卷 3. 网络(虚拟网络)创建网络查看网络删除网络 4. 实例类型创建实例类型查看实例类型删除实例类型 4. 密钥对&#xff08…

CSDN编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

MTK 平台关于WIFI 6E P2P的解说

一 前言 官方 P2P 6E 设计原理,请查看这个网站 hostap - hostapd/wpa_supplicant 配置:p2p_6ghz_disable 允许上层指定是否允许6G连接 仅允许6G用于WFD –不允许6G用于纯P2P 缺点:存在很多 IOT issues 如:一些物联网设备无法识别6G类/信道,可能存在物联网问…