一、背景

  对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询。

二、vim入门

  1.启动vim,使用命令:vim fileName

    如果该文件存在,则打开并显示内容;如果文件不存在,则在第一次保存的时候创建新文件。

  2.vim的三种模式

    命令模式:可以移动光标、删除、复制、搜索。

    插入模式:通过输入"a"、"i"、"o"中任意一个字符,可以进入该模式来进行修改文件内容。

    扩展模式:通过输入":"字符进入该模式,可以进行退出、保存、查找替换等操作。(如果在插入模式可以按ESC键返回命令模式再进行该操作)。

  3.命令模式下移动光标

    使用"h"、"j"、"k"、"l"来进行向左、向下、向上、向右移动,或者使用方向键。

    "w"移动到下一个单词,"b"移动到上一个单词。

  4.命令模式下的删除、修改、复制操作。

    

  即:

    行:cc(修改)、dd(删除)、yy(复制)

    字符:cl(修改)、dl(删除)、yl(复制)

    单词:cw(修改)、dw(删除)、yw(复制)

  5.撤销操作

    "u",撤销最近一次的修改 undo

    "U",撤销所有修改

    "ctrl+r",取消最后一次的撤销,redo

  6.查找操作(扩展模式或命令模式下)

    "/keyword",向后搜索

    "?keyword",向前搜索

    "n",查找下一个

    "N",查找上一个

  7.粘贴

    "p或P":粘贴已复制、已修改或已删除的数据。(命令模式下被修改以及删除的数据会默认复制到剪切板)

    对于行数据,"P"粘贴到上一行,"p"粘贴到下一行。

    对于字符数据,"P"粘贴到字符左侧,"p"粘贴到字符右侧

  8.命令模式下的一些技巧

    "dtc",删除从光标到字符c之间的所有字符

    "rc",将光标下的字符替换成c字符

    "dw",删除光标所在的单词的从光标处到结尾的所有字符

    "ndd",删除光标开始往下n行数据,比如5dd。

    "nyy",复制从光标开始往下n行数据,比如3yy.

    "nx",删除从光标开始的n个字符,比如4x.

    "R",进入替换状态,按ESC键退出。

  9.退出、保存、进入扩展模式

     命令模式和插入模式按ESC键并输入":"进入扩展模式

     ":w",保存

     ":q",退出

     ":wq",保存并退出

     ":w!",强制保存

     ":q!",强制退出

     ":wq!",强制保存退出

三、vim编辑器使用进阶

  1.文件内定位(命令模式下)
        "G",跳转到文件最后一行
        "1G",跳转到文件的第一行
        "ctrl+d",往下滚动半屏
        "ctrl+u",往上滚动半屏

  2.屏幕定位相关(命令模式下)
        "H",跳转到本屏显示的第一行
        "M",跳转到本屏显示的中间一行
        "L",跳转到本屏显示的最后一行
        "z"+"Enter",使当前的行成为屏幕显示的第一行
        "z"+"-",使当前行成为屏幕的最后一行

  3.查找并批量替换(扩展模式下)
        通过sed来查找 ,":s/keyword/replaceWord/g"
            将当前行的所有keyword都替换成replaceWord,如果不加"/g"则只替换第一个keywords
          默认对当前行进行查找
           n1,n2,对文件的n1到n2行进行查找,如:1,10 s/a/123/g 将第一到第十行中的a替换成123
           1,$,对整个文件查找

  4.读取和保存(扩展模式下)
        ":r fileName" 将另一个file的内容读入到当前文件
        "1,20 w file" 将当前编辑文件的1-20行的内容写入到一个新的file中
        "1,$ w file"将整个文件写入一个新的file
        "1,20 w >> file" 将当前编辑文件的1-20行内容追加到file中

  5.设置(扩展模式下)
        1.":set",显示常用的配置选项
        2.":set all",显示所有的配置选项
        3.":set number",设置行号

四、总结

  通过本文的学习,我们对vim编辑器有了入门以及进阶的了解,当我们掌握了这些技巧以后,在linux下使用vim进行操作文本变得不再是难事,很爽有木有~,为了梦想,我一直在路上,你呢?

一段奇妙的vim编辑器之旅的更多相关文章

  1. VIM编辑器之常用命令

     分类: vim   目录(?)[-] 第一级 存活 第二级 感觉良好 第三级  更好更强更快 更好 更强 更快 第四级 Vim 超能力 在当前行上移动光标 0   f F t T 区域选择 acti ...

  2. Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好?

    Emacs和Vim:神的编辑器和编辑器之神, 到底哪个更好? 在这个蔚蓝色的星球上,流传着两大神器的传说:据说Emacs是神的编辑器,而Vim是编辑器之神. 一些人勇敢地拾起了Vim或Emacs,却发 ...

  3. 随处可编辑的编辑器之神VIM

    据说这世界上只有三种编辑器:Vim,Emacs 和 其他编辑器,其中 Vim 被称作编辑器之神,Emacs 被称作神的编辑器,当然,其他编辑器永远只能是其他编辑器. 拿一位 网友的话 来说,VIM 的 ...

  4. vim 让人爱不释手的编辑器之神

    VIM 基本介绍 vim诞生已有20多年,它常被人称之为编辑器之神,vim的操作理念可以说是独具一格而又出类拔萃,使用vim能极大的提升文本处理效率,因此熟练掌握vim应该是每个程序员都应该做到的事情 ...

  5. 编辑器之神VIM 总结(一) 基础部分

     版本号 说明 作者 日期  1.0  vim基础知识 Sky Wang 2013/06/19       概要 vim和emacs,一个是编辑器之神,一个是神一样的编辑器.他们被称是UNIX系统下的 ...

  6. 优测优社区干货精选|老司机乱谈编辑器之神——vim

    文 / 腾讯 吴双 前言 优测小优 有话说: 腾讯优测只有应用测试大神?不不不,我们还有各种研发大牛! *** vim 是一种信仰,我自从2004年有了这个信仰,已经12个年头了.本文介绍了学习vim ...

  7. 工欲善其事:编辑器之神Vim(一)

    本篇文章收集了Vim最常用和实用的一些命令,掌握这些命令就可以使用Vim了 本文仅列举个人认为常用的命令,本系列文章更像是自己的学习笔记,而不是VIM使用教程. 如果你想了解vim的更多,可以看看Co ...

  8. Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

    距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介 ...

  9. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...

随机推荐

  1. SDIBT 2345 (3.2.1 Factorials 阶乘)

    Description N的阶乘写作N!表示小于等于N的所有正整数的乘积.阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了.你的任务是找到阶乘最后面的非零位.举个例 ...

  2. 实例讲解Silverlight 初始控件如何获得焦点

    这个问题本来是在我实际的项目中遇到过的,但这其实是当初项目要求,要求一进入就要使得在用户名那个文字框中聚焦,而不是再用鼠标去点击获得焦点,后来自己费了点时间解决了.本来我没太注意就过去了,没想到在QQ ...

  3. 整理mianshi2

    1.性能优化相关https://www.cnblogs.com/cr330326/p/8011523.html 2.CountDownLatchjava共享锁实现原理及CountDownLatch解析 ...

  4. lis nlogn算法

    当前所在位的最长上升子序列只和前面一个字符有关 #include <iostream> #include <algorithm> using namespace std; ]; ...

  5. 怎样去写线程安全的代码(Java)

    使用多线程就可能会存在线程安全的问题.很多 java 程序员对写多线程都很挣扎,或者仅仅理解那些是线程安全的代码,那些不是.这篇文章我并不是详述线程安全,详述同步机制的文章,相反我只是用一个简单的非线 ...

  6. Excel函数vlookup

    最近整理业务文档,需要用到excel,按照教程,操作了20来分钟,却得不到结果. 看了视频,才知道,vlookup仅限关联选中区域的第一列关联,把要关联的行拷贝到第一列,解决. https://www ...

  7. 直接端口打印 支持USB接口的打印机吗?解决办法

    直接端口打印 支持USB接口的打印机吗?解决办法 www.MyException.Cn  网友分享于:2013-09-15  浏览:488次       直接端口打印 支持USB接口的打印机吗?问题如 ...

  8. Android-Kotlin-空值处理&字符串比较&常量

    空值处理: [案例一:] 1.Kotlin对控制处理很严格,默认就不能写null,否则编译都不通过: 描述Car汽车对象: package cn.kotlin.kotlin_base01 /** * ...

  9. [转载]持续交付和DevOps的前世今生

    作者/分享人:乔梁,20年IT老兵,腾讯公司高级管理顾问,敏捷和精益开发专家,持续交付领域先行者.曾就职于百度,国内多个知名互联网公司的企业教练. 历年QCon技术大会的讲师和专题出品人. 这是一个新 ...

  10. ASP.NET MVC 实现有论坛功能的网站(有iis发布网站)

    ASP.NET MVC. M 为Model模型层, V 为View视图层, C 为Controller控制层.要想使用MVC框架来写网站就需要了解M V C 的作用分别为哪些.给大家简单的介绍一下: ...