------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、基本操作

1、从命令提示符进入vim编辑器:   vim filename <ENTER>

2、光标的移动

左移:  h

右移:  l

上移:  k

下移:  j

3、删除光标所在的字符:  x

4、插入或附加文本:

  i   在光标前插入文本

  a  在光标后附加文本

5、删除当前行,并把删除的行存入剪贴板中:  dd

6、粘贴剪贴板:  p

7、显示相关命令帮助:  :help <command>

  退出帮助输入   :q<ENTER>

8、退出编辑器:

  :q!  放弃修改并退出

  :wq   保存修改并退出

当启动vim编辑器后, vim处在normal模式,此时可以使用以上命令符的基本操作。当时用i或a等操作时,会进入insert模式,此时可以输入文本。使用esc可以退出insert模式,再次回到normal模式。

以上基础操作可以满足normal模式的基本需求,接下来扩充的命令符,同样需要在normal模式下操作。

二、命令符的基本格式

    operator  [number]  motion

其意是:

  operator :代表要做的事

  [number]:代表命令执行的次数

  motion:代表要操作的对象

三、删除类与撤销类命令

(一)删除类命令

删除类命令 d,其格式为

    d  [number]  motion

dw :从光标处删除至下个单词(包含空格)

de :从光标处删除至下一个单词末尾(不包含空格)

d$ :从光标处删除至当前行末

(二)撤销类命令

u :撤销以前的操作

N :撤销在一行中所做的改动

CTRL-R :撤销掉撤销命令,恢复以前的操作

四、置入、替换和更改类命令

(一)置入类命令

i :在光标前插入文本

a :在光标后附加文本

A:在光标所在行的行末插入文本

p :将删除的文本内容置于光标之后,如果最后一次删除的是一整行,那么该行将置于当前光标所在的下一行

o :在光标下方打开新的一行

shfit-o :在光标上方打开新的一行

(二)替换类

r :替换光标所在的字符

R :进入替换模式,此时可以将光标之后的内容替换,直至输入esc回到normal模式

: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  [norber]  motion

列如: cw, c$

五、定位、搜索类命令

(一)定位类

CTRL-g :显示当前光标所在位置和文件状态信息

SHIFT-g :将光标跳转至文件最后一行

[number] SHIFT-g :跳转至number所代表的行号

gg :跳转至文件开头

(二)搜索类命令

/字符串 :向当前光标后查找该字符串

?字符串 :向当前光标前查找该字符串

n :同方向上重复上一次查找

shift-n :反方向上重复上一次查找

% :若此时光标在(),{ },[ ]上,输入%可以查找相配对的括号

六、文本的保存、提取与合并

在vim中可以使用外部命令,其格式为:  :!command

:!ls :用于显示当前目录内容

:!rm filename :用于删除名为filename的文件

:w filename :用于将vim中正在编辑的文件保存名为filename的文件中

v motion :w filename :将所选的行保存在filename的文件中

:r !ls :将当前目录的内容插入当前文件的光标后面

七、设置类的命令选择

:set xxx :可以是指xxx选项,如:

‘ic’ :搜索时忽略大小写

‘is’ :显示一个匹配的搜索结果

'hls' :高亮显示所有匹配的结果

前置‘no’ 可以取消设置,如:  :set noic

想要玩转vim,以上基础内容还是远远不够,但是打好牢固的基础才是良好的开始,在以后的编程之路上再慢慢探索,探寻更深层,更便捷的方法,让vim成为自己走向成功的一个优良工具。

黑马程序员——vim编辑器的使用的更多相关文章

  1. 程序员的编辑器——VIM

    from:http://blog.chinaunix.net/uid-11278770-id-148579.html Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册      ...

  2. 黑马程序员:3分钟带你读懂C/C++学习路线

    随着互联网及互联网+深入蓬勃的发展,经过40余年的时间洗礼,C/C++俨然已成为一门贵族语言,出色的性能使之成为高级语言中的性能王者.而在今天,它又扮演着什么样重要的角色呢?请往下看: 后端服务器,移 ...

  3. 【黑马18期Java毕业生】黑马程序员Java全套资料+视频+工具

        Java学习路线图引言:        黑马程序员:深知广大爱好Java的人学习是多么困难,没视频没资源,上网花钱还老被骗. 为此我们历时一个月整理这套Java学习路线图,不管你是不懂电脑的小 ...

  4. 黑马程序员——【Java高新技术】——代理

    ---------- android培训.java培训.期待与您交流! ---------- 一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法 ...

  5. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  6. 黑马程序员+Winform基础(上)

    黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...

  7. 黑马程序员—C语言的函数、数组、字符串

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.函数 定义:函数是代码复用的一种机制. 函数的基本语法: 返回类型 函数名 ( 参数类型 参 ...

  8. 黑马程序员:Java基础总结----泛型(高级)

    黑马程序员:Java基础总结 泛型(高级)   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 泛型(高级) 泛型是提供给javac编译器使用的,可以限定集合中的输入类型 ...

  9. 黑马程序员:Java基础总结----类加载器

    黑马程序员:Java基础总结 类加载器   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 类加载器 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个 ...

随机推荐

  1. Java 抽象类与接口总结

    一.为什么要使用抽象类?有什么好处? 抽象类是通用接口.不同的子类可以用不同的方法表示此接口.通用接口建立起一种基本形式,以此表示所有子类的共同部分. 必须覆写父类abstract抽象的方法  含有抽 ...

  2. SEO为什么要求网页设计师用DIV+CSS布局网页?

    问:SEO为什么要求网页设计师用DIV+CSS布局网页? 答:通常情况下,SEOer非常喜欢把一个网站做到最细节,在网页设计方面,有时与设计师沟通时,通常会问到:SEO为什么要求网页设计师用DIV+C ...

  3. VC++深入详解-第一章学习心得(二)

    前面介绍到了注册窗口,接下来进行窗口的创建,利用CreateWindow函数,结构如下 CreateWindowExW( DWORD dwExStyle, LPCWSTR lpClassName, / ...

  4. C语言实现双向链表删除节点、插入节点、双向输出等操作

    #include<cstdio> #include<cstdlib> typedef struct DoubleLinkedList { int data; struct Do ...

  5. AFNetWorking源码详解(二)

    来源:Yuzeyang 链接:http://zeeyang.com/2016/03/15/AFNetWorking-two/ AFHTTPSessionManager继承于AFURLSessionMa ...

  6. java数组 数组工具类Arrays

    一.数组 1.java有严格的数据类型限制,一个数组只能声明一个数据类型,存放同一种数据类型. 2.虽然只能存放一种数据类型,假设A , 如果数据类型B 继承A,依然能存放进入数组. 3.数组的初始化 ...

  7. 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览

    ### 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览 http://segmentfault.com/a/1190000002583569

  8. 基于bootstrap的datetimepicker插件

    1.当时使用的资源地址:http://www.bootcss.com/p/bootstrap-datetimepicker/ 2.如何让时间只显示到日期,不显示具体时刻 控制显示精度的是datetim ...

  9. Linux下安装、配置、授权、调优Mysql

    以前在linux已经安装了很多次的Mysql,但是时间间隔长了以后,安装步骤总是会遗漏,趁这次安装,做一下安装记录. 检查系统是否已经安装Mysql rpm -qa|grep -i mysql Mys ...

  10. 求职,找工作,平台大PK

    国内 猎聘网:www.lietou.com 拉钩网:Lagou.com 智联招聘:www.zhaopin.com 前程无忧:http://www.51job.com/ 中华英才网:chinahr.co ...