vi与vim的使用

一、引言

    在Linux中,vi(Visual Interface)是标准的编辑器,功能强大到不逊于任何最新的编辑器。无论在Linux中还是在Unix中,vi的使用方法都是完全相同的。vim(Vi Improved)在vi的基础上增加了很多新特性。

二、模式

    vim的工作模式有三种,用户在不同模式下可以进行不同的操作

        命令模式:控制屏幕光标的移动,字符、字或行的删除、移动和复制

        插入模式:插入模式可以对文本内容进行文字输入

        命令扩展模式:保存,退出等命令的输入

    模式切换

        ESC键进入命令模式

        命令模式下,“:”冒号进入命令扩展模式

        命令模式 –> 插入模式 

        i    insert, 在光标所在处输入 

        I    在当前光标所在行的行首输入 

        a    append, 在光标所在处后面输入 

        A    在当前光标所在行的行尾输入 

        o    在当前光标所在行的下方打开一个新行

        O    在当前光标所在行的上方打开一个新行

        锁定:Ctrl+s

        解锁:Ctrl+q

        (锁定过程中,可以接受来自键盘的输入,但是不显示在屏幕上)

三、打开与关闭文件

    打开文件:vim [OPTION]…FILE…

        +#    打开文件后,光标位于第#行的行首

        +/PATTERN    打开文件后,光标位于第一个匹配到的行

        +    光标位于最后一行

        -b    以二进制的方式打开文件

        -m    只读打开文件

        -e    直接进入命令扩展模式

    

    关闭文件:

        扩展模式

            :q 退出 :

            q! 强制退出,丢弃做出的修改 

            :wq 保存退出 

            :x 保存退出 

        命令模式

            ZZ:保存退出

            ZQ:不保存退出

四、扩展模式

创建一个命令提示符,位于屏幕左下角、

    常用命令:

        w    写(存)磁盘文件 

        wq    写入并退出 

        x    写入并退出 

        q    退出 

        q!    不存盘退出,即使更改都将丢失 

        r FILE    读文件内容到当前文件中 

        w FILE    将当前文件内容写入另一个文件

        !command    强制执行命令 

        r!command    在vi中临时执行命令

    地址定界

        :/PATTERN1/,/PATTERN2/ 

        #    指定行

        #,#    起始行到结束行

        #,+#    指定行开始到向下的一些行

        .    当前行

        $    最后一行

            $-1    倒数第二行

        %    全文,所有行,等于1,$

    编辑命令:

        d    删除匹配的内容

        y    复制匹配的内容

        w FILE    将范围内的行另存至指定文件中

        r FILE    在制定位置插入指定文件中的所有内容

    查找并替换:

    s/PATTERN/STRING/修饰符(分隔符可以改变)

    修饰符:

        i    忽略大小写

        g    全局替换,否则默认情况下,每行只替换第一次出现的字符

        gc    全局替换,替换前询问是否替换

五、命令模式

字符间的跳转:

    h:左    l:右    j:下    k:上 

单词间的跳转

    w:下一个单词词首

    e:当前或下一个单词的词尾

    b:当前或前一个单词的词首

页的跳转

    H:页首

    M:当前页中间行

    L:页底

行首行尾跳转:

    ^    跳转至行首的第一个非空白字符

    O    跳转至行首

    $    跳转至行尾

行间移动:

    #G(或扩展模式:#)    跳转到第#行

    G    最后一行

    1G或gg    第一行

句间移动    

    ):  下一句        (:  上一句

段落间的移动

    }:  下一段        {:上一段

翻屏操作

    Ctrl+f: 向文件尾部翻一屏

    Ctrl+b: 向文件首部翻一屏

    Ctrl+d: 向文件尾部翻半屏

    Ctrl+u:向文件首部翻半屏

字符编辑

    x: 删除光标处的字符; 

    #x: 删除光标处起始的#个字符 

    xp: 交换光标所在处的字符及其后面字符的位置 

    ~:转换大小写

替换命令(r, replace) 

    r: 替换光标所在处的字符 

    R:切换成REPLACE模式

删除命令: 

    d: 删除命令,可结合光标跳转字符,实现范围删除; 

    d$: 删除到行尾 

    d^:删除到非空行首 

    d0:删除到行首 

    dw:删除下一个单词 

    de:删除当前单词

    db:删除前一个单词

    dd: 删除光标所在的行 

    #dd:多行删除 

    D:从当前光标位置一直删除到行尾,留空行,等同于d$

复制命令

    y:复制,用法同d命令

粘帖命令

    p:缓冲区存的如果为整行,则粘贴当前光标所在行的下 方;否则,则粘贴至当前光标所在处的后面 

    P:缓冲区存的如果为整行,则粘贴当前光标所在行的上 方;否则,则粘贴至当前光标所在处的前面

六、vim的寄存器

    vim中有26个命名寄存器和一个无名寄存器,常存放不同的剪贴板内容,可以在不同的会话中共享。分别用a-z表示,例如:3"tyy表示复制三行到寄存器t中,"tp则表示将寄存器t中的内容粘贴。若未指定寄存器,将使用无名寄存器。

    vim中还有10个数字寄存器,用0-9表示,0表示最近复制的内容,1表示最近删除的内容。当新的文本变更或删除时,1会转存到2中并以此类推。数字寄存器不能在不同会话中共享。

七、多文件模式

vim FILE1 FILE2 FILE3 … 

    :next    下一个 

    :prev    前一个 

    :first    第一个 

    :last    最后一个 

    :wall    保存所有 

    :qall    退出所有 

    :wqall    保存所有并退出

八、多窗口模式

    多文件分割 

        vim -o|-O FILE1 FILE2 … 

        -o: 水平分割 

        -O: 垂直分割 

        在窗口间切换:Ctrl+w, Arrow 

    单文件窗口分割: 

        Ctrl+w,s: split, 水平分割 

        Ctrl+w,v: vertical, 垂直分割 

        Ctrl+w,q:取消相邻窗口 

        Ctrl+w,o:取消全部窗口 

        :wqall 退出

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

(0)
上一篇 2016-08-11 09:37
下一篇 2016-08-11 09:38

相关推荐

  • 马哥门徒Linux运维课程笔记-第1天03讲 计算机及操作系统基础

    第1天03讲 计算机及操作系统基础   ◆  市面上主流Unix厂商简介         由于Unix系统的流行,当时行业中的主流大厂商都根据SysV或BSD开发了自己的版本,主要分类如下:       ●  IBM公司根据自己CPU硬件架…

    Linux干货 2015-03-23
  • Linux网络属性配置—ifcfg命令家族

    ifcfg命令家族:ifconfig,route,netstat 1、NAME               ifconfig – configure a network interface       SYNOPSIS   &n…

    Linux干货 2016-11-27
  • keepalived配置

    前两个配置做完实验没截图,后面的实验有图片。 keepalived的的单独设置 1.确保时间同步 ntpdate 10.1.0.1 2.保证/etc/hosts文件可以解析到 3.本机配置ssh-keygen -t rsa -P ''  ,然后ssh-copy-id -i .ssh/id_rsa.pub root@10.1.44…

    Linux干货 2016-11-11
  • Linux磁盘管理基础

    Linux磁盘管理基础 硬盘结构 文件系统与MBR、GTP 磁盘管理三步骤:分区、格式化、挂载 mount 硬盘结构 硬盘的基本组成材质是盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道,不同盘片相同半径的磁道所组成的圆柱称为柱面,每个磁道被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存…

    Linux干货 2016-09-01
  • linux高级文件管理系统

    磁盘配额:    linux是一个多用户的系统,磁盘配额是分配给每个用户的磁盘可用空间的限制。每一用户只能使用最大配额范围内的磁盘空间。root是不受配额限制的,只有普通用户才受限制。   Quota是在RedHatlinux下实现linux磁盘配额的工具,它支持单独的挂载文件系统,而不是一个目录。quota默认是安装的,如果没…

    Linux干货 2016-09-02
  • 0806文本处理工具

    ———- 文件查看工具 ———- cat:    cat [OPTION]… [FILE]…   //查看文本文件内容,一般后面跟文件名(相对路径),或者是文件名(绝对路径) -n 加行号 -b 加行号,…

    Linux干货 2016-08-07