Linux vim编辑器

vim编辑器

        简介:

            vi:Visual Interface文本编辑器;

            文本:ACSII,Unicode

            文本编辑器种类

                行编辑器:sed

                全屏编辑器:nano,vi

            vim:vi improved;

        使用方法:

            vim:模式化的编辑器

                基本模式

                    编辑模式,命令模式:可以输入很多快捷键;dd,yy,pp

                    末行模式:内置的命令行接口,可以实现多种操作;

                    输入模式

                打开文件

                    vim [options] [file…]

                    +#:打开文件时使光标直接定位到#行所在的位置;

                    +/PATTERN:打开文件后,使光标直接定位到第一个被前面模式所匹配的行的行首;

                模式转换

                    编辑模式→输入模式:

                        a:在光标所在位置的后面开始输入;

                        i:在光标所在位置开始输入;

                        o:在光标所在位置的下一行的行首开始输入;

                       I:在当前光标所在行的行首开始输入;

                        A:在当前行光标所在行的行尾开始输入;

                        O:在光标所在位置的上一行的行首开始输入;

                    输入模式→编辑模式:Esc

                    编辑模式→末行模式:":"

                    末行模式→编辑模式:Esc

                关闭文件:

                    q:退出文件;

                    q!:强制退出文件;

                    wq:保存并退出文件;

                    ZZ:保存并退出;

                    x:保存退出;

                    w /path/to/file:保存到另一个文件中;

                光标跳转:

                    字符间跳转:

        h:左移

        j:下移

        k:上移

        l:右移

       单词间跳转:
                        w:向前移动一个单词;光标在词首间移动;                   

                        e:向后移动一个单词;光标在词尾间移动;

                        b:向前移动一个单词;光标在词首间移动;

                        #command:支持跳转由#指定的个数的字符;

                    行首行尾跳转:

                        ^:将光标移动到行首,首个非空白字符;

                        0:将光标移动到绝对行首;

                        &:将光标移动到行尾;

                    行间跳转:

                        #G:跳转至#所指定的行;

                        G:跳转至文尾;

                        gg:跳转至文首;

                    句间移动:

                         "(",")"

                    段落间移动:

                        "{","}"

                vim的编辑命令:

                    字符编辑

                        x:删除光标所在位置的单个字符;

                        #x:删除光标起始的#个字符;

 

                        xp:交换前后字符;

                    删除命令

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

        d^,d$,d0,db,de,dw


                        dd:删除光标所在的行;                                      

        #command:支持删除由#指定的单词数;比如:10dw;

                             #command;比如10dd:向下删除十行,包括光标所在行;

                    粘贴命令

                        p:粘贴命令,可以将缓存中的内容粘贴到文本中;

                            缓存区的内容如果为整行的,就会将内容粘贴至光标所在行的下一行;

                                如果为一部分行,则会粘贴至光标所在位置的后面;

                        P:粘贴命令,可以将缓存中的内容粘贴到文本中;

                            缓存区的内容如果为整行的,就会将内容粘贴至光标所在行的上一行;

                                    如果为一部分行,则会粘贴至光标所在位置的前面;

                    复制命令

                        y:复制命令;用法;类似于删除命令“d”;

                           用法请参考上面的删除命令;

                    改变命令

                        c:执行以后自动由编辑模式切换到输入模式;

                            比如c$:会删除光标及其之后的内容然后转为输入模式;

                                cc:删除一行然后转为输入模式;

          ce,cw,cb


                        r:替换光标所在位置的字符;                    替换命令

                            #command:#r'String';

                        R:从光标开始位置连续替换;

                    可视化模式

                        v:按字符选定;

                        V:按行选定;

                        Note:常与编辑命令一起使用;

                    撤销此前的操作

                        u:撤销命令;

                            #u:一次撤销指定次数;

                        Ctrl+r:撤销此前的撤销的操作;

                    重复前一次的编辑操作:".";

                    翻屏操作

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

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

                        Ctrl+u:向文件首都翻半屏;

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

                    vim自带的练习教程:vimtutor;

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

                    地址定界

                        #:具体的#行;

                        n,m:从第n行到第m行;

                        #,+n:从第#行到之后的n行;

                        ".":当前行;

                        $:到文尾;最后一行;

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

                        %:全文→1,$;

                        /pat1/,/pat2/:表示从第一次被模式1匹配的行到第一次被模式2匹配的行之间的内容;

                            #,/pat/

                            /pat/,$

                    使用方式:后跟一个编辑命令或保存命令;

                        d,y,p

                        w /path/to/file :将当前选中的内容另存为某个文件中;

                        r /path/from/somefile:从某处读取文件内容到当前文件中;

                    查找

                        /pattern:从当前光标所在位置向上查找;

                        ?pattern:从光标当前所在位置向下查找;

                        n:与命令同方向,在所找到的字符间跳转;

                        N:与命令反方向,在所找到的字符间跳转;

                    查找并替换

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

                            s/被替换的内容/替换为的内容/修饰符

                                被替换的内容:可以使用模式匹配;

                                替换为的内容:不可以使用模式匹配,但是可以使用/1,/2,…等后向引用符号,及&符号引用前面匹配到的整个内容;

                                g:全局替换;默认不加g,则只改变每行中的第一个匹配到的字符内容;

                                i:忽略大小写;

                        使用方法:一般与地址定界结合使用;

                            如果使用"/"为分隔符时,所匹配的字符里面包含"/",则需要""转义;或者改用其他分隔符:@,#;

                多文件模式

                    vim [options] [file1,file2,…]

                        next:下一个;

                        prev:上一个;

                        first:第一个;

                        last:最后一个;

                        qall:退出所有文件;

                        wall:保存所有文件;

                        wqall:你懂的;

                    窗口分隔模式

                        vim -o files:水平分隔;

                        vim -O  files:垂直分隔;

                    单文件窗口分隔:

                        Ctrl+w,s:水平分隔;

                        Ctrl+w,v:垂直分隔;

                    定制vim的工作特性

                        配置文件:永久有效

                            全局:/etc/vimrc

                            个人:~/.vimrc

                        末行模式:

                            当前vim进程内有效;

                            行号:

                                显示:set number 简写:set nu

                                取消显示:set nonumber 简写:set nonu

                            括号匹配:

                                匹配:set showmatch 简写:set sm

                                取消:set noshowmatch 简写:set nosm

                            自动缩进:

                                启用:set ai

                                禁用:set noai

                            高亮搜索:

                                启用:set hlsearch

                                禁用:set nohlsearch

                            语法高亮:

                                启用:syntax on

                                禁用:syntax off

                            忽略字符的大小写:

                                启用:set ic

                                不忽略:set noic

                            获取帮助:

                                末行模式:键入help;

     注:根据马哥视频做的笔记,如有错误,欢迎指正;侵删

    

 

原文地址:https://www.cnblogs.com/guowei-Linux/p/9787341.html