【Linux】Linux编辑神器vim的使用

目录

         一、Vim的基本概念

         二、Vim的基本操作

                1、进入vim

                2、正常模式切换至插入模式

                3、插入模式切换至正常模式

                4、正常模式切换至底行模式

                5、退出Vim编辑器

         三、Vim正常模式命令集

                1、移动光标

                2、删除文字

                3、复制

                4、替换

                5、撤销

         四、Vim底行模式命令集

                1、列出行号

                2、光标跳转

                3、查找字符

                4、替换字符

 


 

一、Vim的基本概念

     Vim是多模式编辑器,我们其实只用掌握这3中即可,分别是命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)。

       命令模式(正常模式/普通模式)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式下。

       插入模式

只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令模式。该模式是我们后面用的最频繁的编辑模式。

       底行模式 

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令行模式下,按shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入 :help vim-modes 就可以查看。

二、Vim的基本操作

   1、进入vim

    进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面: vim test.c,如果有这个test.c 的文件就会直接进去,如果没有就会自动创建并进去。

此时就已经进去编辑器内部,但是这只处于正常模式,是不可以编辑的。

   2、正常模式切换至插入模式

    从正常模式切换到插入模式有3中方法,直接可以按a 或 i 或 o 就能直接进入插入模式下,此时编辑框下面也有所变化,如下图所示:

    左下角变成了INSERT,说明已经切换到了插入模式了,此时就可以编辑。

   3、插入模式切换至正常模式

    从插入模式切换到正常模式,直接按 Esc 退出键即可。

   4、正常模式切换至底行模式

    从正常模式切换到底行模式,需要我们按 Shift + : 组合键方可进入底行模式,注意:从插入模式是不可以直接进入底行模式,需要先退出插入模式,从插入模式进入底行模式。

   5、退出Vim编辑器

    退出Vim编辑器是从底行模式下退出的,看到有(:),在冒号后面输入相对应的字母即可退出。

q:  输入 q 是直接退出,是不会保存刚才所编辑的内容。

wq:是先进行保存,然后再退出。

q! :是强制退出。

    我们常用是wq 的方式进行退出,不然我们编辑的东西会不存在。

    注意:以上命令都是在英文输入的情况下方可执行,在中文输入的情况下,是不执行命令的。

三、Vim正常模式命令集

   1、移动光标

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、 「l」,分别控制光标左、下、上、右移一格;
  • 按「G」:移动到文档的最后;
  • 按「 $ 」:移动到光标所在行的“行尾”;
  • 按「^」:移动到光标所在行的“行首”;
  • 按「w」:光标跳到下个字的开头;
  • 按「e」:光标跳到下个字的字尾;
  • 按「b」:光标回到上个字的开头;
  • 按[gg]:进入到文档开始;
  • 按[shift+g]:进入文档末端;
  • 按[n + shift+g]:将光标定位到指定的n行;
  • 按[shift+~]:将光标所在的字母进行大小写转换;
  • 按「ctrl」+「b」:屏幕往“后”移动一页;
  • 按「ctrl」+「f」:屏幕往“前”移动一页;
  • 按「ctrl」+「u」:屏幕往“后”移动半页;
  • 按「ctrl」+「d」:屏幕往“前”移动半页.

   2、删除文字

  • 按「x」:每按一次,删除光标所在位置的一个字符;
  • 按「n + x」:表示删除光标所在位置的“后面(包含自己在内)”6个字符;
  • 按「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符;
  • 按「n + X」:表示删除光标所在位置的“前面”20个字符;
  • 按「dd」:删除光标所在行;
  • 按「n + dd」:从光标所在行开始删除n行.

   3、复制

  • 按「yy」:复制光标所在行到缓冲区;
  • 按「n + yy」:表示拷贝从光标所在的该行“往下数”6行文字;
  • 按「p」:将缓冲区内的字符贴到光标所在位置;注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。

   4、替换

  • 按「r」:替换光标所在处的字符;
  • 按「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

   5、撤销

  • 按「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次恢复。
  • 「ctrl + r」: 撤销的恢复。

四、Vim底行模式命令集

   1、列出行号

set nu :输入命令之后,敲回车键,代码的每一行前面就会显示行号。

 此时没有行号。

就完成了行号的添加。

   2、光标跳转

在底行模式下,输入一个数字n,按回车,光标就会来到第 n 行。

 

   3、查找字符

 在底行模式下,输入 [?+ 你想要寻找的字符] 。

   4、替换字符

在底行模式下,输入[%s/xxx/xxx/g],就可以完成替换。比如 %s/hello/HELLO/g ,就完成了替换。

 

 


 

本文要是有不足的地方,欢迎大家在下面评论,我会在第一时间更正。

 

 老铁们,记着点赞加关注!!! 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC:常用参数(注解)的使用和参数绑定的验证

Spring MVC:常用参数(注解)的使用和参数绑定的验证 一、学习资源二、基础源码三、实验结果3.1 Spring MVC常用参数Controller和RequestMappingRequestMappingRequestParamPathVariableCookie ValueRequestHeader 3.2 Spring MVC参数绑定3.2.1…

JavaScript实现贪吃蛇小游戏(网页单机版)

文章目录 项目地址项目介绍游戏开始游戏暂停游戏模式游戏死亡重新开始 结尾 今天使用 JavaScript 实现了一个网页版的贪吃蛇小游戏。 项目地址 Github: https://github.com/herenpeng/snakeGitee: https://gitee.com/herenpeng/snake线上体验:https://herenpeng.g…

在线未注册域名批量查询-域名注册批量查询

域名批量注册查询 域名批量注册查询是一种工具,可以帮助用户批量查询并注册多个域名。这种工具通常被域名管理者、品牌专家、互联网营销人员等使用。 以下是域名批量注册查询工具的优点: 提高效率:与手动单独注册域名相比,域名批…

计算机网络实验(ensp)-实验1:初识eNSP仿真软件

目录 实验报告: 实验操作 1.建立网络拓扑图并开启设备 2.配置路由器 1.输入命名:sys 从用户视图切换到系统视图 2.输入命名:sysname 姓名 修改路由器名字 3.输入命名:interface g0/0/0 进入端口视图g0…

如何学习web前端开发?这样学前端事半功倍,能救一个是一个!

非常理解想要自学前端的伙伴,因为好程序员的学员一开始也是自学插画的,很多同学,自学到最后真的非常枯燥乏味,且走了很多弯路。小源想着能帮一把是一把的原则,这两天整理了一份前端的高效学习路线,想学web前…

Redis 学习笔记

一、简介 1、纯内存操作(理解成容量就是内容条) 2、作为缓存使用(因为内存条操作,比磁盘速度快) 二、 常见命令 类型命令string set、get、mset、mget、setrange、getrange、 incr、decr、incrby、decrby、incrbyfl…

基于Python3的tkinter Text文本框加滚动条显示信息

用tkinter进行界面程序开发中,经常需要将信息展示到界面上,给用户及时的反馈和想要看到的结果。Text控件允许用户以不同的样式、属性来显示和编辑文本,它可以包含纯文本或者格式化文本,同时支持嵌入图片、显示超链接以及带有 CSS …

【纳什博弈、ADMM】基于纳什博弈和交替方向乘子法的多微网主体能源共享研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Spring 注解之@RestController与@Controller的区别

目录 1:介绍 2:区别 3:总体来说 4:社区地址 1:介绍 RestController 和 Controller 是 Spring MVC 中常用的两个注解,它们都可以用于定义一个控制器类。 2:区别 返回值类型不同:…

使用插件快速生成代码

使用插件快速生成代码 咋们常说,授人以鱼不如授人以渔,在这里给大家提供一些技巧性的东西,方便一些新手同学可以快速上手,同时,也提高我们的开发兴趣与开发热情! 主要讲什么呢,我们来学一学如何…

让AI来告诉你什么叫幽灵堵车

使用环境参考 CocosCreator v3.7.2 ChatGPT 正文 什么是幽灵堵车 堵车,大家都不陌生! 堵车时我就思维发散,用 CocosCreator 模拟下堵车应该挺好玩,网上总说高速上最前面如果有个龟速的车,后面能堵车堵个两三公里。…

文本三剑客之sed

sed 一.概念 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储一个命令文本文件中。二.工作流程 读取: sed从输入…

【论文阅读】MINOTAUR: Multi-task Video Grounding From Multimodal Queries

背景动机 细粒度的视频理解已经成为增强现实(AR)和机器人应用开发的关键能力。为了达到这种级别的视频理解,智能体(例如虚拟助手)必须具备识别和推理视频中捕获的事件和对象的能力,处理一系列视觉任务,如活动检测、对象检索和(空间)时间基础…

ChatGPT教程(终极版)

纯小白关于ChatGPT入门,你看我这篇文章就够了。 如果你已经用上了ChatGPT,更要恭喜你挖到宝藏,后面的高级技巧一定能让你有收获。 文章包含以下内容: 一、ChatGPT是啥?有什么用; 二、ChatGPT如何注册&…

jetson nx 用windows远程连接

VNC Viewer远程连接 一、jetson nx配置vnc 1、安装客户端 sudo apt-get install xrdp vnc4server xbase-clients2、进入nano/nx桌面,打开“Setting–>Desktop sharing”,没反应,据说是bug,我试过nano和nx都一样。首先输入下…

【c语言】组件化打包—静态库

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c语言系列专栏&#xff1a;c语言之路重点知识整合 &#x…

IoT -- 解读物联网四层架构

本文以物联网四层架构为基础&#xff0c;从物联网产品设计的角度来解读每层架构的功能以及主要内容&#xff0c;旨在为物联网产品设计以及实现思路感兴趣的物联网产品或研发人员有些帮助。 通过互联网&#xff0c;人和人之间可以传递和交流信息。物联网&#xff0c;IoT&#x…

网络安全:Hydra 端口爆破工具.(九头蛇)

网络安全&#xff1a;Hydra 端口爆破工具.&#xff08;九头蛇&#xff09; Hydra 也叫九头蛇&#xff0c;是一款开源的暴力PJ工具&#xff0c;集成在kali当中。可以对多种服务的账号和密码进行爆破&#xff0c;包括 Web 登录、数据库、SSH、FTP 等服务. 目录&#xff1a; 网络…

调用api实现ChatGPT接口余额查询

在ChatGPT官网可以查询接口使用额度&#xff0c;但是官方并没有提供相应的API给开发者调用。我们可以通过破解的方式找到它的API。方法如下&#xff1a; 1. 使用Chrome浏览器打开https://platform.openai.com/account/usage 2. 打开开发者工具&#xff0c;然后刷新网页&#xf…

我让gpt写了一段正则表达式代码,可是运行报错,可以帮忙看看哪里出了问题?...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 忽闻海上有仙山&#xff0c;山在虚无缥缈间。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python最强王者群【HZL】问了一个Python正则表达式的问…