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

2.9-vim编辑器

时间:2017-10-29 23:06:32      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:编辑器   vim   

vim编辑器

    vi:Visual Interface,文本编辑器

    文本:ASCII,Unicode

    文本编辑种类:

        行编辑器:sed

        全屏编辑器:nano,vi

    VIM - Vi IMproved


使用VIM

    vim:模式化的编辑

        基本模式:

            编辑模式,命令模式:

            输入模式:

            末行模式:

                内置的命令行接口

    打开文件:

        #vim [option]... FILE...

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

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

        模式转换:

            编辑模式-->输入模式

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

                I:在当前光标所在行行首输入

                a:append,在光标所在处后面输入

                A:在当前光标所在行行尾输入

                o:在当前光标所在行下方打开一个新行

                O:在当前光标所在行上方打开一个新行

                c:

                C:

            输入模式-->编辑模式

                ESC

            编辑模式-->末行模式

                :

            末行模式-->编辑模式

                Ctrl+c或两次ESC


    关闭文件:

        :q 退出

        :q! 强制退出,丢弃做出的修改

        :wq 保存退出

        :x 保存退出

        :w /PATH/TO/SOMEWHERE

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


    光标跳转:

        字符间跳转:

            h,j,k,l

            h:左

            j:下

            k:上

            l:右

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

        单词间跳转:

            w:下一个单词的词首

            e:当前或下一单词的词尾

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

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

        行首行尾跳转:

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

            0:跳转至行首

            $:跳转至行尾

        行间移动:

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

            G:最后一行

            1G,gg:跳转至首行

        句间移动:

            ):下一个句子

            (:上一个句子

        段间移动:

            }:下一段

            {:上一段

vim的编辑命令:

    字符编辑:

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

        #x:删除光标所在处向后#个字符

        xp:交换光标所在处的字符及后面字符的位置

    替换命令:

        r:替换光标所在处的字符

    删除命令:

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

            d$:光标到行尾的内容

            d^:光标到行首的内容

            d0:光标到行首的内容

            dw:

            de:

            db:

            #COMMAND

                #dw:

                #de:

                #db:

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

                #COMMAND:删除#行

    粘贴命令(p,put,paste):

        p(小写):缓冲区存储的如果为整行,则粘贴在当前光标所在行的下方。否则,则粘贴至当前光标所在处的后面

        P(大写):缓冲区存储的如果为整行,则粘贴在当前光标所在行的上方。否则,则粘贴至当前光标所在处的前面

    复制命令(y,yank):

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

            y$

            y0

            y^

            ye

            yw

            yb

                #COMMAND

            yy:复制行

                #yy:复制#行

    改变命令(c,change)

        c:修改

            编辑模式-->输入模式

            c$

            c0

            c^

            ce

            cw

            cb

                #COMMAND

            cc:删除并输入新内容

                #cc:删除#行


    可视化模式:

        v:按字符选定

        V:按行选定

            Note:经常结合编辑命令

                d,c,y

    撤销此前的编辑:

        u(undo):撤销此前操作

            #u:撤销此前#次操作

    撤销此前的撤销:

        Ctrl+r

    重复前一个编辑操作:

        .

    

    翻屏操作:

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

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

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

        Ctrl+u:向文件首部翻半屏


    vim自带的教程

        vimtutor


vim中的末行模式:

    内建的命令行接口

    (1)地址定界

        :start_pos,end_pos

            #:具体第#行,例如2表示第2行

            #,#:从左侧#表示行起始,到右侧#表示行结尾

            #,+#:从左侧#表示行起始,加上右侧#表示的行数

            .:当前行

            $:最后一行

                例如:.,$-1:从当前行到倒数第二行

            %:全文,相当于1,$

            /pattern1/,/pattern2/:从第一次被pattern1模式匹配到的行开始,一直到第一次被pattern2匹配到的行结束

                常见的用法:

                    #,/pattern/

                    /pattern/,$

        使用方式:

            后跟一个编辑命令

                d

                y

                w /PATH/TO/SOMEWHERE:将范围内的行另存至指定文件中

                r /PATH/FROM/SOMEFILE:在指定位置插入指定文件中的所有内容


    (2)查找

        /PATTERN:从当前光标所在处向文件尾部查找

        ?PATTERN:从当前光标所在处向文件首部查找

            n:与命令同方向查找符合PATTERN的内容

            N:与命令反方向查找符合PATTERN的内容


    (3)查找并替换

        s:在末行模式下完成查找替换操作

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

                要查找的内容:可使用模式

                替换为的内容:不能使用模式,但可以使用\1,\2,...等后向引用符号,还可以使用"&"引用前面查找时查找到的整个内容

                修饰符:

                    i:忽略大小写

                    g:全局替换:默认情况下,每一行只替换第一次出现

            查找替换中的分隔符/可替换为其他字符,例如

                         :% s /\/var\/log\/message/\/etc\/passwd/g 

            可以写成:% s@/var/log/message@/etc/passwd@g


练习:

    1.复制/etc/grub.conf至/tmp目录,用查找替换命令删除/tmp/grub.conf文件中的行首的空白字符

    2.复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首添加一个#号

2.9-vim编辑器

标签:编辑器   vim   

原文地址:http://sanyuan.blog.51cto.com/873226/1977186

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