首页 > 其他分享 >vim学习笔记——三种基本模式和相关操作

vim学习笔记——三种基本模式和相关操作

时间:2024-07-02 13:09:14浏览次数:19  
标签:字符 删除 所在 模式 vim 基本模式 笔记 移动 光标

vim的三种模式

一般模式

以vim打开一个文件就直接进入一般模式了。在这个模式中,你可以使用hjkl按键移动光标,也可以使用删除字符或删除整行来处理文件内容,也可以使用复制粘贴处理文件内容。

编辑模式

在一般模式中按下A,a,I,i,O,o,R,r任何一个按键,就可以进入编辑模式,在界面左下方会出现INSERT或REPLACE字样,此时可以对文本进行编辑。
如果要回到一般模式,需要按下ESC键。

命令模式

在一般模式中输入;,/,?任何一个符号,就可以将光标移到最下边一行。可以实现查找数据、读取、保存、批量替换字符、推出vi、显示行号等操作。

注:一般模式可分别与编辑模式和命令模式进行切换,但编辑模式和命令模式之间无法相互切换。

按键说明

一般模式可用的按键说明,光标移动,复制粘贴,查找替换等

移动光标的方法
h 光标向左移动一个字符
j 光标向下移动一个字符
k 光标向上移动一个字符
l 光标向右移动一个字符
ctrl+f 屏幕向下移动一页,相当于Page Down按键
ctrl+b 屏幕向上移动一页,相当于Page Up按键
ctrl+d 屏幕向下移动半页
ctrl+u 屏幕向上移动半页
+ 光标移动到非空格符的下一行
- 光标移动到非空格符的上一行
n+space 按下数字后再按空格键,光标会向右移动n个字符
0 数字0,光标移动到本行第一个字符处
$ 光标移动到本行最后一个字符处
H 光标移动到屏幕显示的最上方一行第一个字符处
M 光标移动到屏幕显示的中间一行第一个字符处
L 光标移动到屏幕显示的最下方一行第一个字符处
G 光标移动到文件的最后一行
nG n为数字,光标移动到文件的第n行
gg 光标移动到文件的第一行,相当于1G
n+enter 光标向下移动n行
查找与替换
/word 向光标之后的内容查找名为word的字符串
?word 向光标之前的内容查找名为word的字符串
n n为字母,重复前一个查找的操作
N 与n相反,反向进行前一个查找的操作
:n1,n2s/word1/word2/g n1、n2为行编号,在n1行和n2行之间寻找名为word1的字符串,并将该字符串替换为word2
:1,$s/word1/word2/g 在第1行和最后1行之间寻找名为word1的字符串,并将该字符串替换为word2
:1,$s/word1/word2/gc 在第1行和最后1行之间寻找名为word1的字符串,并将该字符串替换为word2,并在每次替换之前显示提示字符,等待用户确认
删除、复制与粘贴
x与X 在一行当中,x为向后删除一个字符(相当于del按键),X为向前删除一个字符(相当于backspace按键)
nx n为数字,连续向后删除n个字符
dd 删除(剪切)光标所在的一整行
ndd n为数字,删除(剪切)光标所在的行至向下第n行的字符
d1G 删除(剪切)光标所在行至第1行的所有字符
dG 删除(剪切)光标所在行至最后1行的所有字符
d$ 删除(剪切)光标所在处到该行最后一个字符
d0 删除(剪切)光标所在处到该行第一个字符
yy 复制光标所在行的所有字符
nyy n为数字,复制光标所在的行至向下第n行的字符
y1G 复制光标所在行至第1行的所有字符
yG 复制光标所在行至最后一行的所有字符
y0 复制光标所在处至该行第一个字符
y$ 复制光标所在处至该行最后一个字符
p与P p为把已复制的字符粘贴在光标下一行,P则为粘贴在光标上一行
c 删除字符并进入编辑模式
u 撤销前一个操作
ctrl+r 反向撤销前一个操作
. 重复前一个操作,如果想重复删除,重复粘贴,可以使用此英文句号

一般模式切换到编辑模式可用的按键说明

进入插入或替换的编辑模式
i与I i为从目前光标所在处插入,I为从光标所在行的第一个非空格符处开始插入
a与A a为从目前光标所在的下一个字符处开始插入,A为从光标所在行的最后一个字符处开始插入
o与O o为从目前光标所在的下一行插入新的一行,O为从目前光标所在的上一行插入新的一行
r与R r与R可以进入替换模式。r只会替换光标所在处一个字符,R会一直替换后续字符,直到按下Esc键为止
Esc 退出编辑模式,回到一般模式中

一般模式切换到命令模式可用的按键说明

命令模式的保存、退出等命令
:w 将编辑的数据写入硬盘文件中
:w! 若文件属性为只读时,强制写入该文件。不过到底能不能写入,还是跟用户对该文件的权限有关
:q 退出vim
:q! 强制退出vim不保存修改
:wq 保存文件并退出
ZZ 若文件没有修改,则不保存退出;若文件已经被修改,则保存并退出
:w [filename] 将正在编辑的文件保存成另一个文件,类似另存为
:r [filename] 读入另外一个文件的数据,亦即将[filename]这个文件的内容追加到光标所在行的后边
:n1,n2 w [filename] n1、n2为行编号,将n1到n2的内容保存为filename这个文件
:! command 暂时退出vim到命令行模式下执行command的显示结果
:set nu 显示行号
:set nonu 取消显示行号

标签:字符,删除,所在,模式,vim,基本模式,笔记,移动,光标
From: https://www.cnblogs.com/galaxcyan/p/18276854

相关文章

  • NAML论文阅读笔记
    NeuralNewsRecommendationwithAttentiveMulti-ViewLearning论文阅读笔记这篇也是比较老但是比较经典的文章,来读一下Abstract​ 现有的新闻推荐方法通常基于单一的新闻信息(如标题)来学习这些表征,这可能是不够的。在本文中,我们提出了一种神经新闻推荐方法,它可以通过利用不......
  • HCIA学习笔记(5)-OSPF+vlan
    OSPF:开放式最短路径优先协议无类别链路状态IGP动态路由协议距离矢量协议:运行距离矢量型协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器上学习到路由,并且加载进自己的路由表中,对于网络中的所有路由器而言,并不清楚网络的拓扑结构,只是简单的知......
  • Redis Stream 作为消息队列的详尽笔记
    概述RedisStream是Redis5.0版本引入的数据结构,用于消息传递。基础概念结构:消息链表,每个消息有唯一ID和内容。命名:每个Stream有唯一名称,对应RedisKey。消费组(ConsumerGroup):可挂载多个消费组,需手动创建。每个组有游标last_delivered_id,记录消费进度。消费......
  • 自动化(爬虫)工具 DrissionPage SessionPage模式 API介绍 使用笔记(三)
    自动化(爬虫)工具DrissionPageSessionPage模式API介绍使用笔记(三)目录启动驱动启动配置常用方法(API)启动最简单的启动方式,更多启动方式见这里fromDrissionPageimportSessionPage#session_or_options:Session对象或SessionOptions对象#timeout:超时时间(秒)o......
  • Mpmath库-学习笔记
    目录1.Introduction1.2Basicusageofmpmath1.3输出格式化1.4输出的小数点位数2.BASICFEATURES2.1Arbitrary-precisionfloating-point(mp)2.2Arbitrary-precisionintervalarithmetic(iv)2.3Double-precisionarithmeticusingPython’sbuiltinfloatandcomple......
  • python学习笔记 | 自动化测试指南
    1、测试工具的使用1.1、selenium......
  • Godot游戏学习笔记(二)
    Godot学习笔记(二)前言今天这部分是想做一个基本的背包系统,既可以存放基本的物品。一、个人思路我认为的背包系统中主要有三项基本的物品、用于存放物品的单位和背包页面这三个部分,其中第二个部分用于存放物品的单位可以不用单独构建,但是构建了会更方便管理,所以我加上了第......
  • vue学习笔记5
    1.组件组成一个.vue文件是一个单文件组件(SFC)。<template><divclass="container">{{message}}</div></template><script>exportdefault{data(){return{message:"组件的组成"......
  • 编译原理期末复习笔记
    本笔记关于编译器的阶段只包含了词法分析、语法分析、语义分析和中间代码生成,如果发现笔记有错误的地方欢迎大家给我指正。文章目录1.介绍1.1什么是编译器(Compiler)1.2编译器vs.解释器(Interpreter)1.3预处理器(Preprocessor)1.4符号表(SymbolTable)1.5其他2.......
  • DApp设计与开发 课程笔记(四):NFT交易市场合约
    笔记对应课程内容为成都信息工程大学区块链产业学院老师梁培利的DApp设计与开发10-13课笔记中提到的名词不做过多解释不懂就搜!开发准备:编辑IDE环境:Vscode+Hardhat调试:RemixERC标准智能合约生成巫师:https://docs.openzeppelin.com/contracts/5.x/wizard动手学Windo......