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
下一篇 2016-12-04

相关推荐

  • shell脚本编程和文件查找及压缩

    shell脚本编程 read:使用read来把输入值分配一个或多个shell变量     -p 指定要显示的提示     -t TIMEOUT     read 从标准输入中读取值,给每个单词分配一个变量   &nbsp…

    Linux干货 2016-08-18
  • Zabbix 发现功能中文文档

    说明:本文译自 zabbix 官方文档 Discovery 一节,包括 Network Discovery, Auto Registration和Low level discovery,同时对文章进行了补充以及更详细的说明。适用于Zabbix 2.0 版本。 发现包括三种类型: 网络发现 ( Network discovery) 主动客户端自动注册 ( Ac…

    Linux干货 2015-03-12
  • 快速运用NFS共享web页面

    环境:centos7.3最小化三台,前期准备关闭防火墙和selinux 目的:通过文件共享,使客户端访问web服务器时是同样的页面。 拓扑图: 优势:减少WEB服务器的压力。 一、安装软件 NFS、WEB1、WEB2: #yum install nfs-utils -y WEB1、WEB2: #yum install httpd -y 二、配置 NFS: #…

    2017-04-27
  • Keepalived+LVS(nginx)高可用详解

    一:前言   Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP);Keepalived的目的是模拟路由器的高可用,一般Keepalived是实现前端高可用,常用的前端高可用的组合有,就是我们常见的LVS+Keepalived、Nginx+Ke…

    Linux干货 2017-05-15
  • 我与Linux的第一次亲密接触

        作为一个新手,经过一周的学习,我对Linux目前有了些许的了解,从Linux的发展史中,开源共享精神深深的感染了我,也使得我对Linux的兴趣更加浓厚。对于一个一直翘计算机课的我来说,入门和基础是一项非常艰巨的任务,初期为了搭建学习的环境,也是费了不小的功夫,相信许多萌也对此有很大的感触,在这里,我来和大家分享一下如何去构建环境。…

    Linux干货 2017-03-26
  • 【26期】Linux第九周学习小总结

    本周带来的是慢慢的技术分享,有关于计划任务的分享,涉及的知识点主要是at和cron,crontab的详解,计划任务可以将任何脚本、程序或文档安排在某个最方便的时间运行,有利于我们的自动化运维,当某项任务多次重复,或者某个指定的时间点多次执行时,就可以使用计划任务方便我们的工作。

    2017-09-09

评论列表(1条)

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

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