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.rhkb.cn/news/151200.html

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

相关文章

前端—— 分层模型和应用协议

1 分层模型 MAC地址 可以认为计算机专属,可以认为每台计算机的 MAC地址 固定不变; IP地址 可以认为是计算机当前的【家庭地址】,动态唯一,家庭地址变化,IP地址 也跟着变化; 举个例子,A 给 B 发…

踩坑日记 uniapp 底部 tabber遮挡住购物车结算

tabbar 被购物车结算遮挡 在小程序上tabbar没有将固定栏遮挡,如果直接调高,浏览器H5页面是对了,但在小程序上面离底部的定位就太高了 原代码 // 底部结算样式.shop-foot {border-top: 2rpx solid #F7F7F7;background-color: #FFF;position: …

通过IP地址如何计算相关地址

以IP地址为1921681005 子网掩码是2552552550为例。算出网络地址、广播地址、地址范围、主机数。 分步骤计算 1) 将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址。 虚线前为网络地址,虚线后为主机…

【Pod】

Pod 一、Pod基本概念二、Pod的使用方式pause容器(pod的基础容器)核心功能pause容器使得Pod中所有容器可以共享两种资源:网络和存储网络存储 三、Pod分类自主式Pod/静态pod控制器管理的Pod 四、三种容器五、镜像拉取策略(image Pul…

阿里面试:页面调10 个上游接口,如何做高并发?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易的面试资格,遇到很多很重要的面试题: 一个页面要调100 个上游接口,如何优化? 一个场景…

AI工程化—— 如何让AI在企业多快好省的落地?

作为计算机科学的一个重要领域,机器学习也是目前人工智能领域非常活跃的分支之一。机器学习通过分析海量数据、总结规律,帮助人们解决众多实际问题。随着机器学习技术的发展,越来越多的企业将机器学习技术作为核心竞争力,并运用在…

python读取vivo手机截图,将满屏图片文件移动别的路径

问题之初 python读取vivo手机截图, 将满屏图片文件移动别的路径好多这样的图片,占用手机大量的内存,食之无味弃之可惜!那么会复制粘贴👀代码的我们我们今天就把这些图片筛选清理掉。 这段代码 原有逻辑的基础上&…

智能井盖传感器:城市安全卫士

随着城市人口的不断增加和城市基础设施的不断发展,井盖作为城市道路和排水系统的重要组成部分,承担着确保城市安全和便利性的关键角色。然而,井盖在日常使用中常常面临倾斜、水浸和翻转等问题,这些问题可能导致交通阻塞、行人坠井…

边坡安全监测系统的功能优势

随着科技的进步,边坡安全监测系统在各种工程项目中发挥着越来越重要的作用。这款系统通过实时监测垂直、水平位移数据,以折线图的方式显示在监控平台中,为工程人员提供了直观、便捷的监控工具,从而能够及时掌握边坡稳定状况&#…

Altium Designer培训 | 4 - 原理图创建篇

元件的放置 器件的复制及对齐 导线及NetLabel的添加 Value值的核对 封装的统一管理 原理图的编译设置及检查

tomcat安装,创建web后端项目,部署项目过程

1,安装服务器,使用 Apache免费提供的服务器TomCat,注意JDK版本。 TomCat官方站点 文件解压目录。 启动服务器:bin目录下点击startup.bat,出现小黑框,浏览器默认访问http://127.0.0.1:8080/ 关闭服务器&…

正点原子嵌入式linux驱动开发——Linux内核顶层Makefile详解

之前的几篇学习笔记重点讲解了如何移植uboot到STM32MP157开发板上,从本章就开始学习如何移植Linux内核。 同uboot一样,在具体移植之前,先来学习一下Linux内核的顶层Makefile文件,因为顶层 Makefile控制着Linux内核的编译流程。 L…

提取歌曲伴奏?用对软件一键帮你搞定~

相信大家经常想获取某首歌曲的伴奏,但是不知从何下手,今天这篇教程给大家分享一个超神奇软件,一键提取歌曲伴奏! 第一步:打开【音分轨】APP,进入首页点击【人声分离】 第二步:选择导入方式&…

C++ -- 学习系列 关联式容器 set 与 map

一 关联式容器是什么? c 中有两种容器类型:关联式容器与序列式容器(顺序容器) 关联式中的容器是按照关键字来存储与访问的,序列式容器(顺序容器)则是元素在容器中的相对位置来存储与访问的。…

开发过程教学——交友小程序

交友小程序 1. 我的基本信息2. 我的人脉2.1 我的关注2.2 我的粉丝 3. 我的视频4. 我的相册 特别注意:由于小程序分包限制2M以内,所以要注意图片和视频的处理。 1. 我的基本信息 数据库表: 我的基本信息我的登录退出记录我的登录状态&#x…

运营商sdwan优缺点及sdwan服务商优势

SD-WAN(软件定义广域网)作为一种重要的网络解决方案,已经受到了广泛的关注和采用。然而, 无论是由传统运营商提供的SD-WAN还是专门的SD-WAN服务提供商,都存在各自的优缺点。 运营商提供的SD-WAN的缺点: 1. 有限的灵活性&#xf…

Kubernetes概述架构与工作流程简述

文章目录 Kubernetes概述Kubernetes优势Kubernetes 集群组件控制平面组件Node 组件 Kubernetes工作流程下期预告 Kubernetes概述 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥…

如何提升爬虫IP使用效率?精打细算的方法分享

在进行爬虫数据采集时,爬虫IP是不可或缺的工具。然而,爬虫IP的费用可能是一个爬虫项目的重要开支之一。为了帮助您节省爬虫IP经费,本文将分享一些经济高效的方法,让您在使用爬虫IP时更加节约成本,提高经济效益。 一、优…

gitlab登录出现的Invalid login or password问题

前提 我是在一个项目里创建的gitlab账号,想在别的项目里登录或者官网登录发现怎么都登陆不上 原因 在GitLab中,有两种不同的账号类型:项目账号和个人账号(官网账号)。 项目账号:项目账号是在特定GitLab…

ubuntu 设置x11vnc服务

Ubuntu 18.04 设置x11vnc服务 自带的vino-server也可以用但是不好用,在ubuntu论坛上看见推荐的x11vnc(ubuntu关于vnc的帮助页面),使用设置一下,结果发现有一些坑需要填,所以写下来方便下次使用 转载请说明…