当前位置:网站首页>Vim三种模式
Vim三种模式
2022-08-01 06:38:00 【The code family】
一、命令模式
注意:该模式是打开文件的第一个看到的模式(打开文件即可进入)
1、光标移动
① 光标移动到行首
按键:shift +6或者^ (T 字母上面的6,不要按小键盘的6)
② 光标移动到行尾
按键: shift +4或者$ (R字母上面的4,不要按小键盘的4)
③ 光标移动到首行
按键:gg
④ 光标移动到末行
按键:G
⑤ 翻屏
向上翻屏:按键 ctrl +b(before)或者PgUp
向下翻屏:按键 ctrl +f(after)或者PgDn
2、复制操作
① 复制光标所在行
按键:yy
粘贴:在想要粘贴的地方按下p 键
② 以光标所在行为准(包含当前行),向下复制指定的行数
按键:数字 yy
③ 可视化复制
按键:ctrl +v 然后按下↑ ↓ ← →方向键来选中需要复制的区块,按下yy键进行复制,最后按下p键进行粘贴
退出可视化:按键 按俩下Esc
3、剪切/删除
① 剪切/删除光标所在行
按键:dd (删除之后下一行上移)
注意:dd 严格意义上说是剪切命令,但是如果用了剪切不黏贴就是删除的效果
② 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行
按键:数字 dd (删除之后下一行上移)
③ 剪切/删除光标所在的当前行,但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白行)
4、撤销/恢复
撤销 按键:输入 :u(不属于命令模式) 或者 u(undo)(属于命令模式)
恢复:ctrl +r 恢复(取消)之前撤销的操作
5、扩展1:光标的快速移动
①快速将光标移动到指定的行数
按键:数字 G
②以当前光标为准向上/向下移动n行
按键:数字 ↑,数字↓
③以当前光标为准向左/向右移动n字符
按键:数字←,数字→
④末行模式下的快速移动方式:移动到指定的行
按键:输入英文“:”,其后输入行数数字,按下回车
二、模式间的切换(重点)

三、末行模式
进入方式:由命令模式进入,按下 “:”或者“/ (表示查找)”即可进入
退出方式:
a. 按下esc
b. 连按2次esc键
c. 删除末行全部输入字符
1、保存操作 (write)
输入:“:w” 保存文件
输入:“:w 路径” 另存为
2、退出(quit)
输入:“q” 退出文件
3、保存并退出
输入:“:wq” 保存并退出文件
4、强制(!)
输入:“:q!” 表示强制退出,刚才做的修改操作不做保存
5、调用外部命令(了解)
输入:“:!外部命令”
例如

当外部命令执行结束之后按下任意键回到vim编辑器打开的内容
![]()
6、搜索/查找
输入“/ 关键词”
例如:我想在passwd 文件中搜索"sbin" 关键词
在搜索结果中切换上/下 一个结果:N/n (next)
如果需要取消高亮则需要输入:“nohl”(no highlight)
7、替换 (string replace)
①:s/搜索的关键词/新的内容 (替换光标所在行的第一处符合条件的内容)
②:s/搜索的关键词/新的内容/g (替换光标所在行的全部符合条件的内容)
③:%s/搜索的关键词/新的内容 (替换整个文档中每行第一个符合条件的内容)
④:%s/搜索的关键词/新的内容/g (替换整个文档符合条件的内容)
%:表示整个文档
g: 表示全局(global)
8、显示行号
输入:“:set nu”(number)
如果想取消,则输入“:set nonu”
9、扩展2:使用vim同时打开多个文件,在末行模式下进行切换文件
查看当前已将打开的文件的名称:“:files”

注意:在%a的位置有2种显示可能
%a:a=active,表示当前正在打开的文件
#:表示上一个打开的文件
切换文件的方式:
a.如果需要指定切换文件的名称,则可以输入:“:open 已经打开的文件名”
例如:“:open password”

b.可以通过其它命令来切换上一个文件/下一个文件
输入:“:bn”切换到下一个文件 (backnext)
输入:“:bp”切换到上一个文件 (backprevious)
四、编辑模式
进入方式:
i: 在光标所在字符前开始插入
a: 在光标所在字符后开始插入
o: 在光标所在行的下面另起一新行插入
I: 在光标所在行的行首开始插入如果行首有空格则在空格之后插入
A: 在光标所在行的行尾开始插入
O: 在光标所在行的上面另起一行开始插入
S: 删除光标所在行并开始插入
重点看前2个进入方式:i(insert)、a(after)
退出方式:
按一下Esc键
边栏推荐
- 微信小程序用户登录auth.code2Session接口开发
- 深度比较两个对象是否相同
- 企业员工人事管理系统(数据库课设)
- 滚动条样式修改
- uva10825
- Explosive 30,000 words, the hardest core丨Mysql knowledge system, complete collection of commands [recommended collection]
- 曲柄滑块机构运动分析和参数优化
- AspNet.WebApi.Owin custom Token request parameters
- 我三本学历,五面阿里,被面试官“供”着出来了,拿了33*15的Offer
- Qt Widget 项目对qml的加载实例
猜你喜欢

WebSocket implements chat function

阿里三面:MQ 消息丢失、重复、积压问题,该如何解决?

太厉害了,终于有人能把文件上传漏洞讲的明明白白了

Win任务栏图标异常解决

Introduction to the basic principles, implementation and problem solving of crawler

mysql的行锁和间隙锁

leetcode43 字符串相乘

「游戏引擎 浅入浅出」4.1 Unity Shader和OpenGL Shader

datagrip 报错 “The specified database userpassword combination is rejected...”的解决方法

first unique character in characters
随机推荐
测试工具(四)Jenkins环境搭建与使用
More than 2022 cattle guest school game 4 yue
爬虫框架 Scrapy 详解
说说js中使用for in遍历数组存在的bug
2022.7.27 Selected lectures on good topics
Win任务栏图标异常解决
uva12326
Practical training Navicat Chinese and English mode switching
crypto-js使用
matlab wind speed model wavelet filtering
阿里三面:MQ 消息丢失、重复、积压问题,该如何解决?
解决浏览器滚动条导致的页面闪烁问题
湖仓一体电商项目(一):项目背景和架构介绍
Datagrip error "The specified database userpassword combination is rejected..."Solutions
Hunan institute of technology in 2022 ACM training sixth week antithesis
声音信号处理基频检测和时频分析
uva10825
从底层结构开始学习FPGA(6)----分布式RAM(DRAM,Distributed RAM)
Seleniu: Common operations on elements
Robot growth in China