文章目录

  • vim的几种模式
  • 扩展命令模式命令:
  • 命令模式高频命令:
  • 命令模式进阶命令:
  • vim高级玩法
  • 小结:

 在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的几个高级玩法相关推荐

  1. 【ASP.NET Core】依赖注入高级玩法——如何注入多个服务实现类

    依赖注入在 ASP.NET Core 中起中很重要的作用,也是一种高大上的编程思想,它的总体原则就是:俺要啥,你就给俺送啥过来.服务类型的实例转由容器自动管理,无需我们在代码中显式处理. 因此,有了依 ...

  2. 12面魔方公式图解法_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

  3. SkyWalking之高级玩法

    导读 SkyWalking是基于javaagent的两大字节码操作工具之一的Byte Buddy实现的无侵入APM(application performance monitor) 系统,目前项目在A ...

  4. 涨知识!原来华为手机摄像头还有这些高级玩法,学会轻松提高工作效率

    众所周知,华为手机广受用户的喜爱,主要是因为华为手机的实用性强,并且拍照能力也是世界顶尖水平.不过你知道吗?拍照与办公融合,将解锁华为手机摄像头的高级玩法,今天笔者就分享两个,不仅有趣还非常实用的摄像 ...

  5. java enum枚举类的用法以及高级玩法

    enum(枚举)类介绍 java枚举类是一组预定义常量的集合,使用enum关键字声明这个类,常量名称官方建议大写 1.enum类基本用法 举一个常见的例子,例如星期就可以描述为一个枚举类,如下 pub ...

  6. vnc移植_【安富莱】开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面

    [安富莱]开源原创高级玩法,用F429接SDRAM虚拟远程VNC桌面说明: 0. 这个项目的可玩性极高,可以做很多有意思的应用.做一些远程智能控制尤其方便,省去了学习html,xml,js等麻烦,且无 ...

  7. 魔方cfop公式软件_【高级篇】(三)三阶魔方CFOP高级玩法之——F2L

    一.F2L这一步要干什么 1.先了解一下"棱角对"和"槽位"的概念 棱角对:即由一个棱块和一个角块构成,是F2L的基本单元(共四组) 槽位:给"棱角对 ...

  8. 魔方cfop公式软件_【高级篇】(四)三阶魔方CFOP高级玩法之——OLL

    一.OLL这一步需要做什么? OLL这一步是最容易理解的,到了这一步,前两层已经全部复原了 那不管顶面出现什么情况,都能用一个公式将顶面黄色朝向全部调整正确(顺序不管) 一步到位的代价就是--这步骤有 ...

  9. 乐高凯德机器人_酷炫到底!乐高EV3机器人+冰淇淋的高级玩法,你GET到了吗?...

    原标题:酷炫到底!乐高EV3机器人+冰淇淋的高级玩法,你GET到了吗? 你喜欢吃冰淇淋吗? 甜甜凉凉的冰淇淋圣代, 最适合炎热的夏天啦~ 我们"多才多艺"的EV3机器人, 也会做冰 ...

最新文章

  1. html手机广告倒计时弹屏6,广告弹窗关闭倒计时(示例代码)
  2. 交换与路由技术课程期末上机测试题目二
  3. Ubuntu18.04+CUDA10.2 深度学习开发环境配置指南
  4. 计算机网络(谢希仁第八版)第三章:数据链路层
  5. 排列出所有子串暴力递归
  6. jQuery 1.9+ 移除$.browser方法
  7. Python3.6学习笔记(四)
  8. 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)
  9. 第一批 90 后还有半个月就 30 岁了!那些 30 岁前就成博导的人都怎样了...
  10. 关于大型网站技术演进的思考(八)--存储的瓶颈终篇(8)
  11. 归并排序的时间复杂度
  12. Java Agent实战
  13. Tomcat:JAVA_HOME should point to a JDK not a JRE解决
  14. php readystate,php – 当readyState为4时,为什么我在脚本中调用的Ajax函数连续运行两次?...
  15. DP83848 跑10M能行,跑100M不行 的原因
  16. 几种常用的产生负电源的方法
  17. 考古表明陕西银沟遗址是目前仅见保存完好的唐宋县城遗址
  18. 基于SpringBoot生鲜商城
  19. 搞个服务器安装黑群晖系统,牛人闲置电脑大改造!超低成本组建家用黑群晖NAS...
  20. 遇到vcruntime140_1.dll 无法继续执行代码问题

热门文章

  1. 黑苹果内置硬盘识别成外置硬盘_拥有希捷这款硬盘更加方便了我们的数据转移、保密和随时随地使用...
  2. wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
  3. 解决OBS录屏软件窗口采集不全的问题
  4. 圣诞节快要来了,可我就是_我的圣诞节愿望清单
  5. 2、Ubuntu介绍加环境搭建详细教程
  6. 阿里云服务器储存空间不足解决方案
  7. 使用ProcMon 输出调试信息
  8. FPGA实现UHS的一些资料
  9. MAC OS ssh key永久保存
  10. Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, E