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

相关推荐

  • Linux之函数

      Linux之函数     函数介绍函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。函数和shell程序比较相似,区别在于:Shell程序在子Shell中运行而Shell函数在…

    Linux干货 2016-08-25
  • N22-第5周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单…

    Linux干货 2016-12-05
  • rsyslog将日志记录于MySQL中,并用loganalyzer进行分析日志

    1、首先来安装lamp环境的支持,与其相关的软件包      # yum -y install rsyslog-mysql mariadb-server php php-mysql php-gd httpd       说明:rsyslog-mysql在数据库中生成一个库文件,但这个文件需…

    Linux干货 2016-10-23
  • ipvsadm配置命令

    Ipvsadm配置   ipvsadm/ipvs: 集群和集群之上的各RS是分开管理的; 集群定义 RS定义 ipvs:内核基本都自动编译上了 ~]# grep -i -C 10 “ipvs” /boot/config-VERSION-RELEASE.x86_64     支持的协议:…

    Linux干货 2017-05-17
  • 路由实验

    实验需求 使用两台Linux主机充当路由器,配置路由条目,让两台PC机互通 1.将两台Linux主机添加两块虚拟网卡 2.配置R1路由器网络属性     3.配置R1路由器网络属性     4.配置PC1主机IP地址(Linux主机) 5.配置PC2主机的IP地址(Windows) 6.测试,PC1和PC2可以互通,之…

    Linux干货 2016-09-09
  • N26 第八周作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥(network bridge) 网桥工作于物理层与数据链路层,在终端设备较多的局域网中可以用网桥设备将局域网分离为不同的冲突域(collision domain),减少网络冲突,提升网络传输效率 集线器(network hub) 集线器具有多个I/O端口,一个端口的输入信号…

    2017-02-25

评论列表(1条)

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

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