vim操作



插入模式         命令行模式        
末行模式



命令行模式  ->   插入模式

i --->   在当前光标的前一个插入

I --->   在行首插入

a --->   在当前的光标的后一个插入

A --->   行尾插入

o --->   在光标所在的这一行的下一行插入

O --->   在光标所在的这一行的上一行插入

s --->   删掉当前光标所在的字符并且进入插入模式

S --->   删掉当前光标所在的这一行并且进入插入模式





命令行模式下:

    dd  删除当前光标所在的这一行

    yy 复制当前光标所在的这一行

    p  粘贴之前复制的文本,在当前光标的下一行

    P  粘贴之前复制的文本,在当前光标的上一行

   

    连用

    d + 向下键   删除当前光标所在的行及下一行   ==> dj

    d + 向上键   删除当前光标所在的行及上一行   ==> dk

    d + 向左键   删除当前光标前一个字符         ==> dh

    d + 向右键   删除当前光标所在的一个字符     ==> dl



    h    j     k      l

    左   下    上    




    ndd  删除从当前光标所在的行的以下n行



    gg   跳到当前文本的第一行

    G    跳到当前文本的最后一行

     

    ngg  可以跳到当前文本的第n行

    /*vim xxx.c  +15 */  打开文本并且跳到15行

   



    D    删除当前光标之后的这一行的所有数据

    dG   删除当前光标到文本结束的所有行



    end   跳到行尾

    home 跳到行首



    W    往后跳一个单词





    v    左右上下拉黑然后按d删除



    r + 字符  可以将当前光标下的字符替换成该字符

    n+r+ 字符  可以从当前光标开始以下的n个字符全部替换成该字符

   

    v    拉黑之后 + r + 字符  
将拉黑的区域换成该字符



    u    撤消上一步的动作

    ctrl + r  撤消上一次所撤消的东西



    块操作

    ctrl + v   进入可视块   拉黑一块区域  
按d  删除此块区域

   

    块操作  插入

    ctrl + v   往下拉    按 I  
进入块操作插入模式   输入完之后按esc退出





    打标: 暗标

    m + a --> z    在某一行打标      ' + 标码  (将光标跳到哪个标码之下)



    删除

    从当前的光标删除到标码           d + ' + 标码



    插入模式:

    ctrl + u      删除光前光标前的所有字符

    ctrl + w      删除从当前光标开始的前一个单词



    ctrl + p / ctrl + n  可以补全 (可以补全头文件的函数)

   

    末行模式:

    :wq      w  保存  q  退出    


    :wq!     !   强制

    :x       保存退出

    :X       对文本进行密码保护      取消密码  :X  
密码不写

    :e!      回到最老的文件,没有改动的文件

    :!sh

    :!bash   创建一个新的终端去做其它事情,回来时ctrl+ d

    :!command  执行该命令

    ctrl + z  将vim掉到后台,然后通过fg将vim掉到前台

    :e   xxx.c    跳到另一个文件中   e  edit 编辑    ctrl + o
返回上一次跳过去的文件

    :split   将当前窗体分成两个  水平   
窗体之间的跳转  ctrl + w + w

    :vsplit  竖直分窗体

    :n,md    从第n行删到第m行

    :n,mw  xxx.c   可以将该文本从第n行到m行保存到xxx.c中

    :nohl  取消高亮 (查找的高亮)





其它操作:



    查找

    /xxx     查找xxx向下查找   n
查找下一个  N 查找上一个

    ?xxx     向上查找          n 查找上一个  N
查找下一个

    shift +  #     快速查找 当前光标所在的单词



   

替换:

    :%s/aaaa/bbbb      全局将所有行的第一个aaaa替换成bbbb

    :%s/aaaa/bbbb/g    全局将所有的行的所有的aaaa替换成bbbb

    :%s/aaaa/bbbb/gc   以提问形式替换

    :n,ms/aaaa/bbbb/g  从第n行到m行的所有的aaaa替换成bbbb



   

    tab的宽度

    vim   /etc/vimrc

    set   ts=4



    同时打开两个文件

    vim    xxx.c  -O  xx.c      竖直

    vim    xxx.c  -o  xx.c      水平

Vim编译器的常用使用方法与技巧的更多相关文章

  1. Thinkphp常用的方法和技巧(转)

    2012年09月26日 Thinkphp 里一些常用方法和技巧的整理,包括常用的快捷键以及在程序开发时用到的一些实用方法,关于快捷键用得不是很熟练,总之,掌握这些方法和技巧,对于我们开发 thinkp ...

  2. SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧

    SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧 VanDyke CRT 和 VanDyk ...

  3. IDEA编译器的常用快捷键

    今天想简单分享一下IDEA编译器的常用快捷键 1. -----------自动代码-------- 常用的有fori/sout/psvm+Tab即可生成循环.System.out.main方法等boi ...

  4. Object Pascal 方法与技巧

    4 方法与技巧 4.1 设置代码模板 代码模板是Delphi 的代码感知特性的一种,通过它可以快速.高效和正确地输入代码.代码模板将一些常用的语句块保存在模板中,然后程序员只要在代码编辑器中按下“Ct ...

  5. Python - 集成开发环境Pycharm的使用方法和技巧

    PyCharm HomePage:PyCharm 我的Pycharm,我做主 Getting Started with PyCharm Pycharm使用技巧 Documentation & ...

  6. 【Tips】【UE】总结自己常用的UltraEdit使用技巧

    如果您问我每天都要打开的软件是什么,那毫无疑问是UltraEdit!作为一位DBA,每天都要写各种脚本,尤其是在对具有超多行行的大文件进行精心编辑时,没有一个好的文本编辑器是不成的.掐指一算,哇塞,自 ...

  7. 常用的UltraEdit使用技巧

    Tip 1: Alt+C 列模式可以说最初选择使用这个文本编辑软件,原因很简单,就是因为"她"具有列编辑模式.如果您还不知道什么是列编辑模式的话,我想您应该好好研究一下啦.这是一个 ...

  8. Vim编译器的相关知识

    Vim编译器相关知识 1.关于Vim编译器 在热门Linux操作系统中都会默认安装一款超好用的文本编辑器——名字叫“vim”,vim是vi编辑器的升级版. vim 具有程序编辑的能力,可以主动的以字体 ...

  9. 【UE】常用的UltraEdit使用技巧

    Tip 1: Alt+C 列模式可以说最初选择使用这个文本编辑软件,原因很简单,就是因为“她”具有列编辑模式.如果您还不知道什么是列编辑模式的话,我想您应该好好研究一下啦.这是一个超级“赞”的功能.在 ...

随机推荐

  1. ROS机器人程序设计(原书第2版)补充资料 (伍) 第五章 计算机视觉

    ROS机器人程序设计(原书第2版)补充资料 (伍) 第五章 计算机视觉 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 计算机视觉这章分为两 ...

  2. 初识Spring Boot框架

    前面的铺垫文章已经连着写了六篇了,主要是介绍了Spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...

  3. apply函数用法

    procedure:  (apply proc arg1 ... args)  Proc must be a procedure and args must be a list. Calls proc ...

  4. Dynamics CRM2013 从外部系统取到CRM系统的用户头像

    CRM从2013开始引入了entityimage的概念,具体这个字段怎么设置的,图像是怎么上传的这里就不谈了.说实在的这玩意在项目中没啥用,所以也没去关注,直到最近遇到了个难题,要在外部系统去获取这个 ...

  5. VMware 下的CentOS6.7 虚拟机与Windows7通信

    在有网络的情况下,VMware 虚拟机使用桥接模式(Bridged) 和NAT方式,会自动通信,但是在没有网络的情况下怎么办呢?对,是的,使用host-only模式,如何设置呢? 注:将Windows ...

  6. EBS多组织结构

    1. 业务组: 它代表组织结构的最高层次, 它分离了人力资源的信息. 例如, 当你查询人员时, 它会列出所有分配给相应业务组的成员, 而你自己所属于的组织只不过是业务组的一份子. 这样说可能造成一种误 ...

  7. [Mysql]由Data truncated for column联想到的sql_mode配置

    系统日志中出现了 ata truncated for column 'agent' at row 1 mysql出现这个问题的原因,无非就是字符集设置 或者是 字段过长导致的. mysql在初始化的时 ...

  8. Java线程状态

    线程跟人类一样拥有自己的生命周期,一条线程从创建到执行完毕的过程即是线程的生命周期,此过程可能在不同时刻处于不同的状态,线程状态正是这小节的主题,线程到底有多少种状态?不同状态之间是如何转化的? 对于 ...

  9. java类加载器——ClassLoader

    Java的设计初衷是主要面向嵌入式领域,对于自定义的一些类,考虑使用依需求加载原则,即在程序使用到时才加载类,节省内存消耗,这时即可通过类加载器来动态加载. 如果你平时只是做web开发,那应该很少会跟 ...

  10. FFmpeg的HEVC解码器源代码简单分析:解码器主干部分

    ===================================================== HEVC源代码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpe ...