文章首发: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. 玄虚出品Delphi教程的前言 good

    VCL是基于系统的,根本在于系统API,FMX是基于绘图的,根本在于渲染引擎  VCL的发展受制于系统,(你在VCL的代码里面可以看到Borland对M$的妥协),而FMX的发展仅仅受制于硬件 VCL ...

  2. Ubuntu sudo apt-get update提示 Failed to fetch,解决办法

    问题: 执行sudo apt-get update提示:Failed to fetch chen@ubuntu:~/soft/Python-$ sudo apt-get update Get: htt ...

  3. django中orm的简单操作

    数据库模型 from django.db import models # Create your models here. from django.db import models # Create ...

  4. BZOJ.5407.girls/CF985G. Team Players(三元环计数+容斥)

    题面 传送门(bzoj) 传送门(CF) \(llx\)身边妹子成群,这天他需要从\(n\)个妹子中挑出\(3\)个出去浪,但是妹子之间会有冲突,表现为\(i,j\)之间连有一条边\((i,j)\), ...

  5. [ActionScript 3.0] 利用InteractivePNG.as类精确选择识别png图片有像素的区域

    用法:如果是把png直接导入flash转换成影片剪辑,只需在影片剪辑属性中勾选为ActionScript导出(x),并把基类里的flash.display.MovieClip替换成Interactiv ...

  6. [转] 以普通用户启动的Vim如何保存需要root权限的文件

    [转] 以普通用户启动的Vim如何保存需要root权限的文件 在Linux上工作的朋友很可能遇到过这样一种情况,当你用Vim编辑完一个文件时,运行:wq保存退出,突然蹦出一个错误: E45: 'rea ...

  7. 简易 PHP 教程小记

    一.简介: 1.用处广 2.免费 3.PHP Hypertext Preprocessor 二.语法: 1.<?php coders ?> 2.注释:"#" " ...

  8. nginx高性能WEB服务器系列之七--nginx反向代理

    nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...

  9. C#-★结构体★

    结构体: 结构体类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型. 结构体在几个方面不同于类:结构体为值类型而不是 ...

  10. PHP错误与异常处理

    https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html 请一定要注意,没有特殊说明:本例 PHP Version < 7 说起PHP异常处理,大 ...