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-文件基本权限及特殊权限详解

    Linux文件基本权限及特殊权限详解 背景 Linux文件基本权限和特殊权限对于初学者很少烦恼,各种无法理解,所以在学到这一节时,将自己学到的以及自己的理解写出来以检查自己对这个部分的掌握情况。 什么是权限 在Linux里一切皆文件,所谓的权限就是用户对文件(目录也是以个文件)的操作范围,对文件的操作包括读、写和执行,用户对文件有不同的权限就能做相应的操作。…

    Linux干货 2017-07-22
  • N22期-第6周作业

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; cp /etc/rc.d/rc.sysint /tmp vim /tmp/rc.sysinit :%s@^[[:space:]]\+@#&@g 2、复制/boot/grub/grub.conf至/tmp目…

    Linux干货 2016-10-09
  • linux系统基础目录结构及功能说明

    linux系统基础目录结构及功能说明 [root@localhost /]# ls bin boot dev etc home host lib lib64 media mnt opt proc root run sbin srv sys tmp usr var /bin:所有用户可用的基本命令程序文件;/sbin:供系统管理使用的工具程序;/boot:引导…

    Linux干货 2018-03-04
  • 使用 nice、cpulimit 和 cgroups 限制 cpu 占用率

    Linux内核是一名了不起的马戏表演者,它在进程和系统资源间小心地玩着杂耍,并保持系统的正常运转。 同时,内核也很公正:它将资源公平地分配给各个进程。 但是,如果你需要给一个重要进程提高优先级时,该怎么做呢? 或者是,如何降低一个进程的优先级? 又或者,如何限制一组进程所使用的资源呢? 答案是需要由用户来为内核指定进程的优先级 大部分进程启动时的优先级是相同…

    Linux干货 2015-02-14
  • 高级文件系统管理

    高级文件系统管理 配置配额系统 在内核中执行 以文件系统为单位启用 对不同组或者用户的策略不同 根据快或者节点限制,软限制 soft 硬限制hart 初始化 分区挂载选项 usrquota,grgquota 初始化数据库:quotacheck 执行配置 开启或者取消 quotaon ,quotaoff 直接编辑配额 edquota username 在she…

    Linux干货 2017-05-03
  • 加密算法、https、dns(主从、视图)

    第九周 2018/1/29

    2018-01-29