Vim教程

目录

vim 介绍

常用的四种模式

首先先学会如何正确进入和退出vim:

normal模式

insert模式:

command模式:

v-block模式:

vim异常退出

vim配置


vim 介绍

Vim是一款高度可定制的文本编辑器,它的前身是Vi,但又在Vi的基础上做了很多改进和增加。Vim是自由软件,在类Unix系统中常被使用。虽然Vim需要一定的学习才能掌握,但其掌握之后可以非常高效地进行文本编辑。

Vim以类似于在普通编辑器中移动光标的方式进行文本编辑,这种编辑方式被称为“命令模式”。除此之外,Vim还提供了“插入模式”和“底行模式”,可以让你在插入文本或在执行命令时更方便地操作。

Vim的另一个特点是其丰富的快捷键和命令,这使得用户可以用极少的按键来完成复杂的编辑操作。例如,用户可以通过在底行模式下输入简单的命令,如“w”,来保存当前编辑的文件。

Vim的学习曲线虽然较为陡峭,但其强大的定制性可以满足用户各种各样的需求。例如,用户可以根据自己的喜好和习惯来设置Vim的各种选项和映射,不仅可以在终端运行,也可以运行于x window、 mac os、windows,Linux CentOS中安装vim:sudo yum install vim

常用的四种模式

Vim模式有很多种,但是最常用的是四种模式:正常模式(normal)、底行模式(command)、编辑模式(insert)、视觉模式(v-block).

首先先学会如何正确进入和退出vim:

vim 文件名 ------ 文件名可以是当前路径下存在的或者是携带路径的文件名,也可以是不存在的文件名(进入编辑后保存则会保存在当前文件夹)
打开文件,需要文件权限,如果没有r权限,则会打开失败,显示空的vim界面
如果没有r权限,打开文件后会有一个小锁的标志,表示只读在这里插入图片描述


正常打开vim后,默认是normal模式,如果要退出,需要转换到command模式(shift + ;)然后输入q,回车 或 q!,回车,强制退出;如需保存并退出,可以输入wq / wq! ,回车。
在这里插入图片描述

normal模式

进入vim的默认模式,其他模式都可以通过Esc键退回到normal模式

通过h、j、k、L(左、下、上、右)或方向键移动光标
在这里插入图片描述
逐个移动太慢的话,可以快速移动光标

  • gg:定位到文本的第一行

  • (n) + G: 定位到文本的最后一行 或 第n行

  • ^:定位到所在行文本的结尾

  • $:定位到所在行文本的开始
    属于正则表达

  • 在这里插入图片描述

  • 0:定位到所在行的最左侧

  • w:以单词为单位,向移动光标,支持跨行

  • b:以单词为单位,向移动光标,支持跨行

移动光标后,如果只是简单的文本操作,不必转到编辑模式:
复制粘贴
(n) + dd:剪切当前行开始的n行文本(如果剪切后不管了,不就是删除呗)
(n) + yy:复制当前行开始的n行文本
(n) + p:粘贴剪切板内容n次
文本修改:
~:文本大小写转化
(n) + r:覆盖光标开始的n个字符,行内操作
(n) + x:删除光标开始的n个字符,行内操作
其他操作:
#:查找同名单词,n同单词跳转
ctrl + r:撤销
u:撤销
以上两个撤销可以互相撤销对方的撤销

insert模式:

文本编辑的主要模式,通过在normal模式中键a/i/o进入
a/i/o

  • a进入:光标向后一格并进入
  • i进入:光标不动并进入
  • o进入:在光标所在行下重新开一行并移动光标到新行进入
    insert模式下,只能通过方向键移动光标或者返回normal模式移动光标

command模式:

  • set nu:显示行号

  • -set nonu:不显示行号

  • /关键字:查找关键字,键入n切换搜索结果

  • !+ Linux中的指令:可以在vim中执行指令并看到返回结果

在这里插入图片描述

  • vs + 其他文件名:同框显示文件,通过ctrl + ww切换文件的光标

在这里插入图片描述

v-block模式:

主要是用该模式来做批量化操作,如多行注释等
通过在normal模式下ctrl + v 进入

多行注释
在这里插入图片描述
在这里插入图片描述

vim异常退出

如果在vim打开文件的过程中,突然断开连接/关机,导致vim异常退出,下次再用vim打开文件的时候,会有提示,ll -a,删除备份文件即可

vim配置

在这里插入图片描述
自动化部署配置:VimForCpp
链接:https://gitee.com/HGtz2222/VimForCpp?_from=gitee_search
目前只支持CentOS 7
在这里插入图片描述
在这里插入图片描述
直接复制这串脚本到linux中去执行即可

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

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

相关文章

弹性资源组件elastic-resource设计(四)-任务管理器和资源消费者规范

简介 弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。 本文介绍弹性资源组件的设计,包括架构设计和详…

VBox启动失败、Genymotion启动失败、Vagrant迁移

VBox启动失败、Genymotion启动失败、Vagrant迁移 2023.10.9 最新版本vbox7.0.10、Genymotion3.5.0 Vbox启动失败 1、查看日志 Error -610 in supR3HardenedMainInitRuntime! (enmWhat4) Failed to locate ‘vcruntime140.dll’ 日志信息查看方法->找到虚拟机所在位置->…

微信小程序wxs标签 在wxml文件中编写JavaScript逻辑

PC端开发 可以在界面中编写JavaScript脚本 vue/react这些框架更是形成了一种常态 因为模板引擎和jsx语法本身就都是在js中的 我们小程序中其实也有类似的奇妙写法 不过先声明 这东西不是很强大 我们可以先写一个案例代码 wxml代码参考 <view><wxs module"wordSt…

十一、2023.10.5.计算机网络(end).11

文章目录 17、说说 TCP 可靠性保证&#xff1f;18、简述 TCP 滑动窗口以及重传机制?19、说说滑动窗口过小怎么办?20、说说如果三次握手时候每次握手信息对方没收到会怎么样&#xff0c;分情况介绍&#xff1f;21、简述 TCP 的 TIME_WAIT&#xff0c;为什么需要有这个状态&…

git命令笔记

git命令笔记 前言&#xff1a;git对于软件开发和协作的重要性不言而喻&#xff0c;在企业开发中&#xff0c;git命令和linux命令的使用同样重要。作为开发者&#xff0c;需要牢记并熟练使用常见的git命令 git工作流程图 命令如下&#xff1a; clone&#xff08;克隆&#xf…

JSP旅游平台管理

本系统采用基于JAVA语言实现、架构模式选择B/S架构&#xff0c;Tomcat7.0及以上作为运行服务器支持&#xff0c;基于JAVA、JSP等主要技术和框架设计&#xff0c;idea作为开发环境&#xff0c;数据库采用MYSQL5.7以上。 开发环境&#xff1a; JDK版本&#xff1a;JDK1.8 服务器&…

基于蝠鲼觅食优化的BP神经网络(分类应用) - 附代码

基于蝠鲼觅食优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于蝠鲼觅食优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.蝠鲼觅食优化BP神经网络3.1 BP神经网络参数设置3.2 蝠鲼觅食算法应用 4.测试结果…

C++11(下)

目录 一、类的新功能1.1 默认成员函数1.2 类成员变量初始化1.3 强制生成默认函数的关键字default1.4 禁止生成默认函数的关键字delete1.5 继承和多态中的final与override关键字 二、可变参数模板三、lambda表达式3.1 C98中的一个例子3.2 lambda表达式3.3 lambda表达式语法3.4 函…

【一周安全资讯1007】多项信息安全国家标准10月1日起实施;GitLab发布紧急安全补丁修复高危漏洞

要闻速览 1.以下信息安全国家标准10月1日起实施 2.GitLab发布紧急安全补丁修复高危漏洞 3.主流显卡全中招&#xff01;GPU.zip侧信道攻击可泄漏敏感数据 4.MOVEit漏洞导致美国900所院校学生信息发生大规模泄露 5.法国太空和国防供应商Exail遭黑客攻击&#xff0c;泄露大量敏感…

2019架构真题2020案例(四十七)

数据存储在中央仓库&#xff0c;处理流程独立&#xff0c;交互性好数据和处理耦合在一起&#xff0c;每次修改需要重启劣势&#xff1a;需要通过连接组件进行连接&#xff0c;性能降低优势&#xff1a;支持并发通过仓库连接组件访问&#xff0c;效率高 (8分)缓存中存储当前的热…

[Machine Learning]pytorch手搓一个神经网络模型

因为之前虽然写过一点点关于pytorch的东西&#xff0c;但是用的还是他太少了。 这次从头开始&#xff0c;尝试着搓出一个神经网络模型 &#xff08;因为没有什么训练数据&#xff0c;所以最后的训练部分使用可能不太好跑起来的代码作为演示&#xff0c;如果有需要自己连上数据…

Discuz!X 3.4任意文件删除漏洞

复现过程&#xff1a; 1.访问http://x.x.x/robots.txt&#xff08;文件存在&#xff09; 2.登录弱口令 账号&#xff1a;admin密码&#xff1a;admin 3.来到个人设置页面找到自己的formhash&#xff1a; 4.点击保存&#xff0c;抓包 来到这个参数&#xff1a;birthprovin…