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

(0)
小江小江
上一篇 2016-10-09
下一篇 2016-10-09

相关推荐

  • 9 grep & egrep & 正则表达式

    grep grep = Global search REgular expression and Print out the line 语法及用途 grep [OPTIONS] PATTERN [FILE…] 根据用户指定的“…

    Linux干货 2016-08-10
  • 面向对象的实例方法,类方法和静态方法

    类方法和静态方法 普通函数 class Person: def normal_method(): print(‘normal’) Person.normal_method() # Person().normal_method() print(Person.__dict__) Person.normal_method()可以,是因为这个方法只是被Person这…

    2017-11-11
  • inode 与 block

    iNode:索引节点(index node) iNode是用来存储数据属性信息的,iNode包含的属性包括:文件大小属组归属的用户组读写权限文件类型修改时间指向文件实体的指针功能(iNode节点和block的对应关系)但是,iNode不包括文件名 iNode小结: 磁盘分区格式化为ext4文件系统后会生成一定数量的iNode和block iNode是索引节点…

    Linux干货 2017-07-18
  • RAID与逻辑卷

        RAID与逻辑卷作为磁盘管理的方式,各有各的优势。RAID是多个磁盘合成一个阵列,以便提供更好的性能;逻辑卷相对于分区来说,可以在线扩展空间,也可以缩减空间。可以利用软件的方式来实现RAID与逻辑卷。 一、利用软件方式实现RAID     利用sdb sdc sdd sd…

    2017-08-12
  • 马哥教育网络班20期 第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash #the purpose of program : # #08/11/2016  PATH=/bin:/sbin:…

    Linux干货 2016-08-15
  • 磁盘管理、文件管理、系统管理

    分区管理工具:fdisk,parted,sfdisk fdisk:MBR模式,对于一块硬盘来说,最多只能管理15个分区; # fdisk -l [-u] [device…]:查看 # fdisk device 子命令:管理功能 p:显示已有分区 n:新建分区 d:删除 w:写入磁盘并退出 q:放弃更改并退出 m:获取帮助 l:列出分区id t:调…

    Linux干货 2017-12-15