vim学习

vim学习

认识与介绍

  vim是一款linux下查看编辑文本文件的一款文本编辑器。一般用来查看修改配置文件、日志文件等文本类文件。

打开文件

  vim [OPTIONS] [FILE …]

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

模式转换

编辑模式:默认模式
    编辑模式 --> 输入模式
            i: insert, 在光标所在处输入
            a:append, 在光标所在后方追加
            o:在光标所在处的下一行打开一个新行
            I:在光标所在行的行首输入
            A:在光标所在行的行位输入
            O:在光标所在行的上一行输入

    输入模式 --> 编辑模式
            ESC
            Ctrl+C

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

    末行模式 --> 编辑模式
            ESC
            Ctrl+C

关闭文件

    ZZ    保存并退出
    :q    退出
    :q!   强制退出
    :wq 保存并退出;
            :w, :q
    :x    保存并退出
    :w    /PATH/TO/SOMEFILE

编辑模式下的操作

光标跳转

    字符键跳转
        h:    左
        j:    下
        k:    上
        l:    右

    单词间跳转
        w:下一个单词的词首
        e:当前或后一个单词的词尾
        b:当前或前一个单词的词首

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

    行间跳转
        #G:       跳转至#指定的行
        1G,gg:    跳转至第一行
        G:        跳转至最后一行

    句间跳转
        ):    跳转至上一句的句首
        (:    跳转至下一句的句首

    段间跳转
        {:    跳转至上一段落的段首
        }:    跳转至下一段落的段尾

翻屏

    Ctrl+f:向为文件尾翻一屏
    Ctrl+b:向文件首部翻一屏
    Ctrl+d:向文件尾部翻半屏
    Ctrl+u:向文件首部翻半屏
    Enter:按行向后翻

字符编辑

    x:     删除光标所在处的字符
    #x:    删除光标
    xp:    交换光标所在处的字符与其后面字符的位置;

替换命令

    r:替换光标所在处的字符(键入r后,键入其他字符替换当前字符)
        rCHAR

删除命令

    d:删除命令,可结合光标跳转字符,实现范围删除;
        d$:删除光标至行尾的所有字符
        d^:删除光标至行首的所有字符

        dw:删除光标所在单词至下一个单词的词首
        de:删除光标位置到所在位置至词尾的字符
        db:删除光标至当前所处单词的词首

        dd:删除光标所在的行
            #dd:从光标所处行起,删除#行

粘贴命令(p, put, paste)

    小写p:缓存区中的内容若是正行内容,则粘贴在光标所在行的下一行;否则粘贴在光标所在行尾
    大写P:缓存区中的内容若是正行内容,则粘贴在光标所在行的上一行;否则粘贴在光标所在行首

复制命令

    y:复制,工作行为类似于d命令;
        y$: 复制光标位置到当前行尾部的内容
        y^:复制光标位置到当前行行首非空的内容
        y0:复制光标位置到当前行行首的内容

        ye:复制光标到当前词的词尾的内容
        yw:复制光标到下一个单词的词首的内容
        yb:复制光标到当前单词词首的内容

改变命令(change, c)

    c$:删除光标至当前行行尾的内容并进入插入模式
    c^:删除光标至当前行首的非空字符并进入插入模式
    c0:删除光标至当前行的行首并进入插入模式

    cb:删除光标至当前单词的词首内容并进入插入模式
    ce:删除光标至当前单词的词尾内容并进入插入模式
    cw:删除光标至下个单词的词首的内容并进入插入模式

    cc:删除光标所在的行,并转换为输入模式
        #cc:从光标所在行起删除#行,并转换为输入模式

可视化模式

用来选中连续的内容。
    v:按字符选定:
    V:按行选定;

    结合编辑命令使用:d, c, y

撤销(undo)操作

    u:撤销此前的操作
        #u:撤下此前的#个操作
    Ctrl+r:撤销此前的撤销

重复执行前一个编辑操作

    .

vim 行内模式(也称为命令行模式)

  • 这是vim內建的命令行接口

地址定界

界定内容后,进行命令编辑

    :start_pos[,end_pos]
        #:        特定的第#行,例如5即第5行
        .:        当前行
        $:        最后一行
        #,#:      指定行范围,例如3,5表示第3到第5行(其中3行和5行都包含在内)
        #,[-|+]#: 指定行范围,相对于起始行+#行或-#行
                3,+7:表示第2行到第10行
                .,$-1:表示当前行到最后一行减1行,也就是当前行到倒数第2行
                1,$:表示从第1行到最后一行
        %:        全文
        /pattern/:从光标所在行到第一次被模式匹配到的行
            /first/,$:从光标所在行起第一次匹配到first字符串的行到最后一行
        /pat1/,/pat2/:从所在行起第一次匹配到pat1的行开始,至第一次匹配到pat2所在行结束之间的行。

    同编辑命令一同使用,实现编辑操作:
        d:删除界定的内容
        y:复制界定的内容
        c:删除界定的内容并进入插入模式

        w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中
        r /PATH/FROM/SOMEFILE:将指定文件的内容读取并插入到指定位置

导入其他文件内容

r /PATH/RROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置

全文查找

    /PATTERN:从光标所在处向文件尾部查找能够被 PATTERN 匹配的所有字符串
    ?PATTERN:从光标所在处向文件首部查找能够被 PATTERN 匹配的所有字符串
            n:跳转至下一个匹配项,与命令方向相同;
            N:跳转至上一个匹配项,与命令方向相反;

查找并替换

    默认的界定符是 . 当前行。全文替换则为%为界定符即可。
    s:末行模式的命令
        使用格式:
            s/要查找的内容/替换的新内容/修饰符
                要查找的内容:可以使用正则表达式
                替换的新内容:不可以使用正则表达式,但可以引用查找到的内容中的分组
                        要查找的内容中有分组,在替换的新内容中可以使用 \1,\2... 向后引用
                        直接引用查找到的所有文本,要使用&符号;
                修饰符:
                    i:忽略大小写
                    g:全局替换,意味着一行中匹配到多次全替换,否则只替换匹配到的第一个

            可把分隔符修改为其他不常用的字符(这种修改后,原有的/分隔符依然可以使用):
                    s@@@
                    s###

定制工作特性

  • 注意在末行模式下的设定,仅对当前vim进程有效;

  • 永久有效,可以设置
    全局:/etc/vimrc
    个人:~/.vimrc

      1、行号
          显示:set number,简写为set nu
          取消:set nomber,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

获取帮助

:help
:help subject

原创文章,作者:小江,如若转载,请注明出处:http://www.178linux.com/49630