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)
mengzhiqianmengzhiqian
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • 新的征程即将开始……

    新的征程,新的开始,开博祭旗篇!!!

    Linux干货 2016-12-26
  • GlusterFS测试报告-01

    一、GlusterFS基础环境的介绍 1、关于GlusterFS文件系统和架构的介绍 http://jingyan.baidu.com/article/046a7b3ef65250f9c27fa9d9.html 2、实验的目的 a. 利用多台性能较低并且老旧的服务器,实现企业的云盘功能 b. GlusterFS服务端和客户端的部署和配置 c. 实现Glust…

    Linux干货 2016-07-22
  • Linux Service and Security(Part 2)

    接PART 1 4、SSH端口转发:SSH会自动加密和解密所有SSH客户端与服务端之间的网络数据。但是,SSH还能够将其它TCP端口的网络数据通过SSH链接来转发,并且自动提供了相应的加密及解密服务,这一过程也被叫做“隧道(tunneling)”。telnet,SMTP,LDAP这些TCP应用均能够从中得益,避免了用户名、密码以及隐私信息的明文传输。同时,如…

    Linux干货 2016-10-09
  • Linux系统启动流程简介

    centos系统启动流程 本篇仅仅讲解centos5和6 centos7并不适用 Linux系统的组成部分:内核+根文件系统 内核功能: 进程管理 内存管理 网络管理 驱动程序 文件系统 安全功能 有以下目录结构的文件系统可以被识别为根文件系统,但根文件系统本身不存在 rootfs:/bin/ /sbin /etc/ /sys/…

    Linux干货 2016-09-10
  • 压缩解压缩 tar 主要掌握

    compress [-dfvcVr] [-b maxbits] [file …] -d: 解压缩,相当于 -c: 结果输出至标准输出,不删除原文件 单纯-c 会出乱码 所以 > .. -v: 显示详情 uncompress解压缩 zcat file.Z > file  ##没人用  因为压缩比不高  …

    Linux干货 2016-08-21
  • 用户及权限管理

     今天是学习马哥教育第四天,也是第一个博客作业,写一篇关于用户及权限管理的简介型的博客文章,作文水品有限,所以写出来有可能有病句或者意境有问题,请大家多多包涵。  首先,用户及权限管理,需要从2方面入手来说,首先来说用户管理。  何谓用户,这是马哥一上来就提到的问题,我简单的理解,用户其实就是一个人机交互的接口,人机交互的接口是…

    Linux干货 2016-09-15