码迷,mamicode.com
首页 > 系统相关 > 详细

菜鸟的Linux苦逼之路4 vim编辑器

时间:2016-07-25 16:42:37      阅读:343      评论:0      收藏:0      [点我收藏+]

标签:linux

vim编辑器

    我们计算机的编辑器分为两类

     1,文本编辑器

        文本编辑器编辑纯ASICLL文档,没有任何多余的修饰符

     2,字处理器

        字处理器包括word文档、wps里面的字处理工具,里面有很多修饰符,但是修饰符和文件内容没有关系,不过修饰符却是文档数据的有效组成部分。


    Linux的重要哲学思想之一:使用纯文本文件来保存软件的配置信息,一切皆文件。

    

    Linux的编辑器有nano全屏编辑器、sed行编辑器以及最常用的vi/vim编辑器。


    vi(visual interface->可视化接口)编辑器

    vim编辑器->vi improved:有语法着色功能。

        vim是一种全屏编辑器,模式化的编辑器(不同的模式对应着不同的功能)。

    vim的模式(用的最多的模式主要有三种):

        ->编辑模式(命令模式):打开编辑器后默认所处的模式,此时可以编辑整个文档。

        ->输入模式:往文件中输入内容的模式

        ->末行模式:在整个屏幕的最下方(而不是文件的最后一行),键入一些编辑命令的模式。


    vim的用法

    1,打开文件

    用法格式:vim filename

    ->vim /path to /somefile:打开单个文件,文件的父目录必须存在,文件的基名存不存在无所谓,存在就打开,不存在的话就相当于是新建文件。

    ->vim +# filename:打开文件后直接让光标处于文件的第#行上。

    ->vim + filename:打开文件后直接让光标处于文件的最后一行。

    ->vim打开文件的时候还支持使用模式:

      vim +/pattern filename:定位到第一次被pattern匹配到的行的行首。

    打开文件后默认处于编辑模式,模式与模式之间是可以相互转换的。

    技术分享

    模式转换:

        编辑模式-->输入模式:

        i(insert):表示在当前光标所在字符的前面转换为输入模式。

        I:表示在当前光标所在行的行首转换为输入模式。

        a(append):表示在当前光标所在字符的后面转换为输入模式。

        A:表示在当前光标所在行的行尾转换为输入模式。

        o:在当前光标所在行的下方新建一行,并转换为输入模式。

        O:在当前光标所在行的上方新建一行,并转换为输入模式。

        输入模式-->编辑模式:

        Esc键

        编辑模式-->末行模式:

        只需要一个冒号:即可。

        在末行模式中:

        ->10d:删除第10行

        ->10,20d:删除第10到第20行

        ->set nu:显示行号

        ->还可以直接执行shell命令,格式:! shell命令,再按一次回车键可以再次回到之前的界面。

        末行模式-->编辑模式:

        Esc键

    

        输入模式和末行模式彼此之间不可以相互转换,必须要通过编辑模式进行转换。


    2,关闭文件

        一般在编辑模式下或者是末行模式下完成关闭文件的功能。

        (1)末行模式下:

            ->q:在文件没有发生更改得情况下不保存退出

            ->wq:保存并推出

            ->q!:不保存,强行退出

            ->w:保存文件、存盘,只读文件修改之后无法保存(这一点对管理员不生效)

            ->w!:强行保存(只有管理员才可以这样做)

            ->x:保存退出,相当于wq

        (2)编辑模式下:

            ->ZZ:保存并退出

    

    3,移动光标

        在编辑模式下移动光标

        (1)逐字符移动光标:

            ->h:向左移动光标

            ->l:向右移动光标

            ->j:向下移动光标

            ->k:向上移动光标

            ->支持#功能:#h,l,j,k

        (2)逐单词移动光标

            w->移至下一个单词的词首

            e->如果光标不在当前单词的词尾,得先移至当前单词的词尾,然后再移至下一个单词的词尾

            b->如果光标不在当前单词的词首,得先移至当前单词的词首,然后再移至下一个单词的词首

            ->支持#功能:#w,e,b

        (3)行内移动

            0->移动至行首(绝对行首)

            ^->移动至行首的第一个非空白字符

            $->移动至绝对行尾

        (4)行间移动

            #G->直接移动至第#行

            G->移动至最后一行 

        

            在末行模式下进行行间移动:#->直接移动至第#行

    

    4,翻屏操作

        (1)Ctrl+f:向下翻一屏

        (2)Ctrl+b:向上翻一屏   

        (3)Ctrl+d:向下翻半屏

        (4)Ctrl+u:向上翻半屏


    5,编辑命令

        (1)删除或单个字符

            ->x:删除光标所在处的单个字符

            ->#x:删除光标所在处及向后的共#个字符

        (2)删除命令d

            ->要和移动命令组合使用,可以指定删除多少内容

                #d跳转符:删除跳转符指定的#个内容

            ->dd:删除当前光标所在行

            ->#dd:删除包括当前光标所在行的#行

        

         末行模式下:startaddress,endaddress删除范围内的所有行

    

        (3).->表示当前行

           $->表示最后一行

           +#->向下的#行


         vim最近被删除的n个内容,都不会立即被清空,而是保存在内存的缓冲区里面,可以恢复,还可以撤销此前的编辑操作,vim还可以进行剪切操作。


    6,粘贴命令p(paste)

        p->如果删除的或复制的为整行内容,则粘贴至光标所在行的下方,如果复制或粘贴的内容为非整行,则粘贴至光标所在字符的后面。

        P->如果删除的或复制的为整行内容,则粘贴至光标所在行的上方,如果复制或粘贴的内容为非整行,则粘贴至光标所在内容的前面。


    7,复制命令y

        用法同删除命令d


    8,修改命令c

        先删除内容,再转换为输入模式

        用法同删除命令d

    

    9,替换命令r

        功能:直接将指定内容替换为某个字符

        R->直接进入替换模式:直接将字符替换为用户所键入的内容。


    10,撤销编辑操作命令u

        ->u(undo):撤销前一次的编辑操作

        ->连续按u可撤销此前的n次操作


        vim编辑器一般只在它的内存缓冲区中保存最近50次的操作,最多撤销最近50次的编辑,也支持#u操作。

        还原最近一次的撤销操作(防止勿撤销):Ctrl+r


    11,重复前一次的编辑操作命令.


    12,可视化模式

        ->v或者V命令

            v:按字符选取,选取光标所在的字符

            V:按矩形块选取,选取光标所在的行


    13,查找功能(支持正则表达式)

        在末行模式下

        ->/pattern:从文件首部向文件尾部查找

        ->?pattern:从光标所在位置处向文件首部查找

        

        n:移动至下一个匹配到的字符

        N:移动至上一个匹配到的字符


    14,查找并替换

        只能在末行模式下使用。

        用法:和sed命令一模一样

            s命令,先定界再替换

        格式:ADDR1,ADDR2s@pattern@string@gi

            ->g:表示全局替换

            ->i:表示忽略字符大小写

            g和i可以同时使用

            1,$:表示全文查找并替换

            %:表示全文查找并替换


    15,使用vim编辑多个文件

        用法格式:vim file1 file2 ...

        在末行模式下:

            next->表示切换至下一个文件

            prev->表示切换至前一个文件

            last->表示切换至最后一个文件

            first->表示切换至第一个文件

            qa->表示退出所有文件


    16,如何分窗口显示一个文件

        ->Ctrl+w,s:表示水平拆分窗口

        ->Ctrl+w,v:表示垂直拆分窗口

        

        在窗口间进行切换:

            Ctrl+w,ARROW

        

        在末行模式下:qa->关闭所有窗口


    17,如何分窗口显示多个文件

        ->vim -o:水平分割显示文件

        ->vim -O:垂直分割显示文件


    18,如何将当前文件的部分内容另存为另外一个文件

        末行模式下使用w命令

        用法格式->->ADDR1,ADDR2w /path to /somewhere


    19,如何将另外一个文件的内容填充至当前文件中

        末行模式下使用r命令

        用法格式->r /path to /somefile


    20,如何与shell进行交互

        用法格式->末行模式下使用:! command


    21,高级话题

        (1)显示或取消显示行号

            末行模式下:

            set number = set nu -> 显示行号

            set nonu -> 取消显示行号

            类似于此种的所有方法,只对当前进程有效,要想要永久生效,必须去更改vim的配置文件。

        (2)显示忽略或区分字符大小写

            末行模式下:

            set ignorecase = set ic -> 忽略字符大小写

            set noic -> 区分字符大小写

        (3)设定自动缩进

            末行模式下:

            set autoindent = set ai -> 自动缩进

            set noai -> 取消自动缩进

        (4)查找到的文本高亮显示或取消

            末行模式下:

            set hlsearch -> 高亮显示

            set nohlsearch -> 取消高亮显示

        (5)语法着色

            末行模式下:

            sytax on -> 语法着色

            syntax off -> 关闭语法着色


    22,vim配置文件

        vim配置文件分为两类

        ->全局的:/etc/vimrc,更改这个配置文件后对所有用户都生效。

        ->非全局的:~/.vimrc,更改这个配置文件后只对当前用户生效,如果没有该文件可以自己新建一个。


        vimtutor->vim导师,教我们如何使用vim,系统自带。


        vim非法退出某文件时,会在当前用户家目录下生成一个和该文件同名的.swap文件,只要这个文件存在,那么当用户再次想要打开之前那个文件的时候,系统肯定会报错,解决方法是,vim -r打开文件,或者是直接删除掉.swap文件即可,也可以在报错模式下选择你想要的选项。

                

            

           

本文出自 “菜鸟的技术文档” 博客,请务必保留此出处http://zhubo.blog.51cto.com/11395641/1829567

菜鸟的Linux苦逼之路4 vim编辑器

标签:linux

原文地址:http://zhubo.blog.51cto.com/11395641/1829567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!