vim编辑器

 

Linux文本编辑器vim

    Linux下的编辑器最常用的就是vim或者vi文本编辑。vi和vim编辑器的区别是vim是vi的改进版本,在vi编辑器的基础上上扩展了很多实用的功能。

vim的使用

用vim打开文件:
    vim [options] [file ..]
        +#:打开文件之后,直接让光标处于第#的行首
        +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

vim的工作模式及模式转换

vim在工作过程中有三种模式:
    1、编辑模式:也叫命令模式(进入编辑器后的默认模式),键盘操作常被理解为编辑命令。
    2、输入模式:在文本文件当中进行输入内容。
    3、末行模式:vim内置的命令行接口,可以执行vim的内置命令。

模式转换:
    1、从编辑模式转换为输入模式可以使用如下命令:
        i:insert,在光标所在处输入
        a:append,在光标所在处后方输入
        o:在光标所在处下方打开一个新行
        I:在光标所在行的行首输入
        A:在光标所在行的行尾输入
        O:在光标所在处上方打开一个新行

    2、从输入模式转换为编辑模式:按ESC键

    3、从编辑模式转换为末行模式:敲 ":" 即冒号

    4、从末行模式转换为编辑模式:按ESC键

        注:转换顺序, 输入-->编辑-->末行; 输入模式不能直接转换到末行模式

关闭文件

    需要切换到编辑模式后才能退出,在切换为编辑模式后键入以下命令即可进行相关操作:
        :q 退出
        :q! 强制退出,不保存此前的编辑操作
        :wq 保存并退出
        :x 保存并退出
        :w /PATH/TO/SOMEFILE 另存为其它路径

            注:编辑模式保存退出的快捷键:ZZ

光标跳转

    字符间跳转:
        h:左 
        l:右
        j:下 
        k:上
        #COMMAND:跳转由#指定的个数的字符

    单词间跳转:
        w:下一个单词的词首
        b:当前或前一个单词的词首
        e:当前或后一个单词的词尾
        #COMMAND:跳转由#指定的个数的单词

    行首行尾跳转:

        ^:跳转至行首的第一个非空白字符
        0(零):跳转至行首
        $:跳转至行尾

    行间跳转:
        #G:跳转至由#指定的行
        1G,gg:跳转至第一行
        G:最后一行

    句间跳转:
        ):跳到下一句
        (:跳到前一段

    段间跳转:
        }:下一段
        {:前一段

    翻屏:
        Ctrl+f:向文件尾部翻一屏
        Ctrl+b:想文件首部翻一屏
        Ctrl+d:向文件尾部翻半屏
        Ctrl+u:想文件首部翻半屏
        Eeter:按行向后翻

vim的编辑命令:

    字符编辑:
        x:删除光标所在处的字符
        #x:删除光标所在处起始的#个字符
        xp:交换光标所在处的字符与其后面的字符的位置

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

    删除命令:
        d:删除命令,可结合光标跳转字符,实现范围删除
        dd:删除光标所在处的行
        #dd:删除光标所在处的行起始的共#行

    粘贴命令:
        p:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的下方;否则粘贴在当前光标所在处的后方
        P:缓冲区中的内容如果为整行,则粘贴在当前光标所在行的上方;否则粘贴在当前光标所在处的前方

    复制命令:
        y:复制,工作行为相似与d命令
        yy:复制一整行
        #y:复制从当前行向下#行内容

    改变命令(change,c)
        编辑模式-->输入模式,实现删除操作
                cc:删除光标所在的行,并转换为输出模式

    可视化模式:    
        v:按字符选定
        V:按行选定
            通常结合编辑命令; d、c、y使用

    撤销操作:
        u:撤销此前的操作;
        #u:撤销此前的#个操作

    撤销此前的撤销:
        Ctrl+r

    重复执行前一个编辑操作:
        .(按点号)

vim末行模式:内建命令行接口

    1、地址定界
        :start_pos[,end_pos]
        #:特定的第#行,例如5即第5行
        .:当前行
        $:最后一行
        %:全文
        #,#:指定行范围,左侧为起始行,右侧为结束行
        #,+#:指定行范围,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量,例如3,+7
        /pattern/:从光标所在处起始向文件尾部第一个被模式多所匹配到的行
        /pat1/,/pat2/:从光标所在处起始,第一次有pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间所有行

        可同编辑命令一同使用,实现编辑操作

            w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中
            r /PATH/FROME/SOMEFILE:将指定的文件中的文本读取并插入至指定位置

    2、查找
        /PATTERN:从当前光标所在处想文件尾部查找能够被当前模式匹配到的所有字符串
        ?PATTERN:从当前光标所在处想文件首部查找能够被当前模式匹配到的所有字符串


    3、查找并替换
        s:末行模式的命令,使用格式
            s/要查找的内容/替换为的内容/修饰符
                  要查找的内容:可使用正则表达式
                  替换为的内容:不能使用正则表达式,但可以引用
                注:如果“要查找的内容”部分在模式中使用分组符号;在“替换为的内容”中使用后向引用,直接引用查找模式匹配到的全部文本,要使用&符号;

                  修饰符:
                  i:忽略大小写
                  g:全局替换,意味着一行中如果匹配到多次,则均替换

            可把分隔符(/)替换为其它非常用字符:
                s@@@
                s###

vim的多文件功能:即一次打开多个文件

    用vim打开多个文件:
        vim FILE1 FILE2 ...
    在文件中切换:
        :next   切换到下一个文件
        :prev   切换到上一个文件
        :first  切换到第一个文件
        :last   切换到最后一个文件
    退出所有文件:
        :wqall   保存所有文件并退出
        :wall    保存所有文件
        :qall    退出所有文件

vim的多窗口模式

    vim可以打开多个文件,亦可多个文件同时显示:
        vim  [-o|-O] FILE1 FILE2 ...

    选项:
        -o:水平分割窗口
        -O:垂直分割窗口
        在窗口间切换 ctrl+w+上下左右键

        注:单个文件也可以分割为多个窗口进行查看
            ctrl+w,s:水平分割窗口
            ctrl+w,v:垂直分割窗口

定制vim的工作特性

    需要在末行模式下设定,但仅对当前vim有效,如需永久有效则需如下设置:
        全局: /etc/vimrc
        用户个人:~/.vimsc

    窗口属性定义:
        1、行号
            显示:set number,简写为 set nu
            取消显示:set nonumber 简写为 set nonu
        2、括号匹配高亮
            匹配:set showmatch,set sm    
            取消:set nosm
        3、自动缩进
            启动:set ai
            取消:set noai
        4、高亮搜索
            启用:ste hlsearch
            取消:ste nohlsearch
        5、语法高亮
            启用:syntax on        
            取消:syntax off
        6、忽略字符大小写
            启用:set ic
            取消:set noic

 

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

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-12-04 20:16
下一篇 2016-12-04 20:59

相关推荐

  • 22期第8周课堂练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     2、IP地址的分类有哪些?子网掩码的表示形式及其作用   A类:第一段为网络号,后三段为主机号            网络号0 000 0000 – 0 111 1111…

    Linux干货 2016-10-09
  • LINUX课堂笔记(第一周)

    2018.03.05 LINUX: 切换虚拟终端:CTRL+ALT+F[1-6] 查看当前得终端设备命令:tty 查看内存: cat /proc/meminfo free -h 查看分区: cat /proc/partitions lsblk 查看CPU: lscpu cat /proc/cpuinfo 查看版本 cat /etc/centos-releas…

    Linux干货 2018-03-15
  • echo address

    echo address

    Linux干货 2016-08-08
  • 文本处理-三剑客-sed

    处理、编辑文本文件
    [option]… ‘script’ inputfile…

    2018-03-13
  • user相关的一些命令及用法

    前言            我们知道,当我们进入一家公司做运维方面的工作的时候,我们需要对公司的服务器进行监控管理,换句话说,我们需要一个身份来操作服务器。那么我们又知道,linux系统下拥有最高权限的管理员是Root,它无所不能,无所畏惧,那么公司肯定就是不会把这个账户交给你使用。那么就引出一个概…

    2017-07-22
  • LVS-几种负载方式的区别

    LVS的原理很重要,很重要。每一个知识点都要做到熟记与脑,谨记于心,张口就来。 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。 使用集群技术和Linux操作系统实现一个高性能、高可用的服务器. 很好的可伸缩性(Scal…

    Linux干货 2017-05-11

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-07 23:34

    文字描述如果能结合事例加以说明就更好了,加油!