vim的简介与使用

      vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
      vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。

打开文件

    # vim [OPTION]… FILE…
    +#: 打开文件后,直接让光标处于第#行的行首
    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
    vim + file 直接打开file,光标在最后一行
    vim –b file 二进制方式打开文件
    vim –d file1 file2… 比较多个文件
    vim -m file 只读打开文件
    ex file 或vim –e 直接进入ex模式
    如果该文件存在,文件被打开并显示内容
    如果该文件不存在,当编辑后第一次存盘时创建它

命令模式–> 插入模式
    i: insert, 在光标所在处输入
    I:在当前光标所在行的行首输入
    a: append, 在光标所在处后面输入
    A:在当前光标所在行的行尾输入
    o: 在当前光标所在行的下方打开一个新行
    O:在当前光标所在行的上方打开一个新行

    锁定和解锁:CTRL+s,Ctrl+q

关闭文件
    扩展模式:
    :q 退出
    :q! 强制退出,丢弃做出的修改
    :wq保存退出
    :x 保存退出
命令模式
    ZZ: 保存退出
    ZQ:不保存退出
扩展模式
    按“:”进入Ex模式
    创建一个命令提示符:,处于底部的屏幕左侧
    命令:
        w写(存)磁盘文件
        wq写入并退出
        x 写入并退出
        q 退出
        q!不存盘退出,即使更改都将丢失
        r filename 读文件内容到当前文件中
        w filename 将当前文件内容写入另一个文件
        !command
        r!command
命令模式光标跳转
    字符间跳转:
        h: 左l: 右j: 下k: 上
        #COMMAND:跳转由#指定的个数的字符;
    单词间跳转:
        w:下一个单词的词首
        e:当前或下一单词的词尾
        b:当前或前一个单词的词首
        #COMMAND:由#指定一次跳转的单词数
    当前页跳转:
        H:页首M:页中间行L:页底

命令模式光标跳转
    行首行尾跳转:
        ^: 跳转至行首的第一个非空白字符;
        0: 跳转至行首
        $: 跳转至行尾
    行间移动:
        #G、扩展模式:# :跳转至由#指定行
        G:最后一行
        1G, gg: 第一行
    句间移动:
        ):下一句(:上一句
    段落间移动:
        }:下一段{:上一段
    命令模式翻屏操作
        Ctrl+f: 向文件尾部翻一屏
        Ctrl+b: 向文件首部翻一屏
        Ctrl+d: 向文件尾部翻半屏
        Ctrl+u:向文件首部翻半屏
        命令模式操作
    字符编辑:
        x: 删除光标处的字符;
        #x: 删除光标处起始的#个字符
        xp: 交换光标所在处的字符及其后面字符的位置
    :转换大小写
    替换命令(r, replace)
        r: 替换光标所在处的字符
        R:切换成REPLACE模式
命令模式操作
    删除命令:
        d: 删除命令,可结合光标跳转字符,实现范围删除;
        d$: 删除到行尾
        d^:删除到非空行首
        d0:删除到行首
        #COMMAND
        dd: 删除光标所在的行
        #dd:多行删除
        D:从当前光标位置一直删除到行尾,留空行,等同于d$
命令模式操作
    复制命令(y, yank):
        y: 复制,行为相似于d命令
        y$
        y0
        y^
        ye
        yw
        yb
        #COMMAND
        yy:复制行
        #yy: 复制多行
        Y: 复制整行
命令模式操作
    粘贴命令(p, paste):
        p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
        P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
命令模式操作
    改变命令(c, change)
        c: 修改后切换成插入模式
命令模式–> 插入模式
        c$
        c^
        c0
        cb
        ce
        cw
        #COMMAND
        cc:删除当前行并输入新内容
        #cc:
        C:删除当前光标到行尾,并切换成插入模式
命令模式
        100iwang [ESC] 粘贴“wang”100次
        <start position><command><end position>
        Command:
        y 复制、d 删除、gU变大写、gu变小写
    例如0y$ 命令意味着:
        0 →先到行头
        y →从这里开始拷贝
        $ →拷贝到本行最后一个字符
        ye 从当前位置拷贝到本单词的最后一个字符
扩展模式:地址定界
    地址定界
        :start_pos,end_pos
        #: 具体第#行,例如2表示第2行;
        #,#: 从左侧#表示行起始,到右侧#表示行结尾
        #,+#: 从左侧#表示的行起始,加上右侧#表示的行数
        :2,+3 表示2到5行
        .: 当前行
        $: 最后一行
        .,$-1 当前行到倒数第二行
        %:全文, 相当于1,$
    扩展模式:地址定界
        /pat1/,/pat2/
        从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
        #,/pat/
        /pat/,$
使用方式:后跟一个编辑命令
        d
        y
        w file: 将范围内的行另存至指定文件中
        r file:在指定位置插入指定文件中的所有内容
扩展模式:查找
    查找
        /PATTERN:从当前光标所在处向文件尾部查找
        ?PATTERN:从当前光标所在处向文件首部查找
        n:与命令同方向
        N:与命令反方向
扩展模式:查找并替换
        s: 在扩展模式下完成查找替换操作
        格式:s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用“&”引用前面查

找时查找到的整个内容
    修饰符:
        i: 忽略大小写
        g: 全局替换;默认情况下,每一行只替换第一次出现
        gc:全局替换,每次替换前询问
    查找替换中的分隔符/可替换为其它字符,例如
        s@/etc@/var@g
        s#/boot#/#i
    命令模式:撤消更改
        u撤销最近的更改
        #u撤销之前多次更改
        U撤消光标落在这行后所有此行的更改
    按Ctrl-r重做最后的“撤消”更改
        . 重复前一个操作
        n.重复前一个操作n次

1、复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的行首的空白字符

cp -rpf /etc/profile /tmp 复制文件到tmp目录下

11.jpg

2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号

 12.jpg

3、如何设置tab缩进为4个字符?

:模式ts=4

4、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

 14.jpg

5、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

15.jpg

 

 

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

(0)
msj77539273msj77539273
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • 文本处理工具-习题

    1 、找出ifconfig 命令结果中本机的所有IPv4地址 [root@centos7 ~]# ifconfig |head -2 |tail-1 |cut -dn -f2 |cut -d" " -f2 2 、查出分区空间使用率的最大百分比值 [root@centos7 ~]# df |cut -c44-46 |sort -n|tail…

    Linux干货 2016-08-15
  • Linux用户管理相关

    Q1列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@radio_freshman ~]# who root     tty1         201…

    Linux干货 2016-11-13
  • 重构与模式:改善代码三部曲中的第三部

    一、改善代码的三部曲    《设计模式》-> 《重构》-> 《重构与模式》。也就是设计->重构->重构出新设计。    《设计模式》主要详细说明20几种模式,为我们带来了常见设计问题的经典解决方案,从而改变了整个面向对象开发的面貌。为设计而著。    《重构》改善既有代码的设…

    Linux干货 2015-04-07
  • rpm数据库损坏 不能使用正常使用yum的处理方法

           不知道有没有跟我一样的小伙伴,在使用yum安装软件时,发现无法正常使用yum安装软件包,下面出现几句英语提示。在使用rpm时也无法正常的使用。其实 是rpm数据库崩溃导致的 下面就简单的介绍一下怎么回复,让其正常的工作,很简单几个命了即可。 1. 出现错误提示,这时我们需要认真的阅读下面的提示,不要乱找原…

    Linux干货 2017-06-13
  • 十.Linux博客-2016年8月12日变量、算术表达式、测试

    格式说明: 操作 概念 命令 说明及举例 十.变量、算术表达式、测试 bash -n +脚本 检查语法错误 .bash_profile 配置文件PATH=$PATH:$HOME/bin:. 加.方便但不安全 unset name 删变量name 小驼峰 第一个单词字母小写,以后单词首字母大写大驼峰 每一个单词首字母都大写 set…

    Linux干货 2016-08-24
  • lamp的搭建

    方法一编译安装amp:   1.系统环境:CentOS 6,7       CentOS6:apr,apr-util的版本为1.3.9,不适合httpd-2.4    CentOS7:apr,apr-util的版本为1.4+2.开发环境需要安装:    Developm…

    Linux干货 2016-10-16