vim编辑器使用详解

1.vi (virtual interface)文本编辑器

    文本编辑种类:

    行编辑器:sed

    全屏编辑器:nano vi

    vim vi-improved

    其他编辑器:

        gedit:简单的图形编辑器

        gvim:vim编辑器的图形版本

2.vim用法详解

(1)vim [option]..[file]..

        vim +# file 打开文件时光标在第#行行首

        vim +/pattern 打开文件后,光标在第一次匹配pattern行的行首

        vim + file 打开文件后,光标在最后一行行首

        vim -b file 二进制格式打开文件

        vim -m file 只读方式打开文件

        vim -d file1 file2…比较不同文件

        vim -e 直接进入ex模式

        文件存在,打开并显示其内容

        文件不存在,第一次编辑存盘后创建

实例:以root身份以只读方式打开/etc/shadow文件,且进入后,光标在第一行行首

2.png

1.png

3.vim的三种模式:

        命令模式(默认):移动光标,剪切粘贴文本

        插入模式:修改文本

        拓展命令模式:保存,退出等

        esc退出当前模式

        esc esc返回命令模式

4.模式的转换

    命令模式——>插入模式

        i:在光标所在处输入

        I:在光标所在行行首输入

        a:在光标所在处后边输入

        A:在光标所在行行尾输入

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

        O:在光标所在行上方打开一个新行

    插入模式——>命令模式

        esc

     命令模式——>拓展命令行模式

        :

    拓展命令行模式——>命令行模式

        esc

        锁定和解锁  ctrl+s    ctrl+q

5.关闭文件的方法

    命令行模式下:

        ZZ:保存退出

        ZQ:不保存退出

    末行模式下:

        :q不保存,直接退出

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

        :wq保存退出

        :x 保存退出

6.拓展模式下可做操作

    :q不保存,直接退出

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

    :wq保存退出

    :x 保存退出

    :w写入磁盘

    :r file读取指定文件到当前文件中

    :w file把当前文件内容保存到指定文件中

    :!command在该模式下执行命令

    :r!command 把命令执行结果读入当前文件

实例:在末行模式下执行w命令,并把执行结果读进光标所在行下一行

1470828150457880.png

1470828186538425.png

7.命令行模式下操作说明

    (1)光标移动

        字符间跳转:

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

            #command 指定一次跳转的字符数

        单词间跳转

            w:移动到下一个单词词首

            e:移动到当前词尾或下一个单词词尾

            b:移动到当前词首或上一个单词词首

            #command一次跳转单词数

        行首行尾跳转

            ^:跳转到非空行首

            0:跳转到行首

            $:跳转到行尾

        行间移动

            #G:移动到第#行    末行模式下:#    移动到#行

            G:移动到最后一行

            gg、G:移动到第一行

        句间移动

            ):下一句

            (:上一句

        段间移动

            }:下一段

            {:上一段

        当前页跳转

            H:当前页页首

            M:当前页中部

            L:当前页尾部

        翻屏操作

            ctrl+b :向上翻一页

            ctrl+f :向下翻一页

            ctrl+d:向下翻半页

            ctrl+u:向上翻半页

    (2)文件内容编辑

        字符编辑

            x:删除光标处字符

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

            xp:交换光标所在字符与其后边字符的位置

            ~:转换大小写

        替换命令

            r:替换光标所在字符

            R:切换成REPLACE模式

        删除命令

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

            d$:删除到行尾

            d^:删除到非空行首

            d0:删除到行首

            dw:删除到下一个单词词首

            de:删除到本单词或下一个单词词尾

            db:删除到本单词或上一个单词词首

            dd:删除光标所在行

            #dd:从光标所在行开始连续删除#行

        复制命令(用法类似于d)

            y

        粘贴命令

            p:如果粘贴内容为一整行,粘贴到光标所在行的下一行,否则在光标后边(和复制内容容量没关系)

            P(大写):如果粘贴内容为一整行,粘贴到光标所在行的上一行,否则在光标前边

        改变命令

            c:修改后切换成插入模式

            c$:光标所在到行尾删除重新编辑

            c^:光标所在到非空行首删除重新编辑

            c0:光标到行首删除重新编辑

            cw:光标所在到下一个单词词首删除重新编辑

            ce:光标所在到本单词词尾或下一个单词词尾删除重新编辑

            cb:光标所在到本单词词首或上一个单词词首内容删除重新编辑

            #command

            cc:删除当前行,并输入新内容

            #cc实现多行删除添加新内容(多行删除为一个空行,但可以添加多行内容)

    (3) 100iwang[esc] 粘贴wang100次

            <start position><command><end position>

            command:

                d 删除 ;y 复制; gU变大写; gu变小写

                例如

                0y$:从行头拷贝到行尾

实例:一文件内容如下所示,把第八行小写字母变为大写

5.png

6.png

发现黄色区域变为大写

    (4)撤销更改

            u:撤销最近的更改

            #u:撤销之前的#次修改

            U:撤销光标落在这一行后所作的全部更改

            ctrl+r:取消最近的撤销更改

            .:重复前边的操作

            #.:重复上一个操作#次

8.末行模式下操作说明  (地址界定编辑命令)

    (1)地址界定:start-position,end-position

            #:第#行

            #1,#2:从#1行到#2行

            #1,+#2:从#1行开始,再往后数#2个行

            如:2,+3表示2到5行

            .:当前行

            $:最后一行

            $-1:倒数第二行

            %:全文,相当于“1,$”

            /pat1/,/pat2/:从pat1第一次被匹配的行开始,到pat2第一次被匹配的行结束

            #,/pat/:从#行开始,到pat第一次被匹配的行结束

            /pat/,$:从pat第一次被匹配的行开始,到最后一行

    (2)编辑命令

            d:删除选定内容

            y:复制

            w file:保存到指定文件

            r file:读入指定文件

    (3)查找

            /pattern 向文件末尾查找

            ?pattern 向文件首部查找

            n:与命令同方向查找

            N:与命令反方向查找

实例:查找文件中的关键字“root”

7.png

    (4)查找并替换

            格式:s/要查找的内容/替换位的内容/修饰符

            要查找的内容:可使用模式

            替换位的内容:不可使用模式,但可以使用后向引用符\1,\2…;还可以使     用‘&’引用前边查到的整个内容

            修饰符:

                i:忽略大小写

                g:全局替换,默认情况下,仅仅替换第一次出现内容

                gc:每次替换前询问

            查找替换分隔符可用@、#替换

9.vim的寄存器

    有26个有名寄存器和一个无名寄存器,不同会话间共享

    用a…z表示有名寄存器,用”“寄存器“表示使用哪个寄存器,放在数字和命令之间

    如3"tyy表示复制三行到t寄存器中

    未指定,使用无名寄存器

10.以二进制方式打开文件

    vim -b binaryfile

    末行模式下,利用xxd转换为可读的16进制

    :%!xxd

    末行模式下,:%!xxd -r转换为2进制

实例:把/bin/cat换为16进制的

1470830150444609.png

1470830158375255.png

11.可视化模块

    v :面向字符

    V:面向行

    ctrl+v面向块

    可视化可以与移动键结合使用

    突出显示的内容可以被删除,复制,变更,过滤,搜索,替换。。。

12.多文件模式

    vim file1 file2 file3…

    :next

    :prev

    :first

    :last

    :wall

    :qall

    :wqall

13.使用多窗口

    (1)多文件分割

        vim -o|-O file1 file2…

        -o 水平分割

        -O垂直分割

        窗口切换:ctrl+w

    (2)单文件分割

        ctrl+w+s  水平分割

        ctrl+w+v 垂直分割

        ctrl+w+q 取消相邻窗口

        ctrl+w+o 取消去不窗口

        :wqall 全部退出

14.(1)配置文件:

            /etc/vimrc  全局配置文件

            ~.vimrc  用户个人配置文件

    (2)在vim末行模式下

            行号:

                set number(显示行号)

                set nonumeber(不显示行号)

            括号成对匹配

                set showmatch 简写set sm

                set nosm

            高亮搜索

                set hlsearch

                set nohlsearch

            语法高亮

                 syntax on

                 syntax off

            自动缩进

                set ai

                set noai

        忽略大小写

                set ic

                set noic

        文件格式

            fileformat=unix

            fileformat=dos

        :set   显示当前vim设置参数

        :set all: 显示全部配置参数

15.课后作业

      (1).复制/etc/profile文件到/tmp下,用查找替换方式删掉/tmp/profile行首的空白字符

1470831890438515.png

12.png

图中黄色部分即为删掉部分

(2)复制/etc/rc.d/init.d/functions到/tmp下,用查找替换方式在/tmp/functons文件中以空格为行首的行添加#号

13.png

14.png

(3)如何设置tab缩进4个字符

修改配置文件.vimrc如下

14.png

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

(0)
上一篇 2016-08-15 09:25
下一篇 2016-08-15 09:25

相关推荐

  • sed命令使用

    一、sed简介    sed是一种在线编辑器,一次处理一行内容。处理时,把当前处理的行存储在历史缓冲区,传给“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。sed主要用来自动编辑一个或…

    Linux干货 2016-08-12
  • 8.1-用户和组(作业篇)

     1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中。 [root@localhost ~]# tr a-z A-Z </etc/issue > /tmp/issue.out [root@localhost ~]#&n…

    Linux干货 2016-08-04
  • Sed文本文件工具的使用详解

    Sed文本文件工具的使用详解 一、概述 sed 工具实际上就是一个非交互式的编辑器,主要是为了处理文本而生的,我们知道处理文本的三剑客是 grep sed awk 我们之前学习过 grep 文本过滤工具,它的主要作用是为了过滤文本,而sed 工具也是过滤文本,只不过sed工具针对的是文件中的每一行,而且sed工具更加强大,下面还具体说明一下sed 工具的原理…

    Linux干货 2016-10-09
  • 重定向以及管道

    描述I/O设备的重定向

    Linux干货 2017-11-19
  • NTP服务器搭建

        1、NTP(Network Time Protocol)         在计算机世界中,NTP(Network Time Protocol,网络时间协议)被广泛用于对时间的统一性和准确性要求非常高的场景,是用来使网络中的各个计算机时间同步的一种协议。…

    Linux干货 2015-11-18
  • 网络模型知识点概括

       网络模型分层 应用层 网络进程访问表示层 数据表示会话层 主机间通信传输层 端到端连接网络层 数据传输   数据链路层 访问介质物理层 物理线缆二进制封包与解封从下至上封包加包头通过上层协议传给对方机器,对方机器接受后需要从上至下拆解包头,这个过程叫解封三种通讯模式单播广播组播局域网:由服务器-》交换机-》pc …

    Linux干货 2017-05-02