Vim常用快捷键

断断续续接触Vim也有几年了,从刚开始的用的很不习惯,到现在用不惯其它编辑器,真心觉得Vim你用的时间越久越能感觉到它的好,快捷,方便,简洁,功能强大 Vim由于功能太多,太强,已经脱离单纯的文本编辑器的范畴了,比如可以把Vim打造成一个IDE环境,但是对于大多数的人,Vim恐怕还仅仅是个普通的文本编辑器,甚至连趁手都说不上,所以这篇博客就说下最常用的Vim的快捷键,不常用的就不说了

打开与关闭

  1. vim /path/to/file
  2. vim +12 /path/to/file(打开文件后处于第12行上)
  3. vim $ /path/to/file(打开文件后处于最后一行上)
  4. q(直接退出不保存)
  5. wq(保存并退出)
  6. q!(强制退出,不保存)
  7. shift+z+z(保存退出)
  8. shift+z+q(不保存退出)

移动光标

字符移动

1.h: 左 2. j: 下 3. k: 上 4. l: 右 5. 3h: 左移3个 6. 4k: 下移4行(其它类推)

行内移动

  1. 0: 绝对行首
  2. ^: 行首的第一个非空字符处
  3. $: 绝对行尾
  4. w: 下个单词词首
  5. e: 下个单词词尾
  6. b: 上个单词词首
  7. 3w: 下3个单词词首
  8. 5b: 上5个单词词首(其它类推)

行间移动

  1. H: 文件头
  2. M: 文件中间
  3. L: 文件末尾
  4. 10G: 第10行
  5. 4+: 下4行=4j
  6. 5-: 上5行=5k
  7. {: 上一段
  8. }: 下一段

翻屏

  1. ctrl+d(向下翻半屏)
  2. ctrl+u(向上翻半屏)
  3. ctrl+f(向下翻一屏)
  4. ctrl+b(向上翻一屏)

删除

单字符删除

  1. x: 向后删除一个字符
  2. X: 向前删除一个字符

多个字符删除

  1. d0: 删除从当前字符到行首的所有
  2. d$: 删除从当前字符到行尾的所有
  3. d^: 删除从当前字符到行首第一个非空字符的所有
  4. 3dh: 删除从当前字符向左的3个字符
  5. 5dk: 删除当前行以上的5行(其余类推)
  6. dd: 删除当前行
  7. dw: 删除从当前向后的一个单词的词首
  8. de: 删除从当前向后的一个单词词尾
  9. db: 删除从当前向前的一个单词词首

复制

  1. y0: 复制从当前字符到行首的所有
  2. y$: 复制从当前字符到行尾的所有
  3. y^: 复制从当前字符到行首第一个非空字符的所有
  4. ydh: 复制从当前字符向左的3个字符
  5. ydk: 复制当前行以上的5行(其余类推)
  6. yy: 复制当前行
  7. yw: 复制从当前向后的一个单词的词首
  8. ye: 复制从当前向后的一个单词词尾
  9. yb: 复制从当前向前的一个单词词首

替换

  1. r: 替换当前的单个字符
  2. R: 从当前开始一直替换,直到ESC按下

粘贴

  1. p: 粘贴最近一次复制/删除的内容(非整行粘贴至光标所在字符之后, 整行粘贴至光标所在字符下一行)
  2. P: 粘贴最近一次复制/删除的内容(非整行粘贴至光标所在字符之前, 整行粘贴至光标所在字符上一行)

撤销

  1. u: 撤销所做的更改(比如删除等)
  2. ctrl+r: 撤销上一次撤销的(比如你撤销错了)

重复

  1. .: 重复上一次编辑(比如重复删除,粘贴之类的)

模式

模式切换

  1. 编辑模式 —-> 命令模式 (ESC)
  2. 命令模式 —-> 末行模式 (:)
  3. 末行模式 —-> 命令模式(ESC)

末行模式

  1. 10,20d:删除10-20行
  2. ., +5y: 复制当前行和向下5行的内容
  3. .,$-1d: 删除当前行和直到倒数第二行的内容

查找

  1. /patten: 按照匹配的模式,从当前行向后查找
  2. ?pattern: 按照匹配的模式,从当前行向前查找
  3. 查找到之后,n: 下个匹配内容,N: 上个匹配内容

替换

sed一样 1. 10, $-1s/he/HE/g(从当前行到倒数第二行,把所有的he替换为HE)

我常用的基本就这些,其它的大家自己去网上照资料吧,个人感觉应该够用!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏博客园

详解MongoDB管理命令

MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储一组由列标识的...

632
来自专栏散尽浮华

MongoDB日常运维操作命令小结

总所周知,MongoDB是一个NoSQL非数据库系统,即一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表;而每个集合中可以存储...

7737
来自专栏葡萄城控件技术团队

七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理

? 第三天我们将学习Asp.Net中数据处理功能,了解数据访问层,EF,以及EF中常用的代码实现方式,创建数据访问层和数据入口,处理Post数据,以及数据验...

20610
来自专栏Java技术分享

MongoDB基础语句

闺蜜苏苏工作是前端开发,她竟然被要求用到MongoDB数据库,所以先让她安装好先,再来测试下面语句~ MongoDB数据库安装地址:http://jingya...

2018
来自专栏c#开发者

selenum参考手册中文翻译

Added by SpringSideTeam, last edited by SpringSideTeam on 2006-11-23  (view chan...

2666
来自专栏软件开发

前端MVC Vue2学习总结(七)——ES6与Module模块化、Vue-cli脚手架搭建、开发、发布项目与综合示例

使用vue-cli可以规范项目,提高开发效率,但是使用vue-cli时需要一些ECMAScript6的知识,特别是ES6中的模块管理内容,本章先介绍ES6中的基...

3717
来自专栏大数据挖掘DT机器学习

Python Excel操作

最近公司要把Excel导入到mysql数据库,查了几篇博文,这几项是非常有用的,记录下来。 一、安装xlrd模块 到python官网下载http://pyp...

2984
来自专栏salesforce零基础学习

salesforce零基础学习(八十六)Ajax Toolkit (VF页面中使用及javascript action使用)

Ajax Toolkit 参考文档:https://resources.docs.salesforce.com/212/latest/en-us/sfdc/pd...

2656
来自专栏大内老A

ASP.NET MVC的Razor引擎:IoC在View激活过程中的应用

在《ASP.NET MVC的Razor引擎:RazorView》介绍BuildManagerCompiledView的时候,我们谈到默认使用的ViewPageA...

1869
来自专栏Janti

springboot学习笔记-thymeleaf

简单说, Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸...

592

扫码关注云+社区