文本编辑器vim概述与应用示例

文本编辑器vim概述与应用示例

文本编辑器概述

vim编辑器是一种易用、功能强大的文本编辑器,可以基于三种不同的模式对文本进行编辑,包括编辑模式、输入模式和末行模式。

  • 编辑模式

    • 模式转换

      i 表示在光标所在处插入
      a 表示在光标后方插入
      o 表示在光标所在处的下一行插入
      O 表示在光标所在处的上一行插入
      I 表示在光标所在行的行首插入
      A 表示在光标所在行的行尾插入
      :进入末行模式
    • 光标跳转

      字符间跳转:h(左)、j(下)、k(下)、l(右)
      单词间跳转:w(下一个单词词首)、b(当前单词词首)、e(当前单词词尾)
      行内跳转:0(当前行行首)、$(当前行行尾)、^(当前行非空白字符的行首)
      行间跳转:1G(第一行)、G(最后一行)、#G(第#行)
    • 翻屏

      ctrl+f 下一屏
      ctrl+b 上一屏
      ctrl+u 上半屏
      ctrl+d 下半屏
      enter 后一行
    • 编辑命令

      x(删除光标所在处的字符)、#x(删除从光标及向后的#个字符)
      rchar(以char字符替换当前光标处的字符)
      d(结合^、0、$、w、d、e实现范围删除)、dd(删除当前行)、#dd(删除当前行及之后的#行)
      y(结合^、0、$、w、d、e实现范围复制)、yy(复制当前行)、#yy(复制当前行及之后的#行)
      c(结合^、0、$、w、d、e实现范围删除并进入输入模式))
      p(如果复制的内容为整行,则粘贴在下一行行首,否则粘贴于光标的后方)
      P(如果复制的内容为整行,则粘贴在上一行行首,否则粘贴于光标的前方)
      v(按字符可视化选定)
      V(按行可视化选定)
      u(撤销此前的操作)、#u(撤销此前的#个操作)
      r(撤销此前的撤销)
  • 末行模式

    • 模式转换

      ESC 进入编辑模式
    • 地址定界与编辑命令结合

      .(当前行)、$(最后一行)、#(第#行)、%(全文)、/pattern/(模式匹配的行)、,(表示行范围)
      d、y、c、w(将指定的内容保存至指定的文件)、r(指定文件的内容插入指定位置)
    • 查找

      /PATTERN(向下查找匹配内容)、?PATTERN(向上查找匹配的内容)、n(与查找方向相同查找下一个)、N(与查找方向相反查找下一个)
    • 查找替换

      s/查找模式/替换内容/修饰符、修饰符(i 忽略大小写 g全部替换)、&(替换内容中使用&引用查找到的全部内容)
    • 退出

      q 退出、q! 不保存退出、wq 保存退出
  • 输入模式

    • 模式转换

      ESC 进入编辑模式
    • 直接操作

文本编辑器应用示例

  • 1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#

    cp -a /etc/rc.d/rc.sysinit  /tmp
      vim /tmp/rc.sysinit,在末行模式下输入%s/^[[:space:]]\+[^[:space:]]/#&/g
  • 2.复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符

    cp -a /boot/grub/grub.conf  /tmp
     vim /tmp/grub.conf,在末行模式下输入%s/^[[:space:]]\+//g
  • 3.删除/tmp/rc.sysinit文件中以#开头,且后面跟了至少一个空白字符的行的#和空白字符

    vim /tmp/rc.sysinit,在末行模式下输入%s/^#[[:space:]]\+\//g
  • 4.为/tmp/grub.conf文件中的前3行的行首加#号

    vim /tmp/rc.sysinit,在末行模式下输入0,3s/^/#/g
  • 5.将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1

    vim /etc/yum.repos.d/CentOS-Media.repo,在末行模式下输入%s/\(enable\|gpgcheck\)=0/\1=1/g

原创文章,作者:N27_xiaoni,如若转载,请注明出处:http://www.178linux.com/83537

(0)
N27_xiaoniN27_xiaoni
上一篇 2017-08-06
下一篇 2017-08-06

相关推荐

  • 采用二进制包安装mysql

    本文是在CentOS7系统平台下安装Mysql5.6.26版本数据库的操作说明,如有错误,请指正。 系统平台:CentOS-7-x86_64    数据库版本:mysql-5.6.26   Mysql镜像文件下载地址:http://dev.mysql.com/downloads/mirrors.html 本次演示的Mysql安装…

    Linux干货 2017-05-04
  • linux命令速记技巧

    linux命令速记技巧 linux命令有一定的命名规则,一个正常的coder在编码的过程中都会考虑命名的语义化,开发者对函数的命名一定也尽量遵循这个规律.了解目录所对应的英文全称有助于自己的记忆,理解记忆获得知识的留存率要远大于死记硬背.如果英文基础太差,小编建议先学好英文基本功再来学习这些命令. 命令的中文对照 命令 英文全称 中文释义 ls list 列…

    Linux干货 2017-03-25
  • Linux运维实战之6:挂载/卸载磁盘分区

    上次博文我们具体讨论了Linux系统中磁盘的分区及格式化( http://www.178linux.com/60811),本次博文我们具体来说说分区的挂载哈! 【问题引入】 已经格式化好的分区如何与系统现有的文件系统建立关联(如何使用新分区)? 新的磁盘分区创建完成并格式化之后需要挂载(或装入)到目录树上才能被使用。 何谓挂载/卸载? 【答】将某个…

    Linux干货 2016-12-04
  • N25_第五周

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;grep -E "^[[:space:]]+" /boot/grub2/grub.cfg 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;grep -E "^#[[:space:]…

    Linux干货 2017-01-08
  • 快速删除无用包组

    快速删除无用组 第一步: [root@cloud ~]# yum grouplist >> list.txt 第二步: 编辑 list.txt把需要留下来的删除 第三步: 创建脚本 remove.sh 运行 #/bin/bash # # while read…

    Linux干货 2016-06-09
  • inotify介绍及rsync + inotify 实时同步备份

    1、前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动备份,又可以结合ssh实现远程数据备份的安全,种种特性使他看起来相当优秀。但如果需备份数据十分庞大时,它的不足之处就显现出来了,比如每次执…

    Linux干货 2016-06-15

评论列表(1条)

  • 马哥教育
    马哥教育 2017-08-20 19:01

    VIM基本用法掌握后,可以尝试扩展一下高阶用法和一些插件功能。