文章首发:http://www.cnblogs.com/sprying/p/3864631.html

上一次学习vim还是快一年了,倒腾了一个月之后就没碰过。现在重新汇总下vim命令。

1、有些命令回车后才有效果

2、vim编辑有三个状态:Normal、Insert、Visual

打开文件

Normal模式下

  • :e
  • :vi

保存关闭文件

  • :w

  • :q

  • :wq ZZ 保存和退出

  • :q! 放弃修改并退出

  • :qa! 强制退出所有打开的文件

  • :close

  • :close[!] 最后一个窗口不关闭

  • :hide 最后一个窗口不关闭,可以关闭当前屏幕窗口。

  • :on[ly][!] 除了当前窗口所有其他窗口都关闭。

缓存操作

  • :ls 显示缓存
  • :b [filename] 打开缓存文件
  • :bn (n a number) move to nth buffer 打开指定数字的缓存
  • :bp previous buffer 打开上一个缓存
  • :bn next buffer 打开下一个缓存

移动光标

  • w 下一个词的首字母
  • W 下一个词(跳过标点)
  • b 当前词的首字母
  • B 前一个词(跳过标点)
  • e 当前词的尾端
  • E 当前词的尾端(跳过标点)

注意: w e 是以字母、数字、_组成的为单词, 若要以blank空格符,用大写

  • h 左移一字符

  • l 右移一字符

  • j 下移一行

  • k 上移一行

  • gd 调到光标所在词定义位子go define

  • gg 到文档顶部

  • G 到文档底部

  • xgg xG :x 到第x行(x是行号)

  • 10% 移动到文件大约10%的行位置

  • Ctrl + d 下翻半屏

  • Ctrl + u 上翻半屏

  • Ctrl + f 下翻一屏

  • Ctrl + b 上翻一屏

  • Ctrl + g 查看文件url、行数信息

  • H 命令移动光标到视野内的第一行,

  • M 移动到视野内的中部,

  • L 移动光标到视野内的最后一行。

移动屏幕

 光标所在的行位不变
  • Ctrl + e 上滚一行

  • Ctrl + y 下滚一行

  • zt 命令将光标所在行移动到屏幕的顶部,

  • zz 命令将光标所在行移动到屏幕的中部,

  • zb 将光标移动到屏幕的底部。

  • nz 回车,将第n行滚动至屏幕顶部

插入

  • i 光标位置前插入
  • I 行首字符前插入
  • a 光标位置后插入
  • A 本行末尾插入
  • o 向下插入一行
  • O 向上插入一行

删除

  • x dl 光标下的字符

  • X dh 删除光标前字符

  • dw 删除当前光标下的词,由光标位置起,不包括光标位字符

  • db de

  • dnl 向右删除n个字母

  • dnh 向左删除n个字母

  • d$ D 删除光标到行尾

  • dd 删除当前行

  • dnj 向下删除n行

  • dnk 向上删除n行

  • dG 从当前光标位置一直删除到文件的末尾

  • dgg 从当前光标位置一直删除到文件的开始

  • 6dw 删除6个word

  • diw 删除光标上的单词(不包括空格)

  • daw 删除光标上的单词(包括空格)

  • df 从当前光标位置上的字符一直删除到指定的字符(包括指定字符)

  • dt 从当前光标位置删除到指定字符的前一个字符

  • J 删除换行符,合并两行

  • %s/\s\+$// 删除全文行尾空格,%表示作用于整个文件,//表示替换的是空白

  • %s/^\s\+// 删除全文行首空格

撤销和重做

  • u 撤销
  • U ctrl + r 恢复撤销

自动提示

在Insert模式下,输入字符,Ctrl pCtrl n代码提示

修改

cl(s) ch c3w cb ciw caw df dt cc(S) c$(C) cG

复制粘贴

  • yy Y 复制当前行
  • yw 复制当前光标下的词
  • yG 拷贝到文件的末尾
  • ygg 拷贝到文件的开头
  • 0y$
  • y2/foo 拷贝2个foo之间的字符串
  • p 粘贴
  • P 粘贴在当前位置之前Go

替换

预定义类 含义
:s/old/new 将当前行中查找到第一个字符”old”串替换为”new”
:s/old/new/g 将当前行中查找到的所有字符串”old”替换为”new”
:#,#s/old/new/g 在行号”#,#”范围内替换所有的字符串”old”为“new”
:%s/old/new/g 在整个文件范围内替换所有的字符串”old“为”new”
:s/old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认
  • r 输入字符替换光标下的字符,然后返回Normal模式, 如果光标选中一段字符,输入的一个字符会替换选择。

  • nr 输入字符会替换光标起的n个字符

  • R 会一直替换,按delete还原。 如果选中几个字符,则会进入visual模式,删除当前行,进入Insert模式。

  • :s/p1/p2/g 当前行中所有p1均用p2替代

  • :n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代

  • g/p1/s//p2/g 将文件中所有p1均用p2替换

搜索

  • /XXXX 搜索xxxx,可以用n下一个,N上一个,2n下第二个

  • /di 可查找到media

  • /^di 只匹配行首

  • /di$ 只匹配行未

  • /^di$ 仅仅匹配包括di的行并不带空格

  • /d.i 匹配第一个字符是d,第二个字符任意,第三个是i的字符串

  • /di\. 匹配带特殊字符.的字符串di.

  • # 向前搜索光标当前所在的字,向后查找当前光标的第2个单词,可以输入”2#“

  • * 向后搜索光标当前所在的字

  • fa 查找当前行光标所在位置的下一个f(ind) a,这里f可用t

  • Fa 查找当前行光标所在位置的上一个a

标记和宏(macro)

  • ma 将当前位置标记为a,26个字母都可以作为标记,mbmc等等

  • ‘a 跳转到a标记的位置

  • qa 将之后的操作都记录下来,直到继续按q

  • @a 执行刚刚记录在a里面的键盘操作

  • @@ 执行上一次的macro操作

      Ctrl a 数字加1
    
      qaYp<C-a>q
    
      1. qa开始录制
    2. Yp 复制行.
    3. \<C-a\> 增加1.
    4. q 停止录制.
    5. @a → 在1下面写下 2
    6. @@ → 在2 正面写下3 现在做100@@ 会创建新的100行,并把数据增加到 103.

高效编辑

  • di* 光标在""之前或之中,则删除""之间的内容

  • yi{ 光标在{}之前或之中,则复制{}之间的内容

  • vi[ 光标在[]之前或之中,则选中[]之间的内容 i代表inner,可编辑的光标有 '"()[]{}<>i可替换成a,就连配符号一起操作

  • dtx 删除字符直到遇见光标之后的第一个x字符

  • ytx 复制字符直到遇见光标之后的第一个x字符

  • :n1,n2 co n3 将n1行到n2行之间的内容拷贝到第n3行下

  • :n1,n2 m n3 将n1行到n2行之间的内容移至到第n3行下

  • :n1,n2 d 将n1行到n2行之间的内容删除

  • :n1,n2 w!command 将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入

  • :r!command 将命令command的输出结果放到当前行

  • 5w 相当于按五次w键;

  • 6j 下移6行,相当于按六次j;

  • 3J 大写J,本来是将下一行与当前行合并,加上数量,就是重复操作3次;

  • 6dw d6w 结果是一样,就是删除6个word;

剩下的无数情况,自己类推吧

显示页码

  • :set nu
  • :set nonu

其它

  • ~ 修改选中的字符的大小写,原来大写的转换成小写,原来小写的转成大写。在Visual模式和Normal模式下都能生效。 注意,只有tiledeop设置后,这个才能成为一个操作命令,才可用该命令与其他光标移动的命令组合使用。
  • g~ 修改选中的字符的大小写操作命令,原来大写的转换成小写,原来小写的转成大写。
  • gu 修改选中的字符为小写操作命令。
  • gU 修改选中的字符为大写操作命令。
  • ! 过滤警告操作命令
  • gq 选中文本格式化,文本拼接组合成句子或段落命令。在Normal模式和Visual模式下都能生效。
  • > 选中文本向右Tab缩进。在Normal模式和Visual模式下都能生效。
  • < 选中文本向左Tab缩进。在Normal模式和Visual模式下都能生效。
  • = 操作:选中文本自动缩进。 按v进入visual状态,选择多行,用>或<缩进或缩出

vim命令汇总的更多相关文章

  1. linux下vim命令汇总

    一. 进入vi的命令 vi filename : 打开或新建文件,并将光标置于第一行首 vi +n filename : 打开文件,并将光标置于第n行首 vi + filename : 打开文件,并将 ...

  2. vim常用命令汇总

    vim常用命令汇总: http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html 定位 本行第一个字符 ctrl+$ ...

  3. [svc][op]vim常用命令汇总

    vim常用命令汇总: 定位 本行第一个字符 ctrl+$ 本行最后一个字符 0gg 文章首行 ctrl+G 文章行尾 u 撤销(Undo) 删除 D 从当前位置删除到行尾 ("d$" ...

  4. 20145222《信息安全系统设计基础》Linux常用命令汇总

    学习Linux时常用命令汇总 通过Ctrl+f键可在该网页搜索到你想要的命令. Linux中命令格式为:command [options] [arguments] //中括号代表是可选的,即有些命令不 ...

  5. 73条日常Linux shell命令汇总,总有一条你需要!

    转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...

  6. 常用Git命令汇总

    常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代 ...

  7. 【Linux】Linux 常用命令汇总

    查看软件xxx安装内容:dpkg -L xxx 查找软件库中的软件:apt-cache search 正则表达式 查找软件库中的软件:aptitude search 软件包 查找文件属于哪个包:dpk ...

  8. linux命令汇总1

    允许非root用户使用“sudo” root身份登录系统,执行“visudo”,根据示例添加新的一个规则(记住输入的密码是当前用户密码,而不是root密码)#不需要密码执行sudo命令hadoop   ...

  9. [转帖]Linux企业运维人员最常用150个命令汇总

    Linux企业运维人员最常用150个命令汇总 https://clsn.io/clsn/lx998.html 基本上都用过了. 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的 ...

随机推荐

  1. Asp.net MVC 自定义路由

    在做公司接口的时候  由于规范API 要用点分割. 如: HealthWay.controller.action 在MVC 4 下面做了个 路由配置如下: public override void R ...

  2. Android-bindService远程服务(Aidl)-传递对象

    之前上一篇讲解到本地服务,本地服务只能在自身APP中Activity访问Service,调用Service里面到方法等操作 如果想A应用访问B应用里面的方法,属于跨进程调用,如果Android不特供这 ...

  3. [respberry pi3][suse] 配置docker

    [respberry pi3][suse] 配置docker arm64 suse上总的软件还是比较少的,特别是对32bit的一些支持,比较熟悉ubuntu,但是不能raspberry pi3没有64 ...

  4. 优化案例--改写IN条件为INNER JOIN

    --====================================== --原始语句 SET STATISTICS IO ON SELECT COUNT(DISTINCT parent_co ...

  5. IO--性能计数器

    --===================================================================== --在分析磁盘队列时,应参考数据库的其他计数器,如Che ...

  6. javascript AJAX简单原理及什么是ajax

    AJAX简单原理供初学者理解 AJAX的原理: Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,从服务器获得数据,然后用javascript来操作DOM而更新页面.这其 ...

  7. How to mount a remote directory in Linux using sshfs

    Q. I have access rights to one of the remote server through SSH protocol and there is no File share ...

  8. THUSC2017酱油记

    啊..酱油记三连发.. 果然SHTSC用掉太多RP了.. 其实感觉没什么好写的..都被考懵逼了.. 但还是写一下吧.. DAY0 月考完提前一天到了..什么也没发生 DAY1 先考试再开幕式..好奇怪 ...

  9. Windows下Oracle的下载与安装及配置

    一.Oracle下载 官网地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 百 ...

  10. Tomcat安装与使用

    主要讲解Tomcat的 安装与使用,讲解ubuntu版本和windows. 下载与安装: 1)到apache官网.www.apache.org http://jakarta.apache.org(产品 ...