vim编辑器总结与操作练习

一、VIM总结如下: 模式化的编辑器
1、三种基本模式:
    编辑模式(命令模式)
    输入模式(插入模式)
   末行模式:内置的命令行接口
2、如何使用VIM打开文件,编辑文件
    打开文件:
    #vim  【options】【file】
    +n;打开文件后直接让光标处于第n行的行首
    +/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首
    +/if  :表示打开文件后,直接在第一个匹配到的if 行首开始编辑
处于尾行,直接写 vim +  file
3、模式转换:
  编辑模式:默认模式
 编辑模式->输入模式
                                    i: insert 在光标所在处输入,插入字母等内容
                                    a:append,在光标处后方输入
                                    o:在光标所在处下方打开一个新的行
                                     I:在光标所在行的行首输入
                                     A :在光标所在行的行尾输入
                                     O:在光标所在处的上方打开一个新行
 输入模式->编辑模式
                             按ESC键
编辑模式->末行模式(命令模式)    输入“:”即可
                             每行增加序号:set nu
                               撤销序号:set nonu
 末行模式–>编辑模式
                         连续按两次ESC
(1)关闭文件:
        ZZ:保存并退出
        :q 退出
         :q! 强制退出
          :wq 保存并退出
                  上面命令可以分开使用:w先写入,:q再退出
           :x  保存并退出
           :w  /PATH/TO/SOMEFILE
(2)光标跳转:
     字符间跳转:h:左  l:右   j:下,k:上
                               #command :跳转由#指定个数的字符
    单词间跳转:一个单词的词首
e:当前或下一个w:下单词的词尾
b:当前或上一个单词的词首
#command :跳转由#指定个数的字符
    行首行尾跳转
^  :跳转至行首的第一个非空白字符
0:跳转至行首
$:跳转至行尾
    行间跳转
#G: 跳转至由#指定的行
1G,gg  :跳转至第一行
G:最后一行
    句间跳转
     )下一句
     (前一句
    可以加数字,表示前几句或后几句
    段间跳转
          }下一段
          {上一段
翻屏操作:
   Ctrl+f :向文件尾部翻一屏
   Ctrl+b :向文件首部翻一屏
    Ctrl+d :向文件尾部翻半屏
    Ctrl+u :向文件首部翻半屏
    enter:按行向后翻
4、vim的编辑命令
    字符编辑
    x :删除光标所在处的字符
    #x:删除光标所在处起始的#个字符
    xp :交换光标所在处的字符与其后面的字符的位置
    替换命令
    r:替换光标所在处的字符
      rCHAR
  删除命令   删除的内容保存在缓冲区中,只有最后一个才会被粘贴
      d :删除命令,可结合光标跳转字符,实现范围删除
        d$:删除光标所在的当前字符至行尾
        d^:删除光标所在的当前字符至行首
下面的内容可以加数字:#dw
        dw:删除光标所在的当前字符至下一个单词的词首
         de
         db:删除光标所在的当前字符的所在行,支持加数字
   粘贴命令:(p,put,paste)
         p:缓冲区的内容如果为整行,则粘贴在当前光标所在行的下方,否则则粘贴在光标所在处的后方
         P:缓冲区的内容如果为整行,则粘贴在当前光标所在行的上方,否则则粘贴在光标所在处的前方
     复制命令(yank,简写为y)
            复制操作与删除的命令原理一样
    y$:
    y^:
ye
yw
yb
    #command
    yy 复制一整行
    #yy复制#行
     改变命令:(change,c命令)
            编辑模式–》输入模式,实现删除操作
    c$
    c^
    c0
cb
ce
cw
       #command
cc:删除光标所在行,并转换为输出模式
     #cc
可视化模式(鼠标选中区域)
     v:按字符选定位置
    V:按整行选定位置
结合编辑命令使用:d,c,y
撤销操作(undo)
  u:撤销此前的操作
 #u:撤销此前的#条操作
撤销此前的操作内容
Ctrl + r
重复执行前一个编辑操作
vim有自带的练习教程,vimtutor
二、操作练习:
 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#:
cp  /etc/rc.d/rc.sysinit  /tmp
vim /tmp/rc.sysinit
%s@^[[:space:]]\+@#@g
2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;
命令:
cp  /boot/grub/grub.conf  /tmp
vim /tmp/grub.conf
 %s@^[[:space:]]@@g
3、删除/tmp/rc.sysinit文件中以#开头,且后面跟了至少一个空白字符的行行的#和空白字符:
%s@^#[[:space:]]\+@@g
4、为/tmp/grub.conf文件中前三行的行首加#号:
1,3s@^@#@g
5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1:
%s@\(enabled\|gpgcheck\)=0@\1=1@g
6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202:

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/89079

(1)
anyanghao123anyanghao123
上一篇 2017-11-29 10:12
下一篇 2017-11-29 14:00

相关推荐

  • linux用户管理(一)

    作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: useradd可以在系统中新建一个用户 用法如下: useradd [选项] 用户名 常用选项: -u 指定用户的UID -g 指定用户的初始组ID -G…

    Linux干货 2017-04-03
  • N28-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    Linux干货 2017-12-19
  • Linux基础知识之脚本初级编程

    1.编程语言的分类:机器语言,汇编语言,高级语言     高级语言:         静态语言:编译型语言 在程序执行之前就会编译成机器代码(完全转化完成)       &nbsp…

    Linux干货 2016-08-15
  • 马哥教育网络班21期-第九周课程练习

    "1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i login_user=0 declare -i nologin_user=0 whil…

    Linux干货 2016-09-15
  • sed命令实战

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符  [root@centos7 ~]# sed -r 's#^[[:space:]]+##g' /etc/grub2.cfg # # DO NOT EDIT THI…

    Linux干货 2016-08-15
  • 正则表达式之初体验

    学习正则表达式之前,看过这复杂的表达式,犹如天书,无比高大上;怀着战战兢兢的心情,开始了学习之旅: 一、  正则表达式:Global search REgular expression and Print out the line. 我的理解是:通过一大堆符号组成的公式逐行查找文本中匹配的字符串并显示出来  分类: &…

    Linux干货 2015-03-31