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

相关推荐

  • 操作系统—Systemd

    Systemd 概述:       CentOS 6和之前版本采用SysVinit的系统启动进程管理体系,一般用户都可通过在/etc/inittab文件的配置,来个性化自己的系统启动序列。但也经常会由于特殊环境的硬件等关系问题,造成其串行的启动进程控制流,因为可能任务的阻塞而影响启动过程。     &nbsp…

    Linux干货 2016-09-24
  • 初入LINUX之首周总结及虚拟机的安装

    一.初入LINUX   1.在接触LINUX之前,先了解了计算机的系统组成: 2.服务器是计算机的一种,是网络中为客户端计算机提供各种服务的高性能的计算机,服务器在网络操作系统的控制下,将与其相连的硬盘磁带,打印机及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发布及数据管理等服务 。 3.服务器的三大操作系统:①w…

    2017-05-20
  • Linux iptables配置应用

                    Linux iptables配置应用 概述:    Linux的防火墙体系主要工作在网络层,只对tcp/ip数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux的防火墙体系基于内核编码实现,因…

    系统运维 2016-11-18
  • zabbix 自动注册(registration)实例

    原理: Zabbix_agnetd ==> Zabbix_server 【agnet自动发数据到server端】 实现目的:zabbix 根据计算机名称识别如(XLH-PROD-XXX)条件,自动添加相关服务器(组group+相关监控模板)  部署步骤 1.创建新的模板,主机组 1.1 新增或模板【组态】【模板】手选一个模板 如果已…

    Linux干货 2016-09-15
  • 用户和组

    一、概述   Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。   用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。 &nbsp…

    Linux干货 2016-10-22
  • 第九周:shell脚本之判断练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i LoginUser=0 declare -i NologinUser=0 while r…

    Linux干货 2016-11-21