一、移动光标

1、左移h、右移l、下移j、上移k

2、向下翻页ctrl + f,向上翻页ctrl + b

3、向下翻半页ctrl + d,向上翻半页ctrl + u

4、移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^

5、移动光标到下一个句子 ),移动光标到上一个句子(

6、移动到段首{,移动到段尾}

7、移动到下一个词w,移动到上一个词b

8、移动到文档开始gg,移动到文档结束G

9、移动到匹配的{}.().[]处%

10、跳到第n行 ngg 或 nG 或 :n

11、移动光标到屏幕顶端H,移动到屏幕中间M,移动到底部L

12、读取当前字符,并移动到本屏幕内下一次出现的地方 *

13、读取当前字符,并移动到本屏幕内上一次出现的地方 #

二、查找替换

1、光标向后查找关键字 #或者g#

2、光标向前查找关键字 *或者g*

3、当前行查找字符 fx, Fx, tx, Tx

4、基本替换 :s/s1/s2 (将下一个s1替换为s2)

5、全部替换 :%s/s1/s2

6、只替换当前行 :s/s1/s2/g

7、替换某些行 :n1,n2 s/s1/s2/g

8、搜索模式为 /string,搜索下一处为n,搜索上一处为N

9、制定书签 mx, 但是看不到书签标记,而且只能用小写字母

10、移动到某标签处 `x,1旁边的键

11、移动到上次编辑文件的位置 `.

PS:.代表一个任意字符 *代表一个或多个字符的重复

正则表达式的内容将会在后续文章中整理

三、编辑操作

1、光标后插入a, 行尾插入A

2、后插一行插入o,前插一行插入O

3、删除字符插入s, 删除正行插入S

4、光标前插入i,行首插入I

5、删除一行dd,删除后进入插入模式cc或者S

6、删除一个单词dw,删除一个单词进入插入模式cw

7、删除一个字符x或者dl,删除一个字符进入插入模式s或者cl

8、粘贴p,交换两个字符xp,交换两行ddp

9、复制y,复制一行yy

10、撤销u,重做ctrl + r,重复.

11、智能提示 ctrl + n 或者 ctrl + p

12、删除motion跨过的字符,删除并进入插入模式 c{motion}

13、删除到下一个字符跨过的字符,删除并进入插入模式,不包括x字符 ctx

14、删除当前字符到下一个字符处的所有字符,并进入插入模式,包括x字符,cfx

15、删除motion跨过的字符,删除但不进入插入模式 d{motion}

16、删除motion跨过的字符,删除但不进入插入模式,不包括x字符 dtx

17、删除当前字符到下一个字符处的所有字符,包括x字符 dfx

18、如果只是复制的情况时,将12-17条中的c或d改为y

19、删除到行尾可以使用D或C

20、拷贝当前行 yy或者Y

21、删除当前字符 x

22、粘贴 p

23、可以使用多重剪切板,查看状态使用:reg,使用剪切板使用”,例如复制到w寄存器,”wyy,或者使用可视模式v”wy

24、重复执行上一个作用使用.

25、使用数字可以跨过n个区域,如y3x,会拷贝光标到第三个x之间的区域,3j向下移动3行

26、在编写代码的时候可以使用]p粘贴,这样可以自动进行代码缩进

27、 >> 缩进所有选择的代码

28、 << 反缩进所有选择的代码

29、gd 移动到光标所处的函数或变量的定义处

30、K 在man里搜索光标所在的词

31、合并两行 J

32、若不想保存文件,而重新打开 :e!

33、若想打开新文件 :e filename,然后使用ctrl + ^进行文件切换

四、窗口操作

1、分隔一个窗口:split或者:vsplit

2、创建一个窗口:new或者:vnew

3、在新窗口打开文件:sf {filename}

4、关闭当前窗口:close

5、仅保留当前窗口:only

6、到左边窗口 ctrl + w, h

7、到右边窗口 ctrl + w, l

8、到上边窗口 ctrl + w, k

9、到下边窗口 ctrl + w, j

10、到顶部窗口 ctrl + w, t

11、到底部窗口 ctrl + w, b

五、宏操作

1、开始记录宏操作q[a-z],按q结束,保存操作到寄存器[a-z]中

2、@[a-z]执行寄存器[a-z]中的操作

3、@@执行最近一次记录的宏操作

六、可视操作

1、进入块可视模式 ctrl + v

2、进入字符可视模式 v

3、进入行可视模式 V

4、删除选定的块 d

5、删除选定的块然后进入插入模式 c

6、在选中的块同是插入相同的字符 I<String>ESC

七、跳到声明

1、[[ 向前跳到顶格第一个{

2、[] 向前跳到顶格第一个}

3、]] 向后跳到顶格的第一个{

4、]] 向后跳到顶格的第一个}

5、[{ 跳到本代码块的开头

6、]} 跳到本代码块的结尾

八、挂起操作

1、挂起Vim ctrl + z 或者 :suspend

2、查看任务 在shell中输入 jobs

3、恢复任务 fg [job number](将后台程序放到前台)或者 bg [job number](将前台程序放到后台)

4、执行shell命令 :!command

5、开启shell命令 :shell,退出该shell exit

6、保存vim状态 :mksession name.vim

7、恢复vim状态 :source name.vim

8、启动vim时恢复状态 vim -S name.vim

已经入了vim的坑的更多相关文章

  1. [Vim 填坑] 01 Vim 中替换与注释的补充

    目录 1. print( 坑的信息 ) 2. 开始填坑 (1) :n1,n2s/old/new/gc 的后续命令 ^E ^Y (2) 利用"V-可视"模式进行多行注释 1. pri ...

  2. 搭建SSH入过的那些坑

    1.添加完相关jar包,写完配置文件,写完测试类,运行提示 WARN:Establishing SSL connection without server's identity verificatio ...

  3. 【距离GDOI:141天】 滚入数位DP的坑

    作为博客园的第一篇...我都不知道要写什么了 ... 其实今天很没状态,就当吐槽吧... 嗯,被黄神带去写treap+可持久化线段树,然后在可持久化的删除上面跪了两天,真的是一跪不起.我已经连续多久没 ...

  4. webpack4从安装到使用入过的那些坑

    1.全局安装 安装 webpack 前要确保已经下载 node.js 最新版本(node.js官网地址) 目前使用命令行安装的 webpack 默认为最新版本(以下我使用了全局安装.官网建议本地安装, ...

  5. 分布式监控系统Zabbix3.2跳坑指南

    zabbix是什么在此就不多作介绍了,可以参考之前的文章 零代码如何打造自己的实时监控预警系统 ,这篇主要介绍安装及注意事项. 主要分为服务端和客户端安装,客户端又分为Linux.Windows. 服 ...

  6. 在microsoft/dotnet:2.0.0-sdk中安装vim编辑器

    在Docker中安装了dotnetcore 2.0.0 的sdk,没有发现可用的编辑器,该sdk是基于debian:stretch构建的,以前没玩过debian,因为CentOS玩的多一些所以对vim ...

  7. 随处可编辑的编辑器之神VIM

    据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...

  8. vim配置python开发环境

    vim配置python开发环境 一.安装vim sudo apt-get install vim 二.vim基础配置 #Centos6.5 /usr/share/vim/vim72 vi /etc/v ...

  9. Python连接MySQL数据库中各种坑

    第一个坑 要想连接数据库,我们必须拥有MySQL-python这个模块,首先,我在安装这个模块的时候就到了第一个大坑. 常规安装方法:进入cmd 使用 pip install MySQL-python ...

随机推荐

  1. RQNOJ 34 紧急援救

    题目描述 话说2007年8月5日,Mike博士神秘失踪了,最后发现是被外星人绑架了,幸好外星人目前还是在地球上活动,并且知道外星人不了解地球,幸好,Milk博士身上有无线信号发送装置,我们终于确定了他 ...

  2. 平衡二叉树DSW算法

    #include<iostream> #include<stdlib.h> #include<math.h> using namespace std; class ...

  3. 手动破解的 Linux下的Maltab 2014b

    人人网上一个很不错的东东,转发全文如下: 好久没有写日志了,今天更新一篇. 承蒙 @刘慎修(263525031 )修哥分享的各种激励,发布一发我自创的黑科技. Maltab 2014b 发布了,但是只 ...

  4. Kubernetes-服务发布

    #发布服务有三种方式,第一种把端口映射到所有节点比较适合发布一些tcp/udp的服务对于应用层像http的会导致无法获取到原始客户端IP,第二种需要用到云服务才行,第三种是ingress http服务 ...

  5. zabbix 硬盘健康监控

    #!/bin/sh function sh { sd=`ls /dev/ | grep '^sd' |grep -v '[0-9]$'` echo '' > /usr/local/zabbix/ ...

  6. C#中一些关键字和罕见类

    1.@ 在处理字符串时,那些个字符串转义字符我们可以使用这个,那@就是为解决这个而诞生的,直接让字符串原样输出有木有?什么sql字符串了,还有路径啥了的,统统搞定 string sql = @&quo ...

  7. 关于asp.net中gridview的问题,关于footer,16aspx上下的英语交流网程序,管理员的添加和修改有问题

    css部分 这是添加用户的方法 但是A.AdminName 和后面的A.取到的都是空值protected void GridView1_RowCommand(object sender,GridVie ...

  8. HDU 2639 Bone Collector II【01背包 + 第K大价值】

    The title of this problem is familiar,isn't it?yeah,if you had took part in the "Rookie Cup&quo ...

  9. HNOI2004 郁闷的出纳员(Splay)

    郁闷的出纳员 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的 ...

  10. 四. Java继承和多态7. Java static关键字

    static 修饰符能够与变量.方法一起使用,表示是“静态”的. 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法.静态 ...