Vim的几个高级玩法
文章目录
- vim的几种模式
- 扩展命令模式命令:
- 命令模式高频命令:
- 命令模式进阶命令:
- vim高级玩法
- 小结:
![](/assets/blank.gif)
在Linux中编辑文件的场景非常之多,掌握一些关键命令和技巧。能够大大提高效率,使用体验也顺畅很多。
1976年由Bill Joy完成编写vi,并由BSD发布。从2006年开始,作为“单一UNIX规范”的一部分,vi或vi的一种变形版本一定会在类UNIX系统中找到。
vim是vi的一个变形版本,功能更加强大,体验更好。
vim的几种模式
新手使用vim最麻烦的就是模式,因为经常忘记自己处在何种模式,无意键入某个字符,就切换到其他模式。
vim的模式有以下几种:其中红色部分和命令模式最常使用。
命令模式:启动后的默认模式。其他模式,通过【Esc】和【Ctrl+C】可以退回到该模式
插入模式:此模式下可以编辑。i: 在当前光标开始插入。 o: 进入插入模式,并在光标下一行添加一个新的空行
扩展命令模式: 使用“:” 切换到此模式。
可视模式。在该模式下,可以使用方向键进行内容选择,然后进行复制、粘贴或其他操作。在命令模式下,使用“v”进入可视模式。
v: 进入可视模式,方向键可以选择文本。 x可以剪切,y复制,d删除
当输入了命令以后,VIM 将回到普通模式,这时可以按 p 或 P 进行粘贴。普通模式下有关复制和粘贴的命令:p或P 在当前位置粘贴剪贴板的内容,p 粘在光标所在字符后面,P 粘在前面。
块操作模式:和可视模式功能类似,不在赘述。
编辑模式:和插入模式功能类似,不在赘述。
扩展命令模式命令:
常用的命令几乎都是编辑后退出,保存等操作。
- :q 直接退
- :q! 退出不保存
- :wq 退出保存
- :wq! 强行退出保存
命令模式高频命令:
G 移动到文件最后一行
nG 移动到文件的n行
/word 向下查找关键字word
n 重复前一个查找
N 反向重复前一个查找
:n,$s/a/b/g 替换从第n行到最后一行中的所有a为b。n为. 表示从当前行开始。
u 撤销前一个操作,前提是还没保存。
d$ 删除光标后该行所有字符
dd 剪切该行
yy 复制当前行内容
p 粘贴到下一行
命令模式进阶命令:
- :new 新增水平窗口
- :new filename 新增水平窗口并在水平窗口上显示指定文件的内容。可以在不退出vim的情况下,查看某个文件。
- :set nu 显示行号
- :set nonu 不显示行号
- :set ic 查找时忽略大小写
- :set noic 查找时不忽略大小写
:10,100>
第10行至第100行缩进
:20,80<
第20行至第80行反缩进
vim高级玩法
shell切换: 如果在编辑时,想执行一条Linux命令。但是又不想退出编辑界面,可以使用下面的的命令
:!<Linux命令> ,当Linux命令执行完毕后按回车就又回到了编辑vim环境。
分隔窗口:这和上文提到可以通过: new新增水平窗口不一样,new新增的窗口只能查看不能编辑。
在vim进入多窗口后,可以改通过 【Ctrl+W】切换。
在启动vim时使用“-o”或“-O”,并加上需要同时编辑的多个文件名,其中“-o”是使用水平分割的多窗口;“-O”是使用垂直分割的多窗口。使用如下命令时,vim就进入如图所示的多窗口环境。
键映射
映射类似就是定义一个快捷键用于执行一个宏。下面是一个键映射的简单例子,将功能键F5定义为在行尾输入分号(;),在vim命令模式下输入以下内容。
:map <F5> i<End>;<Esc>
上述定义完成后,当在命令模式下键入功能键<F5>时,vim会依次执行 输入字母“i”(进行插入模式)、按【End】键(移动到当前行尾)、输入分号、按【Esc】键(返回命令模式)。
这个功能,个人觉得不能提升多少效率。从未使用。
小结:
Linux中vim文中提到的命令和用法几乎可以应对开发中90%以上的场景。
Vim的几个高级玩法相关推荐
- 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类
依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...
- 12面魔方公式图解法_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L
一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...
- SkyWalking之高级玩法
导读 SkyWalking是基于javaagent的两大字节码操作工具之一的Byte Buddy实现的无侵入APM(application performance monitor) 系统,目前项目在A ...
- 涨知识!原来华为手机摄像头还有这些高级玩法,学会轻松提高工作效率
众所周知,华为手机广受用户的喜爱,主要是因为华为手机的实用性强,并且拍照能力也是世界顶尖水平.不过你知道吗?拍照与办公融合,将解锁华为手机摄像头的高级玩法,今天笔者就分享两个,不仅有趣还非常实用的摄像 ...
- java enum枚举类的用法以及高级玩法
enum(枚举)类介绍 java枚举类是一组预定义常量的集合,使用enum关键字声明这个类,常量名称官方建议大写 1.enum类基本用法 举一个常见的例子,例如星期就可以描述为一个枚举类,如下 pub ...
- vnc移植_【安富莱】开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面
[安富莱]开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面说明: 0. 这个项目的可玩性极高,可以做很多有意思的应用.做一些远程智能控制尤其方便,省去了学习html,xml,js等麻烦,且无 ...
- 魔方cfop公式软件_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L
一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...
- 魔方cfop公式软件_【高级篇】(四)三阶魔方CFOP高级玩法之——OLL
一.OLL这一步需要做什么? OLL这一步是最容易理解的,到了这一步,前两层已经全部复原了 那不管顶面出现什么情况,都能用一个公式将顶面黄色朝向全部调整正确(顺序不管) 一步到位的代价就是--这步骤有 ...
- 乐高凯德机器人_酷炫到底!乐高EV3机器人+冰淇淋的高级玩法,你GET到了吗?...
原标题:酷炫到底!乐高EV3机器人+冰淇淋的高级玩法,你GET到了吗? 你喜欢吃冰淇淋吗? 甜甜凉凉的冰淇淋圣代, 最适合炎热的夏天啦~ 我们"多才多艺"的EV3机器人, 也会做冰 ...
最新文章
- html手机广告倒计时弹屏6,广告弹窗关闭倒计时(示例代码)
- 交换与路由技术课程期末上机测试题目二
- Ubuntu18.04+CUDA10.2 深度学习开发环境配置指南
- 计算机网络(谢希仁第八版)第三章:数据链路层
- 排列出所有子串暴力递归
- jQuery 1.9+ 移除$.browser方法
- Python3.6学习笔记(四)
- 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)
- 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
- 关于大型网站技术演进的思考(八)--存储的瓶颈终篇(8)
- 归并排序的时间复杂度
- Java Agent实战
- Tomcat:JAVA_HOME should point to a JDK not a JRE解决
- php readystate,php – 当readyState为4时,为什么我在脚本中调用的Ajax函数连续运行两次?...
- DP83848 跑10M能行,跑100M不行 的原因
- 几种常用的产生负电源的方法
- 考古表明陕西银沟遗址是目前仅见保存完好的唐宋县城遗址
- 基于SpringBoot生鲜商城
- 搞个服务器安装黑群晖系统,牛人闲置电脑大改造!超低成本组建家用黑群晖NAS...
- 遇到vcruntime140_1.dll 无法继续执行代码问题
热门文章
- 黑苹果内置硬盘识别成外置硬盘_拥有希捷这款硬盘更加方便了我们的数据转移、保密和随时随地使用...
- wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
- 解决OBS录屏软件窗口采集不全的问题
- 圣诞节快要来了,可我就是_我的圣诞节愿望清单
- 2、Ubuntu介绍加环境搭建详细教程
- 阿里云服务器储存空间不足解决方案
- 使用ProcMon 输出调试信息
- FPGA实现UHS的一些资料
- MAC OS ssh key永久保存
- Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, E