vim模式用法总结

0.前言

我们用gcc编译文件的时候,如果发生了下面的错误,那么如何用vim打开的时候就定位到?

我们可以知道,这是第6行出现了错误;

所以我们使用vim打开的时候多输入个这个,我们就可以快速定位了

vim test.c +6

一、常用模式间转换按键

命令模式:vim打开的时候默认进入命令模式,控制屏幕光标的移动,字符、字或行的删除,移动复制某区段

插入模式:进行文本的输入

底行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

二、命令模式快捷键

一定要切换成英文输入法

1.1 移动操作

快捷键作用
^(shift + 6)定位到当前行的最左侧
$(shift + 4)定位到当前行的最右侧
G(shift + g)定位到文本末行的开头
gg定位到文本最开始
n + G(shift + g)定位到第n行开头
h j k l 控制光标向左,下,上,右移动
w跳跃到下一个字的开头
b跳跃到上一个字的开头
e跳跃到下一个字的结尾
ctrl + b屏幕往后移动一页
ctrl + f屏幕往前移动一页

1.2. 复制粘贴操作:

n + yy

n = 1    复制当前行

n > 1    向下复制n行

n  + p

n = 1    在下一行粘贴由yy复制的文本

n > 1    在下一行粘贴n次由yy复制的文本

1.3 删除,剪切操作:

n  + dd

n = 1 删除当前行

n > 1 向下删除n行

n + dd + p将删除的再复制出来,相当于剪切
n + x(小写)

n = 1 删除光标所在的字符

n > 1 向右删除n个字符

n + X(大写)

n = 1 删除光标前一个字符

n > 1 向左删除光标前n个字符

1.4 撤销操作:

u撤销我们的编辑操作
ctrl + r对u撤销

1.5 替换操作:

n r + 字符 

n = 1 用你给的字符替换光标所在的字符

n > 1 用你给的字符替换光标后面n个字符

1.6 切换大小写

~(shift + `)切换大小写

三、底行模式快捷键

使用之前切换到命令模式,按冒号进入底行模式,输入结束默认回到命令模式,所以底行模式需要每次都加个冒号才可以切换。

1.1 行号和跳转到num行

快捷键作用
:set nu显示行号
:set nonu取消显示行号
: num跳转到文本的num行

1.2 查找字符

:/ 内容 +n高亮内容,并且光标从头开始找,按一次n,找下一个
:? 内容 +n高亮内容,并且光标从最后开始找,按一次n,找上一个

1.3 保存和退出vim

:q仅退出
:q!强制退出
:w仅保存
:w!强制保存
:wq保存并退出
:wq!强制保存并退出

1.4 在不退出vim下,进行命令行操作

:! 命令不退出vim,对Linux进行命令行操作

1.5 对比不同的文件

:vs file当前的文件与file文件对比

注意⚠️⚠️:

1.  若file不存在,系统会创建一个f名为file的文件名

    但是我们不写file,退出时file销毁 

    当我们写入file,file存在

2. 在比较的时候,我们的底行是和光标所处一个文件的

3. 按住ctrl + w+w  切换光标所处的窗口

1.6 查找vim的模式

:help vim-modes

四、视图模式快捷键

ctrl v进入视觉模式

视觉模式:用来批量化注释的

4.1 批量化注释

步骤1:hjkl(或者键盘的上下左右键)进行注释部分的选择,可以控制鼠标一起

步骤2:  I (shift + i),进入插入模式

步骤3:  在当前行输入  //  (注释符号)

步骤4:  esc(2次) 完成注释

4.2 撤销注释

先进入视图模式 ctrl v

步骤1:hjkl(或者键盘的上下左右键)进行注释部分的选择,可以控制鼠标一起

步骤2:  d

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

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

相关文章

【观察】华为:数智世界“一触即达”,应对数智化转型“千变万化”

毫无疑问,数智化既是这个时代前进所趋,也是国家战略所指,更是所有企业未来发展进程中达成的高度共识。 但也要看到,由于大量新兴技术的出现,技术热点不停的轮转,加上市场环境的快速变化,让数智化…

使用vant list实现订单列表,支持下拉加载更多

在公司项目开发时&#xff0c;有一个需求是实现可以分页的订单列表&#xff0c;由于是移动端项目&#xff0c;所以最好的解决方法是做下拉加载更多。 1.在页面中使用vant组件 <van-listv-model"loading":finished"finished"finished-text"没有更…

Android 当中的 Fragment 协作解耦方式

Android 当中的 Fragment 协作解耦方式 文章目录 Android 当中的 Fragment 协作解耦方式第一章 前言介绍第01节 遇到的问题第02节 绘图说明 第二章 核心代码第01节 代理人接口第02节 中间人 Activity第03节 开发者A第04节 开发者B第05节 测试类 第一章 前言介绍 第01节 遇到的…

使用 React Flow 构建一个思维导图应用

思维导图是围绕共同主题或问题将思想、概念、信息或任务分组的视觉表示。思维导图应用是一种软件应用&#xff0c;允许您创建、可视化和组织您的思想、想法和信息作为思维导图。本文将向您展示如何实现自己的思维导图应用程序。 在我们开始之前&#xff0c;我想向您展示一下我们…

JAXB的XmlElement注解

依赖 如果基于JAX-WS开发&#xff0c;可以在maven工程的pom.xml文件中增加如下依赖&#xff0c;会将依赖的JAXB库也下载下来&#xff1a; <dependency><groupId>jakarta.xml.ws</groupId><artifactId>jakarta.xml.ws-api</artifactId><vers…

Android 屏幕适配

目录 一、为什么要适配 二、几个重要的概念 2.1 屏幕尺寸 2.2 屏幕分辨率 2.3 屏幕像素密度 2.4 屏幕尺寸、分辨率、像素密度三者关系 三、常用单位 3.1 密度无关像素(dp) 3.2 独立比例像素&#xff08;sp&#xff09; 3.3 dp与px的转换 四、解决方案 4.1 今日头条…

在QGIS中加载显示3DTiles数据

“我们最近有机会在QGIS 3.34中实现一个非常令人兴奋的功能–能够以“Cesium 3D Tiles”格式加载和查看3D内容&#xff01;” ——QGIS官方的 宣传介绍。 体验一下&#xff0c;感觉就是如芒刺背、如坐针毡、如鲠在喉。 除非我电脑硬件有问题&#xff0c;要么QGIS的3Dtiles是真…

Springboot更新用户头像

人们通常(为徒省事)把一个包含了修改后userName的完整userInfo对象传给后端&#xff0c;做完整更新。但仔细想想&#xff0c;这种做法感觉有点二&#xff0c;而且浪费带宽。 于是patch诞生&#xff0c;只传一个userName到指定资源去&#xff0c;表示该请求是一个局部更新&#…

wpf devexpress Property Gird管理集合属性

Property Grid允许你添加&#xff0c;浏览和编辑集合属性

B站批量取消关注

找到关注页面&#xff1a; 右键检查或者按F12进入开发者界面 然后选console&#xff0c;在页面下面输入下面jQuery代码&#xff0c;然后按回车。复制粘贴两次这一页的博主就能全部取消大概20个 然后刷新页面&#xff0c;接着粘贴两边代码&#xff0c;循环如此即可。 $(".…

浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞复现 [附POC]

文章目录 浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任…

K8S1.23.5部署(此前1.17版本步骤囊括)及问题记录

应版本需求&#xff0c;升级容器版本为1.23.5 kubernetes组件 一个kubernetes集群主要由控制节点&#xff08;master&#xff09;与工作节点&#xff08;node&#xff09;组成&#xff0c;每个节点上需要安装不同的组件。 master控制节点&#xff1a;负责整个集群的管理。 …