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%以上的场景。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值