当前位置: 首页 > news >正文

三分钟学会用Vim

Vim知识点

目录

  • Vim知识点
    • 一:什么是vim
    • 二:vim常用的三种模式
    • 三:vim的基本操作

一:什么是vim

vim最小集

vim是一款多模式的编辑器—各种模式—每种模式的用法有差别—每种模式之间可以互相切换

但是我们最常用的就是3~5个模式

vim就是一个单纯的编辑器

注意事项:

1.如果你知道自己目前所处的是什么模式,直接无脑ESC

2.退出的时候,一般先保存后退出

3.vim操作,不要用鼠标

要进入vim我们直接vim 文件名,如下图:

在这里插入图片描述

二:vim常用的三种模式

在这里插入图片描述

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

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

插入模式(Insert mode)

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

末行模式/底行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。

在命令模式下,shift+: 即可进入该模式。

要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

我这里一共有12种模式:six BASIC modes和six ADDITIONAL modes

三:vim的基本操作

我们先来说一下如何调出行号,在底行模式下,输入set nu就可以调出行号,输入set nonu就可以关闭行号。

但是大多数的指令都是在命令模式下操作的,不是底行也不是插入。

接下来我们看看vim的一些基本指令:

首先我们Linux并没有完全兼容小键盘,虽然可以使用小键盘上的上下左右按键,但是我们不建议这么使用,我们在Linux里面有专属的上下左右:hjkl

h:左,因为它是四个字母里面最左边的

l:右,因为它是四个字母里面最右边的

j:下,可以理解为jump,向下跳

k:上,可以理解为king,高高在上

yy/nyy:复制当前行或者复制当前行在内的指定若干行。

p/np:粘贴一行或者多行的内容到当前光标所在行的下一行

未复制前:

在这里插入图片描述

我们对第一行yy操作,复制第一行,然后光标放在最后一行,然后p操作。如下图:

在这里插入图片描述

我们这次输入7yy,然后光标移动到最后一行:

在这里插入图片描述

然后我们p操作:

在这里插入图片描述

我们就将这7行复制到了光标所在行的下一行。

如果我们7p,就是将所复制的7行复制到光标所在的下一行然后复制7份。如下图:

在这里插入图片描述

u:撤销上一次的操作,比如上图我们复制的,按u就可以撤销,如下图:

未按u之前的代码:

在这里插入图片描述

按u之后:

在这里插入图片描述

ctrl +r:对刚才的撤销进行撤销

我们在上面按完u之后在按ctrl+r,如下图:

在这里插入图片描述

所以u和ctrl+r是一对反操作,两者对立。

dd/ndd:对当前行,或者当前行在内的n行的内容进行剪切

如果只进行dd/ndd就是删除

没有dd操作之前的代码如下:

在这里插入图片描述

我们按dd,剪切了光标所在行:

在这里插入图片描述

如果是多行的话一样的操作就不过多演示。

shift g:将光标定位到文档最结尾

我们说了vim操作不用鼠标,那么一定我们代码很多行的话要找到结尾就单单靠j按键是非常不方便的,我们这里就引入了shift g指令:

我们现在光标位于第一行,如下图

在这里插入图片描述

然后我们进行shift g操作,直接定位到最后一行了,如下图:

在这里插入图片描述

gg:将光标定位到文档最开始

n shfit g:将光标定位到文档的指定行

shift 4:将光标定位到文档行的结尾

就是将光标定位到当前光标所在行的结尾:

我们现在光标位于第5行的开头位置,如下图:

在这里插入图片描述

然后我们shift 4,效果如下图:

在这里插入图片描述

shift 6:将光标定位到文档行的最开始

n w,n b:按照单词为单位,进行前后移动,w向后,b向前

shift ~:快速大小写切换

在这里插入图片描述

在这里插入图片描述

n r:替换光标所在的字符

先输入n r,然后输入要替换的字符

在这里插入图片描述

n x(小写x):行内删除,左侧->右侧

n X:行内删除,右侧->左侧

在这里插入图片描述

相关文章:

三分钟学会用Vim

Vim知识点 目录Vim知识点一:什么是vim二:vim常用的三种模式三:vim的基本操作一:什么是vim vim最小集 vim是一款多模式的编辑器—各种模式—每种模式的用法有差别—每种模式之间可以互相切换 但是我们最常用的就是3~5个模式 vi…...

编译链接实战(8)认识elf文件格式

🎀 关于博主👇🏻👇🏻👇🏻 🥇 作者简介: 热衷于知识探索和分享的技术博主。 💂 csdn主页::【奇妙之二进制】 ✍️ 微信公众号:【Linux …...

新手小白如何入门黑客技术?

你是否对黑客技术感兴趣呢?感觉成为黑客是一件很酷的事。那么作为新手小白,我们该如何入门黑客技术,黑客技术又是学什么呢? 其实不管你想在哪个新的领域里有所收获,你需要考虑以下几个问题: 首先&#xff…...

【java】Spring Boot --深入SpringBoot注解原理及使用

步骤一 首先,先看SpringBoot的主配置类: SpringBootApplication public class StartEurekaApplication {public static void main(String[] args){SpringApplication.run(StartEurekaApplication.class, args);} }步骤二 点进SpringBootApplication来…...

一文掌握如何对项目进行诊断?【步骤方法和工具】

作为项目经理和PMO,面对错综复杂的项目,需要对组织的项目运作情况进行精确的分析和诊断,找出组织项目管理中和项目运行中存在的问题和潜在隐患,分析其原因,预防风险,并且形成科学合理的决策建议和解决方案&…...

系统分析师真题2020试卷相关概念二

结构化设计相关内容: 结构化设计是一种面向数据流的系统设计方法,它以数据流图和数据字典等文档为基础。数据流图从数据传递和加工的角度,以图形化方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模…...

<<Java开发环境配置>>5-MySQL安装教程(绿色版)

一.MySQL绿色版安装: 1.直接解压下载的ZIP文件到对应的目录下(切记安装目录不要有中文); 如图:我的安装目录:D:Program Files 2.创建配置文件: 在MySQL安装目录下,创建一个my.ini配置文件,然后在里面添加以下内容(别忘了MySQL安装目录要改成…...

空间复杂度与时间复杂度

1、时间复杂度和空间复杂度 (1)时间复杂度、空间复杂度是什么? 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,空间效率被称作空间复杂度时间复杂度主要衡量的是一…...

javaEE 初阶 — 延迟应答与捎带应答

文章目录1. 延迟应答2. 捎带应答TCP 工作机制:确认应答机制 超时重传机制 连接管理机制 滑动窗口 流量控制与拥塞控制 1. 延迟应答 延时应答 也是提升效率的机制,也是在滑动窗口基础上搞点事情。 滑动窗口的关键是让窗口大小大一点,传输…...

Twitter账号老被封?一文教会你怎么养号

昨天龙哥给大家科普完要怎么批量注册Twitter账号,立刻有朋友来私信龙哥说里面提到的这个养号和防关联具体是个怎么样的做法。由于Twitter检测机制还是比较敏感的,账号很容易被冻结,所以养号是非常重要的步骤。其实要养好Twitter账号其实并不难…...

当遇到国外客户的问题,你解决不了的时候怎么办

对我来说,今年的这个春节假期有点长,差不多休了一个月。复工之后,截止目前做到了60万RMB的业绩,但是相较于往年,整体状态还是差了些。往年的春节,我都是随时待命的状态,整个春节天天坐于电脑前&…...

算法刷题打卡第93天: 最大的以 1 为边界的正方形

最大的以 1 为边界的正方形 难度:中等 给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。 示例 1: 输入&#xff1a…...

python语言基础(最详细版)

文章目录一、程序的格式框架缩进1、定义2、这里就简单的举几个例子注释二、语法元素的名称三、数据类型四、数值运算符五、关系运算六、逻辑运算七、运算符的结合性八、字符串一、程序的格式框架 缩进 1、定义 (1)python中通常用缩进来表示代码包含和…...

Java小技能:字符串

文章目录 引言I 预备知识1.1 Object类1.2 重写的规则1.3 hashCode方法II String2.1 String的特性2.2 字符串和正则2.3 StringBuilder,StringBuffer引言 String,StringBuffer,StringBuilder,char[],用来表示字符串。 ​ I 预备知识 1.1 Object类 是所有类的根类 toString…...

2023美赛D题:可持续发展目标

以下内容全部来自人工翻译,仅供参考。 文章目录背景要求术语表文献服务背景 联合国制定了17个可持续发展目标(SDGs)。实现这些目标最终将改善世界上许多人的生活。这些目标并不相互独立,因此,一些目标的积极进展常常…...

openwrt开发板与ubuntu nfs挂载

1.ubuntu需要安装nfs服务 sudo apt-get install nfs-common nfs-kernel-server2.修改 /etc/exports文件: /home/test *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) 前面是挂载的目录,后边是相应权限 rw:读写 insecure&am…...

【Redis】Redis持久化之AOF详解(Redis专栏启动)

📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建工设优化。文章内容兼具广度深度、大厂技术方案,对待技术喜欢推理加验证,就职于知名金融公…...

Git小乌龟每次推送拉取都弹窗和用户名密码报错(解决办法)

目录 一、小乌龟推送代码到云端用户名和密码报错 (一) 遇到问题 (二)解决办法 二、小乌龟每次推送拉取都要输入账号和密码 (一)遇到问题 (二)解决办法 一、小乌龟推送代码到云…...

emacs 使用集锦

emacs 使用集锦 声明, 主要在c/c环境中使用! ---------------------------------------- 1. emacs 中 TAGS 位置设置 ---------------------------------------- a)临时使用方式: M-x visit-tags-table b)启动Emacs时自动加载方式&#xff…...

蓝牙 - 如何实现安全性

蓝牙技术在加密上做了很多工作,来保证你的数据安全。 这些年来,我们的许多电子设备都转向了使用无线技术进行连接。我们的鼠标、键盘、耳机和扬声器上不再有长长的纠缠的电线,而使用了简单方便的无线技术,科技进步改善了我们的生活…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...