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

vim编辑器

时间:2018-01-29 17:40:15      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:diff   ace   ssi   show   方向   vim编辑器   丢失   文件格式   返回   

vim编辑器

vi(visual interface)
vim(vi improved)
gvim(graph vim)

vim

    vim - Vi IMproved, a programmers text editor
    vim [arguments] [file ..]       编辑指定文件(s)
    vim [arguments] -               从标准输入读取text内容
    vim [arguments] -t tag          编辑tag已被定义的文件
    vim [arguments] -q [errorfile]  edit file with first error
    Arguments:
        --          仅跟随此后的文件名
        -v          Vi 模式 (like "vi")
        -e          Ex 模式 (like "ex")
        -E          增强版的 Ex 模式
        -s          沉默模式 (only for "ex")
        -d          微分模式 (like "vimdiff")
        -y          简单模式 (like "evim", modeless)
        -R          只读模式 (like "view")
        -Z          受限模式 (like "rvim")
        -m          不被允许修正
        -M          在text中的修正不被允许
        -b          二进制模式
        -l          模糊模式
        -C          兼容 Vi: ‘compatible‘
        -N          不充分兼容 Vi : ‘nocompatible‘
        -V[N][fname]        详情 [level N] [log messages to fname]
        -D          调试模式
        -n          不使用交换分区文件,仅使用内存
        -r          列出交换分区文件并退出
        -r (with file name) 恢复毁坏的会话
        -L          同 -r
        -A          以阿拉伯语模式开始
        -H          以希伯来语模式开始
        -F          以波斯语模式开始
        -T <terminal>              设置终端类型为 <terminal>
        -u <vimrc>      使用<vimrc> 代替任何的 .vimrc
        --noplugin      不加载插件脚本
        -p[N]       打开N个标签页(default: one for each file)
        -o[N]       打开N个窗口(default: one for each file)
        -O[N]       和-o 类似,但垂直划分
        +           以文件最后开始
        +<lnum>     以指定行开始
        --cmd <command> 在加载任何vimrc文件前,执行命令
        -c <command>        在加载第一个文件后执行命令
        -S <session>        加载第一个文件后的源文件会话
        -s <scriptin>             从文件<scriptin>中读取正常模式命令
        -w <scriptout>  附加所有类型命令到文件 <scriptout>
        -W <scriptout>  写所有类型命令到文件<scriptout>
        -x          编辑加密的文件
        --startuptime <file>    写开始时间信息到文件
        -i <viminfo>        使用 <viminfo> 取代.viminfo

vim打开文件

    +#:     打开文件后 ,让光标处于第# 行的 行首,+ 默认行尾
    +/ PATTERN :    打开文件后,直接让光标处于第一个被PATTERN 匹配到的行的行首
    –b file     二进制方式打开文件
    –d file1 file2…     比较多个文件
    -m file     只读打开文件
    ex file 或 vim –e    直接进入ex 模式
    如果该文件存在,文件被打开并显示内容
    如果该文件不存在,当编辑后第一次存盘时创建它

vim 的三种主要模式:

    命令(Normal) 模式:  默认模式,移动光标,剪切/ 粘贴文本
    插入(Insert): 编辑模式,修改文本
    扩展命令(extended command ) 模式: 保存,退出等
    Esc键退出当前模式
    Esc键总是返回到命令模式

vim的模式转换

技术分享图片

    图中:
        INSERT代表进行插入模式
        ALL代表进入命令模式
        VISUAL代表进行可视化模式
        :代表进行扩展命令模式
    进入命令模式(ALL)的方法
        vim(vi)进入文本后就进入了命令模式
        按ESC键退出其他模式同样就进入了命令模式
    进入插入模式的方法
        i:  insert,  在光标所在处输入
        I:  在当前光标所在行的行首 输入
        a:  append,  在光标所在处后面输入
        A : 在当前光标所在行的行尾 输入
        o:      在当前光标所在行的下方打开一个新行
        O : 在当前光标所在行的上方打开一个新行
    进入可视化模式(VISUAL)的方法
        按v键,进入面向字符的模式,提示为VISUAL,可进行字符级别的选择
        按V键,进入面向行的模式,提示为VISUAL LINE,可进行到行级别的选择
        按Ctrl + v|V,进入面向块的模式,提示为VISUAL BLOCK,可进行块级别的选择
        进入可视化模式后,突出显示的文字可被删除d,复制y,过滤,搜索,替换等

扩展模式进行的操作

    按“: ”进入扩展模式
    创建一个命令提示符: ,处于底部的屏幕左侧
    命令:
        w   写(存)磁盘文件
        wq  写入并退出
        x   写入并退出
        q   退出
        q!  不存盘退出,即使更改都将丢失
        r filename  读文件内容到当前文件中
        w filename  将当前文件内容写入另一个文件
        !command    执行命令
        r!command   读入 命令的输出
    地址定界:
        :start_pos,end_pos
        #   具体第#行,例如2表示第2行
        #,#     从左侧#表示起始行,到右侧#表示结尾行
        #,+#    从左侧#表示的起始行,加上右侧#表示的行数
        2,+3    表示2到5行行
        .   当前行
        $   最后一行
        .,$-1   当前行到倒数第二行
        %   全文,  相当于1,$
        /pat1/,/pat2/   从第一次被pat1模式匹配到的行开始,一直到第一次被pat2 匹配到的行结束
        #,/pat/ 
        /pat/,$ 
        使用方式:地址定界后再加个编辑命令
            d   删除
            y   复制
            w file:     将范围内的行另存至指定文件中
            r file: 在指定位置插入指定文件中的所有内容
    查找字符串:
        /PATTERN :  从当前光标所在处向文件尾部查找
        ?PATTERN :  从当前光标所在处向文件首部查找
        n : 与命令同方向
        N : 与命令反方向
    查找并替换:
        满足正则表达式
        s:  在扩展模式下完成查找替换操作
            格式:<范围指定>s/ 要查找的内容/ 替换为的内容/ 修饰符
                <范围指定>:指定从那个到那个进行查找替换。
                    N1,N2:表示从第N1行到N2行。
                    %:表示全部查找替换
                要查找的内容:可使用模式
                替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查找到的整个内容
                修饰符:
                    i:  忽略大小写
                    g: 对全局查找,默认情况下,每一行只替换匹配到的第一个
                    c: 每次替换前询问
            分隔符“/”可以替换为其他字符,如“@”,“#”。
                <范围指定>s@要查找的内容@替换为的内容@修饰符
                <范围指定>s#要查找的内容#替换为的内容#修饰符
        示例:
            s@/etc@/var@g
            s#/boot#/#i
            %s#/boot#/#i

命令模式进行的命令

    ZZ:     保存退出
    ZQ: 不保存退出
    字符间跳转:
        h:  左  
        l:  右 
        j:  下  
        k:  上 
        #COMMAND :  跳转由#指定的个数的字符
    单词间跳转:
        w : 下一个单词的词首
        e : 当前或下一单词的词尾
        b : 当前或前一个单词的词首
        #COMMAND :  由# 指定次跳转的单词数
    当前页跳转:
        H:  页首 
        M:  页中间行
        L:  页底
    行首行尾跳转:
        ^:      跳转至行首的第一个非空白字符
        0:      跳转至行首
        $:      跳转至行尾
    行间移动:
        #G: 跳转至由#指定行
        G : 最后一行
        1G, gg:     第一行
    句间移动:
        ) : 下一句 
        ( : 上一句
    段落间移动:
        }:  下一段 
        { : 上一段
    翻屏操作
        Ctrl+f:     向文件尾部翻一屏
        Ctrl+b:     向文件首部翻一屏
        Ctrl+d:     向文件尾部翻半屏
        Ctrl+u :    向文件首部翻半屏
    字符编辑:
        x:      删除光标处的字符
        #x:     删除光标处起始的#个字符
        xp:     交换光标所在处的字符及其后面字符的位置
        ~:  转换大小写
        J:  删除当前行后的换行符
    替换命令(r, replace)
        r:      替换光标所在处的字符
        R:  切换成REPLACE 模式
    删除命令:
        d:      删除命令,可结合光标跳转字符,实现范围删除
        d$:     删除到行尾
        d^:     删除到非空行首
        d0:     删除到行首
        dd:     删除光标所在的行
        #dd:    多行删除
        D:  从当前光标位置一直删除到行尾,留空行==d$
        #COMMAND    #次操作上述操作
    复制命令(y, yank): :
        y:  复制
        y$: 复制当前位置到行尾
        y0: 复制当前位置到行头
        y^: 复制当前位置到行首
        yy :    复制行
        #yy:    复制多行
        Y:      复制整行
        #COMMAND    #次上述操作
    粘贴命令(p, paste): :
        p:  缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
    改变命令(c, change)
        c:      修改后切换成插入模式,命令模式 -->  插入模式
        c$  
        c^  
        c0  
        cc :    删除当前行并输入新内容
        #cc:    
        C : 删除当前光标到行尾,并切换成插入模式
        #COMMAND    #次上述操作
    技巧操作
        <start position><command><end position>
        Command:
            y  复制、d  删除、gU  变大写、gu  变小写
            ye  从当前位置拷贝到本单词的最后一个字符
            示例
                0y$  命令意味着:
                0 →  先到行头
                y →  从这里开始拷贝
                $ →  拷贝到本行最后一个字符
    撤消之前的更改
        u   撤销最近的更改
        #u  撤销之前多次更改
        U   撤消光标落在这行后所有此行的更改
        Ctrl + r    重做最后的“撤消”更改
        .   重复前一个操作
        n.  重复前一个操作n次

编辑二进制文件

    以二进制方式打开文件
        vim –b binaryfile
    扩展命令模式下,利用xxd 命令转换为可读的十六进制
        :%!xxd
    扩展命令模式下,利用xxd 命令转换回二进制
        :%!xxd –r
    保存退出:wq

定制vim 的工作特性

    配置文件:
        进行永久有效的修改
        全局:/etc/vimrc
        个人:~/.vimrc
    仅对当前vim 进程有效设置
        “:”,进入扩展模式进行设置
        (1)  行号设置
            显示:set number,  简写为set nu
            取消显示:set nonumber,  简写为set nonu
        (2)  括号成对匹配设置
            匹配:set showmatch,  简写为set sm
            取消:set nosm
        (3)  自动缩进设置
            启用:set ai
            禁用:set noai
        (4)  高亮搜索设置
            启用:set hlsearch
            禁用:set nohlsearch
        (5)  语法高亮设置
            启用:syntax on
            禁用:syntax off
        (6)  忽略字符的大小写的设置
            启用:set ic
            不忽略:set noic
        (7)  文件格式设置
            启用windows 格式:set fileformat=dos
            启用unix 格式:set fileformat=unix
        (8)  设置文本宽度
            :set textwidth=65 (vim only)
            :set wrapmargin=15
            :set 
            :set all

vim高级

    多文件模式
        vim FILE1 FILE2 FILE3 ...
        文件选择:
            :next   下一个
            :prev   前一个
            :first      第一个
            :last   最后一个
            :wall   保存所有
            :qall   退出所有
            :wqall  保存退出所有
    多个“窗口”模式
        多文件窗口分割:
            vim -o|-O FILE1 FILE2 ...
            -o  水平分割
            -O  垂直分割
            在窗口间切换  Ctrl+w(且按上下左右键)
        单文件窗口分割:
            Ctrl+w,s:   split, 水平分割
            Ctrl+w,v    vertical,  垂直分割
            ctrl+w,q    取消相邻窗口
            ctrl+w,o    取消全部窗口
            :wqall  退出
    vim寄存器
        vim(vi)有26 个命名寄存器和1个无命名寄存器,常存放不同的剪贴版内容,可以不同会话间共享
        寄存器名称a ,b,…,z
        格式:"字符
            3"tyy  表示复制3 行到t 寄存器中
            "tp 表示将t寄存器内容粘贴
            未指定时将使用无命名寄存器
        有10 个数字寄存器,用0 ,1 ,… ,9 表示,0存放最近复制内容
            1 存放最近删除内容,当新的文本变更和删除时,1 转存到2,2 转存到3,以此类推,数字寄存器不能在不同会话间共享

帮助

    vim(vi)内置帮助
        :help
        :help topic
        按q退出帮助
    vimtutor命令可以进入练习模式

vim编辑器

标签:diff   ace   ssi   show   方向   vim编辑器   丢失   文件格式   返回   

原文地址:https://www.cnblogs.com/shenxm/p/8378083.html

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