vim的基本操作

news2024/9/21 19:08:03

image-20221117223808880

文章目录

      • vim是什么
      • vim的模式
    • 命令/普通模式(Normal mode)
      • 移动光标
        • 上下左右
        • 其余移动光标
      • 文本操作
        • **进入替换模式:shift+r=R**
    • 插入模式(insert mode)
    • 底行模式(last list mode)
    • vim的配置
        • vim一键配置

vim是什么

简单理解:vi/vim都是多模式文本编辑器,但vim是vi的升级版本。vim是可运行在x window 、mac os、windows的多模式编辑器。

vim快捷键键位图

image-20221117185052111

vim的模式

vim有很多种模式,但常见的模式有三种:命令/正常/普通模式(Normal mode);插入模式(insert mode);末行模式(last list mode);下面是三种模式的切换概览:

image-20221117185839296

image-20221117190919332

这个时候发现我们敲打键盘并不能像平时用记事本那样输入。这时候我们按i-就能进入插入模式!

image-20221117191145719

我们可以看到左下角会显示**–INSERT–**就说明进入插入模式!进入插入模式后就能像利用记事本那样输入了。

当我们想进入底行模式或者输入完想退出时,按键盘左上角Esc就能回到命令模式!

回到命令模式后按住shift+:【:是键盘上L右边的那个键】就能进入底行模式!

image-20221117191536072

进入底行模式就能看到左下角显示这个**:**

想回退到命令模式就按Esc!

🆗现在三种模式的切换讲述完毕

现在我们进入到命令模式的介绍。

命令/普通模式(Normal mode)

vim是没有鼠标操控的编辑器,所以我们要用命令来移动光标。

移动光标

上下左右

我们可以用键盘上的上下左右移动光标也可以用键盘上的

小写字母【h】:向左移动【j】:向下移动【k】:向上移动【l】:向右移动—来移动光标

image-20221117193332044

那怎么在不熟练的情况下记忆呢

按h在里面的最左边不用说了向左
按j联想单词jump—往下跳—向下向下
按k联想单词king—高高在上—向上向上
按l在里面的最右边不用说了向右

这下能记住了吧

其余移动光标

+号不用按,这里用作连接表示

按shift+$ ——shift+4移动到光标所在行的“行尾”:行右
按shift+^——shift+6移动到光标所在行的“行首”:行左
按gg——{连点两下小写g}进入文本开头
按shift+g——G进入文本末端
按n+shift+g——G跳转光标到指定第n行开头;n是行号
按w光标跳到下个单词的开头
按e光标跳到下个单词的字尾
按b光标跳到上个单词的开头
以上是常见移动光标的指令如果觉得不够用可以上百度查噢

image-20221117194739819

文本操作

+号不用按,这里用作连接表示

按 u撤销(可多次按)
按ctrl+r撤销的恢复(可多次按)
按ctrl+g显示光标所在行的行号
按yy复制光标所在行(一行)
按n+yy复制n行:从光标所在行起往下复制n行的内容
按 p粘贴一次复制内容
按n+p粘贴n次复制内容
按dd删除光标所在行
按n+dd从光标所在行起往下删除n行
dd+p剪切一次刚刚删除的内容(有剪才有切-有删除才有剪切)
按ndd+p剪切n次刚刚删除的内容
按c+w从光标位置往后删除当前单词或字符并进入插入模式
按c+n+w从光标位置往后删除n个当前单词或字符并进入插入模式
按 x——小写x从光标所在位置起往后删除一个字符
按 n+x从光标所在位置起往后删除n个字符
按shift+x——大写X从光标所在位置起往前删除一个字符
按n+shift+x——n+大写X从光标所在位置起往前删除n个字符
按shift+~ ——1左边那个字符~(文本大小写切换)从光标往后的小写转大写/大写转小写
按n+r+字符——比如我按3+r+a那么从当前光标往后的三个字符都变为a局部替换文本
shift+r——R进入替换模式可以整体替换

按住shift+~演示

按住shift+~

进入替换模式:shift+r=R

进入替换模式后可以看到左下角有–REPLACE–

image-20221117205555039

进入替换模式后在文本上输入导致文本替换!演示如下:
按shift+r进入替换模式后替换文本:

shift+r

插入模式(insert mode)

按i进入插入模式
按a从光标所在位置的下一个位置进入插入模式
按o从光标所在行的下一行进入插入模式

底行模式(last list mode)

进入底行模式:在命令模式按shift+:

进入底行模式后输入命令:

输入set nu显示行号
set nonu不显示行号
wq保存并退出
w!强制保存
q!强制退出(不保存当前修改)
wq!强制保存并退出

下面是**按shift+:**进入底行模式后输入set nu 和 set nonu的演示

set nu或nonu

vs+文件名——比如我输入vs trx.test那么会在当前界面分出另一个vim文本(trx.test) 分出来后光标在新的文本,当然光标只能在一个文本,所以只能操控一个文本,想要操控别的文本需要光标切换文本【另: 当然多次vs也可以分出多个文本】
ctrl+ww——ctrl+点击两次ww光标切换文本
按**!**不退出vim切换到linux界面;随后按任意键回到vim
!+ 指令可以不退出vim切换到linux界面并执行指令
%s/destination/source/g把当前文本的所有destination换成source;【比如%s/printf/cout/g—把当前文本的所有printf替换为cout】

vs演示

vs

%s/printf/cout/g

%s替换

vim的配置

1.在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。

2.而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。

3.切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~

4.打开自己目录下的.vimrc文件,执行 vim .vimrc

具体怎么配置呢?

第一步:查看有没有.vimrc文件,没有就创建(xxx为你自己用户名字)

image-20221117220622693

第二步:把需要的指令输入到.vimrc文件里(至于想要什么配置要去网上查噢)

1.修改.vimrc文件:vim .vimrc 把指令写进去并保存

比如image-20221117221550437

2.回到Linux界面:输入source .vimrc 等待它生效(如果发出生效错误说明指令不行~)

然后去vim个文件输入等待看看有没有生效 比如创建文件test.c并vim它看有没有配置好的效果

但是!现在都不需要了,现在有一键配置!

vim一键配置

我们可以进入gitte搜:vimforcpp

image-20221117222742332

点进去然后在下面找到

image-20221117223339486

当然我已经复制过来了:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

把上面的一串输入到Linux里

image-20221117222854586

按回车,然后输入root密码等待安装就好了;然后我们按照要求重启一下云服务器;然后在随意vim一个文件就能看到这样,那么就是vim的一键配置完成拉!

image-20221117223117512

好啦,关于vim的保姆级教学就到这里,制作不易,看到这里的观众老爷们点点点赞关注收藏走一波~

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

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

相关文章

【附源码】计算机毕业设计JAVA仁爱公益网站

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

plt.plot

画点: 1,加一个参数 o,即画点。会根据列表自动设置为x坐标 plt.plot([1,5,3,4,5],"o")2,也可设置多个坐标

985 博士真的会舍弃华为年薪接近 100 万 offer,去选择年薪 20 万的公务员吗?

第一:从某脉软件上来看,大部分会选择进入事业单位,这是大部分人内心想法的真实写照,还仅仅只是口嗨呢? 第二:按道理来说,能读完博士应该是在某一个领悟有自己独特的见解,以个人发展…

JavaSE之注解

目录注解的属性类型元注解注解解析模拟junit最后注解的属性类型 注解只能存放简单的数据 如: 基本数据类型 String Class 注解 枚举 以上类型的一维数组 格式: public interface 注解名称 { public 属性类型 属性名(); } public interface MyAn1 {…

拼搏半个月,刷了 571道Java高频面试题喜提阿里 offer

今年较往年相比面试要难的多,大环境也是对于程序员的要求越来越高,环境是我们无法改变的,我们能改变的只有自己,月初我一好友,努力拼搏一周,刷完了这份阿里 P8 大牛整理的这 571 道 Java 高频面试题笔记&am…

Node.js | Express+MongoDB 实现简易用户管理系统(三)(登录验证之CookieSession)

🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 🖥️ 本系列专栏:Node.js从入门到精通 🖥️ TS知识总结:十万字TS知识点总结 👉 你的一键三连是我更新的最大动力❤️&#xff0…

STM32 cubeMX配置串口重定向

文章目录前言一、工程配置二、串口重定向的原因三、实现串口重定向1.如何实现重定向2.具体步骤总结前言 这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。 一、工程配置 1.芯片选型 我这里使用的是STM32 103ZET6大家可以根据自己板子的型号进行芯片的…

【HCIE考试喜报】2022年11月11日考试通过

网络工程师认证:HCIE(华为ICT专家认证)_微思xmws的博客-CSDN博客_hcie证书华为HCIE课程介绍HCIE认证概述HCIE-R&S认证定位于大中型复杂网络的构建、优化和管理。HCIE-R&S认证包括但不限于:不同网络和各种路由器交换机之间…

Windows环境下使用命令行在达梦数据库导入dmp文件

注意: 1.创建的用户要跟dmp文件中的一致 2.为什么使用命令行?因为这样可以不用关心由于字符编码不一致导致导入不成功。 3.一定要给权限,我这里全部都给了,自己用的本地库,具体还没总结 4.如何查看已经安装的达梦数据库…

20K+ SRE面试题分享

今天群里有位老哥面试20K的SRE顺手拍了3张面试题,和大家分享一下.第三张实在太模糊就没放了. 第三张实在拍的太模糊 1. 选择题 没发 2. 填空题(共20题,每题2分,总分40分,请在括号里填入最合适的答案) 某文件的权限为drw-r–r–用数值形…

python基础语法>>基本数据类型

一个喜欢算法的大三在校学生,每周都会将学到的知识贡献给大家。☁️💡🎈 开始之前,不妨休息一下,先看个小动画🍵,才能激情地去学习! 用python的一个小turtle画了一个简易版的图书馆 python语法大…

概述机器学习算法(机器学习)

目录 机器学习的一般步骤 分类算法 决策树 支持向量机 最近邻算法 贝叶斯网络 神经网络 聚类算法 K—均值算法 BIRCH算法 CURE算法 OPTICS算法 关联分析算法 Apriori算法 FP-growth算法 回归分析算法 线性回归 逻辑回归 多项式回归 邻回归 LASSO回归 深度…

U++学习笔记 ------ 多播委托

多播委托 1、可以绑定多个回调函数,所有绑定的回调函数都会执行,实质是维持了一个单播委托的数组没有返回值支持参数不支持反射以及序列化 绑定多播委托 Add:将函数委托添加 到该多播委托的调用列表中。 AddStatic:添加原始C指针…

类和对象(下)

关于类和对象依旧有许多难点,这篇博客将会讲解关于类的构造函数的初始化列表,静态成员,友元,内部类,以及匿名对象等一些比较复杂的东西。 初始化列表 我们之前就已经学过类和对象的构造函数,但是实际上那并…

[小技巧]C# 反射

文章目录定义Namespace场景示例简单反射一个对象进行操作反射一个有参构造函数的对象反射一个泛型类型的对象简单反射一个方法进行操作反射一个泛型方法进行操作反射一个静态(Static)方法定义 反射提供描述程序集、模块和类型的对象(Type 类…

设计模式----工厂模式

设计模式----工厂模式 文章目录设计模式----工厂模式一.简介1. 什么是工厂模式?2. 工厂模式的类型?3. 工厂模式的使用场景?二. 使用1. 简单工厂模式2. 工厂方法模式3. 抽象工厂模式一.简介 1. 什么是工厂模式? 工厂模式&#xff…

【SpringBoot项目】SpringBoot项目-瑞吉外卖【day03】分类管理

文章目录前言公共字段自动填充问题分析代码实现功能测试功能完善新增分类需求分析模型代码开发功能测试分类信息分页查询需求分析代码开发功能测试删除分类需求分析代码开发功能完善修改分类需求分析代码实现结尾🌕博客x主页:己不由心王道长&#x1f315…

11.17 - 每日一题 - 408

每日一句: 世上没有侥幸的成功,只有加倍的努力。 数据结构 1 一棵左右子树均不空的二叉树在先序线索化后,其中空的链域的个数是______ A. 0B. 1C 2D.不确定答案:B 解析:线索二叉树利用了二叉链表中的空的左右孩子指…

高通导航器软件开发包使用指南(3)

高通导航器软件开发包使用指南(3)3.2 实时数据查看3.3 日志分析3.4 其他日志记录系统信息3.4.1查看数据记录选项3.4.2确保日志存储3.4.3获取snav_vector版本3.2 实时数据查看 snav_sinspector控制台应用程序允许以人工方式查看日志文件中的二进制数据 …

java项目-第142期ssm美食推荐系统-ssm毕业设计_计算机毕业设计

java项目-第142期ssm美食推荐系统-ssm毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm美食推荐系统》 该项目分为2个角色,管理员和用户。 用户可以浏览前台,包含功能有: 首页、热门美食、美食教程、美食店铺 、美食社区、美食资…