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

相关推荐

  • N26-第一周博客作业

    1.描述计算机的组成及其功能 完整的计算机系统由硬件和软件两部分组成。 现在大部分的计算机为冯诺依曼体系,主要有五个组成部分:运算器、控制器、存储器、输入设备、输出设备,以下为详细描述。(计算机的CPU由运算器、控制器和一二三层缓存等构成) 运算器:对数据进行算术运算和逻辑运算(对数据进行加工处理) 控制器:分析指令,控制协调输入、输出操作对内存的访问。 存…

    Linux干货 2017-01-02
  • EXT4文件系统的初步使用

    文件系统的类型多种多样,我们接触得比较多的当属Windows系统上的FAT32和NTFS。 而EXT文件系统(Extended filesystem)则是linux上常见的文件系统类型。 目前最新的版本是ext4,常见于CentOS6之中。 1.查看当前系统中有没有挂载使用中的EXT4文件系统,可以使用mount命令: 2.如何创建一个EXT4的文件系统(f…

    系统运维 2016-02-14
  • N22-第六周作业

    请详细总结vim编辑器的使用并完成以下练习题      vim是模式化的文本编辑器。在不同模式下,每一次按键的效果都不一样。vim有三种工作模式,分别是编辑模式,插入模式和末行模式。编辑模式是打开vim后的默认模式,用于查看文本或进行复制,粘贴,删除等编辑命令。插入模式是为了向文本中输入信息。末行模式是vim自带的命令行接口,能…

    Linux干货 2016-09-26
  • httpd功能配置之CGI程序

        httpd服务中有一个cgi-bin目录,此目录专门用于存放cgi脚本。CGI即网关通用接口,用于实现动态网页。下面简单编写一个CGI脚本来进行测试此功能:     1、在/var/www/cgi-bin/目录下创建一个脚本     2、重启服务     3、验证 &nb…

    Linux干货 2016-03-11
  • 计算机网络基础及常用工具

    Linux网络属性配置      计算机网络:      TCP/IP: 协议栈(使用)      ISO, OSI: 协议栈(学习)  MAC:Media Access Control      48bits:   &…

    Linux干货 2017-01-02
  • 马哥教育网络班21期+第12周课程练习

    httpd学习前知识必备: I/O类型 同步和异步 synchronous asynchronous  关注的是消息通知机制,如何通知调用者,站在被调用者的角度 同步:调用发出后不会立即返回,一旦返回即是最终结果 异步:调用发出后会立即返回消息,但不是最终结果,被调用者通过状态,通知机制,或回调函数处理结果 阻塞和非阻塞 block nonbloc…

    Linux干货 2016-08-15