当前位置: 首页 > 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:行内删除,右侧->左侧

在这里插入图片描述

http://www.lryc.cn/news/9837.html

相关文章:

  • 编译链接实战(8)认识elf文件格式
  • 新手小白如何入门黑客技术?
  • 【java】Spring Boot --深入SpringBoot注解原理及使用
  • 一文掌握如何对项目进行诊断?【步骤方法和工具】
  • 系统分析师真题2020试卷相关概念二
  • <<Java开发环境配置>>5-MySQL安装教程(绿色版)
  • 空间复杂度与时间复杂度
  • javaEE 初阶 — 延迟应答与捎带应答
  • Twitter账号老被封?一文教会你怎么养号
  • 当遇到国外客户的问题,你解决不了的时候怎么办
  • 算法刷题打卡第93天: 最大的以 1 为边界的正方形
  • python语言基础(最详细版)
  • Java小技能:字符串
  • 2023美赛D题:可持续发展目标
  • openwrt开发板与ubuntu nfs挂载
  • 【Redis】Redis持久化之AOF详解(Redis专栏启动)
  • Git小乌龟每次推送拉取都弹窗和用户名密码报错(解决办法)
  • emacs 使用集锦
  • 蓝牙 - 如何实现安全性
  • 深入理解顺序io和随机io(全网最详细篇)
  • 面试准备知识点与总结——(基础篇)
  • Linux共享库,静态库与相关系统调用,工具的使用总结
  • 「JVM 编译优化」javac 编译器源码解读
  • Leetcode DAY 34: K次取反后最大化的数组和 and 加油站 and 分发糖果
  • 2023美赛A题思路
  • 前端上传文件
  • 后台管理系统中选项卡的动态渲染
  • 网络层重点协议之IP协议(IPv4)
  • CentOS Stream 8配置DNS
  • 【roLabelImg】windows下旋转框标注软件安装、使用、rolabelimg打包成exe