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 条评论
登录 后参与评论

相关文章

来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

5748
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3575
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

5188
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2886
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4355
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

8318
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2810
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2767
来自专栏飞扬的花生

jsencrypt参数前端加密c#解密

      写程序时一般是通过form表单或者ajax方式将参数提交到服务器进行验证,如何防止提交的请求不被抓包后串改,虽然无法说绝对安全却给非法提交提高了难度...

4179
来自专栏pangguoming

Spring Boot集成JasperReports生成PDF文档

由于工作需要,要实现后端根据模板动态填充数据生成PDF文档,通过技术选型,使用Ireport5.6来设计模板,结合JasperReports5.6工具库来调用渲...

1.4K7

扫码关注云+社区