linux中的vim

什么是vim:

    Linux 在命令行下的文本编辑器,很多个别软件的编辑接口都会主动调用vim,所以在 Linux 的系统中使用文字编辑器来编辑你的Linux参数配置文件,在 Linux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设置.所有的Unix Like系统都会内置vim文书编辑器,其他的文书编辑器则不一定会存在,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计;因为程序简单,编辑速度相当快速。

    vim 会依据文件的扩展名或者是文件内的开头信息,判断该文件的内容而自动的调用该程序的语法判断式,再以颜色来显示程序码与一般信息。也就是说,这个vim 是个“程序编辑器”!甚至一些Linux基础配置文件内的语法,都能够用vim来检查。


    vim是一个模式化的编辑器,分为编辑模式,输入模式,末行模式,当然模式的名称每个人都有自己的见解,红帽官方命名为,命令模式,编辑模式,扩展命令模式


    基本模式:又叫编辑模式,命令模式,以vim打开一个文件的时候就直接进入编辑模式了,在这个模式中, 你可以使用“上下左右”按键来移动光标,你可以使用“删除字符”或“删除整列”来处理文件内容, 也可以使用“复制、粘贴”来处理你的文件数据。

    输入模式:在一般指令模式中可以进行删除、复制、粘贴等动作,但是却无法编辑文件内容的! 要等到你按下“i, I, o, O, a,A, r, R”等任何一个字母之后才会进入输入模式。通常在Linux中,按下这些按键时,在画面的左下方会出现“INSERT或REPLACE”的字样,此时才可以进行编辑。而如果要回到编辑模式时, 则必须要按下“Esc”这个按键即可退出编辑模式。

    末行模式:在编辑模式当中,输入“:”,就可以将光标移动到最下面那一行。在这个模式当中,可以提供你“搜索数据”的动作,而读取、存盘、大量取代字符、离开vim、显示行号等等的动作则是在此模式中达成的!其实就是内置的命令行接口。


使用vim打开文件的正确姿势:直接vim命令后边跟上文件名直接就进入编辑模式了。

  vim [options] [file ..]:在vim后跟上选项可以指定光标所处的位置

    +#:打开文件后,直接让光变处于第#行首

    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的首blob.png  

        在编辑模式键入相对应的键位可以改变光标所在位置

            i:insert;在光标所在处输入

            a:append;在光标所在处的后方输入

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

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

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

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


   

关闭文件

    ZZ:保存并退出(在编辑模式)

    :q 退出(在末行模式)

    :q!强制退出,不保存此前的编辑操作(在末行模式)

    :wq保存并退出;(在末行模式)

    :w,q(在末行模式)

    :x保存并退出(在末行模式)

    :w/PATH/TO/SOMEFILE(在末行模式)


光标跳转:(在编辑模式)

    字符间跳转

    h,左

     j,下

     k,上

     l,右

     #cmd:跳转由#指定的个数的字符;

     单词间跳转

     w:下一个单词的词首;

     b:当前或前一个单词的词首

     e:当前或后一个单词的词尾

     #cmd:跳转由#指定的个数的单词;


行首行尾跳转(在编辑模式)

    ^:跳转至行首的第一个非空白符

    0:跳转至行首

    $:跳转至行尾

    行间跳转

    #G:跳转至由#指定的行

    1G:,gg:第一回

    :最后一行

    句间跳转

    )

    (

    段间跳转

    }

    {

翻屏:(在编辑模式)

    ctrl+f:向文件尾部翻一屏

    ctrl+b:向文件首部翻一屏

    ctrl+d:向文件尾部翻半屏

    ctrl+U:向文件首部翻半屏

    Enter:按行向后翻


vim的编辑命令

    字符编辑:(在编辑模式)

        x:删除光标所在处的字符

        #x:删除光标所在处起始#个字符

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

    替换命令:

        r:替换光标所在处的字符(后边要跟一个需要换的字符)

        r(char)


    删除命令:(在编辑模式)

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

        d$:

        d^:

        dw:

        de:

        db:

        dd:删除光标所在处的整行

        #cmd:删除光标所在处的行起始的共#行


    粘贴命令:(在编辑模式)

        p:缓冲区的内容如果为整行,则粘贴在当前光标所在行的下方,否则则粘贴至当前光标所在处的后方

        P:缓冲区的内容如果为整行,则粘贴在当前光标所在行的上方,否则则粘贴至当前光标所在处的前方

    复制命令:(在编辑模式)

        y:复制,工作行为相似与d命令;

        y$

        y^

        y0

        ye

        yw

        yb

        #cmd

        yy:复制一整行

        #yy:复制#行


改变命令:编辑模式–>输入模式,实现删除操作;     

    c^

    c$

    c0

    cb

    ce

    cw

    #cmd

    cc:删除光标所在出的行,并转换为输出模式

    #cc


其他编辑操作

    可视化模式:

        v:按字符选定

        V:按行选定

        结合编辑命令;d,c,y

    撤销操作

        u:撤销此前的操作

        #u:撤销此前的#个操作

    恢复此前的撤销操作:

        ctrl+r

    重复执行前一个编辑操作

        .


vim末行模式:内建的命令行接口

    (1):地址定界

        :start_pos[,en_pos]

        #:特点的第#行,例如5即第5行

        .:当前行

        $:最后一行

        #,#:指定行范围,左侧为起始行,右侧为结束行

        #,+#:指定范围行,左侧为起始行绝对编号,右侧为相对左侧行号的偏移量;例如3,+7

        .,$-1

        1,$

        %:全文

        /pattern/:从光标所在处起始第一次被模式匹配到的行

        /pattern1/,/pattern2/:从光标所在处开始,由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行和编辑命令

        一同使用,实现编辑作用

        d

        y

        c

        w /path/to/somefile:将范围内的文本保存至指定的文件中

        r /path/from/somefile:将指定的文件中的文本读取并插入至指定位置


    (2):查找

        /pattern:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;

        ?pattern:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串;

        n:下一个,与命令方向相同

        N:上一个,与命令文件相反


    (3):查找并替换

        s:末行模式的命令,使用格式;

        s/要查找的内容/替换为的内容/修饰符

        要查找的内容:可使用正则表达式:

        替换为的内容:不能使用正则表达式,但可引用

        如果“要查找的内容”部分在模式中使用分组符号:在“替换为的内容”中使用后向引用;

        直接引用查找模式匹配到的整个文本,使用&符号;

      修饰符:

        i:忽略大小写;

        g:全局替换,意味着一行中如果匹配到多次,则均替换;

        vim自带的练习教程:vimtutor

最后配上摘自鸟哥私房菜关于vim的按键说明,环境配置图和同学分享的VIM键盘图

blob.png

blob.png

blob.png

环境配置图

blob.png

VIM键盘图(这真真是太好了)

vim键盘图高清.png



原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/32290

(0)
上一篇 2016-08-11 09:38
下一篇 2016-08-11 11:28

相关推荐

  • 网卡别名和bonding——让你的网络接口更加稳定

    网卡配置文件: 1、IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE     IFACE:接口名称 2、路由的相关配置文件(默认无此文件):/etc/sysconfig/network-scripts/route-IFACE 3、配置文件/etc/sy…

    Linux干货 2016-09-05
  • M20-1 8月5号作业

    作业:    1、取本机IP地址;    2、取各分区利用率的数值;    3、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示;    4、/etc/rc.d/init.d/functions或/etc/rc.d/init.d/fu…

    Linux干货 2016-08-15
  • 马哥教育网络班第21期+第一周课程作业

    一、 描述计算机的组成及其功能     计算机主机包括:运算器,控制器,存储器,输入设备,输出设备 1、运算器:功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 2、控制器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对从控制器取来…

    Linux干货 2016-07-12
  • CentOS系统安装

    centos系统安装        安装程序:anaconda,Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自动安装的功能。此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序的功能是把位于光…

    Linux干货 2016-09-23
  • bash 的过程式和循环式的编写

           bash脚本的编写,对于Linux这个多用户,多任务的系统,有很大的帮助,脚本可以帮助我们定时执行任务,过滤文本,检查系统性能等等。下面我们来了解一下过程式和循环式脚本的编写。 使用read 命令来接受输入 使用read 来把输入值分配给一个或多个shell 变量:  &nb…

    Linux干货 2016-08-24
  • Linux的哲学思想

    Linux的哲学思想 一切皆文件  几乎把所有的资源系统抽象为文件形式:包括硬件设备,甚至通信接口等 由众多功能单一的程序组成:一个程序只做一件事,并且做好;组合小程序完成复杂任务  力求使程序精简凝练,出现地完成最核心的需求;尽量避免使其膨胀成为一个臃肿的程序,致使大部分代码很少被需要和执行。 小程序易于理解,维护,消耗系统资源较少,易…

    Linux干货 2017-07-03