vim模式用法总结

news/2025/1/16 0:43:31/

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.ppmy.cn/news/1224400.html

相关文章

SystemVerilog学习 (11)——覆盖率

目录 一、概述 二、覆盖率的种类 1、概述 2、分类 三、代码覆盖率 四、功能覆盖率 五、从功能描述到覆盖率 一、概述 “验证如果没有量化,那么就意味着没有尽头。” 伴随着复杂SoC系统的验证难度系数成倍增加,无论是定向测试还是随机测试&#xff…

如何编写分层清晰、通用性好的LCD驱动?

网络上配套STM32开发板有很多LCD例程,主要是TFT LCD跟OLED的。从这些例程,大家都能学会如何点亮一个LCD。但这代码都有下面这些问题: 分层不清晰,通俗讲就是模块化太差。 接口乱。只要接口不乱,分层就会好很多了。 可…

ROS 学习应用篇(八)ROS中的坐标变换管理之tf广播与监听的编程实现

偶吼吼胜利在望,冲冲冲 老规矩新建功能包 工作空间目录下/src下开启终端输入 catkin_create_pkg learning_tf roscpp rospy tf turtlesim 如何实现tf广播 引入库 c python …

Uniapp有奖猜歌游戏系统源码 带流量主

有奖猜歌游戏是一款基于uni-app、uniCloud、uniAD 开发的小游戏,通过猜歌曲、观看广告赚取现金奖励。 本游戏基本特征如下: 1、玩家可以通过猜歌、做任务等方式直接获取现金奖励 2、玩家可以通过猜歌、拆红包、做任务等方式获取金币奖励,当金币累积到一定数量可以兑换现金 3…

调用本地大模型实现聊天机器人ChatBot

AWS Instance本地部署大模型 AWS上申请带GPU的instance,例如g4dn系列,申请instance后安装CUDA的driver,driver安装完成后,就可以在带gpu的instance上部署开源的大模型了。如果想了解在aws上部署本地模型细节,可以阅读…

二维码智慧门牌管理系统升级,异常门牌聚合解决方案助力高效管理

文章目录 前言一、异常门牌聚合解决方案 前言 在今天的数字化时代,智慧城市已成为发展趋势,其中二维码智慧门牌管理系统扮演着至关重要的角色。通过对门牌信息进行数字化管理,该系统极大提升了城市管理的效率和便捷性。然而,随着…

jssip contact的随机字符串的问题

let configuration {sockets: [socket],uri: sip:1001127.0.0.1,}; 如果这样注册freesswitch,那么fs注册信息中的Contact字段信息就是:sip:sdfsdfsdfsfcvdwvdwd.invalid;transportws;fs_natyes;fs_path... 正确的写法是: //URI是jssip内置…

本周Github有趣项目:draw-a-ui等

有趣的项目、工具和库 gpt-crawler 抓取网站以生成知识文件,从而从 URL 创建您自己的自定义 GPT。 需要步骤: 配置运行爬虫、 将您的数据上传到 OpenAI:使用此选项通过 UI 访问您生成的知识,您可以轻松与他人共享 创建自定义助…