vim的简介与使用

      vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
      vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。

打开文件

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

命令模式–> 插入模式
    i: insert, 在光标所在处输入
    I:在当前光标所在行的行首输入
    a: append, 在光标所在处后面输入
    A:在当前光标所在行的行尾输入
    o: 在当前光标所在行的下方打开一个新行
    O:在当前光标所在行的上方打开一个新行

    锁定和解锁:CTRL+s,Ctrl+q

关闭文件
    扩展模式:
    :q 退出
    :q! 强制退出,丢弃做出的修改
    :wq保存退出
    :x 保存退出
命令模式
    ZZ: 保存退出
    ZQ:不保存退出
扩展模式
    按“:”进入Ex模式
    创建一个命令提示符:,处于底部的屏幕左侧
    命令:
        w写(存)磁盘文件
        wq写入并退出
        x 写入并退出
        q 退出
        q!不存盘退出,即使更改都将丢失
        r filename 读文件内容到当前文件中
        w filename 将当前文件内容写入另一个文件
        !command
        r!command
命令模式光标跳转
    字符间跳转:
        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: 交换光标所在处的字符及其后面字符的位置
    :转换大小写
    替换命令(r, replace)
        r: 替换光标所在处的字符
        R:切换成REPLACE模式
命令模式操作
    删除命令:
        d: 删除命令,可结合光标跳转字符,实现范围删除;
        d$: 删除到行尾
        d^:删除到非空行首
        d0:删除到行首
        #COMMAND
        dd: 删除光标所在的行
        #dd:多行删除
        D:从当前光标位置一直删除到行尾,留空行,等同于d$
命令模式操作
    复制命令(y, yank):
        y: 复制,行为相似于d命令
        y$
        y0
        y^
        ye
        yw
        yb
        #COMMAND
        yy:复制行
        #yy: 复制多行
        Y: 复制整行
命令模式操作
    粘贴命令(p, paste):
        p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
        P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
命令模式操作
    改变命令(c, change)
        c: 修改后切换成插入模式
命令模式–> 插入模式
        c$
        c^
        c0
        cb
        ce
        cw
        #COMMAND
        cc:删除当前行并输入新内容
        #cc:
        C:删除当前光标到行尾,并切换成插入模式
命令模式
        100iwang [ESC] 粘贴“wang”100次
        <start position><command><end position>
        Command:
        y 复制、d 删除、gU变大写、gu变小写
    例如0y$ 命令意味着:
        0 →先到行头
        y →从这里开始拷贝
        $ →拷贝到本行最后一个字符
        ye 从当前位置拷贝到本单词的最后一个字符
扩展模式:地址定界
    地址定界
        :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/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用“&”引用前面查

找时查找到的整个内容
    修饰符:
        i: 忽略大小写
        g: 全局替换;默认情况下,每一行只替换第一次出现
        gc:全局替换,每次替换前询问
    查找替换中的分隔符/可替换为其它字符,例如
        s@/etc@/var@g
        s#/boot#/#i
    命令模式:撤消更改
        u撤销最近的更改
        #u撤销之前多次更改
        U撤消光标落在这行后所有此行的更改
    按Ctrl-r重做最后的“撤消”更改
        . 重复前一个操作
        n.重复前一个操作n次

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

cp -rpf /etc/profile /tmp 复制文件到tmp目录下

11.jpg

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

 12.jpg

3、如何设置tab缩进为4个字符?

:模式ts=4

4、复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

 14.jpg

5、删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

15.jpg

 

 

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

(0)
msj77539273msj77539273
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • 重定向

    Linux下定义了三种I/O设备: 标准输入(STDIN):用0表示,默认的标准输入设备是键盘; 标准输出(STDOUT):用1表示,默认的标准输出设备是当前终端; 标准错误(STDERR):用2表示,默认的标准错误输出设备是当前终端; I/O重定向即改变默认的位置 1 标准输出重定向 (1)将标准输出重定向到其他终端 /dev/pts/1代表伪终端1,在伪…

    Linux干货 2017-07-31
  • N26-第三周作业-邢岩

    马哥门徒-N26-邢岩   “精深练习×一万小时=世界级技能”。髓鞘质是不可逆的,就让我们包裹一层厚厚的髓鞘质吧!今天继续我的练习。   第一题,列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可  ~]# who | cut -d' ' -f1 | sort -u &nbs…

    Linux干货 2017-02-14
  • systemd和systemctl

    systemd和systemctl(centos7)     Systemd是一种新的linux系统服务管理器。它替换了init系统,能够管理系统启动过程和一些系统服务,一旦启动起来,就将监管整个系统。在centos7系统中,PID 1被systemd所使用了:如下,在centos6中: init─┬─NetworkManager &nb…

    Linux干货 2016-10-09
  • 第五周 程序包管理

    1、简述tar命令的常见选项,并举例 tar——  文件压缩与解压     ★命令格式 tar [OPTION…] [FILE]…  创建归档(-c,-f 指定文件): tar -c -f /PATH/TO/SOMEFILE.tar  FILE… (后缀名固定以 .tar 结尾;) tar -cf /PATH/TO/SOM…

    2017-12-31
  • 马哥教育网络班22期+第1周课程练习

    1.描述计算机的组成及其功能 计算机的组成及各功能:  计算机主要由硬件、操作系统、软件三大部分组成 硬件 :主要由五部分组成 :运算器:主要是做数据运算              控制器:控制计算机各部件的协调和寻址操作         …

    Linux干货 2016-08-15
  • 作业:0805

    1.查出用户UID最大值的用户名、UID及shell类型 > cat /etc/passwd|cut -d: -f 1,3,7 |sort -t: -k2 -n| tail -1 2.查出/tmp的权限,以数字方式显示 > st…

    Linux干货 2016-08-08