进入vim的命令:      

     vim filename :打开或新建文件,并将光标置于第一行首  

     vim +n filename :打开文件,并将光标置于第n行首  

     vim + filename :打开文件,并将光标置于最后一行首  

     vim +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处  

     vim -r filename :在上次正用vim编辑时发生系统崩溃,恢复filename  

     vim filename….filename :打开多个文件,依次编辑  

 Vim配置:  

     all:列出所有选项设置情况  

     term:设置终端类型  

     ignorance:在搜索中忽略大小写  

     list:显示制表位(Ctrl+I)和行尾标志($)  

     number:显示行号  

     report:显示由面向行的命令修改过的数目  

     terse:显示简短的警告信息  

     warn:在转到别的文件时若没保存当前文件则显示NO write信息  

     nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符  

     nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始  

     mesg:允许vi显示其他用户用write写到自己终端上的信息  

     :set number / set nonumber :显示/不显示行号  

     :set ruler /set noruler:显示/不显示标尺  

     :set hlsearch 高亮显示查找到的单词  

     :set nohlsearch 关闭高亮显示  

     :syntax on        #语法高亮  

     :set nu        #显示行号  

     :set tabstop=4    #设置tab大小  

     :set softtabstop=4  

     :set autoindent    #自动缩进  

     :set cindent    #C语言格式里面的自动缩进  

 移动光标:  

     上:k nk:向上移动n行  

     下:j nj:向下移动n行  

     左:h nh:向左移动n列  

     右:l nl:向右移动n列  

     space:光标右移一个字符  

     Backspace:光标左移一个字符  

     Enter :光标下移一行  

     w或W :光标右移一个字至字首  

     b或B :光标左移一个字至字首  

     e或E :光标右移一个字至字尾  

     ) :光标移至句尾  

     ( :光标移至句首  

     }:光标移至段落开头  

     {:光标移至段落结尾  

     n$:光标移至第n行尾  

     H :光标移至屏幕顶行  

     M :光标移至屏幕中间行  

     L :光标移至屏幕最后行  

     0:(注意是数字零)光标移至当前行首  

     ^:移动光标到行首第一个非空字符上去  

     $:光标移至当前行尾  

     gg可以移到第一行  

     G移到最后一行  

     f<a>:移动光标到当前行的字符a上  

     F:相反  

     %:移动到与制匹配的括号上去(),{},[],<>等。  

     nG:移动到第n行上  

     G:到最后一行  

 屏幕翻滚类命令:  

     Ctrl+u:向文件首翻半屏  

     Ctrl+d:向文件尾翻半屏  

     Ctrl+f:向文件尾翻一屏  

     Ctrl+b:向文件首翻一屏  

     nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部  

 插入文本类命令:

     i :在光标前  

     I :在当前行首  

     a:光标后  

     A:在当前行尾  

     o:在当前行之下新开一行  

     O:在当前行之上新开一行  

     r:替换当前字符  

     R:替换当前字符及其后的字符,直至按ESC键  

     s:从当前光标位置处开始,以输入的文本替代指定数目的字符  

     S:删除指定数目的行,并以所输入文本代替之  

     ncw或nCW:修改指定数目的字  

     nCC:修改指定数目的行  

 删除命令:

     x或X:删除一个字符,x删除光标后的,而X删除光标前的  

     dw:删除一个单词  

     dnw:删除n个单词  

     dne:也可,只是删除到单词尾  

 do:删至行首  

     d$:删至行尾  

     dd:删除一行  

     ndd:删除当前行及其后n-1行  

     dnl:向右删除n个字母  

     dnh:向左删除n个字母  

     dnj:向下删除n行  

     dnk:向上删除n行  

     cnw[word]:将n个word改变为word  

     C$:改变到行尾  

     cc:改变整行  

     shift+j:删除行尾的换行符,下一行接上来了.  

 复制粘贴:  

     p:粘贴用x或d删除的文本  

     ynw:复制n个单词  

     yy:复制一行  

     ynl:复制n个字符  

     y$:复制当前光标至行尾处  

     nyy:拷贝n行  

 撤销:  

     u: 撤销前一次的操作  

     shif+u(U):撤销对该行的所有操作。  

 搜索及替换命令 :  

     /pattern:从光标开始处向文件尾搜索pattern  

     ?pattern:从光标开始处向文件首搜索pattern  

     n:在同一方向重复上一次搜索命令  

     N:在反方向上重复上一次搜索命令  

     cw【newword】:替换为newword  

     n: 继续查找  

     .:执行替换  

     :s/p1/p2/g:将当前行中所有p1均用p2替代,g表示执行用c表示需要确认  

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

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

     :1,$ s/string1/string2/g:在全文中将string1替换为string2  

 书签:  

     m[a-z]:在文中做标记,标记号可为a-z的26个字母  

     `a:移动到标记a处  

 visual 模式:  

     v:进入visual 模式  

     V:进入行的visual 模式  

     ctrl+v:进如块操作模式用o和O改变选择的边的大小  

     在所有行插入相同的内容如include<,操作方法如下:  

     将光标移到开始插入的位置,按CTRL+V进入VISUAL模式,选择好模块后按I(shift+i),后插入要插入的文本,按[ESC]完成  

 行方式命令:  

     :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的输入  

 宏:  

     q[a-z]:开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏  

     reg:显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z]  

 窗口操作:  

     :split:分割一个窗口  

     :split file.c :为另一个文件file.c分隔窗口  

     :nsplit file.c: 为另一个文件file.c分隔窗口,并指定其行数  

     ctrl+w在窗口中切换  

     :close:关闭当前窗口  

 文件及其他:  

     :q:退出vi  

     :q!:不保存文件并退出vi  

     :e filename:打开文件filename进行编辑  

     :e! :放弃修改文件内容,重新载入该文件编辑  

     :w :保存当前文件  

     :wq :存盘退出  

     :ZZ:保存当前文档并退出VIM  

     :!command:执行shell命令command  

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

     :n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去  

     :read file.c 将文件file.c的内容插入到当前光标所在的下面  

     :0read file.c 将文件file.c的内容插入到当前文件的开始处(第0行)  

     :nread file.c 将文件file.c的内容插入到当前文件的第n行后面  

     :read !cmd :将外部命令cmd的输出插如到当前光标所在的下面  

 帮助:  

     :help :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O 返回。  

     :help subject :看某一主题的帮助,ZZ 退出帮助  

 其它常用:  

     :newtab   新建标签  

     :gt   转至下一个标签  

     :gT   转到上一个标签  

     :au GUIEnter * simalt ~x   启动时最大化
  

vim学习笔记(10):vim命令大全的更多相关文章

  1. vim学习笔记(2)——vim配置

    记录vim的配置,随时更新 MacVim 安装: homebrew,安装位置:/usr/local/Cellar brew linkapps macvim--将macvim.app加入到Applica ...

  2. vim学习笔记(1)——vim操作

    仅记录一些自己最经常使用的vim操作.随时更新 文本操作 d 剪切.双击剪切一行 y 复制,双击复制一行 p 粘贴 x 删除当前光标下字符 r 替换当前光标字符.后面接替换的字符 :s/old/new ...

  3. Hadoop学习笔记(10) ——搭建源码学习环境

    Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...

  4. Android:日常学习笔记(10)———使用LitePal操作数据库

    Android:日常学习笔记(10)———使用LitePal操作数据库 引入LitePal 什么是LitePal LitePal是一款开源的Android数据库框架,采用了对象关系映射(ORM)的模式 ...

  5. matlab学习笔记10 一般运算符

    一起来学matlab-matlab学习笔记10 10_1一般运算符 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张 ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. thinkphp学习笔记10—看不懂的路由规则

    原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INF ...

  8. 《C++ Primer Plus》学习笔记10

    <C++ Primer Plus>学习笔记10 <<<<<<<<<<<<<<<<<&l ...

  9. SQL反模式学习笔记10 取整错误

    目标:使用小数取代整数 反模式:使用Float类型 根据IEEE754标识,float类型使用二进制格式编码实数数据. 缺点:(1)舍入的必要性: 并不是所有的十进制中描述的信息都能使用二进制存储,处 ...

  10. golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息

    golang学习笔记10 beego api 用jwt验证auth2 token 获取解码信息 Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放 ...

随机推荐

  1. Java概述与开发环境

    1.Java语言既是编译又是解释型的特点 Java没有设计成编译型语言,因为编译型语言效率高, 但可移植性差. Java也没有设计成纯解释型的语言, 因为解释型效率太低. 编译成class文件, 解释 ...

  2. numpy二分查找

    a = np.array([1, 2, 2, 3]) print(np.searchsorted(a, 0)) # 0 print(np.searchsorted(a, 1)) # 0 print(n ...

  3. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...

  4. 实现iOS序列化与反序列化(runtime)

    一.变量声明 为便于下文讨论,提前创建父类Biology以及子类Person: Biology: @interface Biology : NSObject { NSInteger *_hairCou ...

  5. 树莓派进阶之路 (006) - 树莓派安装wiringPi

    安装git-core sudo apt-get install git-core 下载winringPi库 git clone git://git.drogon.net/wiringPi 编译和安装库 ...

  6. wcf 中客户端调用之死 感悟 wcf与原来的webservice2.0 的客户端调用区别(wcf调用完不关闭的话那就把web服务搞死了)

    说到wcf,本人也是刚刚使用所以不是很熟悉 在做项目的时候采用webservice+客户端程序架构 写了一个wcf中的webservice之后,又写了很多的客户端exe程序,有的是轮询调用这个webs ...

  7. struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor

    package com.sise.action; import java.util.Map; import com.opensymphony.xwork2.Action; import com.ope ...

  8. ASP.NET Core 不同操作系统环境安装之Hello World 教程

    Official Website:https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial#install Window ...

  9. getServletContext()接口解析(收藏)

    javax.servlet.ServletContext接口 一个servlet上下文是servlet引擎提供用来服务于Web应用的接口.Servlet上下文具有名字(它属于Web应用的名字)唯一映射 ...

  10. STL 的string类怎么啦?

    前言   上个周末在和我的同学爬香山闲聊时,同学说到STL中的string类曾经让他备受折磨,几年前他开发一个系统前对string类还比较清楚,然后随着程序的复杂度的加深,到了后期,他几乎对strin ...