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)
M20-1马星M20-1马星
上一篇 2016-08-11
下一篇 2016-08-11

相关推荐

  • openssl基础应用

    参考http://www.178linux.com/2704 http://www.williamlong.info/archives/837.html 一、前言 什么是openssl?讲openssl之前我们先了解下什么是ssl?ssl是secure socket layer的简称,其使用对称加密解密,非对称加密解密(公钥加密解密),单向加密解密结合证书实…

    Linux干货 2015-09-27
  • Python修饰器的函数式编程

    Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小…

    Linux干货 2016-08-15
  • 网络知识

    网络知识 一、网络初识 1.网络概念  在计算机领域中,网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。 2.分类 按覆盖范围分: 局域网LAN(作用范围一般为几米到几十公里)。 城域网MAN(界于WAN与LAN之间)。 广域网WAN(作用范围一般为几十到几千公里)。 按拓扑结构分类: 总线型 …

    Linux干货 2016-09-01
  • 简述硬盘参数和ext2文件系统

    硬盘类型: HDD机械硬盘和SSD固态硬盘: HDD是现在最普通的硬盘,容量大,稳定,是存储数据的首选。SSD是现在新兴的硬盘,相比HDD,它的并发i/o高,传输速度可达HDD的几倍以上,无噪音低功耗,而且轻便防震,随着各大厂商发力,性价比也越来越高,要求性能高或者数据轻度使用者可以优先考虑SSD。   容量:存储数据的空间大小,一般来说HDD每G…

    Linux干货 2016-04-19
  • 创建CA证书

    创建CA证书 CA证书         CA 也拥有一个证书(内含公钥和私钥)。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。       &nb…

    Linux干货 2017-07-23