当前位置: 首页 > news >正文

vim手册(vim cheatsheet)

vim手册(vim cheatsheet)


1. 命令模式

1). 移动光标
在命令模式下,可以使用以下命令来移动光标:
- h:向左移动一个字符。
- j:向下移动一行。
- k:向上移动一行。
- l:向右移动一个字符。
- w:向右移动一个单词。
- b:向左移动一个单词。
- 0:移动到当前行的开头。
- $:移动到当前行的结尾。
- gg:移动到文本的第一行。
- G:移动到文本的最后一行。
2). 插入文本
在命令模式下,可以使用以下命令来插入文本:
- i:在当前光标位置前插入文本。
- I:在当前行的开头插入文本。
- a:在当前光标位置后插入文本。
- A:在当前行的结尾插入文本。
- o:在当前行的下方插入一行。
- O:在当前行的上方插入一行。
3). 删除文本
在命令模式下,可以使用以下命令来删除文本:
- x:删除当前光标所在位置的字符。
- dw:删除当前光标位置到单词结尾的文本。
- d0:删除当前光标位置到行开头的文本。
- d$:删除当前光标位置到行结尾的文本。
- dd:删除整行文本。
4). 复制和粘贴文本
在命令模式下,可以使用以下命令来复制和粘贴文本:
- yy:复制当前行。
- yw:复制当前光标位置到单词结尾的文本。
- p:将复制的文本粘贴到当前光标位置的下方。
- P:将复制的文本粘贴到当前光标位置的上方。
5). 撤销和恢复操作
在命令模式下,可以使用以下命令来撤销和恢复操作:
- u:撤销上一次操作。
- Ctrl+r:恢复上一次撤销的操作。
6). 查找和替换文本
在命令模式下,可以使用以下命令来查找和替换文本:
- /pattern:搜索文本中的模式。
- n:在查找模式时,移动到下一个匹配项。
- N:在查找模式时,移动到上一个匹配项。
- :s/old/new/g:将当前行中的所有“old”替换为“new”。
- :%s/old/new/g:将文本中所有的“old”替换为“new”。
7). 块操作
在命令模式下,可以使用以下命令来执行块操作:
- Ctrl+v:进入可视块模式,可以选择一个矩形块。
- Shift+i:在可视块模式下,进入插入模式,可以在选择的矩形块中插入文本。
- d:在可视块模式下,删除选择的矩形块中的所有文本。

2. 末行模式

1). 保存文件
- :w:保存文件。
- :w filename:将文件保存为指定的文件名。
2). 退出VIM
- :q:退出VIM。
- :q!:强制退出VIM,不保存修改。
- :wq:保存并退出VIM。
3). 查找和替换文本
- /pattern:搜索文本中的模式。
- :s/old/new/g:将当前行中的所有“old”替换为“new”。
- :%s/old/new/g:将文本中所有的“old”替换为“new”。
4). 移动光标
- :n:将光标移动到第n行。
- :$:将光标移动到文本的最后一行。
- :1:将光标移动到文本的第一行。
5). 显示和隐藏行号
- :set number:显示行号。
- :set nonumber:隐藏行号。
6). 执行外部命令
- :!command:执行外部命令,例如:!ls。
7). 插入文本
- :a:在当前行的后面插入文本。
- :i:在当前行的前面插入文本。
- :o:在当前行下面插入一行并插入文本。
8). 删除文本
- :d:删除当前行。
- :%d:删除整个文本。
9). 执行宏
- :@x:执行名称为x的宏。
10).代码着色
- :syntax on/off

3. 可视化模式

VIM中的可视化模式用于选择文本块,用户可以使用以下命令来执行各种操作:
1). 进入可视化模式
- v:进入可视化模式。
- V:进入行可视化模式。
- Ctrl+v:进入块可视化模式。
2). 选择文本块
- j:向下选择一行。
- k:向上选择一行。
- h:向左选择一个字符。
- l:向右选择一个字符。
- w:选择下一个单词。
- e:选择下一个单词的结尾。
- b:选择上一个单词的开头。
3). 操作文本块
- d:删除选择的文本块。
- y:复制选择的文本块。
- p:将复制的文本块粘贴到当前光标位置下面。
- P:将复制的文本块粘贴到当前光标位置上面。
- I:在选择的文本块的开头插入文本。
- A:在选择的文本块的末尾插入文本。
4). 取消选择
- Esc:退出可视化模式。

相关文章:

vim手册(vim cheatsheet)

vim手册(vim cheatsheet) 1. 命令模式 1). 移动光标 在命令模式下,可以使用以下命令来移动光标: - h:向左移动一个字符。 - j:向下移动一行。 - k:向上移动一行。 - l:向右移动一个…...

软件测试具体人员分工

最近看了点敏捷测试的东西,看得比较模糊。一方面是因为没有见真实的环境与流程,也许它跟本就没有固定的模式与流程,它就像告诉人们要“勇敢”“努力”。有的人在勇敢的面对生活,有些人在勇敢的挑战自我,有些人在勇敢的…...

计算机网络-应用层

文章目录 应用层协议原理万维网和HTTP协议万维网概述统一资源定位符HTML文档 超文本传输协议(HTTP)HTTP报文格式请求报文响应报文cookie 万维网缓存与代理服务器 DNS系统域名空间域名服务器和资源记录域名解析过程递归查询迭代查询 动态主机配置协议&…...

linux 创建git项目并提交到gitee(保姆式教程)

01、git安装与初始化设置 mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ apt install mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ git config --global user.name "用户名" mhzzjmhzzj-virtual-machine:~/work/skynetStudy$ git config --global user.ema…...

STM32 IAP应用开发--bootloader升级程序

STM32 IAP应用开发--bootloader升级程序 Chapter1 STM32 IAP应用开发——通过串口/RS485实现固件升级(方式2)前言什么是IAP?什么是BootLoader? 方案介绍:1)bootloader部分:2)APP部分…...

Q_GLOBAL_STATIC宏

文章目录 目的Q_GLOBAL_STATIC源代码分析涉及到原子操作 以及静态变量初始化顺序代码实现 目的 由Q_GLOBAL_STATIC宏, 引发的基于线程安全的Qt 单例模式的使用。 Q_GLOBAL_STATIC /***************************************************************************…...

[批处理]_[初级]_[如何删除变量值里的双引号]

场景 在使用Visual Studio开发本地程序的时,需要在项目属性,生成事件->生成后事件里增加一些资源的打包,复制,删除等操作,那么就需要用到批处理来进行。而传递带空格的路径给外部的批处理文件时就需要双引号引用从…...

51单片机电子钟闹钟温度LCD1602液晶显示设计( proteus仿真+程序+原理图+设计报告+讲解视频)

51单片机电子钟闹钟温度液晶显示设计( proteus仿真程序原理图设计报告讲解视频) 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接(可点击): 🌟51单片…...

怎样学好java

最近在看一本java方面的书。《java从入门到精通》,里面看到一段如何学习java的话,觉得非常好,下面我分享一下。 如何学好java语言,是所有初学者都需要面对的问题。其实,每种语言的学习方法都大同小异。初学者需要注意…...

HarmonyOS 数据管理与应用数据持久化(二)

通过键值型数据库实现数据持久化 场景介绍 键值型数据库存储键值对形式的数据,当需要存储的数据没有复杂的关系模型,比如存储商品名称及对应价格、员工工号及今日是否已出勤等,由于数据复杂度低,更容易兼容不同数据库版本和设备…...

Hadoop环境搭建及Demo

参考博客 Windows 10安装Hadoop 3.3.0教程 (kontext.tech) Hadoop入门篇——伪分布模式安装 & WordCount词频统计 | Liu Baoshuai’s Blog Hadoop安装教程 Linux版_linux和hadoop的安装_lnlnldczxy的博客-CSDN博客 hadoop启动出错 The value of property bind.address …...

更新一下数据集

UCI Machine Learning Repository UCI的数据集还是挺老牌的,最近换了地址,我就再记录一下。 左边是比较常见的数据集,比如Iris很经典,Heart Disease这也是,包括Wine,通常对于初学者学习比较好,…...

web3之跨链预言机SupraOracles:什么是Supra

文章目录 web3之跨链预言机SupraOracles什么是Supra什么是DORA(分布式Oracle协议)使用场景web3之跨链预言机SupraOracles 什么是Supra 官网:https://supraoracles.com/ 预言机的核心价值就在于数据传输,数据传输的速度、准确性、安全性更是重中之重。Supra Oracles 就是这…...

关系型数据库 期末复习(未完

关系型数据库 绪论概念间的关系数据库的历史信息和数据数据模型 关系模型数据结构关系完整性关系操作语言 关系代数语言 绪论 概念间的关系 数据->数据库->数据库管理系统->数据库系统 数据库的历史 人工管理阶段 -> 文件系统阶段 -> 数据库系统阶段 数据库…...

【学习笔记】CF1895G Two Characters, Two Colors

感谢grass8sheep提供的思路。 首先,我们可以用 D P DP DP解决这个问题。 设 f i , j f_{i,j} fi,j​表示前 i i i个数中有 j j j个为 1 1 1的位置为红色的最大价值。则转移如下: f i , j ← f i − 1 , j b i f_{i,j}\gets f_{i-1,j}b_i fi,j​←fi−…...

GZ035 5G组网与运维赛题第10套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第10套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…...

基于SSM的教学管理系统(有报告)。Javaee项目。

演示视频: 基于SSM的教学管理系统(有报告)。Javaee项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构,通过Spring SpringMvc My…...

软件测试工作流程

流程体系介绍 在以往的项目工作中,我参与过,需求评审、测试计划制定、测试用例编写、测试用例执行、测试脚本编写、测试脚本的执行,进行回归测试、验收测试、编写阶段性测试报告等工作 需求分析,需求评审(RPD、产品原…...

高级文本编辑软件 UltraEdit mac中文版介绍说明

UltraEdit mac是一款在Windows系统中非常出名的文本编辑器, UltraEdit for mac对于IT程序猿来说,更是必不可少,可以使用UltraEdit编辑配置文件、查看16进制文件、代码高亮显示等,虽然Mac上已经有了很多优秀的文本编辑器&#xff0…...

python模块的介绍和导入

python模块的介绍和导入 概念 在Python中,每个Python代码文件都是一个模块。写程序时,我们可以将代码分散在不同的模块(文件)中,然后在一个模块中引用另一个模块的内容。 导入格式 1、在一个模块中引用(导入)另一个模块可以使用import语句…...

基于单片机的智能饮水机系统

收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、系统设计方案分析2.1 设计功能及性能分析2.2设计方案分析 二、系统的硬件设计3.1 系统设计框图系统软件设计4.1 总体介绍原理图 四、 结论 概要 现在很多学校以及家庭使用的饮水机的功能都是比较单一的&#…...

CSS画圆以及CSS实现动态圆

CSS画圆以及CSS实现动态圆 1. 先看基础(静态圆)1.1 效果如下:1.2 代码如下: 2. 动态圆2.1 一个动态圆2.1.1 让圆渐变2.1.2 圆渐变8秒后消失2.1.3 转动的圆(单个圆) 2.2 多个动态圆 1. 先看基础(…...

K8S知识点(一)

(1)应用部署方式转变 (2)K8S介绍 容器部署容易出现编排问题,为了解决就出现了大量的编排软件,这里将的是K8S编排问题的解决佼佼者 弹性伸缩:当流量从1000变为1200可以,自动开启一个…...

人工智能师求职面试笔试题及答案汇总

人工智能师求职面试笔试题及答案汇总 1.如何在Python中实现一个生成器? 答:在Python中,生成器是一种特殊类型的迭代器。生成器允许你在需要时才生成值,从而节省内存。生成器函数在Python中是通过关键字yield来实现的。例如&…...

【Windows-软件-FFmpeg】(01)通过CMD运行FFmpeg进行操作,快速上手

前言 通过"cmd"运行"ffmpeg"进行操作,快速上手; 实操 【实操一】 说明 使用"ffmpeg"来合并音频文件和视频文件 ; 环境 Windows 11 专业版(22621.2428); 代码 &#xf…...

Spring Data Redis + RabbitMQ - 基于 string 实现缓存、计数功能(同步数据)

目录 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 1.1.2、案例实现 1.1.3、效果演示 1.2、计数功能(Redis RabbitMQ) 1.2.1、分析 1.2.2、案例实现 一、Spring Data Redis 1.1、缓存功能 1.1.1、分析 使用 redis 作为缓存, M…...

Facebook Developer 的 HashCode

在 Android 中,您可以使用 Facebook SDK 提供的工具来生成您的应用程序的哈希码(hash code),以便在 Facebook 开发者帐户中配置您的应用程序。 要生成哈希码,您可以使用以下步骤: 打开终端或命令提示符&am…...

下载使用 ant design Pro 中遇到的一些问题

文章目录 npm 版本问题在idea终端输入命令报错:error:0308010C:digital envelope routines::unsupported npm 版本问题 npm v9.6.3 is known not to run on Node.js v19.9.0. This version of npm supports the following node versions: ^14.17.0 || ^16.13.0 || …...

「Java开发指南」如何用MyEclipse搭建Spring MVC应用程序?(一)

本教程将指导开发者如何生成一个可运行的Spring MVC客户应用程序,该应用程序实现域模型的CRUD应用程序模式。在本教程中,您将学习如何: 从数据库表的Scaffold到现有项目部署搭建的应用程序 使用Spring MVC搭建需要MyEclipse Spring或Bling授…...

[动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值

[动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值 文章目录 [动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值题目解析解题思路状态表示状态转移方程初始化和填表顺序 返回值代码实现总结 LCR 166. 珠宝的最高价值 题目…...