记录vim中常用的几个操作

入门指南

$ vimtutor
  1. vim中是区分大小写

  2. vim中移动光标

     h  向左移动
    j 向下移动
    k 向上移动
    l 向右移动

    其实使用方向键也是能移动的,但是熟悉后再一些其他的编辑器或者浏览器中也能使用

  3. vim 中删除

     x 删除光标所在的字母
    dw 删除完整的单词不包括后面的标点
    dd 删除整行
    D 删除整行

    2018-4-25

  4. vim中移动行

     :m 12     如果当前行数为第10行,则将当前行移动到第12行
    如果当前行数为第20行,则将当前行移动到第13行 :m 0 将当前行移动到第一行前面 :m $ 将当前行移动到最后一行后面
    :m0 后面的空格可以省略不写
  5. vim中移动多行

     :m5,7m 21 将第5,6,7行移动到第21行
    
     :m5,7m 0 将第5,6,7行移动到第一行前面
    
     :m5,7m $ 将第5,6,7行移动到最后一行后面
    
     :.,.+4m 21 将从当前行开始的5行,移动到21行位置
    
     :,+4m21 和上个命令一样,可以省略.和空格
  6. vim中撤销上一个操作

     u 撤销

    2018-04-26

  7. vim跳到最后一行或者第一行

     G 跳到最后一行
    
     gg 跳到第一行

    2018-04-29

  8. vim跳到指定行

     :6 + 回车  跳到第6行
    
     6G    跳到第6行
    
     6gg   跳到第6行

    2018-05-17

  9. vim进入insert模式

     o 在当前行下方新建一行,并进入insert模式
    
     O 在当前行上方新建一行,并进入insert模式
    
     a 光标移动到当前行行首,并进入insert模式
    
     A 光标移动到在当前行行末,并进入insert模式
  10. vim删除多行

    :[start_line_no],[end_line_no]d
    
    :14d 删除第14行
    
    :3,5d 删除第3到第5行

    2018-05-19

  11. vim复制行 y => yanked

    + yy 或者 Y 复制当前行 
    
    + y[n]w 复制光标后的下一个或n个单词
    
    + y[n]l 复制光标右边下一个或n个字符
    
    + y[n]h 复制光标左边下一个或n个字符
    
    + y$ 复制从光标当前位置到行尾的所有字符
    
    + y0 复制从光标当前位置前一个到行首的所有字符
    
    + :m,ny 复制从第m到第n行
    
    + :my  复制第m行
    
    + y1G 或者 y1gg 复制光标之上所有行
    
    + yG 复制光标之下所有行
  12. vim粘贴

    + p 在当前行下一行粘贴
    + P 在当前行上一行粘贴
  13. vim按单词移动

    + W/w 下一个单词
    + B/b 上一个单词

    2018-06-09

  14. vim快速退出

    + ZQ 快速不保存退出
    + ZZ 快速保存退出

待续...

dhlin-vim-wiki的更多相关文章

  1. Ubuntu下VIM的安装及其配置——Linux篇

    一.Ubuntu系统默认内置: 实际上ubuntu默认没有安装老版本的vi,只装了vim.vi是vim.tiny(vim的最小化版本,不含 GUI,并且仅含有一小部分功能,并且默认与vi兼容.此软件包 ...

  2. 将vim打造成php的IDE开发环境

    将vim打造成IDE开发环境 本文主要介绍将vim打造成IDE开发环境,如代码补全,高亮显示,函数跳转,函数自动注释等 首先介绍2款VIM插件管理器:Vbundle,Pathogen 本文中的vim插 ...

  3. Ubuntu 16.04 Vim安装及配置【转】

    转自:http://www.cnblogs.com/ace-wu/p/6273031.html 安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate ...

  4. Ubuntu 16.04 Vim安装及配置

    安装VIM 默认已经安装了VIM-tiny acewu@acewu-computer:~$ locate vi | grep 'vi$' |xargs ls -al lrwxrwxrwx 1 root ...

  5. vim学习之git for windows

    这是我在博客园的第二篇文章,今晚是在线的特殊日子,应小编的要求不想多讲,喝了点酒,感觉到压力和挑战性,抽了几根烟,现在有点飘飘欲仙的感觉.在长江大学11教的6楼,是长大在线的办公室,这个晚上总是不关灯 ...

  6. vim插件的安装方式 -- vim注释插件和doxygen函数注释生成插件-ctrlp插件-tabular等号对齐 插件

    使用unzip的时候 指定 -d选项, 是说明解压到的 目标地址. 这个参数还是比较方便的, 比直接unzip到当前目录, 然后在去拷贝到目标目录, 然后再删除当前目录中的解压文件夹, 方便多了. 使 ...

  7. VIM - visual selection 模式下的简单操作

    1. 概述 vim 的 visual selection 模式下的简单操作 2. visual selection 模式 概述 可视化选择 可视化选择 vim 的一种专门用来选择的模式 可以提供相对于 ...

  8. vim markdown

    vim 安装vundle插件管理器 https://github.com/VundleVim/Vundle.vim Vundle for windows https://github.com/Vund ...

  9. 学会了 Vim 还有必要用 GitHub Atom 或者 Sublime Text 么?

    亦俊 ,90后,Vim 专栏作者 563 人赞同 Vim 知乎专栏:http://zhuanlan.zhihu.com/hack-vim 用过 [ Visual Studio 2015 ] [ Sub ...

  10. vim 安装

    Ubuntu 16.04 下 Vim安装及配置 默认已经安装了VIM-tiny linuxidc@linuxidc:~$ locate vi | grep 'vi$' |xargs ls -al lr ...

随机推荐

  1. 自定义 popWindow弹框 工具包

    前言:因为Android 没有像IOS一样的ActionSheet,虽然在github上看到有一些类似ActionSheet的库,总觉得不好用,不如自己写一个弹框通用类,样式全部自已来多好. Step ...

  2. datetime模块详解

    时间运算 >>> datetime.datetime.now() #当前年月 时间datetime.datetime(2018, 2, 13, 16, 12, 6, 850532)& ...

  3. P1880 石子合并

    P1880 石子合并 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计 ...

  4. IOS开发学习笔记013-内存管理

    内存管理 1.基本知识 2.关闭ARC机制 3.@property 4.循环引用 5.自动释放池 6.内存管理总结 一.基本知识 内存的分类 栈:局部变量 堆:动态申请的对象,变量等 全局(静态):s ...

  5. PyInstaller打包python脚本

    用python写的工具写好了,想打包然后发给测试同事使用,最后选择了PyInstaller,支持Windows.Linux.OS X,支持打包成一个文件夹或单个EXE文件.   我是直接在线安装的,在 ...

  6. [oldboy-django][深入 rest framework] restframewok 教程: 分页功能

    http://www.django-rest-framework.org/api-guide/pagination/ https://stackoverflow.com/questions/31785 ...

  7. md5 加密算法和升级

    在这里插一小节加密的吧,使用openssl库进行加密. 使用MD5加密 我们以一个字符串为例,新建一个文件filename.txt,在文件内写入hello ,然后在Linux下可以使用命令md5sum ...

  8. 关于caffe 是如何卷积的一点总结

    最近,在看caffe源码时,偶然在网上看到一个问题?觉得挺有意思,于是,仔细的查了相关资料,并将总结写在这里,供大家迷惑时,起到一点启示作用吧. 问题的题目是CNN中的一个卷积层输入64个通道的特征子 ...

  9. mysql数据库无法插入中文字符

    分析原因:这是因为之前修改了数据库的编码,但数据表的编码却没有跟着改变导致的. 安装mysql 时,使用的是latin编码(随后修改为utf8).建的数据表是在latin编码下建立的.而jsp页面使用 ...

  10. HDU 3333 Turing Tree(离线树状数组)

    Turing Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...